From 6f4d0b9c3a79e3dfa81112426b6d3e6f23ef6aa9 Mon Sep 17 00:00:00 2001 From: nikola-m Date: Tue, 29 Sep 2020 22:49:22 +0200 Subject: [PATCH] Further developments. --- Makefile | 0 examples/RBCells/0/T | 19 + examples/RBCells/0/U | 21 + examples/RBCells/0/epsilon | 19 + examples/RBCells/0/k | 20 + examples/RBCells/0/omega | 15 + examples/RBCells/README.md | 5 + examples/RBCells/input-piso | 27 + examples/RBCells/input-simple | 27 + examples/RBCells/plotResiduals | 14 + examples/RBCells/polyMesh/boundary | 5 + examples/RBCells/polyMesh/boundary-OF | 51 + examples/RBCells/polyMesh/faces | 3724 ++++++++++++++++ examples/RBCells/polyMesh/neighbour | 1725 ++++++++ examples/RBCells/polyMesh/owner | 3725 +++++++++++++++++ examples/RBCells/polyMesh/points | 2026 +++++++++ examples/RBCells/run-piso | 1 + examples/RBCells/run-simple | 1 + examples/RBCells/vtk/mesh.vtm | 29 + examples/RBCells/vtk/mesh/mesh_0_0.vtu | 2523 +++++++++++ examples/RBCells/vtk/mesh/mesh_1_0.vtp | 204 + examples/RBCells/vtk/mesh/mesh_2_0.vtp | 204 + examples/RBCells/vtk/mesh/mesh_3_0.vtp | 78 + examples/RBCells/vtk/mesh/mesh_4_0.vtp | 2539 +++++++++++ src-par/CourantNo.f90 | 18 +- src-par/LIS_linear_solver_library.f95 | 0 src-par/Makefile | 9 +- src-par/README.md | 68 - src-par/abort_mission_mpi.f90 | 0 src-par/adjustMassFlow.f90 | 0 src-par/allocate.f90 | 0 src-par/asm_heatflux_terms.f90 | 0 src-par/asm_stress_terms.f90 | 0 src-par/bcin.f90 | 0 src-par/bicgstab.f90 | 0 src-par/bpres.f90 | 0 src-par/calc_statistics.f90 | 66 +- src-par/calc_strain_and_vorticity.f90 | 0 src-par/calcheatflux.f90 | 0 src-par/calcp_piso.f90 | 5 +- src-par/calcp_simple.f90 | 7 +- src-par/calcstress.f90 | 0 src-par/calcuvw.f90 | 0 src-par/concentration.f90 | 0 src-par/constant_mass_flow_forcing.f90 | 0 src-par/continuityErrors.f90 | 0 src-par/continuityErrors.h | 0 src-par/correct_turbulence.f90 | 0 src-par/correct_turbulence_inlet.f90 | 0 src-par/create_and_save_frame.f90 | 0 src-par/dpcg.f90 | 0 src-par/exchange.f90 | 0 src-par/faceflux_mass.f90 | 0 src-par/faceflux_velocity.f90 | 0 src-par/fieldManipulation.f90 | 1 + src-par/field_initialization.f90 | 0 src-par/fv_equation.f90 | 0 src-par/fvm_ddt.f90 | 0 src-par/fvm_div.f90 | 0 src-par/fvm_laplacian.f90 | 0 src-par/geometry-old.f90 | 0 src-par/geometry.f90 | 0 src-par/global_isum_mpi.f90 | 0 src-par/global_max_mpi.f90 | 0 src-par/global_min_mpi.f90 | 0 src-par/global_sum_mpi.f90 | 0 src-par/gradients.f90 | 0 src-par/iccg.f90 | 0 src-par/init.f90 | 0 src-par/interpolation.f90 | 71 + src-par/jacobi.f90 | 0 src-par/k_epsilon_rng.f90 | 0 src-par/k_epsilon_std.f90 | 0 src-par/k_epsilon_zeta_f.f90 | 0 src-par/k_eqn_eddy.f90 | 0 src-par/k_omega_sst.f90 | 0 src-par/main.f90 | 10 +- src-par/matrix.f90 | 0 src-par/mgmres.f90 | 0 src-par/modules_allocatable.f90 | 1 + src-par/my_mpi_module.f90 | 212 + src-par/openfiles.f90 | 0 src-par/output.f90 | 0 src-par/periodicity.f90 | 218 + src-par/poisson.f90 | 0 src-par/random_seed.f90 | 0 src-par/read_input.f90 | 4 +- src-par/readfiles.f90 | 0 src-par/recirculate_flow.f90 | 0 src-par/recirculate_flow_periodichill.f90 | 0 src-par/recirculate_flow_stenosis.f90 | 36 +- src-par/scalar_fluxes.f90 | 0 src-par/spalart_allmaras.f90 | 0 src-par/sparse_matrix.f90 | 0 src-par/synchronize_mpi.f90 | 0 src-par/temperature.f90 | 340 +- src-par/tensor_fields.f90 | 0 src-par/time_shift.f90 | 0 src-par/turbulence.f90 | 85 + src-par/updateVelocityAtBoundary.f90 | 0 src-par/utils.f90 | 57 + src-par/vortexIdentification.f90 | 0 src-par/write_restart_files.f90 | 0 src-par/writefiles.f90 | 21 +- src-par/writehistory.f90 | 6 +- src/Makefile | 123 - src/Makefile-with-LIS | 132 - src/cappuccino/CourantNo.f90 | 16 +- src/cappuccino/calc_statistics.f90 | 0 src/cappuccino/constant_mass_flow_forcing.f90 | 0 src/cappuccino/create_fields.f90 | 0 src/cappuccino/directories | 0 src/cappuccino/files | 4 +- src/cappuccino/init.f90 | 15 +- src/cappuccino/main.f90 | 13 +- src/cappuccino/modules_allocatable.f90 | 1 + src/cappuccino/time_shift.f90 | 0 src/finiteVolume/boundary/adjustMassFlow.f90 | 0 src/finiteVolume/boundary/bcin.f90 | 2 +- src/finiteVolume/boundary/bpres.f90 | 0 src/finiteVolume/boundary/updateScalar.f90 | 0 .../boundary/updateVelocityAtBoundary.f90 | 0 src/finiteVolume/fluxes/faceflux_mass.f90 | 163 +- src/finiteVolume/fluxes/faceflux_velocity.f90 | 0 src/finiteVolume/fluxes/scalar_fluxes.f90 | 0 .../fvEqnDiscretization/MHD/mhd.f90 | 0 .../Pressure/calcp_piso.f90 | 0 .../Pressure/calcp_simple.f90 | 0 .../Pressure/continuityErrors.f90 | 0 .../piso_using_pressure_correction.f90 | 0 .../Pressure/pressure_velocity_density.f90 | 138 +- .../ScalarEqns/concentration.f90 | 0 .../fvEqnDiscretization/ScalarEqns/energy.f90 | 0 .../ScalarEqns/temperature.f90 | 11 +- .../correct_turbulence_inlet.f90 | 35 - .../TurbulenceModels/k_epsilon_rlzb.f90 | 8 +- .../TurbulenceModels/k_epsilon_rlzb_2lewt.f90 | 8 +- .../TurbulenceModels/k_epsilon_rng.f90 | 12 +- .../TurbulenceModels/k_epsilon_std.f90 | 23 +- .../TurbulenceModels/k_epsilon_std_2lewt.f90 | 8 +- .../TurbulenceModels/k_epsilon_zeta_f.f90 | 8 +- .../TurbulenceModels/k_eqn_eddy.f90 | 8 +- .../TurbulenceModels/k_omega_EARSM_WJ.f90 | 8 +- .../TurbulenceModels/k_omega_sst.f90 | 8 +- ...ct_turbulence.f90 => modify_viscosity.f90} | 29 +- .../modify_viscosity_inlet.f90 | 35 + .../TurbulenceModels/spalart_allmaras.f90 | 8 +- .../Velocity/asm_heatflux_terms.f90 | 0 .../Velocity/asm_stress_terms.f90 | 0 .../fvEqnDiscretization/Velocity/calcuvw.f90 | 4 +- .../fvEqnDiscretization/coupled_solver.f90 | 925 ++++ .../fvExplicit/calc_strain_and_vorticity.f90 | 0 src/finiteVolume/fvExplicit/calcheatflux.f90 | 0 src/finiteVolume/fvExplicit/calcstress.f90 | 0 .../fvExplicit/fieldManipulation.f90 | 62 +- src/finiteVolume/fvExplicit/fvx.f90 | 0 src/finiteVolume/fvExplicit/fvxDdt.f90 | 0 src/finiteVolume/fvExplicit/fvxDivergence.f90 | 0 src/finiteVolume/fvExplicit/fvxGradient.f90 | 0 .../fvExplicit/fvxInterpolation.f90 | 0 src/finiteVolume/fvExplicit/fvxLaplacian.f90 | 0 src/finiteVolume/fvExplicit/gradients-old.f90 | 0 src/finiteVolume/fvExplicit/gradients.f90 | 0 .../fvExplicit/vortexIdentification.f90 | 0 .../fvExplicit/wallSurfaceFields.f90 | 0 src/finiteVolume/fvImplicit/fvEquation.f90 | 0 src/finiteVolume/fvImplicit/fvField.f90 | 0 src/finiteVolume/fvImplicit/fviDdt.f90 | 0 src/finiteVolume/fvImplicit/fviDivergence.f90 | 0 src/finiteVolume/fvImplicit/fviLaplacian.f90 | 0 src/finiteVolume/fvImplicit/fviSuSp.f90 | 0 src/finiteVolume/fvImplicit/laplacian.f90 | 0 .../initialization/field_initialization.f90 | 180 +- .../interpolation/interpolation.f90 | 0 .../tensorFields/tensorFields.f90 | 0 src/io/experimental_read_input.f90 | 35 + src/io/output.f90 | 0 src/io/read_input.f90 | 0 src/io/readfiles.f90 | 0 src/io/write_restart_files.f90 | 0 src/io/writefiles.f90 | 0 src/io/writehistory.f90 | 0 .../LIS_linear_solver_library.f95 | 0 src/linearSolvers/bicgstab.f90 | 0 src/linearSolvers/dpcg.f90 | 0 src/linearSolvers/gauss-seidel.f90 | 0 src/linearSolvers/iccg.f90 | 0 src/linearSolvers/linear_solvers.f90 | 0 src/linearSolvers/mgmres.f90 | 0 .../constitutiveRelations.f90 | 0 src/mesh/geometry-dev.f90 | 0 src/mesh/geometry.f90 | 19 +- src/misc/matrix.f90 | 0 src/misc/precision.f90 | 0 src/misc/utils.f90 | 11 + src/module_template.f90 | 0 src/sparseMatrix/sparse_matrix.f90 | 0 test/polyMesh/boundary | 0 test/polyMesh/cellgroup-1 | 0 test/polyMesh/cellgroup-2 | 0 test/polyMesh/cells | 0 test/polyMesh/faces | 0 test/polyMesh/neighbour | 0 test/polyMesh/owner | 0 test/polyMesh/points | 0 test/testFieldOperations/directories | 10 + test/testFieldOperations/files | 10 + test/testFieldOperations/polyMesh/boundary | 4 + test/testFieldOperations/polyMesh/boundary~ | 4 + test/testFieldOperations/polyMesh/faces | 1664 ++++++++ test/testFieldOperations/polyMesh/neighbour | 785 ++++ test/testFieldOperations/polyMesh/owner | 1665 ++++++++ test/testFieldOperations/polyMesh/points | 906 ++++ .../testFieldOperations.f90 | 177 + test/test_linear_solvers_spsolve.f90 | 0 test/testfvEquations/directories | 10 + test/testfvEquations/files | 11 + test/testfvEquations/polyMesh/boundary | 4 + test/testfvEquations/polyMesh/boundary~ | 4 + test/testfvEquations/polyMesh/faces | 1664 ++++++++ test/testfvEquations/polyMesh/neighbour | 785 ++++ test/testfvEquations/polyMesh/owner | 1665 ++++++++ test/testfvEquations/polyMesh/points | 906 ++++ test/testfvEquations/testfvEquations.f90 | 184 + utilities/cappuccinoDual/cappuccinoDual.f90 | 694 +++ utilities/cellConnectivity/Makefile | 0 .../cellConnectivity/cellConnectivity.f90 | 0 utilities/cellConnectivity/utils.f90 | 0 utilities/foamToCappuccino/Makefile | 0 utilities/foamToCappuccino/Makefile~ | 0 .../foamToCappuccino/foamToCappuccino.f90 | 0 utilities/foamToCappuccino/utils.f90 | 0 utilities/gambitToCappuccino/2cylinder.neu | 0 utilities/gambitToCappuccino/Contributors | 1 + utilities/gambitToCappuccino/Makefile | 0 utilities/gambitToCappuccino/Makefile~ | 0 utilities/gambitToCappuccino/README.md | 0 .../gambitToCappuccino/gambitToCappuccino.f90 | 4 +- utilities/gambitToCappuccino/output | 0 .../gambitToCappuccino/qsort_c_module.f90 | 0 utilities/gambitToCappuccino/utils.f90 | 0 utilities/readBoundary/Makefile | 0 utilities/readBoundary/boundary_module.f90 | 17 +- utilities/readBoundary/readBoundaryFile.f90 | 7 +- 244 files changed, 30649 insertions(+), 821 deletions(-) mode change 100644 => 100755 Makefile create mode 100755 examples/RBCells/0/T create mode 100755 examples/RBCells/0/U create mode 100755 examples/RBCells/0/epsilon create mode 100755 examples/RBCells/0/k create mode 100755 examples/RBCells/0/omega create mode 100644 examples/RBCells/README.md create mode 100755 examples/RBCells/input-piso create mode 100755 examples/RBCells/input-simple create mode 100755 examples/RBCells/plotResiduals create mode 100755 examples/RBCells/polyMesh/boundary create mode 100755 examples/RBCells/polyMesh/boundary-OF create mode 100755 examples/RBCells/polyMesh/faces create mode 100755 examples/RBCells/polyMesh/neighbour create mode 100755 examples/RBCells/polyMesh/owner create mode 100755 examples/RBCells/polyMesh/points create mode 100755 examples/RBCells/run-piso create mode 100755 examples/RBCells/run-simple create mode 100755 examples/RBCells/vtk/mesh.vtm create mode 100755 examples/RBCells/vtk/mesh/mesh_0_0.vtu create mode 100755 examples/RBCells/vtk/mesh/mesh_1_0.vtp create mode 100755 examples/RBCells/vtk/mesh/mesh_2_0.vtp create mode 100755 examples/RBCells/vtk/mesh/mesh_3_0.vtp create mode 100755 examples/RBCells/vtk/mesh/mesh_4_0.vtp mode change 100644 => 100755 src-par/CourantNo.f90 mode change 100644 => 100755 src-par/LIS_linear_solver_library.f95 mode change 100644 => 100755 src-par/Makefile delete mode 100644 src-par/README.md mode change 100644 => 100755 src-par/abort_mission_mpi.f90 mode change 100644 => 100755 src-par/adjustMassFlow.f90 mode change 100644 => 100755 src-par/allocate.f90 mode change 100644 => 100755 src-par/asm_heatflux_terms.f90 mode change 100644 => 100755 src-par/asm_stress_terms.f90 mode change 100644 => 100755 src-par/bcin.f90 mode change 100644 => 100755 src-par/bicgstab.f90 mode change 100644 => 100755 src-par/bpres.f90 mode change 100644 => 100755 src-par/calc_statistics.f90 mode change 100644 => 100755 src-par/calc_strain_and_vorticity.f90 mode change 100644 => 100755 src-par/calcheatflux.f90 mode change 100644 => 100755 src-par/calcp_piso.f90 mode change 100644 => 100755 src-par/calcp_simple.f90 mode change 100644 => 100755 src-par/calcstress.f90 mode change 100644 => 100755 src-par/calcuvw.f90 mode change 100644 => 100755 src-par/concentration.f90 mode change 100644 => 100755 src-par/constant_mass_flow_forcing.f90 mode change 100644 => 100755 src-par/continuityErrors.f90 mode change 100644 => 100755 src-par/continuityErrors.h mode change 100644 => 100755 src-par/correct_turbulence.f90 mode change 100644 => 100755 src-par/correct_turbulence_inlet.f90 mode change 100644 => 100755 src-par/create_and_save_frame.f90 mode change 100644 => 100755 src-par/dpcg.f90 mode change 100644 => 100755 src-par/exchange.f90 mode change 100644 => 100755 src-par/faceflux_mass.f90 mode change 100644 => 100755 src-par/faceflux_velocity.f90 mode change 100644 => 100755 src-par/fieldManipulation.f90 mode change 100644 => 100755 src-par/field_initialization.f90 mode change 100644 => 100755 src-par/fv_equation.f90 mode change 100644 => 100755 src-par/fvm_ddt.f90 mode change 100644 => 100755 src-par/fvm_div.f90 mode change 100644 => 100755 src-par/fvm_laplacian.f90 mode change 100644 => 100755 src-par/geometry-old.f90 mode change 100644 => 100755 src-par/geometry.f90 mode change 100644 => 100755 src-par/global_isum_mpi.f90 mode change 100644 => 100755 src-par/global_max_mpi.f90 mode change 100644 => 100755 src-par/global_min_mpi.f90 mode change 100644 => 100755 src-par/global_sum_mpi.f90 mode change 100644 => 100755 src-par/gradients.f90 mode change 100644 => 100755 src-par/iccg.f90 mode change 100644 => 100755 src-par/init.f90 mode change 100644 => 100755 src-par/interpolation.f90 mode change 100644 => 100755 src-par/jacobi.f90 mode change 100644 => 100755 src-par/k_epsilon_rng.f90 mode change 100644 => 100755 src-par/k_epsilon_std.f90 mode change 100644 => 100755 src-par/k_epsilon_zeta_f.f90 mode change 100644 => 100755 src-par/k_eqn_eddy.f90 mode change 100644 => 100755 src-par/k_omega_sst.f90 mode change 100644 => 100755 src-par/main.f90 mode change 100644 => 100755 src-par/matrix.f90 mode change 100644 => 100755 src-par/mgmres.f90 mode change 100644 => 100755 src-par/modules_allocatable.f90 create mode 100755 src-par/my_mpi_module.f90 mode change 100644 => 100755 src-par/openfiles.f90 mode change 100644 => 100755 src-par/output.f90 create mode 100755 src-par/periodicity.f90 mode change 100644 => 100755 src-par/poisson.f90 mode change 100644 => 100755 src-par/random_seed.f90 mode change 100644 => 100755 src-par/read_input.f90 mode change 100644 => 100755 src-par/readfiles.f90 mode change 100644 => 100755 src-par/recirculate_flow.f90 mode change 100644 => 100755 src-par/recirculate_flow_periodichill.f90 mode change 100644 => 100755 src-par/recirculate_flow_stenosis.f90 mode change 100644 => 100755 src-par/scalar_fluxes.f90 mode change 100644 => 100755 src-par/spalart_allmaras.f90 mode change 100644 => 100755 src-par/sparse_matrix.f90 mode change 100644 => 100755 src-par/synchronize_mpi.f90 mode change 100644 => 100755 src-par/temperature.f90 mode change 100644 => 100755 src-par/tensor_fields.f90 mode change 100644 => 100755 src-par/time_shift.f90 create mode 100755 src-par/turbulence.f90 mode change 100644 => 100755 src-par/updateVelocityAtBoundary.f90 mode change 100644 => 100755 src-par/utils.f90 mode change 100644 => 100755 src-par/vortexIdentification.f90 mode change 100644 => 100755 src-par/write_restart_files.f90 mode change 100644 => 100755 src-par/writefiles.f90 mode change 100644 => 100755 src-par/writehistory.f90 delete mode 100644 src/Makefile delete mode 100644 src/Makefile-with-LIS mode change 100644 => 100755 src/cappuccino/CourantNo.f90 mode change 100644 => 100755 src/cappuccino/calc_statistics.f90 mode change 100644 => 100755 src/cappuccino/constant_mass_flow_forcing.f90 mode change 100644 => 100755 src/cappuccino/create_fields.f90 mode change 100644 => 100755 src/cappuccino/directories mode change 100644 => 100755 src/cappuccino/files mode change 100644 => 100755 src/cappuccino/init.f90 mode change 100644 => 100755 src/cappuccino/main.f90 mode change 100644 => 100755 src/cappuccino/modules_allocatable.f90 mode change 100644 => 100755 src/cappuccino/time_shift.f90 mode change 100644 => 100755 src/finiteVolume/boundary/adjustMassFlow.f90 mode change 100644 => 100755 src/finiteVolume/boundary/bcin.f90 mode change 100644 => 100755 src/finiteVolume/boundary/bpres.f90 mode change 100644 => 100755 src/finiteVolume/boundary/updateScalar.f90 mode change 100644 => 100755 src/finiteVolume/boundary/updateVelocityAtBoundary.f90 mode change 100644 => 100755 src/finiteVolume/fluxes/faceflux_mass.f90 mode change 100644 => 100755 src/finiteVolume/fluxes/faceflux_velocity.f90 mode change 100644 => 100755 src/finiteVolume/fluxes/scalar_fluxes.f90 mode change 100644 => 100755 src/finiteVolume/fvEqnDiscretization/MHD/mhd.f90 mode change 100644 => 100755 src/finiteVolume/fvEqnDiscretization/Pressure/calcp_piso.f90 mode change 100644 => 100755 src/finiteVolume/fvEqnDiscretization/Pressure/calcp_simple.f90 mode change 100644 => 100755 src/finiteVolume/fvEqnDiscretization/Pressure/continuityErrors.f90 mode change 100644 => 100755 src/finiteVolume/fvEqnDiscretization/Pressure/piso_using_pressure_correction.f90 mode change 100644 => 100755 src/finiteVolume/fvEqnDiscretization/Pressure/pressure_velocity_density.f90 mode change 100644 => 100755 src/finiteVolume/fvEqnDiscretization/ScalarEqns/concentration.f90 mode change 100644 => 100755 src/finiteVolume/fvEqnDiscretization/ScalarEqns/energy.f90 mode change 100644 => 100755 src/finiteVolume/fvEqnDiscretization/ScalarEqns/temperature.f90 delete mode 100644 src/finiteVolume/fvEqnDiscretization/TurbulenceModels/correct_turbulence_inlet.f90 mode change 100644 => 100755 src/finiteVolume/fvEqnDiscretization/TurbulenceModels/k_epsilon_rlzb.f90 mode change 100644 => 100755 src/finiteVolume/fvEqnDiscretization/TurbulenceModels/k_epsilon_rlzb_2lewt.f90 mode change 100644 => 100755 src/finiteVolume/fvEqnDiscretization/TurbulenceModels/k_epsilon_rng.f90 mode change 100644 => 100755 src/finiteVolume/fvEqnDiscretization/TurbulenceModels/k_epsilon_std.f90 mode change 100644 => 100755 src/finiteVolume/fvEqnDiscretization/TurbulenceModels/k_epsilon_std_2lewt.f90 mode change 100644 => 100755 src/finiteVolume/fvEqnDiscretization/TurbulenceModels/k_epsilon_zeta_f.f90 mode change 100644 => 100755 src/finiteVolume/fvEqnDiscretization/TurbulenceModels/k_eqn_eddy.f90 mode change 100644 => 100755 src/finiteVolume/fvEqnDiscretization/TurbulenceModels/k_omega_EARSM_WJ.f90 mode change 100644 => 100755 src/finiteVolume/fvEqnDiscretization/TurbulenceModels/k_omega_sst.f90 rename src/finiteVolume/fvEqnDiscretization/TurbulenceModels/{correct_turbulence.f90 => modify_viscosity.f90} (62%) mode change 100644 => 100755 create mode 100755 src/finiteVolume/fvEqnDiscretization/TurbulenceModels/modify_viscosity_inlet.f90 mode change 100644 => 100755 src/finiteVolume/fvEqnDiscretization/TurbulenceModels/spalart_allmaras.f90 mode change 100644 => 100755 src/finiteVolume/fvEqnDiscretization/Velocity/asm_heatflux_terms.f90 mode change 100644 => 100755 src/finiteVolume/fvEqnDiscretization/Velocity/asm_stress_terms.f90 mode change 100644 => 100755 src/finiteVolume/fvEqnDiscretization/Velocity/calcuvw.f90 create mode 100644 src/finiteVolume/fvEqnDiscretization/coupled_solver.f90 mode change 100644 => 100755 src/finiteVolume/fvExplicit/calc_strain_and_vorticity.f90 mode change 100644 => 100755 src/finiteVolume/fvExplicit/calcheatflux.f90 mode change 100644 => 100755 src/finiteVolume/fvExplicit/calcstress.f90 mode change 100644 => 100755 src/finiteVolume/fvExplicit/fieldManipulation.f90 mode change 100644 => 100755 src/finiteVolume/fvExplicit/fvx.f90 mode change 100644 => 100755 src/finiteVolume/fvExplicit/fvxDdt.f90 mode change 100644 => 100755 src/finiteVolume/fvExplicit/fvxDivergence.f90 mode change 100644 => 100755 src/finiteVolume/fvExplicit/fvxGradient.f90 mode change 100644 => 100755 src/finiteVolume/fvExplicit/fvxInterpolation.f90 mode change 100644 => 100755 src/finiteVolume/fvExplicit/fvxLaplacian.f90 mode change 100644 => 100755 src/finiteVolume/fvExplicit/gradients-old.f90 mode change 100644 => 100755 src/finiteVolume/fvExplicit/gradients.f90 mode change 100644 => 100755 src/finiteVolume/fvExplicit/vortexIdentification.f90 mode change 100644 => 100755 src/finiteVolume/fvExplicit/wallSurfaceFields.f90 mode change 100644 => 100755 src/finiteVolume/fvImplicit/fvEquation.f90 mode change 100644 => 100755 src/finiteVolume/fvImplicit/fvField.f90 mode change 100644 => 100755 src/finiteVolume/fvImplicit/fviDdt.f90 mode change 100644 => 100755 src/finiteVolume/fvImplicit/fviDivergence.f90 mode change 100644 => 100755 src/finiteVolume/fvImplicit/fviLaplacian.f90 mode change 100644 => 100755 src/finiteVolume/fvImplicit/fviSuSp.f90 mode change 100644 => 100755 src/finiteVolume/fvImplicit/laplacian.f90 mode change 100644 => 100755 src/finiteVolume/initialization/field_initialization.f90 mode change 100644 => 100755 src/finiteVolume/interpolation/interpolation.f90 mode change 100644 => 100755 src/finiteVolume/tensorFields/tensorFields.f90 create mode 100644 src/io/experimental_read_input.f90 mode change 100644 => 100755 src/io/output.f90 mode change 100644 => 100755 src/io/read_input.f90 mode change 100644 => 100755 src/io/readfiles.f90 mode change 100644 => 100755 src/io/write_restart_files.f90 mode change 100644 => 100755 src/io/writefiles.f90 mode change 100644 => 100755 src/io/writehistory.f90 mode change 100644 => 100755 src/linearSolvers/LIS_linear_solver_library.f95 mode change 100644 => 100755 src/linearSolvers/bicgstab.f90 mode change 100644 => 100755 src/linearSolvers/dpcg.f90 mode change 100644 => 100755 src/linearSolvers/gauss-seidel.f90 mode change 100644 => 100755 src/linearSolvers/iccg.f90 mode change 100644 => 100755 src/linearSolvers/linear_solvers.f90 mode change 100644 => 100755 src/linearSolvers/mgmres.f90 mode change 100644 => 100755 src/materialProperties/constitutiveRelations.f90 mode change 100644 => 100755 src/mesh/geometry-dev.f90 mode change 100644 => 100755 src/mesh/geometry.f90 mode change 100644 => 100755 src/misc/matrix.f90 mode change 100644 => 100755 src/misc/precision.f90 mode change 100644 => 100755 src/misc/utils.f90 mode change 100644 => 100755 src/module_template.f90 mode change 100644 => 100755 src/sparseMatrix/sparse_matrix.f90 mode change 100644 => 100755 test/polyMesh/boundary mode change 100644 => 100755 test/polyMesh/cellgroup-1 mode change 100644 => 100755 test/polyMesh/cellgroup-2 mode change 100644 => 100755 test/polyMesh/cells mode change 100644 => 100755 test/polyMesh/faces mode change 100644 => 100755 test/polyMesh/neighbour mode change 100644 => 100755 test/polyMesh/owner mode change 100644 => 100755 test/polyMesh/points create mode 100755 test/testFieldOperations/directories create mode 100755 test/testFieldOperations/files create mode 100755 test/testFieldOperations/polyMesh/boundary create mode 100755 test/testFieldOperations/polyMesh/boundary~ create mode 100755 test/testFieldOperations/polyMesh/faces create mode 100755 test/testFieldOperations/polyMesh/neighbour create mode 100755 test/testFieldOperations/polyMesh/owner create mode 100755 test/testFieldOperations/polyMesh/points create mode 100755 test/testFieldOperations/testFieldOperations.f90 mode change 100644 => 100755 test/test_linear_solvers_spsolve.f90 create mode 100755 test/testfvEquations/directories create mode 100755 test/testfvEquations/files create mode 100755 test/testfvEquations/polyMesh/boundary create mode 100755 test/testfvEquations/polyMesh/boundary~ create mode 100755 test/testfvEquations/polyMesh/faces create mode 100755 test/testfvEquations/polyMesh/neighbour create mode 100755 test/testfvEquations/polyMesh/owner create mode 100755 test/testfvEquations/polyMesh/points create mode 100755 test/testfvEquations/testfvEquations.f90 create mode 100644 utilities/cappuccinoDual/cappuccinoDual.f90 mode change 100644 => 100755 utilities/cellConnectivity/Makefile mode change 100644 => 100755 utilities/cellConnectivity/cellConnectivity.f90 mode change 100644 => 100755 utilities/cellConnectivity/utils.f90 mode change 100644 => 100755 utilities/foamToCappuccino/Makefile mode change 100644 => 100755 utilities/foamToCappuccino/Makefile~ mode change 100644 => 100755 utilities/foamToCappuccino/foamToCappuccino.f90 mode change 100644 => 100755 utilities/foamToCappuccino/utils.f90 mode change 100644 => 100755 utilities/gambitToCappuccino/2cylinder.neu create mode 100644 utilities/gambitToCappuccino/Contributors mode change 100644 => 100755 utilities/gambitToCappuccino/Makefile mode change 100644 => 100755 utilities/gambitToCappuccino/Makefile~ mode change 100644 => 100755 utilities/gambitToCappuccino/README.md mode change 100644 => 100755 utilities/gambitToCappuccino/gambitToCappuccino.f90 mode change 100644 => 100755 utilities/gambitToCappuccino/output mode change 100644 => 100755 utilities/gambitToCappuccino/qsort_c_module.f90 mode change 100644 => 100755 utilities/gambitToCappuccino/utils.f90 mode change 100644 => 100755 utilities/readBoundary/Makefile mode change 100644 => 100755 utilities/readBoundary/boundary_module.f90 mode change 100644 => 100755 utilities/readBoundary/readBoundaryFile.f90 diff --git a/Makefile b/Makefile old mode 100644 new mode 100755 diff --git a/examples/RBCells/0/T b/examples/RBCells/0/T new file mode 100755 index 0000000..52f69e1 --- /dev/null +++ b/examples/RBCells/0/T @@ -0,0 +1,19 @@ +internalField + uniform + 300.0 +boundaryField + floor + Dirichlet + uniform + 301.0 + ceiling + Dirichlet + uniform + 300.0 + sideWalls + Neumann + zeroGradient + frontAndBack + Neumann + zeroGradient + diff --git a/examples/RBCells/0/U b/examples/RBCells/0/U new file mode 100755 index 0000000..86e32a3 --- /dev/null +++ b/examples/RBCells/0/U @@ -0,0 +1,21 @@ +internalField + uniform + 1e-4 0.0 0.0 +boundaryField + floor + Dirichlet + uniform + 0. 0. 0. + ceiling + Dirichlet + uniform + 0. 0. 0. + sideWalls + Dirichlet + uniform + 0. 0. 0. + frontAndBack + Neumann + zeroGradient + + diff --git a/examples/RBCells/0/epsilon b/examples/RBCells/0/epsilon new file mode 100755 index 0000000..cf906ea --- /dev/null +++ b/examples/RBCells/0/epsilon @@ -0,0 +1,19 @@ +internalField + uniform + 1e-5 +boundaryField + floor + Dirichlet + uniform + 0. + ceiling + Dirichlet + uniform + 0. + sideWalls + Dirichlet + uniform + 0. + frontAndBack + Neumann + zeroGradient diff --git a/examples/RBCells/0/k b/examples/RBCells/0/k new file mode 100755 index 0000000..c0ad36a --- /dev/null +++ b/examples/RBCells/0/k @@ -0,0 +1,20 @@ +internalField + uniform + 1e-5 +boundaryField + floor + Dirichlet + uniform + 0. + ceiling + Dirichlet + uniform + 0. + sideWalls + Dirichlet + uniform + 0. + frontAndBack + Neumann + zeroGradient + diff --git a/examples/RBCells/0/omega b/examples/RBCells/0/omega new file mode 100755 index 0000000..2543008 --- /dev/null +++ b/examples/RBCells/0/omega @@ -0,0 +1,15 @@ +internalField + uniform + 31.94 +boundaryField + ulaz + Dirichlet + uniform + 31.94 + zid + Dirichlet + uniform + 31.94 + izlaz + Neumann + zeroGradient diff --git a/examples/RBCells/README.md b/examples/RBCells/README.md new file mode 100644 index 0000000..855dafb --- /dev/null +++ b/examples/RBCells/README.md @@ -0,0 +1,5 @@ +The example is taken from OpenFOAM (www.openfoam.com) examples of heat transfer, more specifically from the examples for buoyantBoussinesqPimpleFoam solver. + +OpenFOAM/OpenFOAM-v2006/tutorials/heatTransfer/buoyantBoussinesqPimpleFoam/BenardCells + + diff --git a/examples/RBCells/input-piso b/examples/RBCells/input-piso new file mode 100755 index 0000000..05aa824 --- /dev/null +++ b/examples/RBCells/input-piso @@ -0,0 +1,27 @@ +Rayleigh-Bernard-Cells laminar TITLE +F T F LREAD,LWRITE,LTEST +T T T T F F T F F F F (LCAL(I),I=1,NPHI) +1 1 0 1 monCell,pRefCell,iPrefProcessMPoints +1e+30 1e-6 SLARGE,SORMAX +1.0 1e-3 DENSIT,VISCOS +1.0 300.0 1e-3 PRANL,TREF,BETA +T 0.0 -9.81 0.0 T LBUOY,GRAVX,GRAVY,GRAVZ,BOUSSINESQ +f 30. 0. roughWall,EROUGH,ZZERO +1.0 1.0 FACNAP,FACFLX +T T F F F LTRANSIENT,BDF,BDF2,BDF3,CN +F f f f LEVM,LASM,LLES,LDES +f f f LSGDH,LGGDH,LAFM +0 TurbModel +1e-4 0. 0. 0. 0. 0. 0. 0. UIN,VIN,WIN,TEIN,EDIN,TIN,VARTIN,CONIN +linear-f Convective scheme +Barth-Jespersen Gradient limiter +1.0 1.0 1.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 (GDS(I),I=1,NPHI) +1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.6 0.9 0.8 (URF(I),I=1,NPHI) +3*1e-2 1e-6 7*1e-2 (SOR(I),I=1,NPHI) +20 20 20 100 10 10 10 5 5 5 5 (NSW(I),I=1,NPHI) +1000 1.0 50 1 NUMSTEP,TIMESTEP,NZAPIS,MAXIT +f f f t lstsq, lstsq_qr, lstsq_dm, gauss +1 1 NPCOR, NIGRAD +f t 2 SIMPLE,PISO,ncorr +f const_mflux +f 1.0 CoNumFix, CoNumFixValue diff --git a/examples/RBCells/input-simple b/examples/RBCells/input-simple new file mode 100755 index 0000000..a128ba9 --- /dev/null +++ b/examples/RBCells/input-simple @@ -0,0 +1,27 @@ +Rayleigh-Bernard-Cells laminar TITLE +f t f LREAD,LWRITE,LTEST +t t t t F F T t f f F (LCAL(I),I=1,NPHI) +1 1 0 1 monCell,pRefCell,iPrefProcessMPoints +1e+30 1e-6 SLARGE,SORMAX +1.0 1e-3 DENSIT,VISCOS +1.0 300.0 1e-3 PRANL,TREF,BETA +T 0.0 -9.81 0.0 T LBUOY,GRAVX,GRAVY,GRAVZ,BOUSSINESQ +f 30. 0. roughWall,EROUGH,ZZERO +1.0 1.0 FACNAP,FACFLX +T T f f f LTRANSIENT,BDF,BDF2,BDF3,CN +F f f f LEVM,LASM,LLES,LDES +f f f LSGDH,LGGDH,LAFM +0 TurbModel +1e-4 0. 0. 0.375 18.455 0. 0. 0. UIN,VIN,WIN,TEIN,EDIN,TIN,VARTIN,CONIN +linear-f Convective scheme +Barth-Jespersen Gradient limiter +1.0 1.0 1.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 (GDS(I),I=1,NPHI) +0.7 0.7 0.7 0.3 1.0 1.0 0.7 1.0 0.6 0.9 0.8 (URF(I),I=1,NPHI) +11*1e-2 (SOR(I),I=1,NPHI) +20 20 20 100 10 10 10 5 5 5 5 (NSW(I),I=1,NPHI) +1000 1.0 50 10 NUMSTEP,TIMESTEP,NZAPIS,MAXIT +f f f t lstsq, lstsq_qr, lstsq_dm, gauss +1 1 NPCOR, NIGRAD +t f 1 SIMPLE,PISO,ncorr +f const_mflux +f 1.0 CoNumFix, CoNumFixValue diff --git a/examples/RBCells/plotResiduals b/examples/RBCells/plotResiduals new file mode 100755 index 0000000..d6663e9 --- /dev/null +++ b/examples/RBCells/plotResiduals @@ -0,0 +1,14 @@ +set logscale y +set title "Residuals" +set ylabel 'Residual' +set xlabel 'Iteration' +set yrange[1e-5:1e+2] +plot "< cat monitor | grep 'Solving for U,' | cut -d' ' -f12 | tr -d ','" title 'Ux' with lines,\ + "< cat monitor | grep 'Solving for V,' | cut -d' ' -f12 | tr -d ','" title 'Uy' with lines,\ + "< cat monitor | grep 'Solving for W,' | cut -d' ' -f12 | tr -d ','" title 'Uz' with lines,\ + "< cat monitor | grep 'Solving for p' | cut -d' ' -f12 | tr -d ','" title 'p' with lines, \ + "< cat monitor | grep 'Solving for Temp' | cut -d' ' -f12 | tr -d ','" title 'T' with lines, \ + "< cat monitor | grep 'Solving for k' | cut -d' ' -f12 | tr -d ','" title 'k' with lines, \ + "< cat monitor | grep 'Solving for Omega' | cut -d' ' -f12 | tr -d ','" title 'omega' with lines +pause 5 +reread diff --git a/examples/RBCells/polyMesh/boundary b/examples/RBCells/polyMesh/boundary new file mode 100755 index 0000000..294d63d --- /dev/null +++ b/examples/RBCells/polyMesh/boundary @@ -0,0 +1,5 @@ +# bcName bcType nFaces startFace +floor wall 90 1700 +ceiling wall 90 1790 +sideWalls wall 20 1880 +frontAndBack symmetry 1800 1900 diff --git a/examples/RBCells/polyMesh/boundary-OF b/examples/RBCells/polyMesh/boundary-OF new file mode 100755 index 0000000..9fe160c --- /dev/null +++ b/examples/RBCells/polyMesh/boundary-OF @@ -0,0 +1,51 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1912 | +| \\ / A nd | Website: www.openfoam.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format binary; + class polyBoundaryMesh; + arch "LSB;label=32;scalar=64"; + location "constant/polyMesh"; + object boundary; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +4 +( + floor + { + type wall; + inGroups 1(wall); + nFaces 90; + startFace 1700; + } + ceiling + { + type wall; + inGroups 1(wall); + nFaces 90; + startFace 1790; + } + sideWalls + { + type wall; + inGroups 1(wall); + nFaces 20; + startFace 1880; + } + frontAndBack + { + type empty; + inGroups 1(empty); + nFaces 1800; + startFace 1900; + } +) + +// ************************************************************************* // diff --git a/examples/RBCells/polyMesh/faces b/examples/RBCells/polyMesh/faces new file mode 100755 index 0000000..4d0e9bf --- /dev/null +++ b/examples/RBCells/polyMesh/faces @@ -0,0 +1,3724 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1912 | +| \\ / A nd | Website: www.openfoam.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class faceList; + location "constant/polyMesh"; + object faces; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + + +3700 +( +4(1 92 1093 1002) +4(91 1092 1093 92) +4(2 93 1094 1003) +4(92 1093 1094 93) +4(3 94 1095 1004) +4(93 1094 1095 94) +4(4 95 1096 1005) +4(94 1095 1096 95) +4(5 96 1097 1006) +4(95 1096 1097 96) +4(6 97 1098 1007) +4(96 1097 1098 97) +4(7 98 1099 1008) +4(97 1098 1099 98) +4(8 99 1100 1009) +4(98 1099 1100 99) +4(9 100 1101 1010) +4(99 1100 1101 100) +4(10 101 1102 1011) +4(100 1101 1102 101) +4(11 102 1103 1012) +4(101 1102 1103 102) +4(12 103 1104 1013) +4(102 1103 1104 103) +4(13 104 1105 1014) +4(103 1104 1105 104) +4(14 105 1106 1015) +4(104 1105 1106 105) +4(15 106 1107 1016) +4(105 1106 1107 106) +4(16 107 1108 1017) +4(106 1107 1108 107) +4(17 108 1109 1018) +4(107 1108 1109 108) +4(18 109 1110 1019) +4(108 1109 1110 109) +4(19 110 1111 1020) +4(109 1110 1111 110) +4(20 111 1112 1021) +4(110 1111 1112 111) +4(21 112 1113 1022) +4(111 1112 1113 112) +4(22 113 1114 1023) +4(112 1113 1114 113) +4(23 114 1115 1024) +4(113 1114 1115 114) +4(24 115 1116 1025) +4(114 1115 1116 115) +4(25 116 1117 1026) +4(115 1116 1117 116) +4(26 117 1118 1027) +4(116 1117 1118 117) +4(27 118 1119 1028) +4(117 1118 1119 118) +4(28 119 1120 1029) +4(118 1119 1120 119) +4(29 120 1121 1030) +4(119 1120 1121 120) +4(30 121 1122 1031) +4(120 1121 1122 121) +4(31 122 1123 1032) +4(121 1122 1123 122) +4(32 123 1124 1033) +4(122 1123 1124 123) +4(33 124 1125 1034) +4(123 1124 1125 124) +4(34 125 1126 1035) +4(124 1125 1126 125) +4(35 126 1127 1036) +4(125 1126 1127 126) +4(36 127 1128 1037) +4(126 1127 1128 127) +4(37 128 1129 1038) +4(127 1128 1129 128) +4(38 129 1130 1039) +4(128 1129 1130 129) +4(39 130 1131 1040) +4(129 1130 1131 130) +4(40 131 1132 1041) +4(130 1131 1132 131) +4(41 132 1133 1042) +4(131 1132 1133 132) +4(42 133 1134 1043) +4(132 1133 1134 133) +4(43 134 1135 1044) +4(133 1134 1135 134) +4(44 135 1136 1045) +4(134 1135 1136 135) +4(45 136 1137 1046) +4(135 1136 1137 136) +4(46 137 1138 1047) +4(136 1137 1138 137) +4(47 138 1139 1048) +4(137 1138 1139 138) +4(48 139 1140 1049) +4(138 1139 1140 139) +4(49 140 1141 1050) +4(139 1140 1141 140) +4(50 141 1142 1051) +4(140 1141 1142 141) +4(51 142 1143 1052) +4(141 1142 1143 142) +4(52 143 1144 1053) +4(142 1143 1144 143) +4(53 144 1145 1054) +4(143 1144 1145 144) +4(54 145 1146 1055) +4(144 1145 1146 145) +4(55 146 1147 1056) +4(145 1146 1147 146) +4(56 147 1148 1057) +4(146 1147 1148 147) +4(57 148 1149 1058) +4(147 1148 1149 148) +4(58 149 1150 1059) +4(148 1149 1150 149) +4(59 150 1151 1060) +4(149 1150 1151 150) +4(60 151 1152 1061) +4(150 1151 1152 151) +4(61 152 1153 1062) +4(151 1152 1153 152) +4(62 153 1154 1063) +4(152 1153 1154 153) +4(63 154 1155 1064) +4(153 1154 1155 154) +4(64 155 1156 1065) +4(154 1155 1156 155) +4(65 156 1157 1066) +4(155 1156 1157 156) +4(66 157 1158 1067) +4(156 1157 1158 157) +4(67 158 1159 1068) +4(157 1158 1159 158) +4(68 159 1160 1069) +4(158 1159 1160 159) +4(69 160 1161 1070) +4(159 1160 1161 160) +4(70 161 1162 1071) +4(160 1161 1162 161) +4(71 162 1163 1072) +4(161 1162 1163 162) +4(72 163 1164 1073) +4(162 1163 1164 163) +4(73 164 1165 1074) +4(163 1164 1165 164) +4(74 165 1166 1075) +4(164 1165 1166 165) +4(75 166 1167 1076) +4(165 1166 1167 166) +4(76 167 1168 1077) +4(166 1167 1168 167) +4(77 168 1169 1078) +4(167 1168 1169 168) +4(78 169 1170 1079) +4(168 1169 1170 169) +4(79 170 1171 1080) +4(169 1170 1171 170) +4(80 171 1172 1081) +4(170 1171 1172 171) +4(81 172 1173 1082) +4(171 1172 1173 172) +4(82 173 1174 1083) +4(172 1173 1174 173) +4(83 174 1175 1084) +4(173 1174 1175 174) +4(84 175 1176 1085) +4(174 1175 1176 175) +4(85 176 1177 1086) +4(175 1176 1177 176) +4(86 177 1178 1087) +4(176 1177 1178 177) +4(87 178 1179 1088) +4(177 1178 1179 178) +4(88 179 1180 1089) +4(178 1179 1180 179) +4(89 180 1181 1090) +4(179 1180 1181 180) +4(180 1181 1182 181) +4(92 183 1184 1093) +4(182 1183 1184 183) +4(93 184 1185 1094) +4(183 1184 1185 184) +4(94 185 1186 1095) +4(184 1185 1186 185) +4(95 186 1187 1096) +4(185 1186 1187 186) +4(96 187 1188 1097) +4(186 1187 1188 187) +4(97 188 1189 1098) +4(187 1188 1189 188) +4(98 189 1190 1099) +4(188 1189 1190 189) +4(99 190 1191 1100) +4(189 1190 1191 190) +4(100 191 1192 1101) +4(190 1191 1192 191) +4(101 192 1193 1102) +4(191 1192 1193 192) +4(102 193 1194 1103) +4(192 1193 1194 193) +4(103 194 1195 1104) +4(193 1194 1195 194) +4(104 195 1196 1105) +4(194 1195 1196 195) +4(105 196 1197 1106) +4(195 1196 1197 196) +4(106 197 1198 1107) +4(196 1197 1198 197) +4(107 198 1199 1108) +4(197 1198 1199 198) +4(108 199 1200 1109) +4(198 1199 1200 199) +4(109 200 1201 1110) +4(199 1200 1201 200) +4(110 201 1202 1111) +4(200 1201 1202 201) +4(111 202 1203 1112) +4(201 1202 1203 202) +4(112 203 1204 1113) +4(202 1203 1204 203) +4(113 204 1205 1114) +4(203 1204 1205 204) +4(114 205 1206 1115) +4(204 1205 1206 205) +4(115 206 1207 1116) +4(205 1206 1207 206) +4(116 207 1208 1117) +4(206 1207 1208 207) +4(117 208 1209 1118) +4(207 1208 1209 208) +4(118 209 1210 1119) +4(208 1209 1210 209) +4(119 210 1211 1120) +4(209 1210 1211 210) +4(120 211 1212 1121) +4(210 1211 1212 211) +4(121 212 1213 1122) +4(211 1212 1213 212) +4(122 213 1214 1123) +4(212 1213 1214 213) +4(123 214 1215 1124) +4(213 1214 1215 214) +4(124 215 1216 1125) +4(214 1215 1216 215) +4(125 216 1217 1126) +4(215 1216 1217 216) +4(126 217 1218 1127) +4(216 1217 1218 217) +4(127 218 1219 1128) +4(217 1218 1219 218) +4(128 219 1220 1129) +4(218 1219 1220 219) +4(129 220 1221 1130) +4(219 1220 1221 220) +4(130 221 1222 1131) +4(220 1221 1222 221) +4(131 222 1223 1132) +4(221 1222 1223 222) +4(132 223 1224 1133) +4(222 1223 1224 223) +4(133 224 1225 1134) +4(223 1224 1225 224) +4(134 225 1226 1135) +4(224 1225 1226 225) +4(135 226 1227 1136) +4(225 1226 1227 226) +4(136 227 1228 1137) +4(226 1227 1228 227) +4(137 228 1229 1138) +4(227 1228 1229 228) +4(138 229 1230 1139) +4(228 1229 1230 229) +4(139 230 1231 1140) +4(229 1230 1231 230) +4(140 231 1232 1141) +4(230 1231 1232 231) +4(141 232 1233 1142) +4(231 1232 1233 232) +4(142 233 1234 1143) +4(232 1233 1234 233) +4(143 234 1235 1144) +4(233 1234 1235 234) +4(144 235 1236 1145) +4(234 1235 1236 235) +4(145 236 1237 1146) +4(235 1236 1237 236) +4(146 237 1238 1147) +4(236 1237 1238 237) +4(147 238 1239 1148) +4(237 1238 1239 238) +4(148 239 1240 1149) +4(238 1239 1240 239) +4(149 240 1241 1150) +4(239 1240 1241 240) +4(150 241 1242 1151) +4(240 1241 1242 241) +4(151 242 1243 1152) +4(241 1242 1243 242) +4(152 243 1244 1153) +4(242 1243 1244 243) +4(153 244 1245 1154) +4(243 1244 1245 244) +4(154 245 1246 1155) +4(244 1245 1246 245) +4(155 246 1247 1156) +4(245 1246 1247 246) +4(156 247 1248 1157) +4(246 1247 1248 247) +4(157 248 1249 1158) +4(247 1248 1249 248) +4(158 249 1250 1159) +4(248 1249 1250 249) +4(159 250 1251 1160) +4(249 1250 1251 250) +4(160 251 1252 1161) +4(250 1251 1252 251) +4(161 252 1253 1162) +4(251 1252 1253 252) +4(162 253 1254 1163) +4(252 1253 1254 253) +4(163 254 1255 1164) +4(253 1254 1255 254) +4(164 255 1256 1165) +4(254 1255 1256 255) +4(165 256 1257 1166) +4(255 1256 1257 256) +4(166 257 1258 1167) +4(256 1257 1258 257) +4(167 258 1259 1168) +4(257 1258 1259 258) +4(168 259 1260 1169) +4(258 1259 1260 259) +4(169 260 1261 1170) +4(259 1260 1261 260) +4(170 261 1262 1171) +4(260 1261 1262 261) +4(171 262 1263 1172) +4(261 1262 1263 262) +4(172 263 1264 1173) +4(262 1263 1264 263) +4(173 264 1265 1174) +4(263 1264 1265 264) +4(174 265 1266 1175) +4(264 1265 1266 265) +4(175 266 1267 1176) +4(265 1266 1267 266) +4(176 267 1268 1177) +4(266 1267 1268 267) +4(177 268 1269 1178) +4(267 1268 1269 268) +4(178 269 1270 1179) +4(268 1269 1270 269) +4(179 270 1271 1180) +4(269 1270 1271 270) +4(180 271 1272 1181) +4(270 1271 1272 271) +4(271 1272 1273 272) +4(183 274 1275 1184) +4(273 1274 1275 274) +4(184 275 1276 1185) +4(274 1275 1276 275) +4(185 276 1277 1186) +4(275 1276 1277 276) +4(186 277 1278 1187) +4(276 1277 1278 277) +4(187 278 1279 1188) +4(277 1278 1279 278) +4(188 279 1280 1189) +4(278 1279 1280 279) +4(189 280 1281 1190) +4(279 1280 1281 280) +4(190 281 1282 1191) +4(280 1281 1282 281) +4(191 282 1283 1192) +4(281 1282 1283 282) +4(192 283 1284 1193) +4(282 1283 1284 283) +4(193 284 1285 1194) +4(283 1284 1285 284) +4(194 285 1286 1195) +4(284 1285 1286 285) +4(195 286 1287 1196) +4(285 1286 1287 286) +4(196 287 1288 1197) +4(286 1287 1288 287) +4(197 288 1289 1198) +4(287 1288 1289 288) +4(198 289 1290 1199) +4(288 1289 1290 289) +4(199 290 1291 1200) +4(289 1290 1291 290) +4(200 291 1292 1201) +4(290 1291 1292 291) +4(201 292 1293 1202) +4(291 1292 1293 292) +4(202 293 1294 1203) +4(292 1293 1294 293) +4(203 294 1295 1204) +4(293 1294 1295 294) +4(204 295 1296 1205) +4(294 1295 1296 295) +4(205 296 1297 1206) +4(295 1296 1297 296) +4(206 297 1298 1207) +4(296 1297 1298 297) +4(207 298 1299 1208) +4(297 1298 1299 298) +4(208 299 1300 1209) +4(298 1299 1300 299) +4(209 300 1301 1210) +4(299 1300 1301 300) +4(210 301 1302 1211) +4(300 1301 1302 301) +4(211 302 1303 1212) +4(301 1302 1303 302) +4(212 303 1304 1213) +4(302 1303 1304 303) +4(213 304 1305 1214) +4(303 1304 1305 304) +4(214 305 1306 1215) +4(304 1305 1306 305) +4(215 306 1307 1216) +4(305 1306 1307 306) +4(216 307 1308 1217) +4(306 1307 1308 307) +4(217 308 1309 1218) +4(307 1308 1309 308) +4(218 309 1310 1219) +4(308 1309 1310 309) +4(219 310 1311 1220) +4(309 1310 1311 310) +4(220 311 1312 1221) +4(310 1311 1312 311) +4(221 312 1313 1222) +4(311 1312 1313 312) +4(222 313 1314 1223) +4(312 1313 1314 313) +4(223 314 1315 1224) +4(313 1314 1315 314) +4(224 315 1316 1225) +4(314 1315 1316 315) +4(225 316 1317 1226) +4(315 1316 1317 316) +4(226 317 1318 1227) +4(316 1317 1318 317) +4(227 318 1319 1228) +4(317 1318 1319 318) +4(228 319 1320 1229) +4(318 1319 1320 319) +4(229 320 1321 1230) +4(319 1320 1321 320) +4(230 321 1322 1231) +4(320 1321 1322 321) +4(231 322 1323 1232) +4(321 1322 1323 322) +4(232 323 1324 1233) +4(322 1323 1324 323) +4(233 324 1325 1234) +4(323 1324 1325 324) +4(234 325 1326 1235) +4(324 1325 1326 325) +4(235 326 1327 1236) +4(325 1326 1327 326) +4(236 327 1328 1237) +4(326 1327 1328 327) +4(237 328 1329 1238) +4(327 1328 1329 328) +4(238 329 1330 1239) +4(328 1329 1330 329) +4(239 330 1331 1240) +4(329 1330 1331 330) +4(240 331 1332 1241) +4(330 1331 1332 331) +4(241 332 1333 1242) +4(331 1332 1333 332) +4(242 333 1334 1243) +4(332 1333 1334 333) +4(243 334 1335 1244) +4(333 1334 1335 334) +4(244 335 1336 1245) +4(334 1335 1336 335) +4(245 336 1337 1246) +4(335 1336 1337 336) +4(246 337 1338 1247) +4(336 1337 1338 337) +4(247 338 1339 1248) +4(337 1338 1339 338) +4(248 339 1340 1249) +4(338 1339 1340 339) +4(249 340 1341 1250) +4(339 1340 1341 340) +4(250 341 1342 1251) +4(340 1341 1342 341) +4(251 342 1343 1252) +4(341 1342 1343 342) +4(252 343 1344 1253) +4(342 1343 1344 343) +4(253 344 1345 1254) +4(343 1344 1345 344) +4(254 345 1346 1255) +4(344 1345 1346 345) +4(255 346 1347 1256) +4(345 1346 1347 346) +4(256 347 1348 1257) +4(346 1347 1348 347) +4(257 348 1349 1258) +4(347 1348 1349 348) +4(258 349 1350 1259) +4(348 1349 1350 349) +4(259 350 1351 1260) +4(349 1350 1351 350) +4(260 351 1352 1261) +4(350 1351 1352 351) +4(261 352 1353 1262) +4(351 1352 1353 352) +4(262 353 1354 1263) +4(352 1353 1354 353) +4(263 354 1355 1264) +4(353 1354 1355 354) +4(264 355 1356 1265) +4(354 1355 1356 355) +4(265 356 1357 1266) +4(355 1356 1357 356) +4(266 357 1358 1267) +4(356 1357 1358 357) +4(267 358 1359 1268) +4(357 1358 1359 358) +4(268 359 1360 1269) +4(358 1359 1360 359) +4(269 360 1361 1270) +4(359 1360 1361 360) +4(270 361 1362 1271) +4(360 1361 1362 361) +4(271 362 1363 1272) +4(361 1362 1363 362) +4(362 1363 1364 363) +4(274 365 1366 1275) +4(364 1365 1366 365) +4(275 366 1367 1276) +4(365 1366 1367 366) +4(276 367 1368 1277) +4(366 1367 1368 367) +4(277 368 1369 1278) +4(367 1368 1369 368) +4(278 369 1370 1279) +4(368 1369 1370 369) +4(279 370 1371 1280) +4(369 1370 1371 370) +4(280 371 1372 1281) +4(370 1371 1372 371) +4(281 372 1373 1282) +4(371 1372 1373 372) +4(282 373 1374 1283) +4(372 1373 1374 373) +4(283 374 1375 1284) +4(373 1374 1375 374) +4(284 375 1376 1285) +4(374 1375 1376 375) +4(285 376 1377 1286) +4(375 1376 1377 376) +4(286 377 1378 1287) +4(376 1377 1378 377) +4(287 378 1379 1288) +4(377 1378 1379 378) +4(288 379 1380 1289) +4(378 1379 1380 379) +4(289 380 1381 1290) +4(379 1380 1381 380) +4(290 381 1382 1291) +4(380 1381 1382 381) +4(291 382 1383 1292) +4(381 1382 1383 382) +4(292 383 1384 1293) +4(382 1383 1384 383) +4(293 384 1385 1294) +4(383 1384 1385 384) +4(294 385 1386 1295) +4(384 1385 1386 385) +4(295 386 1387 1296) +4(385 1386 1387 386) +4(296 387 1388 1297) +4(386 1387 1388 387) +4(297 388 1389 1298) +4(387 1388 1389 388) +4(298 389 1390 1299) +4(388 1389 1390 389) +4(299 390 1391 1300) +4(389 1390 1391 390) +4(300 391 1392 1301) +4(390 1391 1392 391) +4(301 392 1393 1302) +4(391 1392 1393 392) +4(302 393 1394 1303) +4(392 1393 1394 393) +4(303 394 1395 1304) +4(393 1394 1395 394) +4(304 395 1396 1305) +4(394 1395 1396 395) +4(305 396 1397 1306) +4(395 1396 1397 396) +4(306 397 1398 1307) +4(396 1397 1398 397) +4(307 398 1399 1308) +4(397 1398 1399 398) +4(308 399 1400 1309) +4(398 1399 1400 399) +4(309 400 1401 1310) +4(399 1400 1401 400) +4(310 401 1402 1311) +4(400 1401 1402 401) +4(311 402 1403 1312) +4(401 1402 1403 402) +4(312 403 1404 1313) +4(402 1403 1404 403) +4(313 404 1405 1314) +4(403 1404 1405 404) +4(314 405 1406 1315) +4(404 1405 1406 405) +4(315 406 1407 1316) +4(405 1406 1407 406) +4(316 407 1408 1317) +4(406 1407 1408 407) +4(317 408 1409 1318) +4(407 1408 1409 408) +4(318 409 1410 1319) +4(408 1409 1410 409) +4(319 410 1411 1320) +4(409 1410 1411 410) +4(320 411 1412 1321) +4(410 1411 1412 411) +4(321 412 1413 1322) +4(411 1412 1413 412) +4(322 413 1414 1323) +4(412 1413 1414 413) +4(323 414 1415 1324) +4(413 1414 1415 414) +4(324 415 1416 1325) +4(414 1415 1416 415) +4(325 416 1417 1326) +4(415 1416 1417 416) +4(326 417 1418 1327) +4(416 1417 1418 417) +4(327 418 1419 1328) +4(417 1418 1419 418) +4(328 419 1420 1329) +4(418 1419 1420 419) +4(329 420 1421 1330) +4(419 1420 1421 420) +4(330 421 1422 1331) +4(420 1421 1422 421) +4(331 422 1423 1332) +4(421 1422 1423 422) +4(332 423 1424 1333) +4(422 1423 1424 423) +4(333 424 1425 1334) +4(423 1424 1425 424) +4(334 425 1426 1335) +4(424 1425 1426 425) +4(335 426 1427 1336) +4(425 1426 1427 426) +4(336 427 1428 1337) +4(426 1427 1428 427) +4(337 428 1429 1338) +4(427 1428 1429 428) +4(338 429 1430 1339) +4(428 1429 1430 429) +4(339 430 1431 1340) +4(429 1430 1431 430) +4(340 431 1432 1341) +4(430 1431 1432 431) +4(341 432 1433 1342) +4(431 1432 1433 432) +4(342 433 1434 1343) +4(432 1433 1434 433) +4(343 434 1435 1344) +4(433 1434 1435 434) +4(344 435 1436 1345) +4(434 1435 1436 435) +4(345 436 1437 1346) +4(435 1436 1437 436) +4(346 437 1438 1347) +4(436 1437 1438 437) +4(347 438 1439 1348) +4(437 1438 1439 438) +4(348 439 1440 1349) +4(438 1439 1440 439) +4(349 440 1441 1350) +4(439 1440 1441 440) +4(350 441 1442 1351) +4(440 1441 1442 441) +4(351 442 1443 1352) +4(441 1442 1443 442) +4(352 443 1444 1353) +4(442 1443 1444 443) +4(353 444 1445 1354) +4(443 1444 1445 444) +4(354 445 1446 1355) +4(444 1445 1446 445) +4(355 446 1447 1356) +4(445 1446 1447 446) +4(356 447 1448 1357) +4(446 1447 1448 447) +4(357 448 1449 1358) +4(447 1448 1449 448) +4(358 449 1450 1359) +4(448 1449 1450 449) +4(359 450 1451 1360) +4(449 1450 1451 450) +4(360 451 1452 1361) +4(450 1451 1452 451) +4(361 452 1453 1362) +4(451 1452 1453 452) +4(362 453 1454 1363) +4(452 1453 1454 453) +4(453 1454 1455 454) +4(365 456 1457 1366) +4(455 1456 1457 456) +4(366 457 1458 1367) +4(456 1457 1458 457) +4(367 458 1459 1368) +4(457 1458 1459 458) +4(368 459 1460 1369) +4(458 1459 1460 459) +4(369 460 1461 1370) +4(459 1460 1461 460) +4(370 461 1462 1371) +4(460 1461 1462 461) +4(371 462 1463 1372) +4(461 1462 1463 462) +4(372 463 1464 1373) +4(462 1463 1464 463) +4(373 464 1465 1374) +4(463 1464 1465 464) +4(374 465 1466 1375) +4(464 1465 1466 465) +4(375 466 1467 1376) +4(465 1466 1467 466) +4(376 467 1468 1377) +4(466 1467 1468 467) +4(377 468 1469 1378) +4(467 1468 1469 468) +4(378 469 1470 1379) +4(468 1469 1470 469) +4(379 470 1471 1380) +4(469 1470 1471 470) +4(380 471 1472 1381) +4(470 1471 1472 471) +4(381 472 1473 1382) +4(471 1472 1473 472) +4(382 473 1474 1383) +4(472 1473 1474 473) +4(383 474 1475 1384) +4(473 1474 1475 474) +4(384 475 1476 1385) +4(474 1475 1476 475) +4(385 476 1477 1386) +4(475 1476 1477 476) +4(386 477 1478 1387) +4(476 1477 1478 477) +4(387 478 1479 1388) +4(477 1478 1479 478) +4(388 479 1480 1389) +4(478 1479 1480 479) +4(389 480 1481 1390) +4(479 1480 1481 480) +4(390 481 1482 1391) +4(480 1481 1482 481) +4(391 482 1483 1392) +4(481 1482 1483 482) +4(392 483 1484 1393) +4(482 1483 1484 483) +4(393 484 1485 1394) +4(483 1484 1485 484) +4(394 485 1486 1395) +4(484 1485 1486 485) +4(395 486 1487 1396) +4(485 1486 1487 486) +4(396 487 1488 1397) +4(486 1487 1488 487) +4(397 488 1489 1398) +4(487 1488 1489 488) +4(398 489 1490 1399) +4(488 1489 1490 489) +4(399 490 1491 1400) +4(489 1490 1491 490) +4(400 491 1492 1401) +4(490 1491 1492 491) +4(401 492 1493 1402) +4(491 1492 1493 492) +4(402 493 1494 1403) +4(492 1493 1494 493) +4(403 494 1495 1404) +4(493 1494 1495 494) +4(404 495 1496 1405) +4(494 1495 1496 495) +4(405 496 1497 1406) +4(495 1496 1497 496) +4(406 497 1498 1407) +4(496 1497 1498 497) +4(407 498 1499 1408) +4(497 1498 1499 498) +4(408 499 1500 1409) +4(498 1499 1500 499) +4(409 500 1501 1410) +4(499 1500 1501 500) +4(410 501 1502 1411) +4(500 1501 1502 501) +4(411 502 1503 1412) +4(501 1502 1503 502) +4(412 503 1504 1413) +4(502 1503 1504 503) +4(413 504 1505 1414) +4(503 1504 1505 504) +4(414 505 1506 1415) +4(504 1505 1506 505) +4(415 506 1507 1416) +4(505 1506 1507 506) +4(416 507 1508 1417) +4(506 1507 1508 507) +4(417 508 1509 1418) +4(507 1508 1509 508) +4(418 509 1510 1419) +4(508 1509 1510 509) +4(419 510 1511 1420) +4(509 1510 1511 510) +4(420 511 1512 1421) +4(510 1511 1512 511) +4(421 512 1513 1422) +4(511 1512 1513 512) +4(422 513 1514 1423) +4(512 1513 1514 513) +4(423 514 1515 1424) +4(513 1514 1515 514) +4(424 515 1516 1425) +4(514 1515 1516 515) +4(425 516 1517 1426) +4(515 1516 1517 516) +4(426 517 1518 1427) +4(516 1517 1518 517) +4(427 518 1519 1428) +4(517 1518 1519 518) +4(428 519 1520 1429) +4(518 1519 1520 519) +4(429 520 1521 1430) +4(519 1520 1521 520) +4(430 521 1522 1431) +4(520 1521 1522 521) +4(431 522 1523 1432) +4(521 1522 1523 522) +4(432 523 1524 1433) +4(522 1523 1524 523) +4(433 524 1525 1434) +4(523 1524 1525 524) +4(434 525 1526 1435) +4(524 1525 1526 525) +4(435 526 1527 1436) +4(525 1526 1527 526) +4(436 527 1528 1437) +4(526 1527 1528 527) +4(437 528 1529 1438) +4(527 1528 1529 528) +4(438 529 1530 1439) +4(528 1529 1530 529) +4(439 530 1531 1440) +4(529 1530 1531 530) +4(440 531 1532 1441) +4(530 1531 1532 531) +4(441 532 1533 1442) +4(531 1532 1533 532) +4(442 533 1534 1443) +4(532 1533 1534 533) +4(443 534 1535 1444) +4(533 1534 1535 534) +4(444 535 1536 1445) +4(534 1535 1536 535) +4(445 536 1537 1446) +4(535 1536 1537 536) +4(446 537 1538 1447) +4(536 1537 1538 537) +4(447 538 1539 1448) +4(537 1538 1539 538) +4(448 539 1540 1449) +4(538 1539 1540 539) +4(449 540 1541 1450) +4(539 1540 1541 540) +4(450 541 1542 1451) +4(540 1541 1542 541) +4(451 542 1543 1452) +4(541 1542 1543 542) +4(452 543 1544 1453) +4(542 1543 1544 543) +4(453 544 1545 1454) +4(543 1544 1545 544) +4(544 1545 1546 545) +4(456 547 1548 1457) +4(546 1547 1548 547) +4(457 548 1549 1458) +4(547 1548 1549 548) +4(458 549 1550 1459) +4(548 1549 1550 549) +4(459 550 1551 1460) +4(549 1550 1551 550) +4(460 551 1552 1461) +4(550 1551 1552 551) +4(461 552 1553 1462) +4(551 1552 1553 552) +4(462 553 1554 1463) +4(552 1553 1554 553) +4(463 554 1555 1464) +4(553 1554 1555 554) +4(464 555 1556 1465) +4(554 1555 1556 555) +4(465 556 1557 1466) +4(555 1556 1557 556) +4(466 557 1558 1467) +4(556 1557 1558 557) +4(467 558 1559 1468) +4(557 1558 1559 558) +4(468 559 1560 1469) +4(558 1559 1560 559) +4(469 560 1561 1470) +4(559 1560 1561 560) +4(470 561 1562 1471) +4(560 1561 1562 561) +4(471 562 1563 1472) +4(561 1562 1563 562) +4(472 563 1564 1473) +4(562 1563 1564 563) +4(473 564 1565 1474) +4(563 1564 1565 564) +4(474 565 1566 1475) +4(564 1565 1566 565) +4(475 566 1567 1476) +4(565 1566 1567 566) +4(476 567 1568 1477) +4(566 1567 1568 567) +4(477 568 1569 1478) +4(567 1568 1569 568) +4(478 569 1570 1479) +4(568 1569 1570 569) +4(479 570 1571 1480) +4(569 1570 1571 570) +4(480 571 1572 1481) +4(570 1571 1572 571) +4(481 572 1573 1482) +4(571 1572 1573 572) +4(482 573 1574 1483) +4(572 1573 1574 573) +4(483 574 1575 1484) +4(573 1574 1575 574) +4(484 575 1576 1485) +4(574 1575 1576 575) +4(485 576 1577 1486) +4(575 1576 1577 576) +4(486 577 1578 1487) +4(576 1577 1578 577) +4(487 578 1579 1488) +4(577 1578 1579 578) +4(488 579 1580 1489) +4(578 1579 1580 579) +4(489 580 1581 1490) +4(579 1580 1581 580) +4(490 581 1582 1491) +4(580 1581 1582 581) +4(491 582 1583 1492) +4(581 1582 1583 582) +4(492 583 1584 1493) +4(582 1583 1584 583) +4(493 584 1585 1494) +4(583 1584 1585 584) +4(494 585 1586 1495) +4(584 1585 1586 585) +4(495 586 1587 1496) +4(585 1586 1587 586) +4(496 587 1588 1497) +4(586 1587 1588 587) +4(497 588 1589 1498) +4(587 1588 1589 588) +4(498 589 1590 1499) +4(588 1589 1590 589) +4(499 590 1591 1500) +4(589 1590 1591 590) +4(500 591 1592 1501) +4(590 1591 1592 591) +4(501 592 1593 1502) +4(591 1592 1593 592) +4(502 593 1594 1503) +4(592 1593 1594 593) +4(503 594 1595 1504) +4(593 1594 1595 594) +4(504 595 1596 1505) +4(594 1595 1596 595) +4(505 596 1597 1506) +4(595 1596 1597 596) +4(506 597 1598 1507) +4(596 1597 1598 597) +4(507 598 1599 1508) +4(597 1598 1599 598) +4(508 599 1600 1509) +4(598 1599 1600 599) +4(509 600 1601 1510) +4(599 1600 1601 600) +4(510 601 1602 1511) +4(600 1601 1602 601) +4(511 602 1603 1512) +4(601 1602 1603 602) +4(512 603 1604 1513) +4(602 1603 1604 603) +4(513 604 1605 1514) +4(603 1604 1605 604) +4(514 605 1606 1515) +4(604 1605 1606 605) +4(515 606 1607 1516) +4(605 1606 1607 606) +4(516 607 1608 1517) +4(606 1607 1608 607) +4(517 608 1609 1518) +4(607 1608 1609 608) +4(518 609 1610 1519) +4(608 1609 1610 609) +4(519 610 1611 1520) +4(609 1610 1611 610) +4(520 611 1612 1521) +4(610 1611 1612 611) +4(521 612 1613 1522) +4(611 1612 1613 612) +4(522 613 1614 1523) +4(612 1613 1614 613) +4(523 614 1615 1524) +4(613 1614 1615 614) +4(524 615 1616 1525) +4(614 1615 1616 615) +4(525 616 1617 1526) +4(615 1616 1617 616) +4(526 617 1618 1527) +4(616 1617 1618 617) +4(527 618 1619 1528) +4(617 1618 1619 618) +4(528 619 1620 1529) +4(618 1619 1620 619) +4(529 620 1621 1530) +4(619 1620 1621 620) +4(530 621 1622 1531) +4(620 1621 1622 621) +4(531 622 1623 1532) +4(621 1622 1623 622) +4(532 623 1624 1533) +4(622 1623 1624 623) +4(533 624 1625 1534) +4(623 1624 1625 624) +4(534 625 1626 1535) +4(624 1625 1626 625) +4(535 626 1627 1536) +4(625 1626 1627 626) +4(536 627 1628 1537) +4(626 1627 1628 627) +4(537 628 1629 1538) +4(627 1628 1629 628) +4(538 629 1630 1539) +4(628 1629 1630 629) +4(539 630 1631 1540) +4(629 1630 1631 630) +4(540 631 1632 1541) +4(630 1631 1632 631) +4(541 632 1633 1542) +4(631 1632 1633 632) +4(542 633 1634 1543) +4(632 1633 1634 633) +4(543 634 1635 1544) +4(633 1634 1635 634) +4(544 635 1636 1545) +4(634 1635 1636 635) +4(635 1636 1637 636) +4(547 638 1639 1548) +4(637 1638 1639 638) +4(548 639 1640 1549) +4(638 1639 1640 639) +4(549 640 1641 1550) +4(639 1640 1641 640) +4(550 641 1642 1551) +4(640 1641 1642 641) +4(551 642 1643 1552) +4(641 1642 1643 642) +4(552 643 1644 1553) +4(642 1643 1644 643) +4(553 644 1645 1554) +4(643 1644 1645 644) +4(554 645 1646 1555) +4(644 1645 1646 645) +4(555 646 1647 1556) +4(645 1646 1647 646) +4(556 647 1648 1557) +4(646 1647 1648 647) +4(557 648 1649 1558) +4(647 1648 1649 648) +4(558 649 1650 1559) +4(648 1649 1650 649) +4(559 650 1651 1560) +4(649 1650 1651 650) +4(560 651 1652 1561) +4(650 1651 1652 651) +4(561 652 1653 1562) +4(651 1652 1653 652) +4(562 653 1654 1563) +4(652 1653 1654 653) +4(563 654 1655 1564) +4(653 1654 1655 654) +4(564 655 1656 1565) +4(654 1655 1656 655) +4(565 656 1657 1566) +4(655 1656 1657 656) +4(566 657 1658 1567) +4(656 1657 1658 657) +4(567 658 1659 1568) +4(657 1658 1659 658) +4(568 659 1660 1569) +4(658 1659 1660 659) +4(569 660 1661 1570) +4(659 1660 1661 660) +4(570 661 1662 1571) +4(660 1661 1662 661) +4(571 662 1663 1572) +4(661 1662 1663 662) +4(572 663 1664 1573) +4(662 1663 1664 663) +4(573 664 1665 1574) +4(663 1664 1665 664) +4(574 665 1666 1575) +4(664 1665 1666 665) +4(575 666 1667 1576) +4(665 1666 1667 666) +4(576 667 1668 1577) +4(666 1667 1668 667) +4(577 668 1669 1578) +4(667 1668 1669 668) +4(578 669 1670 1579) +4(668 1669 1670 669) +4(579 670 1671 1580) +4(669 1670 1671 670) +4(580 671 1672 1581) +4(670 1671 1672 671) +4(581 672 1673 1582) +4(671 1672 1673 672) +4(582 673 1674 1583) +4(672 1673 1674 673) +4(583 674 1675 1584) +4(673 1674 1675 674) +4(584 675 1676 1585) +4(674 1675 1676 675) +4(585 676 1677 1586) +4(675 1676 1677 676) +4(586 677 1678 1587) +4(676 1677 1678 677) +4(587 678 1679 1588) +4(677 1678 1679 678) +4(588 679 1680 1589) +4(678 1679 1680 679) +4(589 680 1681 1590) +4(679 1680 1681 680) +4(590 681 1682 1591) +4(680 1681 1682 681) +4(591 682 1683 1592) +4(681 1682 1683 682) +4(592 683 1684 1593) +4(682 1683 1684 683) +4(593 684 1685 1594) +4(683 1684 1685 684) +4(594 685 1686 1595) +4(684 1685 1686 685) +4(595 686 1687 1596) +4(685 1686 1687 686) +4(596 687 1688 1597) +4(686 1687 1688 687) +4(597 688 1689 1598) +4(687 1688 1689 688) +4(598 689 1690 1599) +4(688 1689 1690 689) +4(599 690 1691 1600) +4(689 1690 1691 690) +4(600 691 1692 1601) +4(690 1691 1692 691) +4(601 692 1693 1602) +4(691 1692 1693 692) +4(602 693 1694 1603) +4(692 1693 1694 693) +4(603 694 1695 1604) +4(693 1694 1695 694) +4(604 695 1696 1605) +4(694 1695 1696 695) +4(605 696 1697 1606) +4(695 1696 1697 696) +4(606 697 1698 1607) +4(696 1697 1698 697) +4(607 698 1699 1608) +4(697 1698 1699 698) +4(608 699 1700 1609) +4(698 1699 1700 699) +4(609 700 1701 1610) +4(699 1700 1701 700) +4(610 701 1702 1611) +4(700 1701 1702 701) +4(611 702 1703 1612) +4(701 1702 1703 702) +4(612 703 1704 1613) +4(702 1703 1704 703) +4(613 704 1705 1614) +4(703 1704 1705 704) +4(614 705 1706 1615) +4(704 1705 1706 705) +4(615 706 1707 1616) +4(705 1706 1707 706) +4(616 707 1708 1617) +4(706 1707 1708 707) +4(617 708 1709 1618) +4(707 1708 1709 708) +4(618 709 1710 1619) +4(708 1709 1710 709) +4(619 710 1711 1620) +4(709 1710 1711 710) +4(620 711 1712 1621) +4(710 1711 1712 711) +4(621 712 1713 1622) +4(711 1712 1713 712) +4(622 713 1714 1623) +4(712 1713 1714 713) +4(623 714 1715 1624) +4(713 1714 1715 714) +4(624 715 1716 1625) +4(714 1715 1716 715) +4(625 716 1717 1626) +4(715 1716 1717 716) +4(626 717 1718 1627) +4(716 1717 1718 717) +4(627 718 1719 1628) +4(717 1718 1719 718) +4(628 719 1720 1629) +4(718 1719 1720 719) +4(629 720 1721 1630) +4(719 1720 1721 720) +4(630 721 1722 1631) +4(720 1721 1722 721) +4(631 722 1723 1632) +4(721 1722 1723 722) +4(632 723 1724 1633) +4(722 1723 1724 723) +4(633 724 1725 1634) +4(723 1724 1725 724) +4(634 725 1726 1635) +4(724 1725 1726 725) +4(635 726 1727 1636) +4(725 1726 1727 726) +4(726 1727 1728 727) +4(638 729 1730 1639) +4(728 1729 1730 729) +4(639 730 1731 1640) +4(729 1730 1731 730) +4(640 731 1732 1641) +4(730 1731 1732 731) +4(641 732 1733 1642) +4(731 1732 1733 732) +4(642 733 1734 1643) +4(732 1733 1734 733) +4(643 734 1735 1644) +4(733 1734 1735 734) +4(644 735 1736 1645) +4(734 1735 1736 735) +4(645 736 1737 1646) +4(735 1736 1737 736) +4(646 737 1738 1647) +4(736 1737 1738 737) +4(647 738 1739 1648) +4(737 1738 1739 738) +4(648 739 1740 1649) +4(738 1739 1740 739) +4(649 740 1741 1650) +4(739 1740 1741 740) +4(650 741 1742 1651) +4(740 1741 1742 741) +4(651 742 1743 1652) +4(741 1742 1743 742) +4(652 743 1744 1653) +4(742 1743 1744 743) +4(653 744 1745 1654) +4(743 1744 1745 744) +4(654 745 1746 1655) +4(744 1745 1746 745) +4(655 746 1747 1656) +4(745 1746 1747 746) +4(656 747 1748 1657) +4(746 1747 1748 747) +4(657 748 1749 1658) +4(747 1748 1749 748) +4(658 749 1750 1659) +4(748 1749 1750 749) +4(659 750 1751 1660) +4(749 1750 1751 750) +4(660 751 1752 1661) +4(750 1751 1752 751) +4(661 752 1753 1662) +4(751 1752 1753 752) +4(662 753 1754 1663) +4(752 1753 1754 753) +4(663 754 1755 1664) +4(753 1754 1755 754) +4(664 755 1756 1665) +4(754 1755 1756 755) +4(665 756 1757 1666) +4(755 1756 1757 756) +4(666 757 1758 1667) +4(756 1757 1758 757) +4(667 758 1759 1668) +4(757 1758 1759 758) +4(668 759 1760 1669) +4(758 1759 1760 759) +4(669 760 1761 1670) +4(759 1760 1761 760) +4(670 761 1762 1671) +4(760 1761 1762 761) +4(671 762 1763 1672) +4(761 1762 1763 762) +4(672 763 1764 1673) +4(762 1763 1764 763) +4(673 764 1765 1674) +4(763 1764 1765 764) +4(674 765 1766 1675) +4(764 1765 1766 765) +4(675 766 1767 1676) +4(765 1766 1767 766) +4(676 767 1768 1677) +4(766 1767 1768 767) +4(677 768 1769 1678) +4(767 1768 1769 768) +4(678 769 1770 1679) +4(768 1769 1770 769) +4(679 770 1771 1680) +4(769 1770 1771 770) +4(680 771 1772 1681) +4(770 1771 1772 771) +4(681 772 1773 1682) +4(771 1772 1773 772) +4(682 773 1774 1683) +4(772 1773 1774 773) +4(683 774 1775 1684) +4(773 1774 1775 774) +4(684 775 1776 1685) +4(774 1775 1776 775) +4(685 776 1777 1686) +4(775 1776 1777 776) +4(686 777 1778 1687) +4(776 1777 1778 777) +4(687 778 1779 1688) +4(777 1778 1779 778) +4(688 779 1780 1689) +4(778 1779 1780 779) +4(689 780 1781 1690) +4(779 1780 1781 780) +4(690 781 1782 1691) +4(780 1781 1782 781) +4(691 782 1783 1692) +4(781 1782 1783 782) +4(692 783 1784 1693) +4(782 1783 1784 783) +4(693 784 1785 1694) +4(783 1784 1785 784) +4(694 785 1786 1695) +4(784 1785 1786 785) +4(695 786 1787 1696) +4(785 1786 1787 786) +4(696 787 1788 1697) +4(786 1787 1788 787) +4(697 788 1789 1698) +4(787 1788 1789 788) +4(698 789 1790 1699) +4(788 1789 1790 789) +4(699 790 1791 1700) +4(789 1790 1791 790) +4(700 791 1792 1701) +4(790 1791 1792 791) +4(701 792 1793 1702) +4(791 1792 1793 792) +4(702 793 1794 1703) +4(792 1793 1794 793) +4(703 794 1795 1704) +4(793 1794 1795 794) +4(704 795 1796 1705) +4(794 1795 1796 795) +4(705 796 1797 1706) +4(795 1796 1797 796) +4(706 797 1798 1707) +4(796 1797 1798 797) +4(707 798 1799 1708) +4(797 1798 1799 798) +4(708 799 1800 1709) +4(798 1799 1800 799) +4(709 800 1801 1710) +4(799 1800 1801 800) +4(710 801 1802 1711) +4(800 1801 1802 801) +4(711 802 1803 1712) +4(801 1802 1803 802) +4(712 803 1804 1713) +4(802 1803 1804 803) +4(713 804 1805 1714) +4(803 1804 1805 804) +4(714 805 1806 1715) +4(804 1805 1806 805) +4(715 806 1807 1716) +4(805 1806 1807 806) +4(716 807 1808 1717) +4(806 1807 1808 807) +4(717 808 1809 1718) +4(807 1808 1809 808) +4(718 809 1810 1719) +4(808 1809 1810 809) +4(719 810 1811 1720) +4(809 1810 1811 810) +4(720 811 1812 1721) +4(810 1811 1812 811) +4(721 812 1813 1722) +4(811 1812 1813 812) +4(722 813 1814 1723) +4(812 1813 1814 813) +4(723 814 1815 1724) +4(813 1814 1815 814) +4(724 815 1816 1725) +4(814 1815 1816 815) +4(725 816 1817 1726) +4(815 1816 1817 816) +4(726 817 1818 1727) +4(816 1817 1818 817) +4(817 1818 1819 818) +4(729 820 1821 1730) +4(819 1820 1821 820) +4(730 821 1822 1731) +4(820 1821 1822 821) +4(731 822 1823 1732) +4(821 1822 1823 822) +4(732 823 1824 1733) +4(822 1823 1824 823) +4(733 824 1825 1734) +4(823 1824 1825 824) +4(734 825 1826 1735) +4(824 1825 1826 825) +4(735 826 1827 1736) +4(825 1826 1827 826) +4(736 827 1828 1737) +4(826 1827 1828 827) +4(737 828 1829 1738) +4(827 1828 1829 828) +4(738 829 1830 1739) +4(828 1829 1830 829) +4(739 830 1831 1740) +4(829 1830 1831 830) +4(740 831 1832 1741) +4(830 1831 1832 831) +4(741 832 1833 1742) +4(831 1832 1833 832) +4(742 833 1834 1743) +4(832 1833 1834 833) +4(743 834 1835 1744) +4(833 1834 1835 834) +4(744 835 1836 1745) +4(834 1835 1836 835) +4(745 836 1837 1746) +4(835 1836 1837 836) +4(746 837 1838 1747) +4(836 1837 1838 837) +4(747 838 1839 1748) +4(837 1838 1839 838) +4(748 839 1840 1749) +4(838 1839 1840 839) +4(749 840 1841 1750) +4(839 1840 1841 840) +4(750 841 1842 1751) +4(840 1841 1842 841) +4(751 842 1843 1752) +4(841 1842 1843 842) +4(752 843 1844 1753) +4(842 1843 1844 843) +4(753 844 1845 1754) +4(843 1844 1845 844) +4(754 845 1846 1755) +4(844 1845 1846 845) +4(755 846 1847 1756) +4(845 1846 1847 846) +4(756 847 1848 1757) +4(846 1847 1848 847) +4(757 848 1849 1758) +4(847 1848 1849 848) +4(758 849 1850 1759) +4(848 1849 1850 849) +4(759 850 1851 1760) +4(849 1850 1851 850) +4(760 851 1852 1761) +4(850 1851 1852 851) +4(761 852 1853 1762) +4(851 1852 1853 852) +4(762 853 1854 1763) +4(852 1853 1854 853) +4(763 854 1855 1764) +4(853 1854 1855 854) +4(764 855 1856 1765) +4(854 1855 1856 855) +4(765 856 1857 1766) +4(855 1856 1857 856) +4(766 857 1858 1767) +4(856 1857 1858 857) +4(767 858 1859 1768) +4(857 1858 1859 858) +4(768 859 1860 1769) +4(858 1859 1860 859) +4(769 860 1861 1770) +4(859 1860 1861 860) +4(770 861 1862 1771) +4(860 1861 1862 861) +4(771 862 1863 1772) +4(861 1862 1863 862) +4(772 863 1864 1773) +4(862 1863 1864 863) +4(773 864 1865 1774) +4(863 1864 1865 864) +4(774 865 1866 1775) +4(864 1865 1866 865) +4(775 866 1867 1776) +4(865 1866 1867 866) +4(776 867 1868 1777) +4(866 1867 1868 867) +4(777 868 1869 1778) +4(867 1868 1869 868) +4(778 869 1870 1779) +4(868 1869 1870 869) +4(779 870 1871 1780) +4(869 1870 1871 870) +4(780 871 1872 1781) +4(870 1871 1872 871) +4(781 872 1873 1782) +4(871 1872 1873 872) +4(782 873 1874 1783) +4(872 1873 1874 873) +4(783 874 1875 1784) +4(873 1874 1875 874) +4(784 875 1876 1785) +4(874 1875 1876 875) +4(785 876 1877 1786) +4(875 1876 1877 876) +4(786 877 1878 1787) +4(876 1877 1878 877) +4(787 878 1879 1788) +4(877 1878 1879 878) +4(788 879 1880 1789) +4(878 1879 1880 879) +4(789 880 1881 1790) +4(879 1880 1881 880) +4(790 881 1882 1791) +4(880 1881 1882 881) +4(791 882 1883 1792) +4(881 1882 1883 882) +4(792 883 1884 1793) +4(882 1883 1884 883) +4(793 884 1885 1794) +4(883 1884 1885 884) +4(794 885 1886 1795) +4(884 1885 1886 885) +4(795 886 1887 1796) +4(885 1886 1887 886) +4(796 887 1888 1797) +4(886 1887 1888 887) +4(797 888 1889 1798) +4(887 1888 1889 888) +4(798 889 1890 1799) +4(888 1889 1890 889) +4(799 890 1891 1800) +4(889 1890 1891 890) +4(800 891 1892 1801) +4(890 1891 1892 891) +4(801 892 1893 1802) +4(891 1892 1893 892) +4(802 893 1894 1803) +4(892 1893 1894 893) +4(803 894 1895 1804) +4(893 1894 1895 894) +4(804 895 1896 1805) +4(894 1895 1896 895) +4(805 896 1897 1806) +4(895 1896 1897 896) +4(806 897 1898 1807) +4(896 1897 1898 897) +4(807 898 1899 1808) +4(897 1898 1899 898) +4(808 899 1900 1809) +4(898 1899 1900 899) +4(809 900 1901 1810) +4(899 1900 1901 900) +4(810 901 1902 1811) +4(900 1901 1902 901) +4(811 902 1903 1812) +4(901 1902 1903 902) +4(812 903 1904 1813) +4(902 1903 1904 903) +4(813 904 1905 1814) +4(903 1904 1905 904) +4(814 905 1906 1815) +4(904 1905 1906 905) +4(815 906 1907 1816) +4(905 1906 1907 906) +4(816 907 1908 1817) +4(906 1907 1908 907) +4(817 908 1909 1818) +4(907 1908 1909 908) +4(908 1909 1910 909) +4(820 911 1912 1821) +4(821 912 1913 1822) +4(822 913 1914 1823) +4(823 914 1915 1824) +4(824 915 1916 1825) +4(825 916 1917 1826) +4(826 917 1918 1827) +4(827 918 1919 1828) +4(828 919 1920 1829) +4(829 920 1921 1830) +4(830 921 1922 1831) +4(831 922 1923 1832) +4(832 923 1924 1833) +4(833 924 1925 1834) +4(834 925 1926 1835) +4(835 926 1927 1836) +4(836 927 1928 1837) +4(837 928 1929 1838) +4(838 929 1930 1839) +4(839 930 1931 1840) +4(840 931 1932 1841) +4(841 932 1933 1842) +4(842 933 1934 1843) +4(843 934 1935 1844) +4(844 935 1936 1845) +4(845 936 1937 1846) +4(846 937 1938 1847) +4(847 938 1939 1848) +4(848 939 1940 1849) +4(849 940 1941 1850) +4(850 941 1942 1851) +4(851 942 1943 1852) +4(852 943 1944 1853) +4(853 944 1945 1854) +4(854 945 1946 1855) +4(855 946 1947 1856) +4(856 947 1948 1857) +4(857 948 1949 1858) +4(858 949 1950 1859) +4(859 950 1951 1860) +4(860 951 1952 1861) +4(861 952 1953 1862) +4(862 953 1954 1863) +4(863 954 1955 1864) +4(864 955 1956 1865) +4(865 956 1957 1866) +4(866 957 1958 1867) +4(867 958 1959 1868) +4(868 959 1960 1869) +4(869 960 1961 1870) +4(870 961 1962 1871) +4(871 962 1963 1872) +4(872 963 1964 1873) +4(873 964 1965 1874) +4(874 965 1966 1875) +4(875 966 1967 1876) +4(876 967 1968 1877) +4(877 968 1969 1878) +4(878 969 1970 1879) +4(879 970 1971 1880) +4(880 971 1972 1881) +4(881 972 1973 1882) +4(882 973 1974 1883) +4(883 974 1975 1884) +4(884 975 1976 1885) +4(885 976 1977 1886) +4(886 977 1978 1887) +4(887 978 1979 1888) +4(888 979 1980 1889) +4(889 980 1981 1890) +4(890 981 1982 1891) +4(891 982 1983 1892) +4(892 983 1984 1893) +4(893 984 1985 1894) +4(894 985 1986 1895) +4(895 986 1987 1896) +4(896 987 1988 1897) +4(897 988 1989 1898) +4(898 989 1990 1899) +4(899 990 1991 1900) +4(900 991 1992 1901) +4(901 992 1993 1902) +4(902 993 1994 1903) +4(903 994 1995 1904) +4(904 995 1996 1905) +4(905 996 1997 1906) +4(906 997 1998 1907) +4(907 998 1999 1908) +4(908 999 2000 1909) +4(0 1 1002 1001) +4(1 2 1003 1002) +4(2 3 1004 1003) +4(3 4 1005 1004) +4(4 5 1006 1005) +4(5 6 1007 1006) +4(6 7 1008 1007) +4(7 8 1009 1008) +4(8 9 1010 1009) +4(9 10 1011 1010) +4(10 11 1012 1011) +4(11 12 1013 1012) +4(12 13 1014 1013) +4(13 14 1015 1014) +4(14 15 1016 1015) +4(15 16 1017 1016) +4(16 17 1018 1017) +4(17 18 1019 1018) +4(18 19 1020 1019) +4(19 20 1021 1020) +4(20 21 1022 1021) +4(21 22 1023 1022) +4(22 23 1024 1023) +4(23 24 1025 1024) +4(24 25 1026 1025) +4(25 26 1027 1026) +4(26 27 1028 1027) +4(27 28 1029 1028) +4(28 29 1030 1029) +4(29 30 1031 1030) +4(30 31 1032 1031) +4(31 32 1033 1032) +4(32 33 1034 1033) +4(33 34 1035 1034) +4(34 35 1036 1035) +4(35 36 1037 1036) +4(36 37 1038 1037) +4(37 38 1039 1038) +4(38 39 1040 1039) +4(39 40 1041 1040) +4(40 41 1042 1041) +4(41 42 1043 1042) +4(42 43 1044 1043) +4(43 44 1045 1044) +4(44 45 1046 1045) +4(45 46 1047 1046) +4(46 47 1048 1047) +4(47 48 1049 1048) +4(48 49 1050 1049) +4(49 50 1051 1050) +4(50 51 1052 1051) +4(51 52 1053 1052) +4(52 53 1054 1053) +4(53 54 1055 1054) +4(54 55 1056 1055) +4(55 56 1057 1056) +4(56 57 1058 1057) +4(57 58 1059 1058) +4(58 59 1060 1059) +4(59 60 1061 1060) +4(60 61 1062 1061) +4(61 62 1063 1062) +4(62 63 1064 1063) +4(63 64 1065 1064) +4(64 65 1066 1065) +4(65 66 1067 1066) +4(66 67 1068 1067) +4(67 68 1069 1068) +4(68 69 1070 1069) +4(69 70 1071 1070) +4(70 71 1072 1071) +4(71 72 1073 1072) +4(72 73 1074 1073) +4(73 74 1075 1074) +4(74 75 1076 1075) +4(75 76 1077 1076) +4(76 77 1078 1077) +4(77 78 1079 1078) +4(78 79 1080 1079) +4(79 80 1081 1080) +4(80 81 1082 1081) +4(81 82 1083 1082) +4(82 83 1084 1083) +4(83 84 1085 1084) +4(84 85 1086 1085) +4(85 86 1087 1086) +4(86 87 1088 1087) +4(87 88 1089 1088) +4(88 89 1090 1089) +4(89 90 1091 1090) +4(910 1911 1912 911) +4(911 1912 1913 912) +4(912 1913 1914 913) +4(913 1914 1915 914) +4(914 1915 1916 915) +4(915 1916 1917 916) +4(916 1917 1918 917) +4(917 1918 1919 918) +4(918 1919 1920 919) +4(919 1920 1921 920) +4(920 1921 1922 921) +4(921 1922 1923 922) +4(922 1923 1924 923) +4(923 1924 1925 924) +4(924 1925 1926 925) +4(925 1926 1927 926) +4(926 1927 1928 927) +4(927 1928 1929 928) +4(928 1929 1930 929) +4(929 1930 1931 930) +4(930 1931 1932 931) +4(931 1932 1933 932) +4(932 1933 1934 933) +4(933 1934 1935 934) +4(934 1935 1936 935) +4(935 1936 1937 936) +4(936 1937 1938 937) +4(937 1938 1939 938) +4(938 1939 1940 939) +4(939 1940 1941 940) +4(940 1941 1942 941) +4(941 1942 1943 942) +4(942 1943 1944 943) +4(943 1944 1945 944) +4(944 1945 1946 945) +4(945 1946 1947 946) +4(946 1947 1948 947) +4(947 1948 1949 948) +4(948 1949 1950 949) +4(949 1950 1951 950) +4(950 1951 1952 951) +4(951 1952 1953 952) +4(952 1953 1954 953) +4(953 1954 1955 954) +4(954 1955 1956 955) +4(955 1956 1957 956) +4(956 1957 1958 957) +4(957 1958 1959 958) +4(958 1959 1960 959) +4(959 1960 1961 960) +4(960 1961 1962 961) +4(961 1962 1963 962) +4(962 1963 1964 963) +4(963 1964 1965 964) +4(964 1965 1966 965) +4(965 1966 1967 966) +4(966 1967 1968 967) +4(967 1968 1969 968) +4(968 1969 1970 969) +4(969 1970 1971 970) +4(970 1971 1972 971) +4(971 1972 1973 972) +4(972 1973 1974 973) +4(973 1974 1975 974) +4(974 1975 1976 975) +4(975 1976 1977 976) +4(976 1977 1978 977) +4(977 1978 1979 978) +4(978 1979 1980 979) +4(979 1980 1981 980) +4(980 1981 1982 981) +4(981 1982 1983 982) +4(982 1983 1984 983) +4(983 1984 1985 984) +4(984 1985 1986 985) +4(985 1986 1987 986) +4(986 1987 1988 987) +4(987 1988 1989 988) +4(988 1989 1990 989) +4(989 1990 1991 990) +4(990 1991 1992 991) +4(991 1992 1993 992) +4(992 1993 1994 993) +4(993 1994 1995 994) +4(994 1995 1996 995) +4(995 1996 1997 996) +4(996 1997 1998 997) +4(997 1998 1999 998) +4(998 1999 2000 999) +4(999 2000 2001 1000) +4(0 1001 1092 91) +4(91 1092 1183 182) +4(182 1183 1274 273) +4(273 1274 1365 364) +4(364 1365 1456 455) +4(455 1456 1547 546) +4(546 1547 1638 637) +4(637 1638 1729 728) +4(728 1729 1820 819) +4(819 1820 1911 910) +4(90 181 1182 1091) +4(181 272 1273 1182) +4(272 363 1364 1273) +4(363 454 1455 1364) +4(454 545 1546 1455) +4(545 636 1637 1546) +4(636 727 1728 1637) +4(727 818 1819 1728) +4(818 909 1910 1819) +4(909 1000 2001 1910) +4(0 91 92 1) +4(91 182 183 92) +4(182 273 274 183) +4(273 364 365 274) +4(364 455 456 365) +4(455 546 547 456) +4(546 637 638 547) +4(637 728 729 638) +4(728 819 820 729) +4(819 910 911 820) +4(1 92 93 2) +4(92 183 184 93) +4(183 274 275 184) +4(274 365 366 275) +4(365 456 457 366) +4(456 547 548 457) +4(547 638 639 548) +4(638 729 730 639) +4(729 820 821 730) +4(820 911 912 821) +4(2 93 94 3) +4(93 184 185 94) +4(184 275 276 185) +4(275 366 367 276) +4(366 457 458 367) +4(457 548 549 458) +4(548 639 640 549) +4(639 730 731 640) +4(730 821 822 731) +4(821 912 913 822) +4(3 94 95 4) +4(94 185 186 95) +4(185 276 277 186) +4(276 367 368 277) +4(367 458 459 368) +4(458 549 550 459) +4(549 640 641 550) +4(640 731 732 641) +4(731 822 823 732) +4(822 913 914 823) +4(4 95 96 5) +4(95 186 187 96) +4(186 277 278 187) +4(277 368 369 278) +4(368 459 460 369) +4(459 550 551 460) +4(550 641 642 551) +4(641 732 733 642) +4(732 823 824 733) +4(823 914 915 824) +4(5 96 97 6) +4(96 187 188 97) +4(187 278 279 188) +4(278 369 370 279) +4(369 460 461 370) +4(460 551 552 461) +4(551 642 643 552) +4(642 733 734 643) +4(733 824 825 734) +4(824 915 916 825) +4(6 97 98 7) +4(97 188 189 98) +4(188 279 280 189) +4(279 370 371 280) +4(370 461 462 371) +4(461 552 553 462) +4(552 643 644 553) +4(643 734 735 644) +4(734 825 826 735) +4(825 916 917 826) +4(7 98 99 8) +4(98 189 190 99) +4(189 280 281 190) +4(280 371 372 281) +4(371 462 463 372) +4(462 553 554 463) +4(553 644 645 554) +4(644 735 736 645) +4(735 826 827 736) +4(826 917 918 827) +4(8 99 100 9) +4(99 190 191 100) +4(190 281 282 191) +4(281 372 373 282) +4(372 463 464 373) +4(463 554 555 464) +4(554 645 646 555) +4(645 736 737 646) +4(736 827 828 737) +4(827 918 919 828) +4(9 100 101 10) +4(100 191 192 101) +4(191 282 283 192) +4(282 373 374 283) +4(373 464 465 374) +4(464 555 556 465) +4(555 646 647 556) +4(646 737 738 647) +4(737 828 829 738) +4(828 919 920 829) +4(10 101 102 11) +4(101 192 193 102) +4(192 283 284 193) +4(283 374 375 284) +4(374 465 466 375) +4(465 556 557 466) +4(556 647 648 557) +4(647 738 739 648) +4(738 829 830 739) +4(829 920 921 830) +4(11 102 103 12) +4(102 193 194 103) +4(193 284 285 194) +4(284 375 376 285) +4(375 466 467 376) +4(466 557 558 467) +4(557 648 649 558) +4(648 739 740 649) +4(739 830 831 740) +4(830 921 922 831) +4(12 103 104 13) +4(103 194 195 104) +4(194 285 286 195) +4(285 376 377 286) +4(376 467 468 377) +4(467 558 559 468) +4(558 649 650 559) +4(649 740 741 650) +4(740 831 832 741) +4(831 922 923 832) +4(13 104 105 14) +4(104 195 196 105) +4(195 286 287 196) +4(286 377 378 287) +4(377 468 469 378) +4(468 559 560 469) +4(559 650 651 560) +4(650 741 742 651) +4(741 832 833 742) +4(832 923 924 833) +4(14 105 106 15) +4(105 196 197 106) +4(196 287 288 197) +4(287 378 379 288) +4(378 469 470 379) +4(469 560 561 470) +4(560 651 652 561) +4(651 742 743 652) +4(742 833 834 743) +4(833 924 925 834) +4(15 106 107 16) +4(106 197 198 107) +4(197 288 289 198) +4(288 379 380 289) +4(379 470 471 380) +4(470 561 562 471) +4(561 652 653 562) +4(652 743 744 653) +4(743 834 835 744) +4(834 925 926 835) +4(16 107 108 17) +4(107 198 199 108) +4(198 289 290 199) +4(289 380 381 290) +4(380 471 472 381) +4(471 562 563 472) +4(562 653 654 563) +4(653 744 745 654) +4(744 835 836 745) +4(835 926 927 836) +4(17 108 109 18) +4(108 199 200 109) +4(199 290 291 200) +4(290 381 382 291) +4(381 472 473 382) +4(472 563 564 473) +4(563 654 655 564) +4(654 745 746 655) +4(745 836 837 746) +4(836 927 928 837) +4(18 109 110 19) +4(109 200 201 110) +4(200 291 292 201) +4(291 382 383 292) +4(382 473 474 383) +4(473 564 565 474) +4(564 655 656 565) +4(655 746 747 656) +4(746 837 838 747) +4(837 928 929 838) +4(19 110 111 20) +4(110 201 202 111) +4(201 292 293 202) +4(292 383 384 293) +4(383 474 475 384) +4(474 565 566 475) +4(565 656 657 566) +4(656 747 748 657) +4(747 838 839 748) +4(838 929 930 839) +4(20 111 112 21) +4(111 202 203 112) +4(202 293 294 203) +4(293 384 385 294) +4(384 475 476 385) +4(475 566 567 476) +4(566 657 658 567) +4(657 748 749 658) +4(748 839 840 749) +4(839 930 931 840) +4(21 112 113 22) +4(112 203 204 113) +4(203 294 295 204) +4(294 385 386 295) +4(385 476 477 386) +4(476 567 568 477) +4(567 658 659 568) +4(658 749 750 659) +4(749 840 841 750) +4(840 931 932 841) +4(22 113 114 23) +4(113 204 205 114) +4(204 295 296 205) +4(295 386 387 296) +4(386 477 478 387) +4(477 568 569 478) +4(568 659 660 569) +4(659 750 751 660) +4(750 841 842 751) +4(841 932 933 842) +4(23 114 115 24) +4(114 205 206 115) +4(205 296 297 206) +4(296 387 388 297) +4(387 478 479 388) +4(478 569 570 479) +4(569 660 661 570) +4(660 751 752 661) +4(751 842 843 752) +4(842 933 934 843) +4(24 115 116 25) +4(115 206 207 116) +4(206 297 298 207) +4(297 388 389 298) +4(388 479 480 389) +4(479 570 571 480) +4(570 661 662 571) +4(661 752 753 662) +4(752 843 844 753) +4(843 934 935 844) +4(25 116 117 26) +4(116 207 208 117) +4(207 298 299 208) +4(298 389 390 299) +4(389 480 481 390) +4(480 571 572 481) +4(571 662 663 572) +4(662 753 754 663) +4(753 844 845 754) +4(844 935 936 845) +4(26 117 118 27) +4(117 208 209 118) +4(208 299 300 209) +4(299 390 391 300) +4(390 481 482 391) +4(481 572 573 482) +4(572 663 664 573) +4(663 754 755 664) +4(754 845 846 755) +4(845 936 937 846) +4(27 118 119 28) +4(118 209 210 119) +4(209 300 301 210) +4(300 391 392 301) +4(391 482 483 392) +4(482 573 574 483) +4(573 664 665 574) +4(664 755 756 665) +4(755 846 847 756) +4(846 937 938 847) +4(28 119 120 29) +4(119 210 211 120) +4(210 301 302 211) +4(301 392 393 302) +4(392 483 484 393) +4(483 574 575 484) +4(574 665 666 575) +4(665 756 757 666) +4(756 847 848 757) +4(847 938 939 848) +4(29 120 121 30) +4(120 211 212 121) +4(211 302 303 212) +4(302 393 394 303) +4(393 484 485 394) +4(484 575 576 485) +4(575 666 667 576) +4(666 757 758 667) +4(757 848 849 758) +4(848 939 940 849) +4(30 121 122 31) +4(121 212 213 122) +4(212 303 304 213) +4(303 394 395 304) +4(394 485 486 395) +4(485 576 577 486) +4(576 667 668 577) +4(667 758 759 668) +4(758 849 850 759) +4(849 940 941 850) +4(31 122 123 32) +4(122 213 214 123) +4(213 304 305 214) +4(304 395 396 305) +4(395 486 487 396) +4(486 577 578 487) +4(577 668 669 578) +4(668 759 760 669) +4(759 850 851 760) +4(850 941 942 851) +4(32 123 124 33) +4(123 214 215 124) +4(214 305 306 215) +4(305 396 397 306) +4(396 487 488 397) +4(487 578 579 488) +4(578 669 670 579) +4(669 760 761 670) +4(760 851 852 761) +4(851 942 943 852) +4(33 124 125 34) +4(124 215 216 125) +4(215 306 307 216) +4(306 397 398 307) +4(397 488 489 398) +4(488 579 580 489) +4(579 670 671 580) +4(670 761 762 671) +4(761 852 853 762) +4(852 943 944 853) +4(34 125 126 35) +4(125 216 217 126) +4(216 307 308 217) +4(307 398 399 308) +4(398 489 490 399) +4(489 580 581 490) +4(580 671 672 581) +4(671 762 763 672) +4(762 853 854 763) +4(853 944 945 854) +4(35 126 127 36) +4(126 217 218 127) +4(217 308 309 218) +4(308 399 400 309) +4(399 490 491 400) +4(490 581 582 491) +4(581 672 673 582) +4(672 763 764 673) +4(763 854 855 764) +4(854 945 946 855) +4(36 127 128 37) +4(127 218 219 128) +4(218 309 310 219) +4(309 400 401 310) +4(400 491 492 401) +4(491 582 583 492) +4(582 673 674 583) +4(673 764 765 674) +4(764 855 856 765) +4(855 946 947 856) +4(37 128 129 38) +4(128 219 220 129) +4(219 310 311 220) +4(310 401 402 311) +4(401 492 493 402) +4(492 583 584 493) +4(583 674 675 584) +4(674 765 766 675) +4(765 856 857 766) +4(856 947 948 857) +4(38 129 130 39) +4(129 220 221 130) +4(220 311 312 221) +4(311 402 403 312) +4(402 493 494 403) +4(493 584 585 494) +4(584 675 676 585) +4(675 766 767 676) +4(766 857 858 767) +4(857 948 949 858) +4(39 130 131 40) +4(130 221 222 131) +4(221 312 313 222) +4(312 403 404 313) +4(403 494 495 404) +4(494 585 586 495) +4(585 676 677 586) +4(676 767 768 677) +4(767 858 859 768) +4(858 949 950 859) +4(40 131 132 41) +4(131 222 223 132) +4(222 313 314 223) +4(313 404 405 314) +4(404 495 496 405) +4(495 586 587 496) +4(586 677 678 587) +4(677 768 769 678) +4(768 859 860 769) +4(859 950 951 860) +4(41 132 133 42) +4(132 223 224 133) +4(223 314 315 224) +4(314 405 406 315) +4(405 496 497 406) +4(496 587 588 497) +4(587 678 679 588) +4(678 769 770 679) +4(769 860 861 770) +4(860 951 952 861) +4(42 133 134 43) +4(133 224 225 134) +4(224 315 316 225) +4(315 406 407 316) +4(406 497 498 407) +4(497 588 589 498) +4(588 679 680 589) +4(679 770 771 680) +4(770 861 862 771) +4(861 952 953 862) +4(43 134 135 44) +4(134 225 226 135) +4(225 316 317 226) +4(316 407 408 317) +4(407 498 499 408) +4(498 589 590 499) +4(589 680 681 590) +4(680 771 772 681) +4(771 862 863 772) +4(862 953 954 863) +4(44 135 136 45) +4(135 226 227 136) +4(226 317 318 227) +4(317 408 409 318) +4(408 499 500 409) +4(499 590 591 500) +4(590 681 682 591) +4(681 772 773 682) +4(772 863 864 773) +4(863 954 955 864) +4(45 136 137 46) +4(136 227 228 137) +4(227 318 319 228) +4(318 409 410 319) +4(409 500 501 410) +4(500 591 592 501) +4(591 682 683 592) +4(682 773 774 683) +4(773 864 865 774) +4(864 955 956 865) +4(46 137 138 47) +4(137 228 229 138) +4(228 319 320 229) +4(319 410 411 320) +4(410 501 502 411) +4(501 592 593 502) +4(592 683 684 593) +4(683 774 775 684) +4(774 865 866 775) +4(865 956 957 866) +4(47 138 139 48) +4(138 229 230 139) +4(229 320 321 230) +4(320 411 412 321) +4(411 502 503 412) +4(502 593 594 503) +4(593 684 685 594) +4(684 775 776 685) +4(775 866 867 776) +4(866 957 958 867) +4(48 139 140 49) +4(139 230 231 140) +4(230 321 322 231) +4(321 412 413 322) +4(412 503 504 413) +4(503 594 595 504) +4(594 685 686 595) +4(685 776 777 686) +4(776 867 868 777) +4(867 958 959 868) +4(49 140 141 50) +4(140 231 232 141) +4(231 322 323 232) +4(322 413 414 323) +4(413 504 505 414) +4(504 595 596 505) +4(595 686 687 596) +4(686 777 778 687) +4(777 868 869 778) +4(868 959 960 869) +4(50 141 142 51) +4(141 232 233 142) +4(232 323 324 233) +4(323 414 415 324) +4(414 505 506 415) +4(505 596 597 506) +4(596 687 688 597) +4(687 778 779 688) +4(778 869 870 779) +4(869 960 961 870) +4(51 142 143 52) +4(142 233 234 143) +4(233 324 325 234) +4(324 415 416 325) +4(415 506 507 416) +4(506 597 598 507) +4(597 688 689 598) +4(688 779 780 689) +4(779 870 871 780) +4(870 961 962 871) +4(52 143 144 53) +4(143 234 235 144) +4(234 325 326 235) +4(325 416 417 326) +4(416 507 508 417) +4(507 598 599 508) +4(598 689 690 599) +4(689 780 781 690) +4(780 871 872 781) +4(871 962 963 872) +4(53 144 145 54) +4(144 235 236 145) +4(235 326 327 236) +4(326 417 418 327) +4(417 508 509 418) +4(508 599 600 509) +4(599 690 691 600) +4(690 781 782 691) +4(781 872 873 782) +4(872 963 964 873) +4(54 145 146 55) +4(145 236 237 146) +4(236 327 328 237) +4(327 418 419 328) +4(418 509 510 419) +4(509 600 601 510) +4(600 691 692 601) +4(691 782 783 692) +4(782 873 874 783) +4(873 964 965 874) +4(55 146 147 56) +4(146 237 238 147) +4(237 328 329 238) +4(328 419 420 329) +4(419 510 511 420) +4(510 601 602 511) +4(601 692 693 602) +4(692 783 784 693) +4(783 874 875 784) +4(874 965 966 875) +4(56 147 148 57) +4(147 238 239 148) +4(238 329 330 239) +4(329 420 421 330) +4(420 511 512 421) +4(511 602 603 512) +4(602 693 694 603) +4(693 784 785 694) +4(784 875 876 785) +4(875 966 967 876) +4(57 148 149 58) +4(148 239 240 149) +4(239 330 331 240) +4(330 421 422 331) +4(421 512 513 422) +4(512 603 604 513) +4(603 694 695 604) +4(694 785 786 695) +4(785 876 877 786) +4(876 967 968 877) +4(58 149 150 59) +4(149 240 241 150) +4(240 331 332 241) +4(331 422 423 332) +4(422 513 514 423) +4(513 604 605 514) +4(604 695 696 605) +4(695 786 787 696) +4(786 877 878 787) +4(877 968 969 878) +4(59 150 151 60) +4(150 241 242 151) +4(241 332 333 242) +4(332 423 424 333) +4(423 514 515 424) +4(514 605 606 515) +4(605 696 697 606) +4(696 787 788 697) +4(787 878 879 788) +4(878 969 970 879) +4(60 151 152 61) +4(151 242 243 152) +4(242 333 334 243) +4(333 424 425 334) +4(424 515 516 425) +4(515 606 607 516) +4(606 697 698 607) +4(697 788 789 698) +4(788 879 880 789) +4(879 970 971 880) +4(61 152 153 62) +4(152 243 244 153) +4(243 334 335 244) +4(334 425 426 335) +4(425 516 517 426) +4(516 607 608 517) +4(607 698 699 608) +4(698 789 790 699) +4(789 880 881 790) +4(880 971 972 881) +4(62 153 154 63) +4(153 244 245 154) +4(244 335 336 245) +4(335 426 427 336) +4(426 517 518 427) +4(517 608 609 518) +4(608 699 700 609) +4(699 790 791 700) +4(790 881 882 791) +4(881 972 973 882) +4(63 154 155 64) +4(154 245 246 155) +4(245 336 337 246) +4(336 427 428 337) +4(427 518 519 428) +4(518 609 610 519) +4(609 700 701 610) +4(700 791 792 701) +4(791 882 883 792) +4(882 973 974 883) +4(64 155 156 65) +4(155 246 247 156) +4(246 337 338 247) +4(337 428 429 338) +4(428 519 520 429) +4(519 610 611 520) +4(610 701 702 611) +4(701 792 793 702) +4(792 883 884 793) +4(883 974 975 884) +4(65 156 157 66) +4(156 247 248 157) +4(247 338 339 248) +4(338 429 430 339) +4(429 520 521 430) +4(520 611 612 521) +4(611 702 703 612) +4(702 793 794 703) +4(793 884 885 794) +4(884 975 976 885) +4(66 157 158 67) +4(157 248 249 158) +4(248 339 340 249) +4(339 430 431 340) +4(430 521 522 431) +4(521 612 613 522) +4(612 703 704 613) +4(703 794 795 704) +4(794 885 886 795) +4(885 976 977 886) +4(67 158 159 68) +4(158 249 250 159) +4(249 340 341 250) +4(340 431 432 341) +4(431 522 523 432) +4(522 613 614 523) +4(613 704 705 614) +4(704 795 796 705) +4(795 886 887 796) +4(886 977 978 887) +4(68 159 160 69) +4(159 250 251 160) +4(250 341 342 251) +4(341 432 433 342) +4(432 523 524 433) +4(523 614 615 524) +4(614 705 706 615) +4(705 796 797 706) +4(796 887 888 797) +4(887 978 979 888) +4(69 160 161 70) +4(160 251 252 161) +4(251 342 343 252) +4(342 433 434 343) +4(433 524 525 434) +4(524 615 616 525) +4(615 706 707 616) +4(706 797 798 707) +4(797 888 889 798) +4(888 979 980 889) +4(70 161 162 71) +4(161 252 253 162) +4(252 343 344 253) +4(343 434 435 344) +4(434 525 526 435) +4(525 616 617 526) +4(616 707 708 617) +4(707 798 799 708) +4(798 889 890 799) +4(889 980 981 890) +4(71 162 163 72) +4(162 253 254 163) +4(253 344 345 254) +4(344 435 436 345) +4(435 526 527 436) +4(526 617 618 527) +4(617 708 709 618) +4(708 799 800 709) +4(799 890 891 800) +4(890 981 982 891) +4(72 163 164 73) +4(163 254 255 164) +4(254 345 346 255) +4(345 436 437 346) +4(436 527 528 437) +4(527 618 619 528) +4(618 709 710 619) +4(709 800 801 710) +4(800 891 892 801) +4(891 982 983 892) +4(73 164 165 74) +4(164 255 256 165) +4(255 346 347 256) +4(346 437 438 347) +4(437 528 529 438) +4(528 619 620 529) +4(619 710 711 620) +4(710 801 802 711) +4(801 892 893 802) +4(892 983 984 893) +4(74 165 166 75) +4(165 256 257 166) +4(256 347 348 257) +4(347 438 439 348) +4(438 529 530 439) +4(529 620 621 530) +4(620 711 712 621) +4(711 802 803 712) +4(802 893 894 803) +4(893 984 985 894) +4(75 166 167 76) +4(166 257 258 167) +4(257 348 349 258) +4(348 439 440 349) +4(439 530 531 440) +4(530 621 622 531) +4(621 712 713 622) +4(712 803 804 713) +4(803 894 895 804) +4(894 985 986 895) +4(76 167 168 77) +4(167 258 259 168) +4(258 349 350 259) +4(349 440 441 350) +4(440 531 532 441) +4(531 622 623 532) +4(622 713 714 623) +4(713 804 805 714) +4(804 895 896 805) +4(895 986 987 896) +4(77 168 169 78) +4(168 259 260 169) +4(259 350 351 260) +4(350 441 442 351) +4(441 532 533 442) +4(532 623 624 533) +4(623 714 715 624) +4(714 805 806 715) +4(805 896 897 806) +4(896 987 988 897) +4(78 169 170 79) +4(169 260 261 170) +4(260 351 352 261) +4(351 442 443 352) +4(442 533 534 443) +4(533 624 625 534) +4(624 715 716 625) +4(715 806 807 716) +4(806 897 898 807) +4(897 988 989 898) +4(79 170 171 80) +4(170 261 262 171) +4(261 352 353 262) +4(352 443 444 353) +4(443 534 535 444) +4(534 625 626 535) +4(625 716 717 626) +4(716 807 808 717) +4(807 898 899 808) +4(898 989 990 899) +4(80 171 172 81) +4(171 262 263 172) +4(262 353 354 263) +4(353 444 445 354) +4(444 535 536 445) +4(535 626 627 536) +4(626 717 718 627) +4(717 808 809 718) +4(808 899 900 809) +4(899 990 991 900) +4(81 172 173 82) +4(172 263 264 173) +4(263 354 355 264) +4(354 445 446 355) +4(445 536 537 446) +4(536 627 628 537) +4(627 718 719 628) +4(718 809 810 719) +4(809 900 901 810) +4(900 991 992 901) +4(82 173 174 83) +4(173 264 265 174) +4(264 355 356 265) +4(355 446 447 356) +4(446 537 538 447) +4(537 628 629 538) +4(628 719 720 629) +4(719 810 811 720) +4(810 901 902 811) +4(901 992 993 902) +4(83 174 175 84) +4(174 265 266 175) +4(265 356 357 266) +4(356 447 448 357) +4(447 538 539 448) +4(538 629 630 539) +4(629 720 721 630) +4(720 811 812 721) +4(811 902 903 812) +4(902 993 994 903) +4(84 175 176 85) +4(175 266 267 176) +4(266 357 358 267) +4(357 448 449 358) +4(448 539 540 449) +4(539 630 631 540) +4(630 721 722 631) +4(721 812 813 722) +4(812 903 904 813) +4(903 994 995 904) +4(85 176 177 86) +4(176 267 268 177) +4(267 358 359 268) +4(358 449 450 359) +4(449 540 541 450) +4(540 631 632 541) +4(631 722 723 632) +4(722 813 814 723) +4(813 904 905 814) +4(904 995 996 905) +4(86 177 178 87) +4(177 268 269 178) +4(268 359 360 269) +4(359 450 451 360) +4(450 541 542 451) +4(541 632 633 542) +4(632 723 724 633) +4(723 814 815 724) +4(814 905 906 815) +4(905 996 997 906) +4(87 178 179 88) +4(178 269 270 179) +4(269 360 361 270) +4(360 451 452 361) +4(451 542 543 452) +4(542 633 634 543) +4(633 724 725 634) +4(724 815 816 725) +4(815 906 907 816) +4(906 997 998 907) +4(88 179 180 89) +4(179 270 271 180) +4(270 361 362 271) +4(361 452 453 362) +4(452 543 544 453) +4(543 634 635 544) +4(634 725 726 635) +4(725 816 817 726) +4(816 907 908 817) +4(907 998 999 908) +4(89 180 181 90) +4(180 271 272 181) +4(271 362 363 272) +4(362 453 454 363) +4(453 544 545 454) +4(544 635 636 545) +4(635 726 727 636) +4(726 817 818 727) +4(817 908 909 818) +4(908 999 1000 909) +4(1001 1002 1093 1092) +4(1092 1093 1184 1183) +4(1183 1184 1275 1274) +4(1274 1275 1366 1365) +4(1365 1366 1457 1456) +4(1456 1457 1548 1547) +4(1547 1548 1639 1638) +4(1638 1639 1730 1729) +4(1729 1730 1821 1820) +4(1820 1821 1912 1911) +4(1002 1003 1094 1093) +4(1093 1094 1185 1184) +4(1184 1185 1276 1275) +4(1275 1276 1367 1366) +4(1366 1367 1458 1457) +4(1457 1458 1549 1548) +4(1548 1549 1640 1639) +4(1639 1640 1731 1730) +4(1730 1731 1822 1821) +4(1821 1822 1913 1912) +4(1003 1004 1095 1094) +4(1094 1095 1186 1185) +4(1185 1186 1277 1276) +4(1276 1277 1368 1367) +4(1367 1368 1459 1458) +4(1458 1459 1550 1549) +4(1549 1550 1641 1640) +4(1640 1641 1732 1731) +4(1731 1732 1823 1822) +4(1822 1823 1914 1913) +4(1004 1005 1096 1095) +4(1095 1096 1187 1186) +4(1186 1187 1278 1277) +4(1277 1278 1369 1368) +4(1368 1369 1460 1459) +4(1459 1460 1551 1550) +4(1550 1551 1642 1641) +4(1641 1642 1733 1732) +4(1732 1733 1824 1823) +4(1823 1824 1915 1914) +4(1005 1006 1097 1096) +4(1096 1097 1188 1187) +4(1187 1188 1279 1278) +4(1278 1279 1370 1369) +4(1369 1370 1461 1460) +4(1460 1461 1552 1551) +4(1551 1552 1643 1642) +4(1642 1643 1734 1733) +4(1733 1734 1825 1824) +4(1824 1825 1916 1915) +4(1006 1007 1098 1097) +4(1097 1098 1189 1188) +4(1188 1189 1280 1279) +4(1279 1280 1371 1370) +4(1370 1371 1462 1461) +4(1461 1462 1553 1552) +4(1552 1553 1644 1643) +4(1643 1644 1735 1734) +4(1734 1735 1826 1825) +4(1825 1826 1917 1916) +4(1007 1008 1099 1098) +4(1098 1099 1190 1189) +4(1189 1190 1281 1280) +4(1280 1281 1372 1371) +4(1371 1372 1463 1462) +4(1462 1463 1554 1553) +4(1553 1554 1645 1644) +4(1644 1645 1736 1735) +4(1735 1736 1827 1826) +4(1826 1827 1918 1917) +4(1008 1009 1100 1099) +4(1099 1100 1191 1190) +4(1190 1191 1282 1281) +4(1281 1282 1373 1372) +4(1372 1373 1464 1463) +4(1463 1464 1555 1554) +4(1554 1555 1646 1645) +4(1645 1646 1737 1736) +4(1736 1737 1828 1827) +4(1827 1828 1919 1918) +4(1009 1010 1101 1100) +4(1100 1101 1192 1191) +4(1191 1192 1283 1282) +4(1282 1283 1374 1373) +4(1373 1374 1465 1464) +4(1464 1465 1556 1555) +4(1555 1556 1647 1646) +4(1646 1647 1738 1737) +4(1737 1738 1829 1828) +4(1828 1829 1920 1919) +4(1010 1011 1102 1101) +4(1101 1102 1193 1192) +4(1192 1193 1284 1283) +4(1283 1284 1375 1374) +4(1374 1375 1466 1465) +4(1465 1466 1557 1556) +4(1556 1557 1648 1647) +4(1647 1648 1739 1738) +4(1738 1739 1830 1829) +4(1829 1830 1921 1920) +4(1011 1012 1103 1102) +4(1102 1103 1194 1193) +4(1193 1194 1285 1284) +4(1284 1285 1376 1375) +4(1375 1376 1467 1466) +4(1466 1467 1558 1557) +4(1557 1558 1649 1648) +4(1648 1649 1740 1739) +4(1739 1740 1831 1830) +4(1830 1831 1922 1921) +4(1012 1013 1104 1103) +4(1103 1104 1195 1194) +4(1194 1195 1286 1285) +4(1285 1286 1377 1376) +4(1376 1377 1468 1467) +4(1467 1468 1559 1558) +4(1558 1559 1650 1649) +4(1649 1650 1741 1740) +4(1740 1741 1832 1831) +4(1831 1832 1923 1922) +4(1013 1014 1105 1104) +4(1104 1105 1196 1195) +4(1195 1196 1287 1286) +4(1286 1287 1378 1377) +4(1377 1378 1469 1468) +4(1468 1469 1560 1559) +4(1559 1560 1651 1650) +4(1650 1651 1742 1741) +4(1741 1742 1833 1832) +4(1832 1833 1924 1923) +4(1014 1015 1106 1105) +4(1105 1106 1197 1196) +4(1196 1197 1288 1287) +4(1287 1288 1379 1378) +4(1378 1379 1470 1469) +4(1469 1470 1561 1560) +4(1560 1561 1652 1651) +4(1651 1652 1743 1742) +4(1742 1743 1834 1833) +4(1833 1834 1925 1924) +4(1015 1016 1107 1106) +4(1106 1107 1198 1197) +4(1197 1198 1289 1288) +4(1288 1289 1380 1379) +4(1379 1380 1471 1470) +4(1470 1471 1562 1561) +4(1561 1562 1653 1652) +4(1652 1653 1744 1743) +4(1743 1744 1835 1834) +4(1834 1835 1926 1925) +4(1016 1017 1108 1107) +4(1107 1108 1199 1198) +4(1198 1199 1290 1289) +4(1289 1290 1381 1380) +4(1380 1381 1472 1471) +4(1471 1472 1563 1562) +4(1562 1563 1654 1653) +4(1653 1654 1745 1744) +4(1744 1745 1836 1835) +4(1835 1836 1927 1926) +4(1017 1018 1109 1108) +4(1108 1109 1200 1199) +4(1199 1200 1291 1290) +4(1290 1291 1382 1381) +4(1381 1382 1473 1472) +4(1472 1473 1564 1563) +4(1563 1564 1655 1654) +4(1654 1655 1746 1745) +4(1745 1746 1837 1836) +4(1836 1837 1928 1927) +4(1018 1019 1110 1109) +4(1109 1110 1201 1200) +4(1200 1201 1292 1291) +4(1291 1292 1383 1382) +4(1382 1383 1474 1473) +4(1473 1474 1565 1564) +4(1564 1565 1656 1655) +4(1655 1656 1747 1746) +4(1746 1747 1838 1837) +4(1837 1838 1929 1928) +4(1019 1020 1111 1110) +4(1110 1111 1202 1201) +4(1201 1202 1293 1292) +4(1292 1293 1384 1383) +4(1383 1384 1475 1474) +4(1474 1475 1566 1565) +4(1565 1566 1657 1656) +4(1656 1657 1748 1747) +4(1747 1748 1839 1838) +4(1838 1839 1930 1929) +4(1020 1021 1112 1111) +4(1111 1112 1203 1202) +4(1202 1203 1294 1293) +4(1293 1294 1385 1384) +4(1384 1385 1476 1475) +4(1475 1476 1567 1566) +4(1566 1567 1658 1657) +4(1657 1658 1749 1748) +4(1748 1749 1840 1839) +4(1839 1840 1931 1930) +4(1021 1022 1113 1112) +4(1112 1113 1204 1203) +4(1203 1204 1295 1294) +4(1294 1295 1386 1385) +4(1385 1386 1477 1476) +4(1476 1477 1568 1567) +4(1567 1568 1659 1658) +4(1658 1659 1750 1749) +4(1749 1750 1841 1840) +4(1840 1841 1932 1931) +4(1022 1023 1114 1113) +4(1113 1114 1205 1204) +4(1204 1205 1296 1295) +4(1295 1296 1387 1386) +4(1386 1387 1478 1477) +4(1477 1478 1569 1568) +4(1568 1569 1660 1659) +4(1659 1660 1751 1750) +4(1750 1751 1842 1841) +4(1841 1842 1933 1932) +4(1023 1024 1115 1114) +4(1114 1115 1206 1205) +4(1205 1206 1297 1296) +4(1296 1297 1388 1387) +4(1387 1388 1479 1478) +4(1478 1479 1570 1569) +4(1569 1570 1661 1660) +4(1660 1661 1752 1751) +4(1751 1752 1843 1842) +4(1842 1843 1934 1933) +4(1024 1025 1116 1115) +4(1115 1116 1207 1206) +4(1206 1207 1298 1297) +4(1297 1298 1389 1388) +4(1388 1389 1480 1479) +4(1479 1480 1571 1570) +4(1570 1571 1662 1661) +4(1661 1662 1753 1752) +4(1752 1753 1844 1843) +4(1843 1844 1935 1934) +4(1025 1026 1117 1116) +4(1116 1117 1208 1207) +4(1207 1208 1299 1298) +4(1298 1299 1390 1389) +4(1389 1390 1481 1480) +4(1480 1481 1572 1571) +4(1571 1572 1663 1662) +4(1662 1663 1754 1753) +4(1753 1754 1845 1844) +4(1844 1845 1936 1935) +4(1026 1027 1118 1117) +4(1117 1118 1209 1208) +4(1208 1209 1300 1299) +4(1299 1300 1391 1390) +4(1390 1391 1482 1481) +4(1481 1482 1573 1572) +4(1572 1573 1664 1663) +4(1663 1664 1755 1754) +4(1754 1755 1846 1845) +4(1845 1846 1937 1936) +4(1027 1028 1119 1118) +4(1118 1119 1210 1209) +4(1209 1210 1301 1300) +4(1300 1301 1392 1391) +4(1391 1392 1483 1482) +4(1482 1483 1574 1573) +4(1573 1574 1665 1664) +4(1664 1665 1756 1755) +4(1755 1756 1847 1846) +4(1846 1847 1938 1937) +4(1028 1029 1120 1119) +4(1119 1120 1211 1210) +4(1210 1211 1302 1301) +4(1301 1302 1393 1392) +4(1392 1393 1484 1483) +4(1483 1484 1575 1574) +4(1574 1575 1666 1665) +4(1665 1666 1757 1756) +4(1756 1757 1848 1847) +4(1847 1848 1939 1938) +4(1029 1030 1121 1120) +4(1120 1121 1212 1211) +4(1211 1212 1303 1302) +4(1302 1303 1394 1393) +4(1393 1394 1485 1484) +4(1484 1485 1576 1575) +4(1575 1576 1667 1666) +4(1666 1667 1758 1757) +4(1757 1758 1849 1848) +4(1848 1849 1940 1939) +4(1030 1031 1122 1121) +4(1121 1122 1213 1212) +4(1212 1213 1304 1303) +4(1303 1304 1395 1394) +4(1394 1395 1486 1485) +4(1485 1486 1577 1576) +4(1576 1577 1668 1667) +4(1667 1668 1759 1758) +4(1758 1759 1850 1849) +4(1849 1850 1941 1940) +4(1031 1032 1123 1122) +4(1122 1123 1214 1213) +4(1213 1214 1305 1304) +4(1304 1305 1396 1395) +4(1395 1396 1487 1486) +4(1486 1487 1578 1577) +4(1577 1578 1669 1668) +4(1668 1669 1760 1759) +4(1759 1760 1851 1850) +4(1850 1851 1942 1941) +4(1032 1033 1124 1123) +4(1123 1124 1215 1214) +4(1214 1215 1306 1305) +4(1305 1306 1397 1396) +4(1396 1397 1488 1487) +4(1487 1488 1579 1578) +4(1578 1579 1670 1669) +4(1669 1670 1761 1760) +4(1760 1761 1852 1851) +4(1851 1852 1943 1942) +4(1033 1034 1125 1124) +4(1124 1125 1216 1215) +4(1215 1216 1307 1306) +4(1306 1307 1398 1397) +4(1397 1398 1489 1488) +4(1488 1489 1580 1579) +4(1579 1580 1671 1670) +4(1670 1671 1762 1761) +4(1761 1762 1853 1852) +4(1852 1853 1944 1943) +4(1034 1035 1126 1125) +4(1125 1126 1217 1216) +4(1216 1217 1308 1307) +4(1307 1308 1399 1398) +4(1398 1399 1490 1489) +4(1489 1490 1581 1580) +4(1580 1581 1672 1671) +4(1671 1672 1763 1762) +4(1762 1763 1854 1853) +4(1853 1854 1945 1944) +4(1035 1036 1127 1126) +4(1126 1127 1218 1217) +4(1217 1218 1309 1308) +4(1308 1309 1400 1399) +4(1399 1400 1491 1490) +4(1490 1491 1582 1581) +4(1581 1582 1673 1672) +4(1672 1673 1764 1763) +4(1763 1764 1855 1854) +4(1854 1855 1946 1945) +4(1036 1037 1128 1127) +4(1127 1128 1219 1218) +4(1218 1219 1310 1309) +4(1309 1310 1401 1400) +4(1400 1401 1492 1491) +4(1491 1492 1583 1582) +4(1582 1583 1674 1673) +4(1673 1674 1765 1764) +4(1764 1765 1856 1855) +4(1855 1856 1947 1946) +4(1037 1038 1129 1128) +4(1128 1129 1220 1219) +4(1219 1220 1311 1310) +4(1310 1311 1402 1401) +4(1401 1402 1493 1492) +4(1492 1493 1584 1583) +4(1583 1584 1675 1674) +4(1674 1675 1766 1765) +4(1765 1766 1857 1856) +4(1856 1857 1948 1947) +4(1038 1039 1130 1129) +4(1129 1130 1221 1220) +4(1220 1221 1312 1311) +4(1311 1312 1403 1402) +4(1402 1403 1494 1493) +4(1493 1494 1585 1584) +4(1584 1585 1676 1675) +4(1675 1676 1767 1766) +4(1766 1767 1858 1857) +4(1857 1858 1949 1948) +4(1039 1040 1131 1130) +4(1130 1131 1222 1221) +4(1221 1222 1313 1312) +4(1312 1313 1404 1403) +4(1403 1404 1495 1494) +4(1494 1495 1586 1585) +4(1585 1586 1677 1676) +4(1676 1677 1768 1767) +4(1767 1768 1859 1858) +4(1858 1859 1950 1949) +4(1040 1041 1132 1131) +4(1131 1132 1223 1222) +4(1222 1223 1314 1313) +4(1313 1314 1405 1404) +4(1404 1405 1496 1495) +4(1495 1496 1587 1586) +4(1586 1587 1678 1677) +4(1677 1678 1769 1768) +4(1768 1769 1860 1859) +4(1859 1860 1951 1950) +4(1041 1042 1133 1132) +4(1132 1133 1224 1223) +4(1223 1224 1315 1314) +4(1314 1315 1406 1405) +4(1405 1406 1497 1496) +4(1496 1497 1588 1587) +4(1587 1588 1679 1678) +4(1678 1679 1770 1769) +4(1769 1770 1861 1860) +4(1860 1861 1952 1951) +4(1042 1043 1134 1133) +4(1133 1134 1225 1224) +4(1224 1225 1316 1315) +4(1315 1316 1407 1406) +4(1406 1407 1498 1497) +4(1497 1498 1589 1588) +4(1588 1589 1680 1679) +4(1679 1680 1771 1770) +4(1770 1771 1862 1861) +4(1861 1862 1953 1952) +4(1043 1044 1135 1134) +4(1134 1135 1226 1225) +4(1225 1226 1317 1316) +4(1316 1317 1408 1407) +4(1407 1408 1499 1498) +4(1498 1499 1590 1589) +4(1589 1590 1681 1680) +4(1680 1681 1772 1771) +4(1771 1772 1863 1862) +4(1862 1863 1954 1953) +4(1044 1045 1136 1135) +4(1135 1136 1227 1226) +4(1226 1227 1318 1317) +4(1317 1318 1409 1408) +4(1408 1409 1500 1499) +4(1499 1500 1591 1590) +4(1590 1591 1682 1681) +4(1681 1682 1773 1772) +4(1772 1773 1864 1863) +4(1863 1864 1955 1954) +4(1045 1046 1137 1136) +4(1136 1137 1228 1227) +4(1227 1228 1319 1318) +4(1318 1319 1410 1409) +4(1409 1410 1501 1500) +4(1500 1501 1592 1591) +4(1591 1592 1683 1682) +4(1682 1683 1774 1773) +4(1773 1774 1865 1864) +4(1864 1865 1956 1955) +4(1046 1047 1138 1137) +4(1137 1138 1229 1228) +4(1228 1229 1320 1319) +4(1319 1320 1411 1410) +4(1410 1411 1502 1501) +4(1501 1502 1593 1592) +4(1592 1593 1684 1683) +4(1683 1684 1775 1774) +4(1774 1775 1866 1865) +4(1865 1866 1957 1956) +4(1047 1048 1139 1138) +4(1138 1139 1230 1229) +4(1229 1230 1321 1320) +4(1320 1321 1412 1411) +4(1411 1412 1503 1502) +4(1502 1503 1594 1593) +4(1593 1594 1685 1684) +4(1684 1685 1776 1775) +4(1775 1776 1867 1866) +4(1866 1867 1958 1957) +4(1048 1049 1140 1139) +4(1139 1140 1231 1230) +4(1230 1231 1322 1321) +4(1321 1322 1413 1412) +4(1412 1413 1504 1503) +4(1503 1504 1595 1594) +4(1594 1595 1686 1685) +4(1685 1686 1777 1776) +4(1776 1777 1868 1867) +4(1867 1868 1959 1958) +4(1049 1050 1141 1140) +4(1140 1141 1232 1231) +4(1231 1232 1323 1322) +4(1322 1323 1414 1413) +4(1413 1414 1505 1504) +4(1504 1505 1596 1595) +4(1595 1596 1687 1686) +4(1686 1687 1778 1777) +4(1777 1778 1869 1868) +4(1868 1869 1960 1959) +4(1050 1051 1142 1141) +4(1141 1142 1233 1232) +4(1232 1233 1324 1323) +4(1323 1324 1415 1414) +4(1414 1415 1506 1505) +4(1505 1506 1597 1596) +4(1596 1597 1688 1687) +4(1687 1688 1779 1778) +4(1778 1779 1870 1869) +4(1869 1870 1961 1960) +4(1051 1052 1143 1142) +4(1142 1143 1234 1233) +4(1233 1234 1325 1324) +4(1324 1325 1416 1415) +4(1415 1416 1507 1506) +4(1506 1507 1598 1597) +4(1597 1598 1689 1688) +4(1688 1689 1780 1779) +4(1779 1780 1871 1870) +4(1870 1871 1962 1961) +4(1052 1053 1144 1143) +4(1143 1144 1235 1234) +4(1234 1235 1326 1325) +4(1325 1326 1417 1416) +4(1416 1417 1508 1507) +4(1507 1508 1599 1598) +4(1598 1599 1690 1689) +4(1689 1690 1781 1780) +4(1780 1781 1872 1871) +4(1871 1872 1963 1962) +4(1053 1054 1145 1144) +4(1144 1145 1236 1235) +4(1235 1236 1327 1326) +4(1326 1327 1418 1417) +4(1417 1418 1509 1508) +4(1508 1509 1600 1599) +4(1599 1600 1691 1690) +4(1690 1691 1782 1781) +4(1781 1782 1873 1872) +4(1872 1873 1964 1963) +4(1054 1055 1146 1145) +4(1145 1146 1237 1236) +4(1236 1237 1328 1327) +4(1327 1328 1419 1418) +4(1418 1419 1510 1509) +4(1509 1510 1601 1600) +4(1600 1601 1692 1691) +4(1691 1692 1783 1782) +4(1782 1783 1874 1873) +4(1873 1874 1965 1964) +4(1055 1056 1147 1146) +4(1146 1147 1238 1237) +4(1237 1238 1329 1328) +4(1328 1329 1420 1419) +4(1419 1420 1511 1510) +4(1510 1511 1602 1601) +4(1601 1602 1693 1692) +4(1692 1693 1784 1783) +4(1783 1784 1875 1874) +4(1874 1875 1966 1965) +4(1056 1057 1148 1147) +4(1147 1148 1239 1238) +4(1238 1239 1330 1329) +4(1329 1330 1421 1420) +4(1420 1421 1512 1511) +4(1511 1512 1603 1602) +4(1602 1603 1694 1693) +4(1693 1694 1785 1784) +4(1784 1785 1876 1875) +4(1875 1876 1967 1966) +4(1057 1058 1149 1148) +4(1148 1149 1240 1239) +4(1239 1240 1331 1330) +4(1330 1331 1422 1421) +4(1421 1422 1513 1512) +4(1512 1513 1604 1603) +4(1603 1604 1695 1694) +4(1694 1695 1786 1785) +4(1785 1786 1877 1876) +4(1876 1877 1968 1967) +4(1058 1059 1150 1149) +4(1149 1150 1241 1240) +4(1240 1241 1332 1331) +4(1331 1332 1423 1422) +4(1422 1423 1514 1513) +4(1513 1514 1605 1604) +4(1604 1605 1696 1695) +4(1695 1696 1787 1786) +4(1786 1787 1878 1877) +4(1877 1878 1969 1968) +4(1059 1060 1151 1150) +4(1150 1151 1242 1241) +4(1241 1242 1333 1332) +4(1332 1333 1424 1423) +4(1423 1424 1515 1514) +4(1514 1515 1606 1605) +4(1605 1606 1697 1696) +4(1696 1697 1788 1787) +4(1787 1788 1879 1878) +4(1878 1879 1970 1969) +4(1060 1061 1152 1151) +4(1151 1152 1243 1242) +4(1242 1243 1334 1333) +4(1333 1334 1425 1424) +4(1424 1425 1516 1515) +4(1515 1516 1607 1606) +4(1606 1607 1698 1697) +4(1697 1698 1789 1788) +4(1788 1789 1880 1879) +4(1879 1880 1971 1970) +4(1061 1062 1153 1152) +4(1152 1153 1244 1243) +4(1243 1244 1335 1334) +4(1334 1335 1426 1425) +4(1425 1426 1517 1516) +4(1516 1517 1608 1607) +4(1607 1608 1699 1698) +4(1698 1699 1790 1789) +4(1789 1790 1881 1880) +4(1880 1881 1972 1971) +4(1062 1063 1154 1153) +4(1153 1154 1245 1244) +4(1244 1245 1336 1335) +4(1335 1336 1427 1426) +4(1426 1427 1518 1517) +4(1517 1518 1609 1608) +4(1608 1609 1700 1699) +4(1699 1700 1791 1790) +4(1790 1791 1882 1881) +4(1881 1882 1973 1972) +4(1063 1064 1155 1154) +4(1154 1155 1246 1245) +4(1245 1246 1337 1336) +4(1336 1337 1428 1427) +4(1427 1428 1519 1518) +4(1518 1519 1610 1609) +4(1609 1610 1701 1700) +4(1700 1701 1792 1791) +4(1791 1792 1883 1882) +4(1882 1883 1974 1973) +4(1064 1065 1156 1155) +4(1155 1156 1247 1246) +4(1246 1247 1338 1337) +4(1337 1338 1429 1428) +4(1428 1429 1520 1519) +4(1519 1520 1611 1610) +4(1610 1611 1702 1701) +4(1701 1702 1793 1792) +4(1792 1793 1884 1883) +4(1883 1884 1975 1974) +4(1065 1066 1157 1156) +4(1156 1157 1248 1247) +4(1247 1248 1339 1338) +4(1338 1339 1430 1429) +4(1429 1430 1521 1520) +4(1520 1521 1612 1611) +4(1611 1612 1703 1702) +4(1702 1703 1794 1793) +4(1793 1794 1885 1884) +4(1884 1885 1976 1975) +4(1066 1067 1158 1157) +4(1157 1158 1249 1248) +4(1248 1249 1340 1339) +4(1339 1340 1431 1430) +4(1430 1431 1522 1521) +4(1521 1522 1613 1612) +4(1612 1613 1704 1703) +4(1703 1704 1795 1794) +4(1794 1795 1886 1885) +4(1885 1886 1977 1976) +4(1067 1068 1159 1158) +4(1158 1159 1250 1249) +4(1249 1250 1341 1340) +4(1340 1341 1432 1431) +4(1431 1432 1523 1522) +4(1522 1523 1614 1613) +4(1613 1614 1705 1704) +4(1704 1705 1796 1795) +4(1795 1796 1887 1886) +4(1886 1887 1978 1977) +4(1068 1069 1160 1159) +4(1159 1160 1251 1250) +4(1250 1251 1342 1341) +4(1341 1342 1433 1432) +4(1432 1433 1524 1523) +4(1523 1524 1615 1614) +4(1614 1615 1706 1705) +4(1705 1706 1797 1796) +4(1796 1797 1888 1887) +4(1887 1888 1979 1978) +4(1069 1070 1161 1160) +4(1160 1161 1252 1251) +4(1251 1252 1343 1342) +4(1342 1343 1434 1433) +4(1433 1434 1525 1524) +4(1524 1525 1616 1615) +4(1615 1616 1707 1706) +4(1706 1707 1798 1797) +4(1797 1798 1889 1888) +4(1888 1889 1980 1979) +4(1070 1071 1162 1161) +4(1161 1162 1253 1252) +4(1252 1253 1344 1343) +4(1343 1344 1435 1434) +4(1434 1435 1526 1525) +4(1525 1526 1617 1616) +4(1616 1617 1708 1707) +4(1707 1708 1799 1798) +4(1798 1799 1890 1889) +4(1889 1890 1981 1980) +4(1071 1072 1163 1162) +4(1162 1163 1254 1253) +4(1253 1254 1345 1344) +4(1344 1345 1436 1435) +4(1435 1436 1527 1526) +4(1526 1527 1618 1617) +4(1617 1618 1709 1708) +4(1708 1709 1800 1799) +4(1799 1800 1891 1890) +4(1890 1891 1982 1981) +4(1072 1073 1164 1163) +4(1163 1164 1255 1254) +4(1254 1255 1346 1345) +4(1345 1346 1437 1436) +4(1436 1437 1528 1527) +4(1527 1528 1619 1618) +4(1618 1619 1710 1709) +4(1709 1710 1801 1800) +4(1800 1801 1892 1891) +4(1891 1892 1983 1982) +4(1073 1074 1165 1164) +4(1164 1165 1256 1255) +4(1255 1256 1347 1346) +4(1346 1347 1438 1437) +4(1437 1438 1529 1528) +4(1528 1529 1620 1619) +4(1619 1620 1711 1710) +4(1710 1711 1802 1801) +4(1801 1802 1893 1892) +4(1892 1893 1984 1983) +4(1074 1075 1166 1165) +4(1165 1166 1257 1256) +4(1256 1257 1348 1347) +4(1347 1348 1439 1438) +4(1438 1439 1530 1529) +4(1529 1530 1621 1620) +4(1620 1621 1712 1711) +4(1711 1712 1803 1802) +4(1802 1803 1894 1893) +4(1893 1894 1985 1984) +4(1075 1076 1167 1166) +4(1166 1167 1258 1257) +4(1257 1258 1349 1348) +4(1348 1349 1440 1439) +4(1439 1440 1531 1530) +4(1530 1531 1622 1621) +4(1621 1622 1713 1712) +4(1712 1713 1804 1803) +4(1803 1804 1895 1894) +4(1894 1895 1986 1985) +4(1076 1077 1168 1167) +4(1167 1168 1259 1258) +4(1258 1259 1350 1349) +4(1349 1350 1441 1440) +4(1440 1441 1532 1531) +4(1531 1532 1623 1622) +4(1622 1623 1714 1713) +4(1713 1714 1805 1804) +4(1804 1805 1896 1895) +4(1895 1896 1987 1986) +4(1077 1078 1169 1168) +4(1168 1169 1260 1259) +4(1259 1260 1351 1350) +4(1350 1351 1442 1441) +4(1441 1442 1533 1532) +4(1532 1533 1624 1623) +4(1623 1624 1715 1714) +4(1714 1715 1806 1805) +4(1805 1806 1897 1896) +4(1896 1897 1988 1987) +4(1078 1079 1170 1169) +4(1169 1170 1261 1260) +4(1260 1261 1352 1351) +4(1351 1352 1443 1442) +4(1442 1443 1534 1533) +4(1533 1534 1625 1624) +4(1624 1625 1716 1715) +4(1715 1716 1807 1806) +4(1806 1807 1898 1897) +4(1897 1898 1989 1988) +4(1079 1080 1171 1170) +4(1170 1171 1262 1261) +4(1261 1262 1353 1352) +4(1352 1353 1444 1443) +4(1443 1444 1535 1534) +4(1534 1535 1626 1625) +4(1625 1626 1717 1716) +4(1716 1717 1808 1807) +4(1807 1808 1899 1898) +4(1898 1899 1990 1989) +4(1080 1081 1172 1171) +4(1171 1172 1263 1262) +4(1262 1263 1354 1353) +4(1353 1354 1445 1444) +4(1444 1445 1536 1535) +4(1535 1536 1627 1626) +4(1626 1627 1718 1717) +4(1717 1718 1809 1808) +4(1808 1809 1900 1899) +4(1899 1900 1991 1990) +4(1081 1082 1173 1172) +4(1172 1173 1264 1263) +4(1263 1264 1355 1354) +4(1354 1355 1446 1445) +4(1445 1446 1537 1536) +4(1536 1537 1628 1627) +4(1627 1628 1719 1718) +4(1718 1719 1810 1809) +4(1809 1810 1901 1900) +4(1900 1901 1992 1991) +4(1082 1083 1174 1173) +4(1173 1174 1265 1264) +4(1264 1265 1356 1355) +4(1355 1356 1447 1446) +4(1446 1447 1538 1537) +4(1537 1538 1629 1628) +4(1628 1629 1720 1719) +4(1719 1720 1811 1810) +4(1810 1811 1902 1901) +4(1901 1902 1993 1992) +4(1083 1084 1175 1174) +4(1174 1175 1266 1265) +4(1265 1266 1357 1356) +4(1356 1357 1448 1447) +4(1447 1448 1539 1538) +4(1538 1539 1630 1629) +4(1629 1630 1721 1720) +4(1720 1721 1812 1811) +4(1811 1812 1903 1902) +4(1902 1903 1994 1993) +4(1084 1085 1176 1175) +4(1175 1176 1267 1266) +4(1266 1267 1358 1357) +4(1357 1358 1449 1448) +4(1448 1449 1540 1539) +4(1539 1540 1631 1630) +4(1630 1631 1722 1721) +4(1721 1722 1813 1812) +4(1812 1813 1904 1903) +4(1903 1904 1995 1994) +4(1085 1086 1177 1176) +4(1176 1177 1268 1267) +4(1267 1268 1359 1358) +4(1358 1359 1450 1449) +4(1449 1450 1541 1540) +4(1540 1541 1632 1631) +4(1631 1632 1723 1722) +4(1722 1723 1814 1813) +4(1813 1814 1905 1904) +4(1904 1905 1996 1995) +4(1086 1087 1178 1177) +4(1177 1178 1269 1268) +4(1268 1269 1360 1359) +4(1359 1360 1451 1450) +4(1450 1451 1542 1541) +4(1541 1542 1633 1632) +4(1632 1633 1724 1723) +4(1723 1724 1815 1814) +4(1814 1815 1906 1905) +4(1905 1906 1997 1996) +4(1087 1088 1179 1178) +4(1178 1179 1270 1269) +4(1269 1270 1361 1360) +4(1360 1361 1452 1451) +4(1451 1452 1543 1542) +4(1542 1543 1634 1633) +4(1633 1634 1725 1724) +4(1724 1725 1816 1815) +4(1815 1816 1907 1906) +4(1906 1907 1998 1997) +4(1088 1089 1180 1179) +4(1179 1180 1271 1270) +4(1270 1271 1362 1361) +4(1361 1362 1453 1452) +4(1452 1453 1544 1543) +4(1543 1544 1635 1634) +4(1634 1635 1726 1725) +4(1725 1726 1817 1816) +4(1816 1817 1908 1907) +4(1907 1908 1999 1998) +4(1089 1090 1181 1180) +4(1180 1181 1272 1271) +4(1271 1272 1363 1362) +4(1362 1363 1454 1453) +4(1453 1454 1545 1544) +4(1544 1545 1636 1635) +4(1635 1636 1727 1726) +4(1726 1727 1818 1817) +4(1817 1818 1909 1908) +4(1908 1909 2000 1999) +4(1090 1091 1182 1181) +4(1181 1182 1273 1272) +4(1272 1273 1364 1363) +4(1363 1364 1455 1454) +4(1454 1455 1546 1545) +4(1545 1546 1637 1636) +4(1636 1637 1728 1727) +4(1727 1728 1819 1818) +4(1818 1819 1910 1909) +4(1909 1910 2001 2000) +) + + +// ************************************************************************* // diff --git a/examples/RBCells/polyMesh/neighbour b/examples/RBCells/polyMesh/neighbour new file mode 100755 index 0000000..0f565f9 --- /dev/null +++ b/examples/RBCells/polyMesh/neighbour @@ -0,0 +1,1725 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1912 | +| \\ / A nd | Website: www.openfoam.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class labelList; + note "nPoints:2002 nCells:900 nFaces:3700 nInternalFaces:1700"; + location "constant/polyMesh"; + object neighbour; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + + +1700 +( +1 +90 +2 +91 +3 +92 +4 +93 +5 +94 +6 +95 +7 +96 +8 +97 +9 +98 +10 +99 +11 +100 +12 +101 +13 +102 +14 +103 +15 +104 +16 +105 +17 +106 +18 +107 +19 +108 +20 +109 +21 +110 +22 +111 +23 +112 +24 +113 +25 +114 +26 +115 +27 +116 +28 +117 +29 +118 +30 +119 +31 +120 +32 +121 +33 +122 +34 +123 +35 +124 +36 +125 +37 +126 +38 +127 +39 +128 +40 +129 +41 +130 +42 +131 +43 +132 +44 +133 +45 +134 +46 +135 +47 +136 +48 +137 +49 +138 +50 +139 +51 +140 +52 +141 +53 +142 +54 +143 +55 +144 +56 +145 +57 +146 +58 +147 +59 +148 +60 +149 +61 +150 +62 +151 +63 +152 +64 +153 +65 +154 +66 +155 +67 +156 +68 +157 +69 +158 +70 +159 +71 +160 +72 +161 +73 +162 +74 +163 +75 +164 +76 +165 +77 +166 +78 +167 +79 +168 +80 +169 +81 +170 +82 +171 +83 +172 +84 +173 +85 +174 +86 +175 +87 +176 +88 +177 +89 +178 +179 +91 +180 +92 +181 +93 +182 +94 +183 +95 +184 +96 +185 +97 +186 +98 +187 +99 +188 +100 +189 +101 +190 +102 +191 +103 +192 +104 +193 +105 +194 +106 +195 +107 +196 +108 +197 +109 +198 +110 +199 +111 +200 +112 +201 +113 +202 +114 +203 +115 +204 +116 +205 +117 +206 +118 +207 +119 +208 +120 +209 +121 +210 +122 +211 +123 +212 +124 +213 +125 +214 +126 +215 +127 +216 +128 +217 +129 +218 +130 +219 +131 +220 +132 +221 +133 +222 +134 +223 +135 +224 +136 +225 +137 +226 +138 +227 +139 +228 +140 +229 +141 +230 +142 +231 +143 +232 +144 +233 +145 +234 +146 +235 +147 +236 +148 +237 +149 +238 +150 +239 +151 +240 +152 +241 +153 +242 +154 +243 +155 +244 +156 +245 +157 +246 +158 +247 +159 +248 +160 +249 +161 +250 +162 +251 +163 +252 +164 +253 +165 +254 +166 +255 +167 +256 +168 +257 +169 +258 +170 +259 +171 +260 +172 +261 +173 +262 +174 +263 +175 +264 +176 +265 +177 +266 +178 +267 +179 +268 +269 +181 +270 +182 +271 +183 +272 +184 +273 +185 +274 +186 +275 +187 +276 +188 +277 +189 +278 +190 +279 +191 +280 +192 +281 +193 +282 +194 +283 +195 +284 +196 +285 +197 +286 +198 +287 +199 +288 +200 +289 +201 +290 +202 +291 +203 +292 +204 +293 +205 +294 +206 +295 +207 +296 +208 +297 +209 +298 +210 +299 +211 +300 +212 +301 +213 +302 +214 +303 +215 +304 +216 +305 +217 +306 +218 +307 +219 +308 +220 +309 +221 +310 +222 +311 +223 +312 +224 +313 +225 +314 +226 +315 +227 +316 +228 +317 +229 +318 +230 +319 +231 +320 +232 +321 +233 +322 +234 +323 +235 +324 +236 +325 +237 +326 +238 +327 +239 +328 +240 +329 +241 +330 +242 +331 +243 +332 +244 +333 +245 +334 +246 +335 +247 +336 +248 +337 +249 +338 +250 +339 +251 +340 +252 +341 +253 +342 +254 +343 +255 +344 +256 +345 +257 +346 +258 +347 +259 +348 +260 +349 +261 +350 +262 +351 +263 +352 +264 +353 +265 +354 +266 +355 +267 +356 +268 +357 +269 +358 +359 +271 +360 +272 +361 +273 +362 +274 +363 +275 +364 +276 +365 +277 +366 +278 +367 +279 +368 +280 +369 +281 +370 +282 +371 +283 +372 +284 +373 +285 +374 +286 +375 +287 +376 +288 +377 +289 +378 +290 +379 +291 +380 +292 +381 +293 +382 +294 +383 +295 +384 +296 +385 +297 +386 +298 +387 +299 +388 +300 +389 +301 +390 +302 +391 +303 +392 +304 +393 +305 +394 +306 +395 +307 +396 +308 +397 +309 +398 +310 +399 +311 +400 +312 +401 +313 +402 +314 +403 +315 +404 +316 +405 +317 +406 +318 +407 +319 +408 +320 +409 +321 +410 +322 +411 +323 +412 +324 +413 +325 +414 +326 +415 +327 +416 +328 +417 +329 +418 +330 +419 +331 +420 +332 +421 +333 +422 +334 +423 +335 +424 +336 +425 +337 +426 +338 +427 +339 +428 +340 +429 +341 +430 +342 +431 +343 +432 +344 +433 +345 +434 +346 +435 +347 +436 +348 +437 +349 +438 +350 +439 +351 +440 +352 +441 +353 +442 +354 +443 +355 +444 +356 +445 +357 +446 +358 +447 +359 +448 +449 +361 +450 +362 +451 +363 +452 +364 +453 +365 +454 +366 +455 +367 +456 +368 +457 +369 +458 +370 +459 +371 +460 +372 +461 +373 +462 +374 +463 +375 +464 +376 +465 +377 +466 +378 +467 +379 +468 +380 +469 +381 +470 +382 +471 +383 +472 +384 +473 +385 +474 +386 +475 +387 +476 +388 +477 +389 +478 +390 +479 +391 +480 +392 +481 +393 +482 +394 +483 +395 +484 +396 +485 +397 +486 +398 +487 +399 +488 +400 +489 +401 +490 +402 +491 +403 +492 +404 +493 +405 +494 +406 +495 +407 +496 +408 +497 +409 +498 +410 +499 +411 +500 +412 +501 +413 +502 +414 +503 +415 +504 +416 +505 +417 +506 +418 +507 +419 +508 +420 +509 +421 +510 +422 +511 +423 +512 +424 +513 +425 +514 +426 +515 +427 +516 +428 +517 +429 +518 +430 +519 +431 +520 +432 +521 +433 +522 +434 +523 +435 +524 +436 +525 +437 +526 +438 +527 +439 +528 +440 +529 +441 +530 +442 +531 +443 +532 +444 +533 +445 +534 +446 +535 +447 +536 +448 +537 +449 +538 +539 +451 +540 +452 +541 +453 +542 +454 +543 +455 +544 +456 +545 +457 +546 +458 +547 +459 +548 +460 +549 +461 +550 +462 +551 +463 +552 +464 +553 +465 +554 +466 +555 +467 +556 +468 +557 +469 +558 +470 +559 +471 +560 +472 +561 +473 +562 +474 +563 +475 +564 +476 +565 +477 +566 +478 +567 +479 +568 +480 +569 +481 +570 +482 +571 +483 +572 +484 +573 +485 +574 +486 +575 +487 +576 +488 +577 +489 +578 +490 +579 +491 +580 +492 +581 +493 +582 +494 +583 +495 +584 +496 +585 +497 +586 +498 +587 +499 +588 +500 +589 +501 +590 +502 +591 +503 +592 +504 +593 +505 +594 +506 +595 +507 +596 +508 +597 +509 +598 +510 +599 +511 +600 +512 +601 +513 +602 +514 +603 +515 +604 +516 +605 +517 +606 +518 +607 +519 +608 +520 +609 +521 +610 +522 +611 +523 +612 +524 +613 +525 +614 +526 +615 +527 +616 +528 +617 +529 +618 +530 +619 +531 +620 +532 +621 +533 +622 +534 +623 +535 +624 +536 +625 +537 +626 +538 +627 +539 +628 +629 +541 +630 +542 +631 +543 +632 +544 +633 +545 +634 +546 +635 +547 +636 +548 +637 +549 +638 +550 +639 +551 +640 +552 +641 +553 +642 +554 +643 +555 +644 +556 +645 +557 +646 +558 +647 +559 +648 +560 +649 +561 +650 +562 +651 +563 +652 +564 +653 +565 +654 +566 +655 +567 +656 +568 +657 +569 +658 +570 +659 +571 +660 +572 +661 +573 +662 +574 +663 +575 +664 +576 +665 +577 +666 +578 +667 +579 +668 +580 +669 +581 +670 +582 +671 +583 +672 +584 +673 +585 +674 +586 +675 +587 +676 +588 +677 +589 +678 +590 +679 +591 +680 +592 +681 +593 +682 +594 +683 +595 +684 +596 +685 +597 +686 +598 +687 +599 +688 +600 +689 +601 +690 +602 +691 +603 +692 +604 +693 +605 +694 +606 +695 +607 +696 +608 +697 +609 +698 +610 +699 +611 +700 +612 +701 +613 +702 +614 +703 +615 +704 +616 +705 +617 +706 +618 +707 +619 +708 +620 +709 +621 +710 +622 +711 +623 +712 +624 +713 +625 +714 +626 +715 +627 +716 +628 +717 +629 +718 +719 +631 +720 +632 +721 +633 +722 +634 +723 +635 +724 +636 +725 +637 +726 +638 +727 +639 +728 +640 +729 +641 +730 +642 +731 +643 +732 +644 +733 +645 +734 +646 +735 +647 +736 +648 +737 +649 +738 +650 +739 +651 +740 +652 +741 +653 +742 +654 +743 +655 +744 +656 +745 +657 +746 +658 +747 +659 +748 +660 +749 +661 +750 +662 +751 +663 +752 +664 +753 +665 +754 +666 +755 +667 +756 +668 +757 +669 +758 +670 +759 +671 +760 +672 +761 +673 +762 +674 +763 +675 +764 +676 +765 +677 +766 +678 +767 +679 +768 +680 +769 +681 +770 +682 +771 +683 +772 +684 +773 +685 +774 +686 +775 +687 +776 +688 +777 +689 +778 +690 +779 +691 +780 +692 +781 +693 +782 +694 +783 +695 +784 +696 +785 +697 +786 +698 +787 +699 +788 +700 +789 +701 +790 +702 +791 +703 +792 +704 +793 +705 +794 +706 +795 +707 +796 +708 +797 +709 +798 +710 +799 +711 +800 +712 +801 +713 +802 +714 +803 +715 +804 +716 +805 +717 +806 +718 +807 +719 +808 +809 +721 +810 +722 +811 +723 +812 +724 +813 +725 +814 +726 +815 +727 +816 +728 +817 +729 +818 +730 +819 +731 +820 +732 +821 +733 +822 +734 +823 +735 +824 +736 +825 +737 +826 +738 +827 +739 +828 +740 +829 +741 +830 +742 +831 +743 +832 +744 +833 +745 +834 +746 +835 +747 +836 +748 +837 +749 +838 +750 +839 +751 +840 +752 +841 +753 +842 +754 +843 +755 +844 +756 +845 +757 +846 +758 +847 +759 +848 +760 +849 +761 +850 +762 +851 +763 +852 +764 +853 +765 +854 +766 +855 +767 +856 +768 +857 +769 +858 +770 +859 +771 +860 +772 +861 +773 +862 +774 +863 +775 +864 +776 +865 +777 +866 +778 +867 +779 +868 +780 +869 +781 +870 +782 +871 +783 +872 +784 +873 +785 +874 +786 +875 +787 +876 +788 +877 +789 +878 +790 +879 +791 +880 +792 +881 +793 +882 +794 +883 +795 +884 +796 +885 +797 +886 +798 +887 +799 +888 +800 +889 +801 +890 +802 +891 +803 +892 +804 +893 +805 +894 +806 +895 +807 +896 +808 +897 +809 +898 +899 +811 +812 +813 +814 +815 +816 +817 +818 +819 +820 +821 +822 +823 +824 +825 +826 +827 +828 +829 +830 +831 +832 +833 +834 +835 +836 +837 +838 +839 +840 +841 +842 +843 +844 +845 +846 +847 +848 +849 +850 +851 +852 +853 +854 +855 +856 +857 +858 +859 +860 +861 +862 +863 +864 +865 +866 +867 +868 +869 +870 +871 +872 +873 +874 +875 +876 +877 +878 +879 +880 +881 +882 +883 +884 +885 +886 +887 +888 +889 +890 +891 +892 +893 +894 +895 +896 +897 +898 +899 +) + + +// ************************************************************************* // diff --git a/examples/RBCells/polyMesh/owner b/examples/RBCells/polyMesh/owner new file mode 100755 index 0000000..3810fdb --- /dev/null +++ b/examples/RBCells/polyMesh/owner @@ -0,0 +1,3725 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1912 | +| \\ / A nd | Website: www.openfoam.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class labelList; + note "nPoints:2002 nCells:900 nFaces:3700 nInternalFaces:1700"; + location "constant/polyMesh"; + object owner; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + + +3700 +( +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 +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 +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 +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 +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 +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 +270 +270 +271 +271 +272 +272 +273 +273 +274 +274 +275 +275 +276 +276 +277 +277 +278 +278 +279 +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 +349 +350 +350 +351 +351 +352 +352 +353 +353 +354 +354 +355 +355 +356 +356 +357 +357 +358 +358 +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 +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 +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 +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 +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 +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 +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 +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 +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 +810 +811 +812 +813 +814 +815 +816 +817 +818 +819 +820 +821 +822 +823 +824 +825 +826 +827 +828 +829 +830 +831 +832 +833 +834 +835 +836 +837 +838 +839 +840 +841 +842 +843 +844 +845 +846 +847 +848 +849 +850 +851 +852 +853 +854 +855 +856 +857 +858 +859 +860 +861 +862 +863 +864 +865 +866 +867 +868 +869 +870 +871 +872 +873 +874 +875 +876 +877 +878 +879 +880 +881 +882 +883 +884 +885 +886 +887 +888 +889 +890 +891 +892 +893 +894 +895 +896 +897 +898 +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 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +810 +811 +812 +813 +814 +815 +816 +817 +818 +819 +820 +821 +822 +823 +824 +825 +826 +827 +828 +829 +830 +831 +832 +833 +834 +835 +836 +837 +838 +839 +840 +841 +842 +843 +844 +845 +846 +847 +848 +849 +850 +851 +852 +853 +854 +855 +856 +857 +858 +859 +860 +861 +862 +863 +864 +865 +866 +867 +868 +869 +870 +871 +872 +873 +874 +875 +876 +877 +878 +879 +880 +881 +882 +883 +884 +885 +886 +887 +888 +889 +890 +891 +892 +893 +894 +895 +896 +897 +898 +899 +0 +90 +180 +270 +360 +450 +540 +630 +720 +810 +89 +179 +269 +359 +449 +539 +629 +719 +809 +899 +0 +90 +180 +270 +360 +450 +540 +630 +720 +810 +1 +91 +181 +271 +361 +451 +541 +631 +721 +811 +2 +92 +182 +272 +362 +452 +542 +632 +722 +812 +3 +93 +183 +273 +363 +453 +543 +633 +723 +813 +4 +94 +184 +274 +364 +454 +544 +634 +724 +814 +5 +95 +185 +275 +365 +455 +545 +635 +725 +815 +6 +96 +186 +276 +366 +456 +546 +636 +726 +816 +7 +97 +187 +277 +367 +457 +547 +637 +727 +817 +8 +98 +188 +278 +368 +458 +548 +638 +728 +818 +9 +99 +189 +279 +369 +459 +549 +639 +729 +819 +10 +100 +190 +280 +370 +460 +550 +640 +730 +820 +11 +101 +191 +281 +371 +461 +551 +641 +731 +821 +12 +102 +192 +282 +372 +462 +552 +642 +732 +822 +13 +103 +193 +283 +373 +463 +553 +643 +733 +823 +14 +104 +194 +284 +374 +464 +554 +644 +734 +824 +15 +105 +195 +285 +375 +465 +555 +645 +735 +825 +16 +106 +196 +286 +376 +466 +556 +646 +736 +826 +17 +107 +197 +287 +377 +467 +557 +647 +737 +827 +18 +108 +198 +288 +378 +468 +558 +648 +738 +828 +19 +109 +199 +289 +379 +469 +559 +649 +739 +829 +20 +110 +200 +290 +380 +470 +560 +650 +740 +830 +21 +111 +201 +291 +381 +471 +561 +651 +741 +831 +22 +112 +202 +292 +382 +472 +562 +652 +742 +832 +23 +113 +203 +293 +383 +473 +563 +653 +743 +833 +24 +114 +204 +294 +384 +474 +564 +654 +744 +834 +25 +115 +205 +295 +385 +475 +565 +655 +745 +835 +26 +116 +206 +296 +386 +476 +566 +656 +746 +836 +27 +117 +207 +297 +387 +477 +567 +657 +747 +837 +28 +118 +208 +298 +388 +478 +568 +658 +748 +838 +29 +119 +209 +299 +389 +479 +569 +659 +749 +839 +30 +120 +210 +300 +390 +480 +570 +660 +750 +840 +31 +121 +211 +301 +391 +481 +571 +661 +751 +841 +32 +122 +212 +302 +392 +482 +572 +662 +752 +842 +33 +123 +213 +303 +393 +483 +573 +663 +753 +843 +34 +124 +214 +304 +394 +484 +574 +664 +754 +844 +35 +125 +215 +305 +395 +485 +575 +665 +755 +845 +36 +126 +216 +306 +396 +486 +576 +666 +756 +846 +37 +127 +217 +307 +397 +487 +577 +667 +757 +847 +38 +128 +218 +308 +398 +488 +578 +668 +758 +848 +39 +129 +219 +309 +399 +489 +579 +669 +759 +849 +40 +130 +220 +310 +400 +490 +580 +670 +760 +850 +41 +131 +221 +311 +401 +491 +581 +671 +761 +851 +42 +132 +222 +312 +402 +492 +582 +672 +762 +852 +43 +133 +223 +313 +403 +493 +583 +673 +763 +853 +44 +134 +224 +314 +404 +494 +584 +674 +764 +854 +45 +135 +225 +315 +405 +495 +585 +675 +765 +855 +46 +136 +226 +316 +406 +496 +586 +676 +766 +856 +47 +137 +227 +317 +407 +497 +587 +677 +767 +857 +48 +138 +228 +318 +408 +498 +588 +678 +768 +858 +49 +139 +229 +319 +409 +499 +589 +679 +769 +859 +50 +140 +230 +320 +410 +500 +590 +680 +770 +860 +51 +141 +231 +321 +411 +501 +591 +681 +771 +861 +52 +142 +232 +322 +412 +502 +592 +682 +772 +862 +53 +143 +233 +323 +413 +503 +593 +683 +773 +863 +54 +144 +234 +324 +414 +504 +594 +684 +774 +864 +55 +145 +235 +325 +415 +505 +595 +685 +775 +865 +56 +146 +236 +326 +416 +506 +596 +686 +776 +866 +57 +147 +237 +327 +417 +507 +597 +687 +777 +867 +58 +148 +238 +328 +418 +508 +598 +688 +778 +868 +59 +149 +239 +329 +419 +509 +599 +689 +779 +869 +60 +150 +240 +330 +420 +510 +600 +690 +780 +870 +61 +151 +241 +331 +421 +511 +601 +691 +781 +871 +62 +152 +242 +332 +422 +512 +602 +692 +782 +872 +63 +153 +243 +333 +423 +513 +603 +693 +783 +873 +64 +154 +244 +334 +424 +514 +604 +694 +784 +874 +65 +155 +245 +335 +425 +515 +605 +695 +785 +875 +66 +156 +246 +336 +426 +516 +606 +696 +786 +876 +67 +157 +247 +337 +427 +517 +607 +697 +787 +877 +68 +158 +248 +338 +428 +518 +608 +698 +788 +878 +69 +159 +249 +339 +429 +519 +609 +699 +789 +879 +70 +160 +250 +340 +430 +520 +610 +700 +790 +880 +71 +161 +251 +341 +431 +521 +611 +701 +791 +881 +72 +162 +252 +342 +432 +522 +612 +702 +792 +882 +73 +163 +253 +343 +433 +523 +613 +703 +793 +883 +74 +164 +254 +344 +434 +524 +614 +704 +794 +884 +75 +165 +255 +345 +435 +525 +615 +705 +795 +885 +76 +166 +256 +346 +436 +526 +616 +706 +796 +886 +77 +167 +257 +347 +437 +527 +617 +707 +797 +887 +78 +168 +258 +348 +438 +528 +618 +708 +798 +888 +79 +169 +259 +349 +439 +529 +619 +709 +799 +889 +80 +170 +260 +350 +440 +530 +620 +710 +800 +890 +81 +171 +261 +351 +441 +531 +621 +711 +801 +891 +82 +172 +262 +352 +442 +532 +622 +712 +802 +892 +83 +173 +263 +353 +443 +533 +623 +713 +803 +893 +84 +174 +264 +354 +444 +534 +624 +714 +804 +894 +85 +175 +265 +355 +445 +535 +625 +715 +805 +895 +86 +176 +266 +356 +446 +536 +626 +716 +806 +896 +87 +177 +267 +357 +447 +537 +627 +717 +807 +897 +88 +178 +268 +358 +448 +538 +628 +718 +808 +898 +89 +179 +269 +359 +449 +539 +629 +719 +809 +899 +0 +90 +180 +270 +360 +450 +540 +630 +720 +810 +1 +91 +181 +271 +361 +451 +541 +631 +721 +811 +2 +92 +182 +272 +362 +452 +542 +632 +722 +812 +3 +93 +183 +273 +363 +453 +543 +633 +723 +813 +4 +94 +184 +274 +364 +454 +544 +634 +724 +814 +5 +95 +185 +275 +365 +455 +545 +635 +725 +815 +6 +96 +186 +276 +366 +456 +546 +636 +726 +816 +7 +97 +187 +277 +367 +457 +547 +637 +727 +817 +8 +98 +188 +278 +368 +458 +548 +638 +728 +818 +9 +99 +189 +279 +369 +459 +549 +639 +729 +819 +10 +100 +190 +280 +370 +460 +550 +640 +730 +820 +11 +101 +191 +281 +371 +461 +551 +641 +731 +821 +12 +102 +192 +282 +372 +462 +552 +642 +732 +822 +13 +103 +193 +283 +373 +463 +553 +643 +733 +823 +14 +104 +194 +284 +374 +464 +554 +644 +734 +824 +15 +105 +195 +285 +375 +465 +555 +645 +735 +825 +16 +106 +196 +286 +376 +466 +556 +646 +736 +826 +17 +107 +197 +287 +377 +467 +557 +647 +737 +827 +18 +108 +198 +288 +378 +468 +558 +648 +738 +828 +19 +109 +199 +289 +379 +469 +559 +649 +739 +829 +20 +110 +200 +290 +380 +470 +560 +650 +740 +830 +21 +111 +201 +291 +381 +471 +561 +651 +741 +831 +22 +112 +202 +292 +382 +472 +562 +652 +742 +832 +23 +113 +203 +293 +383 +473 +563 +653 +743 +833 +24 +114 +204 +294 +384 +474 +564 +654 +744 +834 +25 +115 +205 +295 +385 +475 +565 +655 +745 +835 +26 +116 +206 +296 +386 +476 +566 +656 +746 +836 +27 +117 +207 +297 +387 +477 +567 +657 +747 +837 +28 +118 +208 +298 +388 +478 +568 +658 +748 +838 +29 +119 +209 +299 +389 +479 +569 +659 +749 +839 +30 +120 +210 +300 +390 +480 +570 +660 +750 +840 +31 +121 +211 +301 +391 +481 +571 +661 +751 +841 +32 +122 +212 +302 +392 +482 +572 +662 +752 +842 +33 +123 +213 +303 +393 +483 +573 +663 +753 +843 +34 +124 +214 +304 +394 +484 +574 +664 +754 +844 +35 +125 +215 +305 +395 +485 +575 +665 +755 +845 +36 +126 +216 +306 +396 +486 +576 +666 +756 +846 +37 +127 +217 +307 +397 +487 +577 +667 +757 +847 +38 +128 +218 +308 +398 +488 +578 +668 +758 +848 +39 +129 +219 +309 +399 +489 +579 +669 +759 +849 +40 +130 +220 +310 +400 +490 +580 +670 +760 +850 +41 +131 +221 +311 +401 +491 +581 +671 +761 +851 +42 +132 +222 +312 +402 +492 +582 +672 +762 +852 +43 +133 +223 +313 +403 +493 +583 +673 +763 +853 +44 +134 +224 +314 +404 +494 +584 +674 +764 +854 +45 +135 +225 +315 +405 +495 +585 +675 +765 +855 +46 +136 +226 +316 +406 +496 +586 +676 +766 +856 +47 +137 +227 +317 +407 +497 +587 +677 +767 +857 +48 +138 +228 +318 +408 +498 +588 +678 +768 +858 +49 +139 +229 +319 +409 +499 +589 +679 +769 +859 +50 +140 +230 +320 +410 +500 +590 +680 +770 +860 +51 +141 +231 +321 +411 +501 +591 +681 +771 +861 +52 +142 +232 +322 +412 +502 +592 +682 +772 +862 +53 +143 +233 +323 +413 +503 +593 +683 +773 +863 +54 +144 +234 +324 +414 +504 +594 +684 +774 +864 +55 +145 +235 +325 +415 +505 +595 +685 +775 +865 +56 +146 +236 +326 +416 +506 +596 +686 +776 +866 +57 +147 +237 +327 +417 +507 +597 +687 +777 +867 +58 +148 +238 +328 +418 +508 +598 +688 +778 +868 +59 +149 +239 +329 +419 +509 +599 +689 +779 +869 +60 +150 +240 +330 +420 +510 +600 +690 +780 +870 +61 +151 +241 +331 +421 +511 +601 +691 +781 +871 +62 +152 +242 +332 +422 +512 +602 +692 +782 +872 +63 +153 +243 +333 +423 +513 +603 +693 +783 +873 +64 +154 +244 +334 +424 +514 +604 +694 +784 +874 +65 +155 +245 +335 +425 +515 +605 +695 +785 +875 +66 +156 +246 +336 +426 +516 +606 +696 +786 +876 +67 +157 +247 +337 +427 +517 +607 +697 +787 +877 +68 +158 +248 +338 +428 +518 +608 +698 +788 +878 +69 +159 +249 +339 +429 +519 +609 +699 +789 +879 +70 +160 +250 +340 +430 +520 +610 +700 +790 +880 +71 +161 +251 +341 +431 +521 +611 +701 +791 +881 +72 +162 +252 +342 +432 +522 +612 +702 +792 +882 +73 +163 +253 +343 +433 +523 +613 +703 +793 +883 +74 +164 +254 +344 +434 +524 +614 +704 +794 +884 +75 +165 +255 +345 +435 +525 +615 +705 +795 +885 +76 +166 +256 +346 +436 +526 +616 +706 +796 +886 +77 +167 +257 +347 +437 +527 +617 +707 +797 +887 +78 +168 +258 +348 +438 +528 +618 +708 +798 +888 +79 +169 +259 +349 +439 +529 +619 +709 +799 +889 +80 +170 +260 +350 +440 +530 +620 +710 +800 +890 +81 +171 +261 +351 +441 +531 +621 +711 +801 +891 +82 +172 +262 +352 +442 +532 +622 +712 +802 +892 +83 +173 +263 +353 +443 +533 +623 +713 +803 +893 +84 +174 +264 +354 +444 +534 +624 +714 +804 +894 +85 +175 +265 +355 +445 +535 +625 +715 +805 +895 +86 +176 +266 +356 +446 +536 +626 +716 +806 +896 +87 +177 +267 +357 +447 +537 +627 +717 +807 +897 +88 +178 +268 +358 +448 +538 +628 +718 +808 +898 +89 +179 +269 +359 +449 +539 +629 +719 +809 +899 +) + + +// ************************************************************************* // diff --git a/examples/RBCells/polyMesh/points b/examples/RBCells/polyMesh/points new file mode 100755 index 0000000..3cb1c44 --- /dev/null +++ b/examples/RBCells/polyMesh/points @@ -0,0 +1,2026 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1912 | +| \\ / A nd | Website: www.openfoam.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class vectorField; + location "constant/polyMesh"; + object points; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + + +2002 +( +(0 0 -1) +(0.1 0 -1) +(0.2 0 -1) +(0.3 0 -1) +(0.4 0 -1) +(0.5 0 -1) +(0.6 0 -1) +(0.7 0 -1) +(0.8 0 -1) +(0.9 0 -1) +(1 0 -1) +(1.1 0 -1) +(1.2 0 -1) +(1.3 0 -1) +(1.4 0 -1) +(1.5 0 -1) +(1.6 0 -1) +(1.7 0 -1) +(1.8 0 -1) +(1.9 0 -1) +(2 0 -1) +(2.1 0 -1) +(2.2 0 -1) +(2.3 0 -1) +(2.4 0 -1) +(2.5 0 -1) +(2.6 0 -1) +(2.7 0 -1) +(2.8 0 -1) +(2.9 0 -1) +(3 0 -1) +(3.1 0 -1) +(3.2 0 -1) +(3.3 0 -1) +(3.4 0 -1) +(3.5 0 -1) +(3.6 0 -1) +(3.7 0 -1) +(3.8 0 -1) +(3.9 0 -1) +(4 0 -1) +(4.1 0 -1) +(4.2 0 -1) +(4.3 0 -1) +(4.4 0 -1) +(4.5 0 -1) +(4.6 0 -1) +(4.7 0 -1) +(4.8 0 -1) +(4.9 0 -1) +(5 0 -1) +(5.1 0 -1) +(5.2 0 -1) +(5.3 0 -1) +(5.4 0 -1) +(5.5 0 -1) +(5.6 0 -1) +(5.7 0 -1) +(5.8 0 -1) +(5.9 0 -1) +(6 0 -1) +(6.1 0 -1) +(6.2 0 -1) +(6.3 0 -1) +(6.4 0 -1) +(6.5 0 -1) +(6.6 0 -1) +(6.7 0 -1) +(6.8 0 -1) +(6.9 0 -1) +(7 0 -1) +(7.1 0 -1) +(7.2 0 -1) +(7.3 0 -1) +(7.4 0 -1) +(7.5 0 -1) +(7.6 0 -1) +(7.7 0 -1) +(7.8 0 -1) +(7.9 0 -1) +(8 0 -1) +(8.1 0 -1) +(8.2 0 -1) +(8.3 0 -1) +(8.4 0 -1) +(8.5 0 -1) +(8.6 0 -1) +(8.7 0 -1) +(8.8 0 -1) +(8.9 0 -1) +(9 0 -1) +(0 0.1 -1) +(0.1 0.1 -1) +(0.2 0.1 -1) +(0.3 0.1 -1) +(0.4 0.1 -1) +(0.5 0.1 -1) +(0.6 0.1 -1) +(0.7 0.1 -1) +(0.8 0.1 -1) +(0.9 0.1 -1) +(1 0.1 -1) +(1.1 0.1 -1) +(1.2 0.1 -1) +(1.3 0.1 -1) +(1.4 0.1 -1) +(1.5 0.1 -1) +(1.6 0.1 -1) +(1.7 0.1 -1) +(1.8 0.1 -1) +(1.9 0.1 -1) +(2 0.1 -1) +(2.1 0.1 -1) +(2.2 0.1 -1) +(2.3 0.1 -1) +(2.4 0.1 -1) +(2.5 0.1 -1) +(2.6 0.1 -1) +(2.7 0.1 -1) +(2.8 0.1 -1) +(2.9 0.1 -1) +(3 0.1 -1) +(3.1 0.1 -1) +(3.2 0.1 -1) +(3.3 0.1 -1) +(3.4 0.1 -1) +(3.5 0.1 -1) +(3.6 0.1 -1) +(3.7 0.1 -1) +(3.8 0.1 -1) +(3.9 0.1 -1) +(4 0.1 -1) +(4.1 0.1 -1) +(4.2 0.1 -1) +(4.3 0.1 -1) +(4.4 0.1 -1) +(4.5 0.1 -1) +(4.6 0.1 -1) +(4.7 0.1 -1) +(4.8 0.1 -1) +(4.9 0.1 -1) +(5 0.1 -1) +(5.1 0.1 -1) +(5.2 0.1 -1) +(5.3 0.1 -1) +(5.4 0.1 -1) +(5.5 0.1 -1) +(5.6 0.1 -1) +(5.7 0.1 -1) +(5.8 0.1 -1) +(5.9 0.1 -1) +(6 0.1 -1) +(6.1 0.1 -1) +(6.2 0.1 -1) +(6.3 0.1 -1) +(6.4 0.1 -1) +(6.5 0.1 -1) +(6.6 0.1 -1) +(6.7 0.1 -1) +(6.8 0.1 -1) +(6.9 0.1 -1) +(7 0.1 -1) +(7.1 0.1 -1) +(7.2 0.1 -1) +(7.3 0.1 -1) +(7.4 0.1 -1) +(7.5 0.1 -1) +(7.6 0.1 -1) +(7.7 0.1 -1) +(7.8 0.1 -1) +(7.9 0.1 -1) +(8 0.1 -1) +(8.1 0.1 -1) +(8.2 0.1 -1) +(8.3 0.1 -1) +(8.4 0.1 -1) +(8.5 0.1 -1) +(8.6 0.1 -1) +(8.7 0.1 -1) +(8.8 0.1 -1) +(8.9 0.1 -1) +(9 0.1 -1) +(0 0.2 -1) +(0.1 0.2 -1) +(0.2 0.2 -1) +(0.3 0.2 -1) +(0.4 0.2 -1) +(0.5 0.2 -1) +(0.6 0.2 -1) +(0.7 0.2 -1) +(0.8 0.2 -1) +(0.9 0.2 -1) +(1 0.2 -1) +(1.1 0.2 -1) +(1.2 0.2 -1) +(1.3 0.2 -1) +(1.4 0.2 -1) +(1.5 0.2 -1) +(1.6 0.2 -1) +(1.7 0.2 -1) +(1.8 0.2 -1) +(1.9 0.2 -1) +(2 0.2 -1) +(2.1 0.2 -1) +(2.2 0.2 -1) +(2.3 0.2 -1) +(2.4 0.2 -1) +(2.5 0.2 -1) +(2.6 0.2 -1) +(2.7 0.2 -1) +(2.8 0.2 -1) +(2.9 0.2 -1) +(3 0.2 -1) +(3.1 0.2 -1) +(3.2 0.2 -1) +(3.3 0.2 -1) +(3.4 0.2 -1) +(3.5 0.2 -1) +(3.6 0.2 -1) +(3.7 0.2 -1) +(3.8 0.2 -1) +(3.9 0.2 -1) +(4 0.2 -1) +(4.1 0.2 -1) +(4.2 0.2 -1) +(4.3 0.2 -1) +(4.4 0.2 -1) +(4.5 0.2 -1) +(4.6 0.2 -1) +(4.7 0.2 -1) +(4.8 0.2 -1) +(4.9 0.2 -1) +(5 0.2 -1) +(5.1 0.2 -1) +(5.2 0.2 -1) +(5.3 0.2 -1) +(5.4 0.2 -1) +(5.5 0.2 -1) +(5.6 0.2 -1) +(5.7 0.2 -1) +(5.8 0.2 -1) +(5.9 0.2 -1) +(6 0.2 -1) +(6.1 0.2 -1) +(6.2 0.2 -1) +(6.3 0.2 -1) +(6.4 0.2 -1) +(6.5 0.2 -1) +(6.6 0.2 -1) +(6.7 0.2 -1) +(6.8 0.2 -1) +(6.9 0.2 -1) +(7 0.2 -1) +(7.1 0.2 -1) +(7.2 0.2 -1) +(7.3 0.2 -1) +(7.4 0.2 -1) +(7.5 0.2 -1) +(7.6 0.2 -1) +(7.7 0.2 -1) +(7.8 0.2 -1) +(7.9 0.2 -1) +(8 0.2 -1) +(8.1 0.2 -1) +(8.2 0.2 -1) +(8.3 0.2 -1) +(8.4 0.2 -1) +(8.5 0.2 -1) +(8.6 0.2 -1) +(8.7 0.2 -1) +(8.8 0.2 -1) +(8.9 0.2 -1) +(9 0.2 -1) +(0 0.3 -1) +(0.1 0.3 -1) +(0.2 0.3 -1) +(0.3 0.3 -1) +(0.4 0.3 -1) +(0.5 0.3 -1) +(0.6 0.3 -1) +(0.7 0.3 -1) +(0.8 0.3 -1) +(0.9 0.3 -1) +(1 0.3 -1) +(1.1 0.3 -1) +(1.2 0.3 -1) +(1.3 0.3 -1) +(1.4 0.3 -1) +(1.5 0.3 -1) +(1.6 0.3 -1) +(1.7 0.3 -1) +(1.8 0.3 -1) +(1.9 0.3 -1) +(2 0.3 -1) +(2.1 0.3 -1) +(2.2 0.3 -1) +(2.3 0.3 -1) +(2.4 0.3 -1) +(2.5 0.3 -1) +(2.6 0.3 -1) +(2.7 0.3 -1) +(2.8 0.3 -1) +(2.9 0.3 -1) +(3 0.3 -1) +(3.1 0.3 -1) +(3.2 0.3 -1) +(3.3 0.3 -1) +(3.4 0.3 -1) +(3.5 0.3 -1) +(3.6 0.3 -1) +(3.7 0.3 -1) +(3.8 0.3 -1) +(3.9 0.3 -1) +(4 0.3 -1) +(4.1 0.3 -1) +(4.2 0.3 -1) +(4.3 0.3 -1) +(4.4 0.3 -1) +(4.5 0.3 -1) +(4.6 0.3 -1) +(4.7 0.3 -1) +(4.8 0.3 -1) +(4.9 0.3 -1) +(5 0.3 -1) +(5.1 0.3 -1) +(5.2 0.3 -1) +(5.3 0.3 -1) +(5.4 0.3 -1) +(5.5 0.3 -1) +(5.6 0.3 -1) +(5.7 0.3 -1) +(5.8 0.3 -1) +(5.9 0.3 -1) +(6 0.3 -1) +(6.1 0.3 -1) +(6.2 0.3 -1) +(6.3 0.3 -1) +(6.4 0.3 -1) +(6.5 0.3 -1) +(6.6 0.3 -1) +(6.7 0.3 -1) +(6.8 0.3 -1) +(6.9 0.3 -1) +(7 0.3 -1) +(7.1 0.3 -1) +(7.2 0.3 -1) +(7.3 0.3 -1) +(7.4 0.3 -1) +(7.5 0.3 -1) +(7.6 0.3 -1) +(7.7 0.3 -1) +(7.8 0.3 -1) +(7.9 0.3 -1) +(8 0.3 -1) +(8.1 0.3 -1) +(8.2 0.3 -1) +(8.3 0.3 -1) +(8.4 0.3 -1) +(8.5 0.3 -1) +(8.6 0.3 -1) +(8.7 0.3 -1) +(8.8 0.3 -1) +(8.9 0.3 -1) +(9 0.3 -1) +(0 0.4 -1) +(0.1 0.4 -1) +(0.2 0.4 -1) +(0.3 0.4 -1) +(0.4 0.4 -1) +(0.5 0.4 -1) +(0.6 0.4 -1) +(0.7 0.4 -1) +(0.8 0.4 -1) +(0.9 0.4 -1) +(1 0.4 -1) +(1.1 0.4 -1) +(1.2 0.4 -1) +(1.3 0.4 -1) +(1.4 0.4 -1) +(1.5 0.4 -1) +(1.6 0.4 -1) +(1.7 0.4 -1) +(1.8 0.4 -1) +(1.9 0.4 -1) +(2 0.4 -1) +(2.1 0.4 -1) +(2.2 0.4 -1) +(2.3 0.4 -1) +(2.4 0.4 -1) +(2.5 0.4 -1) +(2.6 0.4 -1) +(2.7 0.4 -1) +(2.8 0.4 -1) +(2.9 0.4 -1) +(3 0.4 -1) +(3.1 0.4 -1) +(3.2 0.4 -1) +(3.3 0.4 -1) +(3.4 0.4 -1) +(3.5 0.4 -1) +(3.6 0.4 -1) +(3.7 0.4 -1) +(3.8 0.4 -1) +(3.9 0.4 -1) +(4 0.4 -1) +(4.1 0.4 -1) +(4.2 0.4 -1) +(4.3 0.4 -1) +(4.4 0.4 -1) +(4.5 0.4 -1) +(4.6 0.4 -1) +(4.7 0.4 -1) +(4.8 0.4 -1) +(4.9 0.4 -1) +(5 0.4 -1) +(5.1 0.4 -1) +(5.2 0.4 -1) +(5.3 0.4 -1) +(5.4 0.4 -1) +(5.5 0.4 -1) +(5.6 0.4 -1) +(5.7 0.4 -1) +(5.8 0.4 -1) +(5.9 0.4 -1) +(6 0.4 -1) +(6.1 0.4 -1) +(6.2 0.4 -1) +(6.3 0.4 -1) +(6.4 0.4 -1) +(6.5 0.4 -1) +(6.6 0.4 -1) +(6.7 0.4 -1) +(6.8 0.4 -1) +(6.9 0.4 -1) +(7 0.4 -1) +(7.1 0.4 -1) +(7.2 0.4 -1) +(7.3 0.4 -1) +(7.4 0.4 -1) +(7.5 0.4 -1) +(7.6 0.4 -1) +(7.7 0.4 -1) +(7.8 0.4 -1) +(7.9 0.4 -1) +(8 0.4 -1) +(8.1 0.4 -1) +(8.2 0.4 -1) +(8.3 0.4 -1) +(8.4 0.4 -1) +(8.5 0.4 -1) +(8.6 0.4 -1) +(8.7 0.4 -1) +(8.8 0.4 -1) +(8.9 0.4 -1) +(9 0.4 -1) +(0 0.5 -1) +(0.1 0.5 -1) +(0.2 0.5 -1) +(0.3 0.5 -1) +(0.4 0.5 -1) +(0.5 0.5 -1) +(0.6 0.5 -1) +(0.7 0.5 -1) +(0.8 0.5 -1) +(0.9 0.5 -1) +(1 0.5 -1) +(1.1 0.5 -1) +(1.2 0.5 -1) +(1.3 0.5 -1) +(1.4 0.5 -1) +(1.5 0.5 -1) +(1.6 0.5 -1) +(1.7 0.5 -1) +(1.8 0.5 -1) +(1.9 0.5 -1) +(2 0.5 -1) +(2.1 0.5 -1) +(2.2 0.5 -1) +(2.3 0.5 -1) +(2.4 0.5 -1) +(2.5 0.5 -1) +(2.6 0.5 -1) +(2.7 0.5 -1) +(2.8 0.5 -1) +(2.9 0.5 -1) +(3 0.5 -1) +(3.1 0.5 -1) +(3.2 0.5 -1) +(3.3 0.5 -1) +(3.4 0.5 -1) +(3.5 0.5 -1) +(3.6 0.5 -1) +(3.7 0.5 -1) +(3.8 0.5 -1) +(3.9 0.5 -1) +(4 0.5 -1) +(4.1 0.5 -1) +(4.2 0.5 -1) +(4.3 0.5 -1) +(4.4 0.5 -1) +(4.5 0.5 -1) +(4.6 0.5 -1) +(4.7 0.5 -1) +(4.8 0.5 -1) +(4.9 0.5 -1) +(5 0.5 -1) +(5.1 0.5 -1) +(5.2 0.5 -1) +(5.3 0.5 -1) +(5.4 0.5 -1) +(5.5 0.5 -1) +(5.6 0.5 -1) +(5.7 0.5 -1) +(5.8 0.5 -1) +(5.9 0.5 -1) +(6 0.5 -1) +(6.1 0.5 -1) +(6.2 0.5 -1) +(6.3 0.5 -1) +(6.4 0.5 -1) +(6.5 0.5 -1) +(6.6 0.5 -1) +(6.7 0.5 -1) +(6.8 0.5 -1) +(6.9 0.5 -1) +(7 0.5 -1) +(7.1 0.5 -1) +(7.2 0.5 -1) +(7.3 0.5 -1) +(7.4 0.5 -1) +(7.5 0.5 -1) +(7.6 0.5 -1) +(7.7 0.5 -1) +(7.8 0.5 -1) +(7.9 0.5 -1) +(8 0.5 -1) +(8.1 0.5 -1) +(8.2 0.5 -1) +(8.3 0.5 -1) +(8.4 0.5 -1) +(8.5 0.5 -1) +(8.6 0.5 -1) +(8.7 0.5 -1) +(8.8 0.5 -1) +(8.9 0.5 -1) +(9 0.5 -1) +(0 0.6 -1) +(0.1 0.6 -1) +(0.2 0.6 -1) +(0.3 0.6 -1) +(0.4 0.6 -1) +(0.5 0.6 -1) +(0.6 0.6 -1) +(0.7 0.6 -1) +(0.8 0.6 -1) +(0.9 0.6 -1) +(1 0.6 -1) +(1.1 0.6 -1) +(1.2 0.6 -1) +(1.3 0.6 -1) +(1.4 0.6 -1) +(1.5 0.6 -1) +(1.6 0.6 -1) +(1.7 0.6 -1) +(1.8 0.6 -1) +(1.9 0.6 -1) +(2 0.6 -1) +(2.1 0.6 -1) +(2.2 0.6 -1) +(2.3 0.6 -1) +(2.4 0.6 -1) +(2.5 0.6 -1) +(2.6 0.6 -1) +(2.7 0.6 -1) +(2.8 0.6 -1) +(2.9 0.6 -1) +(3 0.6 -1) +(3.1 0.6 -1) +(3.2 0.6 -1) +(3.3 0.6 -1) +(3.4 0.6 -1) +(3.5 0.6 -1) +(3.6 0.6 -1) +(3.7 0.6 -1) +(3.8 0.6 -1) +(3.9 0.6 -1) +(4 0.6 -1) +(4.1 0.6 -1) +(4.2 0.6 -1) +(4.3 0.6 -1) +(4.4 0.6 -1) +(4.5 0.6 -1) +(4.6 0.6 -1) +(4.7 0.6 -1) +(4.8 0.6 -1) +(4.9 0.6 -1) +(5 0.6 -1) +(5.1 0.6 -1) +(5.2 0.6 -1) +(5.3 0.6 -1) +(5.4 0.6 -1) +(5.5 0.6 -1) +(5.6 0.6 -1) +(5.7 0.6 -1) +(5.8 0.6 -1) +(5.9 0.6 -1) +(6 0.6 -1) +(6.1 0.6 -1) +(6.2 0.6 -1) +(6.3 0.6 -1) +(6.4 0.6 -1) +(6.5 0.6 -1) +(6.6 0.6 -1) +(6.7 0.6 -1) +(6.8 0.6 -1) +(6.9 0.6 -1) +(7 0.6 -1) +(7.1 0.6 -1) +(7.2 0.6 -1) +(7.3 0.6 -1) +(7.4 0.6 -1) +(7.5 0.6 -1) +(7.6 0.6 -1) +(7.7 0.6 -1) +(7.8 0.6 -1) +(7.9 0.6 -1) +(8 0.6 -1) +(8.1 0.6 -1) +(8.2 0.6 -1) +(8.3 0.6 -1) +(8.4 0.6 -1) +(8.5 0.6 -1) +(8.6 0.6 -1) +(8.7 0.6 -1) +(8.8 0.6 -1) +(8.9 0.6 -1) +(9 0.6 -1) +(0 0.7 -1) +(0.1 0.7 -1) +(0.2 0.7 -1) +(0.3 0.7 -1) +(0.4 0.7 -1) +(0.5 0.7 -1) +(0.6 0.7 -1) +(0.7 0.7 -1) +(0.8 0.7 -1) +(0.9 0.7 -1) +(1 0.7 -1) +(1.1 0.7 -1) +(1.2 0.7 -1) +(1.3 0.7 -1) +(1.4 0.7 -1) +(1.5 0.7 -1) +(1.6 0.7 -1) +(1.7 0.7 -1) +(1.8 0.7 -1) +(1.9 0.7 -1) +(2 0.7 -1) +(2.1 0.7 -1) +(2.2 0.7 -1) +(2.3 0.7 -1) +(2.4 0.7 -1) +(2.5 0.7 -1) +(2.6 0.7 -1) +(2.7 0.7 -1) +(2.8 0.7 -1) +(2.9 0.7 -1) +(3 0.7 -1) +(3.1 0.7 -1) +(3.2 0.7 -1) +(3.3 0.7 -1) +(3.4 0.7 -1) +(3.5 0.7 -1) +(3.6 0.7 -1) +(3.7 0.7 -1) +(3.8 0.7 -1) +(3.9 0.7 -1) +(4 0.7 -1) +(4.1 0.7 -1) +(4.2 0.7 -1) +(4.3 0.7 -1) +(4.4 0.7 -1) +(4.5 0.7 -1) +(4.6 0.7 -1) +(4.7 0.7 -1) +(4.8 0.7 -1) +(4.9 0.7 -1) +(5 0.7 -1) +(5.1 0.7 -1) +(5.2 0.7 -1) +(5.3 0.7 -1) +(5.4 0.7 -1) +(5.5 0.7 -1) +(5.6 0.7 -1) +(5.7 0.7 -1) +(5.8 0.7 -1) +(5.9 0.7 -1) +(6 0.7 -1) +(6.1 0.7 -1) +(6.2 0.7 -1) +(6.3 0.7 -1) +(6.4 0.7 -1) +(6.5 0.7 -1) +(6.6 0.7 -1) +(6.7 0.7 -1) +(6.8 0.7 -1) +(6.9 0.7 -1) +(7 0.7 -1) +(7.1 0.7 -1) +(7.2 0.7 -1) +(7.3 0.7 -1) +(7.4 0.7 -1) +(7.5 0.7 -1) +(7.6 0.7 -1) +(7.7 0.7 -1) +(7.8 0.7 -1) +(7.9 0.7 -1) +(8 0.7 -1) +(8.1 0.7 -1) +(8.2 0.7 -1) +(8.3 0.7 -1) +(8.4 0.7 -1) +(8.5 0.7 -1) +(8.6 0.7 -1) +(8.7 0.7 -1) +(8.8 0.7 -1) +(8.9 0.7 -1) +(9 0.7 -1) +(0 0.8 -1) +(0.1 0.8 -1) +(0.2 0.8 -1) +(0.3 0.8 -1) +(0.4 0.8 -1) +(0.5 0.8 -1) +(0.6 0.8 -1) +(0.7 0.8 -1) +(0.8 0.8 -1) +(0.9 0.8 -1) +(1 0.8 -1) +(1.1 0.8 -1) +(1.2 0.8 -1) +(1.3 0.8 -1) +(1.4 0.8 -1) +(1.5 0.8 -1) +(1.6 0.8 -1) +(1.7 0.8 -1) +(1.8 0.8 -1) +(1.9 0.8 -1) +(2 0.8 -1) +(2.1 0.8 -1) +(2.2 0.8 -1) +(2.3 0.8 -1) +(2.4 0.8 -1) +(2.5 0.8 -1) +(2.6 0.8 -1) +(2.7 0.8 -1) +(2.8 0.8 -1) +(2.9 0.8 -1) +(3 0.8 -1) +(3.1 0.8 -1) +(3.2 0.8 -1) +(3.3 0.8 -1) +(3.4 0.8 -1) +(3.5 0.8 -1) +(3.6 0.8 -1) +(3.7 0.8 -1) +(3.8 0.8 -1) +(3.9 0.8 -1) +(4 0.8 -1) +(4.1 0.8 -1) +(4.2 0.8 -1) +(4.3 0.8 -1) +(4.4 0.8 -1) +(4.5 0.8 -1) +(4.6 0.8 -1) +(4.7 0.8 -1) +(4.8 0.8 -1) +(4.9 0.8 -1) +(5 0.8 -1) +(5.1 0.8 -1) +(5.2 0.8 -1) +(5.3 0.8 -1) +(5.4 0.8 -1) +(5.5 0.8 -1) +(5.6 0.8 -1) +(5.7 0.8 -1) +(5.8 0.8 -1) +(5.9 0.8 -1) +(6 0.8 -1) +(6.1 0.8 -1) +(6.2 0.8 -1) +(6.3 0.8 -1) +(6.4 0.8 -1) +(6.5 0.8 -1) +(6.6 0.8 -1) +(6.7 0.8 -1) +(6.8 0.8 -1) +(6.9 0.8 -1) +(7 0.8 -1) +(7.1 0.8 -1) +(7.2 0.8 -1) +(7.3 0.8 -1) +(7.4 0.8 -1) +(7.5 0.8 -1) +(7.6 0.8 -1) +(7.7 0.8 -1) +(7.8 0.8 -1) +(7.9 0.8 -1) +(8 0.8 -1) +(8.1 0.8 -1) +(8.2 0.8 -1) +(8.3 0.8 -1) +(8.4 0.8 -1) +(8.5 0.8 -1) +(8.6 0.8 -1) +(8.7 0.8 -1) +(8.8 0.8 -1) +(8.9 0.8 -1) +(9 0.8 -1) +(0 0.9 -1) +(0.1 0.9 -1) +(0.2 0.9 -1) +(0.3 0.9 -1) +(0.4 0.9 -1) +(0.5 0.9 -1) +(0.6 0.9 -1) +(0.7 0.9 -1) +(0.8 0.9 -1) +(0.9 0.9 -1) +(1 0.9 -1) +(1.1 0.9 -1) +(1.2 0.9 -1) +(1.3 0.9 -1) +(1.4 0.9 -1) +(1.5 0.9 -1) +(1.6 0.9 -1) +(1.7 0.9 -1) +(1.8 0.9 -1) +(1.9 0.9 -1) +(2 0.9 -1) +(2.1 0.9 -1) +(2.2 0.9 -1) +(2.3 0.9 -1) +(2.4 0.9 -1) +(2.5 0.9 -1) +(2.6 0.9 -1) +(2.7 0.9 -1) +(2.8 0.9 -1) +(2.9 0.9 -1) +(3 0.9 -1) +(3.1 0.9 -1) +(3.2 0.9 -1) +(3.3 0.9 -1) +(3.4 0.9 -1) +(3.5 0.9 -1) +(3.6 0.9 -1) +(3.7 0.9 -1) +(3.8 0.9 -1) +(3.9 0.9 -1) +(4 0.9 -1) +(4.1 0.9 -1) +(4.2 0.9 -1) +(4.3 0.9 -1) +(4.4 0.9 -1) +(4.5 0.9 -1) +(4.6 0.9 -1) +(4.7 0.9 -1) +(4.8 0.9 -1) +(4.9 0.9 -1) +(5 0.9 -1) +(5.1 0.9 -1) +(5.2 0.9 -1) +(5.3 0.9 -1) +(5.4 0.9 -1) +(5.5 0.9 -1) +(5.6 0.9 -1) +(5.7 0.9 -1) +(5.8 0.9 -1) +(5.9 0.9 -1) +(6 0.9 -1) +(6.1 0.9 -1) +(6.2 0.9 -1) +(6.3 0.9 -1) +(6.4 0.9 -1) +(6.5 0.9 -1) +(6.6 0.9 -1) +(6.7 0.9 -1) +(6.8 0.9 -1) +(6.9 0.9 -1) +(7 0.9 -1) +(7.1 0.9 -1) +(7.2 0.9 -1) +(7.3 0.9 -1) +(7.4 0.9 -1) +(7.5 0.9 -1) +(7.6 0.9 -1) +(7.7 0.9 -1) +(7.8 0.9 -1) +(7.9 0.9 -1) +(8 0.9 -1) +(8.1 0.9 -1) +(8.2 0.9 -1) +(8.3 0.9 -1) +(8.4 0.9 -1) +(8.5 0.9 -1) +(8.6 0.9 -1) +(8.7 0.9 -1) +(8.8 0.9 -1) +(8.9 0.9 -1) +(9 0.9 -1) +(0 1 -1) +(0.1 1 -1) +(0.2 1 -1) +(0.3 1 -1) +(0.4 1 -1) +(0.5 1 -1) +(0.6 1 -1) +(0.7 1 -1) +(0.8 1 -1) +(0.9 1 -1) +(1 1 -1) +(1.1 1 -1) +(1.2 1 -1) +(1.3 1 -1) +(1.4 1 -1) +(1.5 1 -1) +(1.6 1 -1) +(1.7 1 -1) +(1.8 1 -1) +(1.9 1 -1) +(2 1 -1) +(2.1 1 -1) +(2.2 1 -1) +(2.3 1 -1) +(2.4 1 -1) +(2.5 1 -1) +(2.6 1 -1) +(2.7 1 -1) +(2.8 1 -1) +(2.9 1 -1) +(3 1 -1) +(3.1 1 -1) +(3.2 1 -1) +(3.3 1 -1) +(3.4 1 -1) +(3.5 1 -1) +(3.6 1 -1) +(3.7 1 -1) +(3.8 1 -1) +(3.9 1 -1) +(4 1 -1) +(4.1 1 -1) +(4.2 1 -1) +(4.3 1 -1) +(4.4 1 -1) +(4.5 1 -1) +(4.6 1 -1) +(4.7 1 -1) +(4.8 1 -1) +(4.9 1 -1) +(5 1 -1) +(5.1 1 -1) +(5.2 1 -1) +(5.3 1 -1) +(5.4 1 -1) +(5.5 1 -1) +(5.6 1 -1) +(5.7 1 -1) +(5.8 1 -1) +(5.9 1 -1) +(6 1 -1) +(6.1 1 -1) +(6.2 1 -1) +(6.3 1 -1) +(6.4 1 -1) +(6.5 1 -1) +(6.6 1 -1) +(6.7 1 -1) +(6.8 1 -1) +(6.9 1 -1) +(7 1 -1) +(7.1 1 -1) +(7.2 1 -1) +(7.3 1 -1) +(7.4 1 -1) +(7.5 1 -1) +(7.6 1 -1) +(7.7 1 -1) +(7.8 1 -1) +(7.9 1 -1) +(8 1 -1) +(8.1 1 -1) +(8.2 1 -1) +(8.3 1 -1) +(8.4 1 -1) +(8.5 1 -1) +(8.6 1 -1) +(8.7 1 -1) +(8.8 1 -1) +(8.9 1 -1) +(9 1 -1) +(0 0 1) +(0.1 0 1) +(0.2 0 1) +(0.3 0 1) +(0.4 0 1) +(0.5 0 1) +(0.6 0 1) +(0.7 0 1) +(0.8 0 1) +(0.9 0 1) +(1 0 1) +(1.1 0 1) +(1.2 0 1) +(1.3 0 1) +(1.4 0 1) +(1.5 0 1) +(1.6 0 1) +(1.7 0 1) +(1.8 0 1) +(1.9 0 1) +(2 0 1) +(2.1 0 1) +(2.2 0 1) +(2.3 0 1) +(2.4 0 1) +(2.5 0 1) +(2.6 0 1) +(2.7 0 1) +(2.8 0 1) +(2.9 0 1) +(3 0 1) +(3.1 0 1) +(3.2 0 1) +(3.3 0 1) +(3.4 0 1) +(3.5 0 1) +(3.6 0 1) +(3.7 0 1) +(3.8 0 1) +(3.9 0 1) +(4 0 1) +(4.1 0 1) +(4.2 0 1) +(4.3 0 1) +(4.4 0 1) +(4.5 0 1) +(4.6 0 1) +(4.7 0 1) +(4.8 0 1) +(4.9 0 1) +(5 0 1) +(5.1 0 1) +(5.2 0 1) +(5.3 0 1) +(5.4 0 1) +(5.5 0 1) +(5.6 0 1) +(5.7 0 1) +(5.8 0 1) +(5.9 0 1) +(6 0 1) +(6.1 0 1) +(6.2 0 1) +(6.3 0 1) +(6.4 0 1) +(6.5 0 1) +(6.6 0 1) +(6.7 0 1) +(6.8 0 1) +(6.9 0 1) +(7 0 1) +(7.1 0 1) +(7.2 0 1) +(7.3 0 1) +(7.4 0 1) +(7.5 0 1) +(7.6 0 1) +(7.7 0 1) +(7.8 0 1) +(7.9 0 1) +(8 0 1) +(8.1 0 1) +(8.2 0 1) +(8.3 0 1) +(8.4 0 1) +(8.5 0 1) +(8.6 0 1) +(8.7 0 1) +(8.8 0 1) +(8.9 0 1) +(9 0 1) +(0 0.1 1) +(0.1 0.1 1) +(0.2 0.1 1) +(0.3 0.1 1) +(0.4 0.1 1) +(0.5 0.1 1) +(0.6 0.1 1) +(0.7 0.1 1) +(0.8 0.1 1) +(0.9 0.1 1) +(1 0.1 1) +(1.1 0.1 1) +(1.2 0.1 1) +(1.3 0.1 1) +(1.4 0.1 1) +(1.5 0.1 1) +(1.6 0.1 1) +(1.7 0.1 1) +(1.8 0.1 1) +(1.9 0.1 1) +(2 0.1 1) +(2.1 0.1 1) +(2.2 0.1 1) +(2.3 0.1 1) +(2.4 0.1 1) +(2.5 0.1 1) +(2.6 0.1 1) +(2.7 0.1 1) +(2.8 0.1 1) +(2.9 0.1 1) +(3 0.1 1) +(3.1 0.1 1) +(3.2 0.1 1) +(3.3 0.1 1) +(3.4 0.1 1) +(3.5 0.1 1) +(3.6 0.1 1) +(3.7 0.1 1) +(3.8 0.1 1) +(3.9 0.1 1) +(4 0.1 1) +(4.1 0.1 1) +(4.2 0.1 1) +(4.3 0.1 1) +(4.4 0.1 1) +(4.5 0.1 1) +(4.6 0.1 1) +(4.7 0.1 1) +(4.8 0.1 1) +(4.9 0.1 1) +(5 0.1 1) +(5.1 0.1 1) +(5.2 0.1 1) +(5.3 0.1 1) +(5.4 0.1 1) +(5.5 0.1 1) +(5.6 0.1 1) +(5.7 0.1 1) +(5.8 0.1 1) +(5.9 0.1 1) +(6 0.1 1) +(6.1 0.1 1) +(6.2 0.1 1) +(6.3 0.1 1) +(6.4 0.1 1) +(6.5 0.1 1) +(6.6 0.1 1) +(6.7 0.1 1) +(6.8 0.1 1) +(6.9 0.1 1) +(7 0.1 1) +(7.1 0.1 1) +(7.2 0.1 1) +(7.3 0.1 1) +(7.4 0.1 1) +(7.5 0.1 1) +(7.6 0.1 1) +(7.7 0.1 1) +(7.8 0.1 1) +(7.9 0.1 1) +(8 0.1 1) +(8.1 0.1 1) +(8.2 0.1 1) +(8.3 0.1 1) +(8.4 0.1 1) +(8.5 0.1 1) +(8.6 0.1 1) +(8.7 0.1 1) +(8.8 0.1 1) +(8.9 0.1 1) +(9 0.1 1) +(0 0.2 1) +(0.1 0.2 1) +(0.2 0.2 1) +(0.3 0.2 1) +(0.4 0.2 1) +(0.5 0.2 1) +(0.6 0.2 1) +(0.7 0.2 1) +(0.8 0.2 1) +(0.9 0.2 1) +(1 0.2 1) +(1.1 0.2 1) +(1.2 0.2 1) +(1.3 0.2 1) +(1.4 0.2 1) +(1.5 0.2 1) +(1.6 0.2 1) +(1.7 0.2 1) +(1.8 0.2 1) +(1.9 0.2 1) +(2 0.2 1) +(2.1 0.2 1) +(2.2 0.2 1) +(2.3 0.2 1) +(2.4 0.2 1) +(2.5 0.2 1) +(2.6 0.2 1) +(2.7 0.2 1) +(2.8 0.2 1) +(2.9 0.2 1) +(3 0.2 1) +(3.1 0.2 1) +(3.2 0.2 1) +(3.3 0.2 1) +(3.4 0.2 1) +(3.5 0.2 1) +(3.6 0.2 1) +(3.7 0.2 1) +(3.8 0.2 1) +(3.9 0.2 1) +(4 0.2 1) +(4.1 0.2 1) +(4.2 0.2 1) +(4.3 0.2 1) +(4.4 0.2 1) +(4.5 0.2 1) +(4.6 0.2 1) +(4.7 0.2 1) +(4.8 0.2 1) +(4.9 0.2 1) +(5 0.2 1) +(5.1 0.2 1) +(5.2 0.2 1) +(5.3 0.2 1) +(5.4 0.2 1) +(5.5 0.2 1) +(5.6 0.2 1) +(5.7 0.2 1) +(5.8 0.2 1) +(5.9 0.2 1) +(6 0.2 1) +(6.1 0.2 1) +(6.2 0.2 1) +(6.3 0.2 1) +(6.4 0.2 1) +(6.5 0.2 1) +(6.6 0.2 1) +(6.7 0.2 1) +(6.8 0.2 1) +(6.9 0.2 1) +(7 0.2 1) +(7.1 0.2 1) +(7.2 0.2 1) +(7.3 0.2 1) +(7.4 0.2 1) +(7.5 0.2 1) +(7.6 0.2 1) +(7.7 0.2 1) +(7.8 0.2 1) +(7.9 0.2 1) +(8 0.2 1) +(8.1 0.2 1) +(8.2 0.2 1) +(8.3 0.2 1) +(8.4 0.2 1) +(8.5 0.2 1) +(8.6 0.2 1) +(8.7 0.2 1) +(8.8 0.2 1) +(8.9 0.2 1) +(9 0.2 1) +(0 0.3 1) +(0.1 0.3 1) +(0.2 0.3 1) +(0.3 0.3 1) +(0.4 0.3 1) +(0.5 0.3 1) +(0.6 0.3 1) +(0.7 0.3 1) +(0.8 0.3 1) +(0.9 0.3 1) +(1 0.3 1) +(1.1 0.3 1) +(1.2 0.3 1) +(1.3 0.3 1) +(1.4 0.3 1) +(1.5 0.3 1) +(1.6 0.3 1) +(1.7 0.3 1) +(1.8 0.3 1) +(1.9 0.3 1) +(2 0.3 1) +(2.1 0.3 1) +(2.2 0.3 1) +(2.3 0.3 1) +(2.4 0.3 1) +(2.5 0.3 1) +(2.6 0.3 1) +(2.7 0.3 1) +(2.8 0.3 1) +(2.9 0.3 1) +(3 0.3 1) +(3.1 0.3 1) +(3.2 0.3 1) +(3.3 0.3 1) +(3.4 0.3 1) +(3.5 0.3 1) +(3.6 0.3 1) +(3.7 0.3 1) +(3.8 0.3 1) +(3.9 0.3 1) +(4 0.3 1) +(4.1 0.3 1) +(4.2 0.3 1) +(4.3 0.3 1) +(4.4 0.3 1) +(4.5 0.3 1) +(4.6 0.3 1) +(4.7 0.3 1) +(4.8 0.3 1) +(4.9 0.3 1) +(5 0.3 1) +(5.1 0.3 1) +(5.2 0.3 1) +(5.3 0.3 1) +(5.4 0.3 1) +(5.5 0.3 1) +(5.6 0.3 1) +(5.7 0.3 1) +(5.8 0.3 1) +(5.9 0.3 1) +(6 0.3 1) +(6.1 0.3 1) +(6.2 0.3 1) +(6.3 0.3 1) +(6.4 0.3 1) +(6.5 0.3 1) +(6.6 0.3 1) +(6.7 0.3 1) +(6.8 0.3 1) +(6.9 0.3 1) +(7 0.3 1) +(7.1 0.3 1) +(7.2 0.3 1) +(7.3 0.3 1) +(7.4 0.3 1) +(7.5 0.3 1) +(7.6 0.3 1) +(7.7 0.3 1) +(7.8 0.3 1) +(7.9 0.3 1) +(8 0.3 1) +(8.1 0.3 1) +(8.2 0.3 1) +(8.3 0.3 1) +(8.4 0.3 1) +(8.5 0.3 1) +(8.6 0.3 1) +(8.7 0.3 1) +(8.8 0.3 1) +(8.9 0.3 1) +(9 0.3 1) +(0 0.4 1) +(0.1 0.4 1) +(0.2 0.4 1) +(0.3 0.4 1) +(0.4 0.4 1) +(0.5 0.4 1) +(0.6 0.4 1) +(0.7 0.4 1) +(0.8 0.4 1) +(0.9 0.4 1) +(1 0.4 1) +(1.1 0.4 1) +(1.2 0.4 1) +(1.3 0.4 1) +(1.4 0.4 1) +(1.5 0.4 1) +(1.6 0.4 1) +(1.7 0.4 1) +(1.8 0.4 1) +(1.9 0.4 1) +(2 0.4 1) +(2.1 0.4 1) +(2.2 0.4 1) +(2.3 0.4 1) +(2.4 0.4 1) +(2.5 0.4 1) +(2.6 0.4 1) +(2.7 0.4 1) +(2.8 0.4 1) +(2.9 0.4 1) +(3 0.4 1) +(3.1 0.4 1) +(3.2 0.4 1) +(3.3 0.4 1) +(3.4 0.4 1) +(3.5 0.4 1) +(3.6 0.4 1) +(3.7 0.4 1) +(3.8 0.4 1) +(3.9 0.4 1) +(4 0.4 1) +(4.1 0.4 1) +(4.2 0.4 1) +(4.3 0.4 1) +(4.4 0.4 1) +(4.5 0.4 1) +(4.6 0.4 1) +(4.7 0.4 1) +(4.8 0.4 1) +(4.9 0.4 1) +(5 0.4 1) +(5.1 0.4 1) +(5.2 0.4 1) +(5.3 0.4 1) +(5.4 0.4 1) +(5.5 0.4 1) +(5.6 0.4 1) +(5.7 0.4 1) +(5.8 0.4 1) +(5.9 0.4 1) +(6 0.4 1) +(6.1 0.4 1) +(6.2 0.4 1) +(6.3 0.4 1) +(6.4 0.4 1) +(6.5 0.4 1) +(6.6 0.4 1) +(6.7 0.4 1) +(6.8 0.4 1) +(6.9 0.4 1) +(7 0.4 1) +(7.1 0.4 1) +(7.2 0.4 1) +(7.3 0.4 1) +(7.4 0.4 1) +(7.5 0.4 1) +(7.6 0.4 1) +(7.7 0.4 1) +(7.8 0.4 1) +(7.9 0.4 1) +(8 0.4 1) +(8.1 0.4 1) +(8.2 0.4 1) +(8.3 0.4 1) +(8.4 0.4 1) +(8.5 0.4 1) +(8.6 0.4 1) +(8.7 0.4 1) +(8.8 0.4 1) +(8.9 0.4 1) +(9 0.4 1) +(0 0.5 1) +(0.1 0.5 1) +(0.2 0.5 1) +(0.3 0.5 1) +(0.4 0.5 1) +(0.5 0.5 1) +(0.6 0.5 1) +(0.7 0.5 1) +(0.8 0.5 1) +(0.9 0.5 1) +(1 0.5 1) +(1.1 0.5 1) +(1.2 0.5 1) +(1.3 0.5 1) +(1.4 0.5 1) +(1.5 0.5 1) +(1.6 0.5 1) +(1.7 0.5 1) +(1.8 0.5 1) +(1.9 0.5 1) +(2 0.5 1) +(2.1 0.5 1) +(2.2 0.5 1) +(2.3 0.5 1) +(2.4 0.5 1) +(2.5 0.5 1) +(2.6 0.5 1) +(2.7 0.5 1) +(2.8 0.5 1) +(2.9 0.5 1) +(3 0.5 1) +(3.1 0.5 1) +(3.2 0.5 1) +(3.3 0.5 1) +(3.4 0.5 1) +(3.5 0.5 1) +(3.6 0.5 1) +(3.7 0.5 1) +(3.8 0.5 1) +(3.9 0.5 1) +(4 0.5 1) +(4.1 0.5 1) +(4.2 0.5 1) +(4.3 0.5 1) +(4.4 0.5 1) +(4.5 0.5 1) +(4.6 0.5 1) +(4.7 0.5 1) +(4.8 0.5 1) +(4.9 0.5 1) +(5 0.5 1) +(5.1 0.5 1) +(5.2 0.5 1) +(5.3 0.5 1) +(5.4 0.5 1) +(5.5 0.5 1) +(5.6 0.5 1) +(5.7 0.5 1) +(5.8 0.5 1) +(5.9 0.5 1) +(6 0.5 1) +(6.1 0.5 1) +(6.2 0.5 1) +(6.3 0.5 1) +(6.4 0.5 1) +(6.5 0.5 1) +(6.6 0.5 1) +(6.7 0.5 1) +(6.8 0.5 1) +(6.9 0.5 1) +(7 0.5 1) +(7.1 0.5 1) +(7.2 0.5 1) +(7.3 0.5 1) +(7.4 0.5 1) +(7.5 0.5 1) +(7.6 0.5 1) +(7.7 0.5 1) +(7.8 0.5 1) +(7.9 0.5 1) +(8 0.5 1) +(8.1 0.5 1) +(8.2 0.5 1) +(8.3 0.5 1) +(8.4 0.5 1) +(8.5 0.5 1) +(8.6 0.5 1) +(8.7 0.5 1) +(8.8 0.5 1) +(8.9 0.5 1) +(9 0.5 1) +(0 0.6 1) +(0.1 0.6 1) +(0.2 0.6 1) +(0.3 0.6 1) +(0.4 0.6 1) +(0.5 0.6 1) +(0.6 0.6 1) +(0.7 0.6 1) +(0.8 0.6 1) +(0.9 0.6 1) +(1 0.6 1) +(1.1 0.6 1) +(1.2 0.6 1) +(1.3 0.6 1) +(1.4 0.6 1) +(1.5 0.6 1) +(1.6 0.6 1) +(1.7 0.6 1) +(1.8 0.6 1) +(1.9 0.6 1) +(2 0.6 1) +(2.1 0.6 1) +(2.2 0.6 1) +(2.3 0.6 1) +(2.4 0.6 1) +(2.5 0.6 1) +(2.6 0.6 1) +(2.7 0.6 1) +(2.8 0.6 1) +(2.9 0.6 1) +(3 0.6 1) +(3.1 0.6 1) +(3.2 0.6 1) +(3.3 0.6 1) +(3.4 0.6 1) +(3.5 0.6 1) +(3.6 0.6 1) +(3.7 0.6 1) +(3.8 0.6 1) +(3.9 0.6 1) +(4 0.6 1) +(4.1 0.6 1) +(4.2 0.6 1) +(4.3 0.6 1) +(4.4 0.6 1) +(4.5 0.6 1) +(4.6 0.6 1) +(4.7 0.6 1) +(4.8 0.6 1) +(4.9 0.6 1) +(5 0.6 1) +(5.1 0.6 1) +(5.2 0.6 1) +(5.3 0.6 1) +(5.4 0.6 1) +(5.5 0.6 1) +(5.6 0.6 1) +(5.7 0.6 1) +(5.8 0.6 1) +(5.9 0.6 1) +(6 0.6 1) +(6.1 0.6 1) +(6.2 0.6 1) +(6.3 0.6 1) +(6.4 0.6 1) +(6.5 0.6 1) +(6.6 0.6 1) +(6.7 0.6 1) +(6.8 0.6 1) +(6.9 0.6 1) +(7 0.6 1) +(7.1 0.6 1) +(7.2 0.6 1) +(7.3 0.6 1) +(7.4 0.6 1) +(7.5 0.6 1) +(7.6 0.6 1) +(7.7 0.6 1) +(7.8 0.6 1) +(7.9 0.6 1) +(8 0.6 1) +(8.1 0.6 1) +(8.2 0.6 1) +(8.3 0.6 1) +(8.4 0.6 1) +(8.5 0.6 1) +(8.6 0.6 1) +(8.7 0.6 1) +(8.8 0.6 1) +(8.9 0.6 1) +(9 0.6 1) +(0 0.7 1) +(0.1 0.7 1) +(0.2 0.7 1) +(0.3 0.7 1) +(0.4 0.7 1) +(0.5 0.7 1) +(0.6 0.7 1) +(0.7 0.7 1) +(0.8 0.7 1) +(0.9 0.7 1) +(1 0.7 1) +(1.1 0.7 1) +(1.2 0.7 1) +(1.3 0.7 1) +(1.4 0.7 1) +(1.5 0.7 1) +(1.6 0.7 1) +(1.7 0.7 1) +(1.8 0.7 1) +(1.9 0.7 1) +(2 0.7 1) +(2.1 0.7 1) +(2.2 0.7 1) +(2.3 0.7 1) +(2.4 0.7 1) +(2.5 0.7 1) +(2.6 0.7 1) +(2.7 0.7 1) +(2.8 0.7 1) +(2.9 0.7 1) +(3 0.7 1) +(3.1 0.7 1) +(3.2 0.7 1) +(3.3 0.7 1) +(3.4 0.7 1) +(3.5 0.7 1) +(3.6 0.7 1) +(3.7 0.7 1) +(3.8 0.7 1) +(3.9 0.7 1) +(4 0.7 1) +(4.1 0.7 1) +(4.2 0.7 1) +(4.3 0.7 1) +(4.4 0.7 1) +(4.5 0.7 1) +(4.6 0.7 1) +(4.7 0.7 1) +(4.8 0.7 1) +(4.9 0.7 1) +(5 0.7 1) +(5.1 0.7 1) +(5.2 0.7 1) +(5.3 0.7 1) +(5.4 0.7 1) +(5.5 0.7 1) +(5.6 0.7 1) +(5.7 0.7 1) +(5.8 0.7 1) +(5.9 0.7 1) +(6 0.7 1) +(6.1 0.7 1) +(6.2 0.7 1) +(6.3 0.7 1) +(6.4 0.7 1) +(6.5 0.7 1) +(6.6 0.7 1) +(6.7 0.7 1) +(6.8 0.7 1) +(6.9 0.7 1) +(7 0.7 1) +(7.1 0.7 1) +(7.2 0.7 1) +(7.3 0.7 1) +(7.4 0.7 1) +(7.5 0.7 1) +(7.6 0.7 1) +(7.7 0.7 1) +(7.8 0.7 1) +(7.9 0.7 1) +(8 0.7 1) +(8.1 0.7 1) +(8.2 0.7 1) +(8.3 0.7 1) +(8.4 0.7 1) +(8.5 0.7 1) +(8.6 0.7 1) +(8.7 0.7 1) +(8.8 0.7 1) +(8.9 0.7 1) +(9 0.7 1) +(0 0.8 1) +(0.1 0.8 1) +(0.2 0.8 1) +(0.3 0.8 1) +(0.4 0.8 1) +(0.5 0.8 1) +(0.6 0.8 1) +(0.7 0.8 1) +(0.8 0.8 1) +(0.9 0.8 1) +(1 0.8 1) +(1.1 0.8 1) +(1.2 0.8 1) +(1.3 0.8 1) +(1.4 0.8 1) +(1.5 0.8 1) +(1.6 0.8 1) +(1.7 0.8 1) +(1.8 0.8 1) +(1.9 0.8 1) +(2 0.8 1) +(2.1 0.8 1) +(2.2 0.8 1) +(2.3 0.8 1) +(2.4 0.8 1) +(2.5 0.8 1) +(2.6 0.8 1) +(2.7 0.8 1) +(2.8 0.8 1) +(2.9 0.8 1) +(3 0.8 1) +(3.1 0.8 1) +(3.2 0.8 1) +(3.3 0.8 1) +(3.4 0.8 1) +(3.5 0.8 1) +(3.6 0.8 1) +(3.7 0.8 1) +(3.8 0.8 1) +(3.9 0.8 1) +(4 0.8 1) +(4.1 0.8 1) +(4.2 0.8 1) +(4.3 0.8 1) +(4.4 0.8 1) +(4.5 0.8 1) +(4.6 0.8 1) +(4.7 0.8 1) +(4.8 0.8 1) +(4.9 0.8 1) +(5 0.8 1) +(5.1 0.8 1) +(5.2 0.8 1) +(5.3 0.8 1) +(5.4 0.8 1) +(5.5 0.8 1) +(5.6 0.8 1) +(5.7 0.8 1) +(5.8 0.8 1) +(5.9 0.8 1) +(6 0.8 1) +(6.1 0.8 1) +(6.2 0.8 1) +(6.3 0.8 1) +(6.4 0.8 1) +(6.5 0.8 1) +(6.6 0.8 1) +(6.7 0.8 1) +(6.8 0.8 1) +(6.9 0.8 1) +(7 0.8 1) +(7.1 0.8 1) +(7.2 0.8 1) +(7.3 0.8 1) +(7.4 0.8 1) +(7.5 0.8 1) +(7.6 0.8 1) +(7.7 0.8 1) +(7.8 0.8 1) +(7.9 0.8 1) +(8 0.8 1) +(8.1 0.8 1) +(8.2 0.8 1) +(8.3 0.8 1) +(8.4 0.8 1) +(8.5 0.8 1) +(8.6 0.8 1) +(8.7 0.8 1) +(8.8 0.8 1) +(8.9 0.8 1) +(9 0.8 1) +(0 0.9 1) +(0.1 0.9 1) +(0.2 0.9 1) +(0.3 0.9 1) +(0.4 0.9 1) +(0.5 0.9 1) +(0.6 0.9 1) +(0.7 0.9 1) +(0.8 0.9 1) +(0.9 0.9 1) +(1 0.9 1) +(1.1 0.9 1) +(1.2 0.9 1) +(1.3 0.9 1) +(1.4 0.9 1) +(1.5 0.9 1) +(1.6 0.9 1) +(1.7 0.9 1) +(1.8 0.9 1) +(1.9 0.9 1) +(2 0.9 1) +(2.1 0.9 1) +(2.2 0.9 1) +(2.3 0.9 1) +(2.4 0.9 1) +(2.5 0.9 1) +(2.6 0.9 1) +(2.7 0.9 1) +(2.8 0.9 1) +(2.9 0.9 1) +(3 0.9 1) +(3.1 0.9 1) +(3.2 0.9 1) +(3.3 0.9 1) +(3.4 0.9 1) +(3.5 0.9 1) +(3.6 0.9 1) +(3.7 0.9 1) +(3.8 0.9 1) +(3.9 0.9 1) +(4 0.9 1) +(4.1 0.9 1) +(4.2 0.9 1) +(4.3 0.9 1) +(4.4 0.9 1) +(4.5 0.9 1) +(4.6 0.9 1) +(4.7 0.9 1) +(4.8 0.9 1) +(4.9 0.9 1) +(5 0.9 1) +(5.1 0.9 1) +(5.2 0.9 1) +(5.3 0.9 1) +(5.4 0.9 1) +(5.5 0.9 1) +(5.6 0.9 1) +(5.7 0.9 1) +(5.8 0.9 1) +(5.9 0.9 1) +(6 0.9 1) +(6.1 0.9 1) +(6.2 0.9 1) +(6.3 0.9 1) +(6.4 0.9 1) +(6.5 0.9 1) +(6.6 0.9 1) +(6.7 0.9 1) +(6.8 0.9 1) +(6.9 0.9 1) +(7 0.9 1) +(7.1 0.9 1) +(7.2 0.9 1) +(7.3 0.9 1) +(7.4 0.9 1) +(7.5 0.9 1) +(7.6 0.9 1) +(7.7 0.9 1) +(7.8 0.9 1) +(7.9 0.9 1) +(8 0.9 1) +(8.1 0.9 1) +(8.2 0.9 1) +(8.3 0.9 1) +(8.4 0.9 1) +(8.5 0.9 1) +(8.6 0.9 1) +(8.7 0.9 1) +(8.8 0.9 1) +(8.9 0.9 1) +(9 0.9 1) +(0 1 1) +(0.1 1 1) +(0.2 1 1) +(0.3 1 1) +(0.4 1 1) +(0.5 1 1) +(0.6 1 1) +(0.7 1 1) +(0.8 1 1) +(0.9 1 1) +(1 1 1) +(1.1 1 1) +(1.2 1 1) +(1.3 1 1) +(1.4 1 1) +(1.5 1 1) +(1.6 1 1) +(1.7 1 1) +(1.8 1 1) +(1.9 1 1) +(2 1 1) +(2.1 1 1) +(2.2 1 1) +(2.3 1 1) +(2.4 1 1) +(2.5 1 1) +(2.6 1 1) +(2.7 1 1) +(2.8 1 1) +(2.9 1 1) +(3 1 1) +(3.1 1 1) +(3.2 1 1) +(3.3 1 1) +(3.4 1 1) +(3.5 1 1) +(3.6 1 1) +(3.7 1 1) +(3.8 1 1) +(3.9 1 1) +(4 1 1) +(4.1 1 1) +(4.2 1 1) +(4.3 1 1) +(4.4 1 1) +(4.5 1 1) +(4.6 1 1) +(4.7 1 1) +(4.8 1 1) +(4.9 1 1) +(5 1 1) +(5.1 1 1) +(5.2 1 1) +(5.3 1 1) +(5.4 1 1) +(5.5 1 1) +(5.6 1 1) +(5.7 1 1) +(5.8 1 1) +(5.9 1 1) +(6 1 1) +(6.1 1 1) +(6.2 1 1) +(6.3 1 1) +(6.4 1 1) +(6.5 1 1) +(6.6 1 1) +(6.7 1 1) +(6.8 1 1) +(6.9 1 1) +(7 1 1) +(7.1 1 1) +(7.2 1 1) +(7.3 1 1) +(7.4 1 1) +(7.5 1 1) +(7.6 1 1) +(7.7 1 1) +(7.8 1 1) +(7.9 1 1) +(8 1 1) +(8.1 1 1) +(8.2 1 1) +(8.3 1 1) +(8.4 1 1) +(8.5 1 1) +(8.6 1 1) +(8.7 1 1) +(8.8 1 1) +(8.9 1 1) +(9 1 1) +) + + +// ************************************************************************* // diff --git a/examples/RBCells/run-piso b/examples/RBCells/run-piso new file mode 100755 index 0000000..f35ce65 --- /dev/null +++ b/examples/RBCells/run-piso @@ -0,0 +1 @@ +cappuccino input-piso monitor restart . diff --git a/examples/RBCells/run-simple b/examples/RBCells/run-simple new file mode 100755 index 0000000..4b8a641 --- /dev/null +++ b/examples/RBCells/run-simple @@ -0,0 +1 @@ +cappuccino input-simple monitor restart . diff --git a/examples/RBCells/vtk/mesh.vtm b/examples/RBCells/vtk/mesh.vtm new file mode 100755 index 0000000..3f40f1d --- /dev/null +++ b/examples/RBCells/vtk/mesh.vtm @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + 47 104 111 109 101 47 + 110 105 107 111 108 97 + 47 79 112 101 110 70 + 79 65 77 47 110 105 + 107 111 108 97 45 49 + 57 49 50 47 114 117 + 110 47 66 101 110 97 + 114 100 67 101 108 108 + 115 47 0 + + + diff --git a/examples/RBCells/vtk/mesh/mesh_0_0.vtu b/examples/RBCells/vtk/mesh/mesh_0_0.vtu new file mode 100755 index 0000000..dc499ee --- /dev/null +++ b/examples/RBCells/vtk/mesh/mesh_0_0.vtu @@ -0,0 +1,2523 @@ + + + + + + + + + + 0 0 -1 0.10000000149 0 -1 + 0.20000000298 0 -1 0.30000001192 0 -1 + 0.40000000596 0 -1 0.5 0 -1 + 0.60000002384 0 -1 0.69999998808 0 -1 + 0.80000001192 0 -1 0.89999997616 0 -1 + 1 0 -1 1.1000000238 0 -1 + 1.2000000477 0 -1 1.2999999523 0 -1 + 1.3999999762 0 -1 1.5 0 -1 + 1.6000000238 0 -1 1.7000000477 0 -1 + 1.7999999523 0 -1 1.8999999762 0 -1 + 2 0 -1 2.0999999046 0 -1 + 2.2000000477 0 -1 2.2999999523 0 -1 + 2.4000000954 0 -1 2.5 0 -1 + 2.5999999046 0 -1 2.7000000477 0 -1 + 2.7999999523 0 -1 2.9000000954 0 -1 + 3 0 -1 3.0999999046 0 -1 + 3.2000000477 0 -1 3.2999999523 0 -1 + 3.4000000954 0 -1 3.5 0 -1 + 3.5999999046 0 -1 3.7000000477 0 -1 + 3.7999999523 0 -1 3.9000000954 0 -1 + 4 0 -1 4.0999999046 0 -1 + 4.1999998093 0 -1 4.3000001907 0 -1 + 4.4000000954 0 -1 4.5 0 -1 + 4.5999999046 0 -1 4.6999998093 0 -1 + 4.8000001907 0 -1 4.9000000954 0 -1 + 5 0 -1 5.0999999046 0 -1 + 5.1999998093 0 -1 5.3000001907 0 -1 + 5.4000000954 0 -1 5.5 0 -1 + 5.5999999046 0 -1 5.6999998093 0 -1 + 5.8000001907 0 -1 5.9000000954 0 -1 + 6 0 -1 6.0999999046 0 -1 + 6.1999998093 0 -1 6.3000001907 0 -1 + 6.4000000954 0 -1 6.5 0 -1 + 6.5999999046 0 -1 6.6999998093 0 -1 + 6.8000001907 0 -1 6.9000000954 0 -1 + 7 0 -1 7.0999999046 0 -1 + 7.1999998093 0 -1 7.3000001907 0 -1 + 7.4000000954 0 -1 7.5 0 -1 + 7.5999999046 0 -1 7.6999998093 0 -1 + 7.8000001907 0 -1 7.9000000954 0 -1 + 8 0 -1 8.1000003815 0 -1 + 8.1999998093 0 -1 8.3000001907 0 -1 + 8.3999996185 0 -1 8.5 0 -1 + 8.6000003815 0 -1 8.6999998093 0 -1 + 8.8000001907 0 -1 8.8999996185 0 -1 + 9 0 -1 0 0.10000000149 -1 + 0.10000000149 0.10000000149 -1 0.20000000298 0.10000000149 -1 + 0.30000001192 0.10000000149 -1 0.40000000596 0.10000000149 -1 + 0.5 0.10000000149 -1 0.60000002384 0.10000000149 -1 + 0.69999998808 0.10000000149 -1 0.80000001192 0.10000000149 -1 + 0.89999997616 0.10000000149 -1 1 0.10000000149 -1 + 1.1000000238 0.10000000149 -1 1.2000000477 0.10000000149 -1 + 1.2999999523 0.10000000149 -1 1.3999999762 0.10000000149 -1 + 1.5 0.10000000149 -1 1.6000000238 0.10000000149 -1 + 1.7000000477 0.10000000149 -1 1.7999999523 0.10000000149 -1 + 1.8999999762 0.10000000149 -1 2 0.10000000149 -1 + 2.0999999046 0.10000000149 -1 2.2000000477 0.10000000149 -1 + 2.2999999523 0.10000000149 -1 2.4000000954 0.10000000149 -1 + 2.5 0.10000000149 -1 2.5999999046 0.10000000149 -1 + 2.7000000477 0.10000000149 -1 2.7999999523 0.10000000149 -1 + 2.9000000954 0.10000000149 -1 3 0.10000000149 -1 + 3.0999999046 0.10000000149 -1 3.2000000477 0.10000000149 -1 + 3.2999999523 0.10000000149 -1 3.4000000954 0.10000000149 -1 + 3.5 0.10000000149 -1 3.5999999046 0.10000000149 -1 + 3.7000000477 0.10000000149 -1 3.7999999523 0.10000000149 -1 + 3.9000000954 0.10000000149 -1 4 0.10000000149 -1 + 4.0999999046 0.10000000149 -1 4.1999998093 0.10000000149 -1 + 4.3000001907 0.10000000149 -1 4.4000000954 0.10000000149 -1 + 4.5 0.10000000149 -1 4.5999999046 0.10000000149 -1 + 4.6999998093 0.10000000149 -1 4.8000001907 0.10000000149 -1 + 4.9000000954 0.10000000149 -1 5 0.10000000149 -1 + 5.0999999046 0.10000000149 -1 5.1999998093 0.10000000149 -1 + 5.3000001907 0.10000000149 -1 5.4000000954 0.10000000149 -1 + 5.5 0.10000000149 -1 5.5999999046 0.10000000149 -1 + 5.6999998093 0.10000000149 -1 5.8000001907 0.10000000149 -1 + 5.9000000954 0.10000000149 -1 6 0.10000000149 -1 + 6.0999999046 0.10000000149 -1 6.1999998093 0.10000000149 -1 + 6.3000001907 0.10000000149 -1 6.4000000954 0.10000000149 -1 + 6.5 0.10000000149 -1 6.5999999046 0.10000000149 -1 + 6.6999998093 0.10000000149 -1 6.8000001907 0.10000000149 -1 + 6.9000000954 0.10000000149 -1 7 0.10000000149 -1 + 7.0999999046 0.10000000149 -1 7.1999998093 0.10000000149 -1 + 7.3000001907 0.10000000149 -1 7.4000000954 0.10000000149 -1 + 7.5 0.10000000149 -1 7.5999999046 0.10000000149 -1 + 7.6999998093 0.10000000149 -1 7.8000001907 0.10000000149 -1 + 7.9000000954 0.10000000149 -1 8 0.10000000149 -1 + 8.1000003815 0.10000000149 -1 8.1999998093 0.10000000149 -1 + 8.3000001907 0.10000000149 -1 8.3999996185 0.10000000149 -1 + 8.5 0.10000000149 -1 8.6000003815 0.10000000149 -1 + 8.6999998093 0.10000000149 -1 8.8000001907 0.10000000149 -1 + 8.8999996185 0.10000000149 -1 9 0.10000000149 -1 + 0 0.20000000298 -1 0.10000000149 0.20000000298 -1 + 0.20000000298 0.20000000298 -1 0.30000001192 0.20000000298 -1 + 0.40000000596 0.20000000298 -1 0.5 0.20000000298 -1 + 0.60000002384 0.20000000298 -1 0.69999998808 0.20000000298 -1 + 0.80000001192 0.20000000298 -1 0.89999997616 0.20000000298 -1 + 1 0.20000000298 -1 1.1000000238 0.20000000298 -1 + 1.2000000477 0.20000000298 -1 1.2999999523 0.20000000298 -1 + 1.3999999762 0.20000000298 -1 1.5 0.20000000298 -1 + 1.6000000238 0.20000000298 -1 1.7000000477 0.20000000298 -1 + 1.7999999523 0.20000000298 -1 1.8999999762 0.20000000298 -1 + 2 0.20000000298 -1 2.0999999046 0.20000000298 -1 + 2.2000000477 0.20000000298 -1 2.2999999523 0.20000000298 -1 + 2.4000000954 0.20000000298 -1 2.5 0.20000000298 -1 + 2.5999999046 0.20000000298 -1 2.7000000477 0.20000000298 -1 + 2.7999999523 0.20000000298 -1 2.9000000954 0.20000000298 -1 + 3 0.20000000298 -1 3.0999999046 0.20000000298 -1 + 3.2000000477 0.20000000298 -1 3.2999999523 0.20000000298 -1 + 3.4000000954 0.20000000298 -1 3.5 0.20000000298 -1 + 3.5999999046 0.20000000298 -1 3.7000000477 0.20000000298 -1 + 3.7999999523 0.20000000298 -1 3.9000000954 0.20000000298 -1 + 4 0.20000000298 -1 4.0999999046 0.20000000298 -1 + 4.1999998093 0.20000000298 -1 4.3000001907 0.20000000298 -1 + 4.4000000954 0.20000000298 -1 4.5 0.20000000298 -1 + 4.5999999046 0.20000000298 -1 4.6999998093 0.20000000298 -1 + 4.8000001907 0.20000000298 -1 4.9000000954 0.20000000298 -1 + 5 0.20000000298 -1 5.0999999046 0.20000000298 -1 + 5.1999998093 0.20000000298 -1 5.3000001907 0.20000000298 -1 + 5.4000000954 0.20000000298 -1 5.5 0.20000000298 -1 + 5.5999999046 0.20000000298 -1 5.6999998093 0.20000000298 -1 + 5.8000001907 0.20000000298 -1 5.9000000954 0.20000000298 -1 + 6 0.20000000298 -1 6.0999999046 0.20000000298 -1 + 6.1999998093 0.20000000298 -1 6.3000001907 0.20000000298 -1 + 6.4000000954 0.20000000298 -1 6.5 0.20000000298 -1 + 6.5999999046 0.20000000298 -1 6.6999998093 0.20000000298 -1 + 6.8000001907 0.20000000298 -1 6.9000000954 0.20000000298 -1 + 7 0.20000000298 -1 7.0999999046 0.20000000298 -1 + 7.1999998093 0.20000000298 -1 7.3000001907 0.20000000298 -1 + 7.4000000954 0.20000000298 -1 7.5 0.20000000298 -1 + 7.5999999046 0.20000000298 -1 7.6999998093 0.20000000298 -1 + 7.8000001907 0.20000000298 -1 7.9000000954 0.20000000298 -1 + 8 0.20000000298 -1 8.1000003815 0.20000000298 -1 + 8.1999998093 0.20000000298 -1 8.3000001907 0.20000000298 -1 + 8.3999996185 0.20000000298 -1 8.5 0.20000000298 -1 + 8.6000003815 0.20000000298 -1 8.6999998093 0.20000000298 -1 + 8.8000001907 0.20000000298 -1 8.8999996185 0.20000000298 -1 + 9 0.20000000298 -1 0 0.30000001192 -1 + 0.10000000149 0.30000001192 -1 0.20000000298 0.30000001192 -1 + 0.30000001192 0.30000001192 -1 0.40000000596 0.30000001192 -1 + 0.5 0.30000001192 -1 0.60000002384 0.30000001192 -1 + 0.69999998808 0.30000001192 -1 0.80000001192 0.30000001192 -1 + 0.89999997616 0.30000001192 -1 1 0.30000001192 -1 + 1.1000000238 0.30000001192 -1 1.2000000477 0.30000001192 -1 + 1.2999999523 0.30000001192 -1 1.3999999762 0.30000001192 -1 + 1.5 0.30000001192 -1 1.6000000238 0.30000001192 -1 + 1.7000000477 0.30000001192 -1 1.7999999523 0.30000001192 -1 + 1.8999999762 0.30000001192 -1 2 0.30000001192 -1 + 2.0999999046 0.30000001192 -1 2.2000000477 0.30000001192 -1 + 2.2999999523 0.30000001192 -1 2.4000000954 0.30000001192 -1 + 2.5 0.30000001192 -1 2.5999999046 0.30000001192 -1 + 2.7000000477 0.30000001192 -1 2.7999999523 0.30000001192 -1 + 2.9000000954 0.30000001192 -1 3 0.30000001192 -1 + 3.0999999046 0.30000001192 -1 3.2000000477 0.30000001192 -1 + 3.2999999523 0.30000001192 -1 3.4000000954 0.30000001192 -1 + 3.5 0.30000001192 -1 3.5999999046 0.30000001192 -1 + 3.7000000477 0.30000001192 -1 3.7999999523 0.30000001192 -1 + 3.9000000954 0.30000001192 -1 4 0.30000001192 -1 + 4.0999999046 0.30000001192 -1 4.1999998093 0.30000001192 -1 + 4.3000001907 0.30000001192 -1 4.4000000954 0.30000001192 -1 + 4.5 0.30000001192 -1 4.5999999046 0.30000001192 -1 + 4.6999998093 0.30000001192 -1 4.8000001907 0.30000001192 -1 + 4.9000000954 0.30000001192 -1 5 0.30000001192 -1 + 5.0999999046 0.30000001192 -1 5.1999998093 0.30000001192 -1 + 5.3000001907 0.30000001192 -1 5.4000000954 0.30000001192 -1 + 5.5 0.30000001192 -1 5.5999999046 0.30000001192 -1 + 5.6999998093 0.30000001192 -1 5.8000001907 0.30000001192 -1 + 5.9000000954 0.30000001192 -1 6 0.30000001192 -1 + 6.0999999046 0.30000001192 -1 6.1999998093 0.30000001192 -1 + 6.3000001907 0.30000001192 -1 6.4000000954 0.30000001192 -1 + 6.5 0.30000001192 -1 6.5999999046 0.30000001192 -1 + 6.6999998093 0.30000001192 -1 6.8000001907 0.30000001192 -1 + 6.9000000954 0.30000001192 -1 7 0.30000001192 -1 + 7.0999999046 0.30000001192 -1 7.1999998093 0.30000001192 -1 + 7.3000001907 0.30000001192 -1 7.4000000954 0.30000001192 -1 + 7.5 0.30000001192 -1 7.5999999046 0.30000001192 -1 + 7.6999998093 0.30000001192 -1 7.8000001907 0.30000001192 -1 + 7.9000000954 0.30000001192 -1 8 0.30000001192 -1 + 8.1000003815 0.30000001192 -1 8.1999998093 0.30000001192 -1 + 8.3000001907 0.30000001192 -1 8.3999996185 0.30000001192 -1 + 8.5 0.30000001192 -1 8.6000003815 0.30000001192 -1 + 8.6999998093 0.30000001192 -1 8.8000001907 0.30000001192 -1 + 8.8999996185 0.30000001192 -1 9 0.30000001192 -1 + 0 0.40000000596 -1 0.10000000149 0.40000000596 -1 + 0.20000000298 0.40000000596 -1 0.30000001192 0.40000000596 -1 + 0.40000000596 0.40000000596 -1 0.5 0.40000000596 -1 + 0.60000002384 0.40000000596 -1 0.69999998808 0.40000000596 -1 + 0.80000001192 0.40000000596 -1 0.89999997616 0.40000000596 -1 + 1 0.40000000596 -1 1.1000000238 0.40000000596 -1 + 1.2000000477 0.40000000596 -1 1.2999999523 0.40000000596 -1 + 1.3999999762 0.40000000596 -1 1.5 0.40000000596 -1 + 1.6000000238 0.40000000596 -1 1.7000000477 0.40000000596 -1 + 1.7999999523 0.40000000596 -1 1.8999999762 0.40000000596 -1 + 2 0.40000000596 -1 2.0999999046 0.40000000596 -1 + 2.2000000477 0.40000000596 -1 2.2999999523 0.40000000596 -1 + 2.4000000954 0.40000000596 -1 2.5 0.40000000596 -1 + 2.5999999046 0.40000000596 -1 2.7000000477 0.40000000596 -1 + 2.7999999523 0.40000000596 -1 2.9000000954 0.40000000596 -1 + 3 0.40000000596 -1 3.0999999046 0.40000000596 -1 + 3.2000000477 0.40000000596 -1 3.2999999523 0.40000000596 -1 + 3.4000000954 0.40000000596 -1 3.5 0.40000000596 -1 + 3.5999999046 0.40000000596 -1 3.7000000477 0.40000000596 -1 + 3.7999999523 0.40000000596 -1 3.9000000954 0.40000000596 -1 + 4 0.40000000596 -1 4.0999999046 0.40000000596 -1 + 4.1999998093 0.40000000596 -1 4.3000001907 0.40000000596 -1 + 4.4000000954 0.40000000596 -1 4.5 0.40000000596 -1 + 4.5999999046 0.40000000596 -1 4.6999998093 0.40000000596 -1 + 4.8000001907 0.40000000596 -1 4.9000000954 0.40000000596 -1 + 5 0.40000000596 -1 5.0999999046 0.40000000596 -1 + 5.1999998093 0.40000000596 -1 5.3000001907 0.40000000596 -1 + 5.4000000954 0.40000000596 -1 5.5 0.40000000596 -1 + 5.5999999046 0.40000000596 -1 5.6999998093 0.40000000596 -1 + 5.8000001907 0.40000000596 -1 5.9000000954 0.40000000596 -1 + 6 0.40000000596 -1 6.0999999046 0.40000000596 -1 + 6.1999998093 0.40000000596 -1 6.3000001907 0.40000000596 -1 + 6.4000000954 0.40000000596 -1 6.5 0.40000000596 -1 + 6.5999999046 0.40000000596 -1 6.6999998093 0.40000000596 -1 + 6.8000001907 0.40000000596 -1 6.9000000954 0.40000000596 -1 + 7 0.40000000596 -1 7.0999999046 0.40000000596 -1 + 7.1999998093 0.40000000596 -1 7.3000001907 0.40000000596 -1 + 7.4000000954 0.40000000596 -1 7.5 0.40000000596 -1 + 7.5999999046 0.40000000596 -1 7.6999998093 0.40000000596 -1 + 7.8000001907 0.40000000596 -1 7.9000000954 0.40000000596 -1 + 8 0.40000000596 -1 8.1000003815 0.40000000596 -1 + 8.1999998093 0.40000000596 -1 8.3000001907 0.40000000596 -1 + 8.3999996185 0.40000000596 -1 8.5 0.40000000596 -1 + 8.6000003815 0.40000000596 -1 8.6999998093 0.40000000596 -1 + 8.8000001907 0.40000000596 -1 8.8999996185 0.40000000596 -1 + 9 0.40000000596 -1 0 0.5 -1 + 0.10000000149 0.5 -1 0.20000000298 0.5 -1 + 0.30000001192 0.5 -1 0.40000000596 0.5 -1 + 0.5 0.5 -1 0.60000002384 0.5 -1 + 0.69999998808 0.5 -1 0.80000001192 0.5 -1 + 0.89999997616 0.5 -1 1 0.5 -1 + 1.1000000238 0.5 -1 1.2000000477 0.5 -1 + 1.2999999523 0.5 -1 1.3999999762 0.5 -1 + 1.5 0.5 -1 1.6000000238 0.5 -1 + 1.7000000477 0.5 -1 1.7999999523 0.5 -1 + 1.8999999762 0.5 -1 2 0.5 -1 + 2.0999999046 0.5 -1 2.2000000477 0.5 -1 + 2.2999999523 0.5 -1 2.4000000954 0.5 -1 + 2.5 0.5 -1 2.5999999046 0.5 -1 + 2.7000000477 0.5 -1 2.7999999523 0.5 -1 + 2.9000000954 0.5 -1 3 0.5 -1 + 3.0999999046 0.5 -1 3.2000000477 0.5 -1 + 3.2999999523 0.5 -1 3.4000000954 0.5 -1 + 3.5 0.5 -1 3.5999999046 0.5 -1 + 3.7000000477 0.5 -1 3.7999999523 0.5 -1 + 3.9000000954 0.5 -1 4 0.5 -1 + 4.0999999046 0.5 -1 4.1999998093 0.5 -1 + 4.3000001907 0.5 -1 4.4000000954 0.5 -1 + 4.5 0.5 -1 4.5999999046 0.5 -1 + 4.6999998093 0.5 -1 4.8000001907 0.5 -1 + 4.9000000954 0.5 -1 5 0.5 -1 + 5.0999999046 0.5 -1 5.1999998093 0.5 -1 + 5.3000001907 0.5 -1 5.4000000954 0.5 -1 + 5.5 0.5 -1 5.5999999046 0.5 -1 + 5.6999998093 0.5 -1 5.8000001907 0.5 -1 + 5.9000000954 0.5 -1 6 0.5 -1 + 6.0999999046 0.5 -1 6.1999998093 0.5 -1 + 6.3000001907 0.5 -1 6.4000000954 0.5 -1 + 6.5 0.5 -1 6.5999999046 0.5 -1 + 6.6999998093 0.5 -1 6.8000001907 0.5 -1 + 6.9000000954 0.5 -1 7 0.5 -1 + 7.0999999046 0.5 -1 7.1999998093 0.5 -1 + 7.3000001907 0.5 -1 7.4000000954 0.5 -1 + 7.5 0.5 -1 7.5999999046 0.5 -1 + 7.6999998093 0.5 -1 7.8000001907 0.5 -1 + 7.9000000954 0.5 -1 8 0.5 -1 + 8.1000003815 0.5 -1 8.1999998093 0.5 -1 + 8.3000001907 0.5 -1 8.3999996185 0.5 -1 + 8.5 0.5 -1 8.6000003815 0.5 -1 + 8.6999998093 0.5 -1 8.8000001907 0.5 -1 + 8.8999996185 0.5 -1 9 0.5 -1 + 0 0.60000002384 -1 0.10000000149 0.60000002384 -1 + 0.20000000298 0.60000002384 -1 0.30000001192 0.60000002384 -1 + 0.40000000596 0.60000002384 -1 0.5 0.60000002384 -1 + 0.60000002384 0.60000002384 -1 0.69999998808 0.60000002384 -1 + 0.80000001192 0.60000002384 -1 0.89999997616 0.60000002384 -1 + 1 0.60000002384 -1 1.1000000238 0.60000002384 -1 + 1.2000000477 0.60000002384 -1 1.2999999523 0.60000002384 -1 + 1.3999999762 0.60000002384 -1 1.5 0.60000002384 -1 + 1.6000000238 0.60000002384 -1 1.7000000477 0.60000002384 -1 + 1.7999999523 0.60000002384 -1 1.8999999762 0.60000002384 -1 + 2 0.60000002384 -1 2.0999999046 0.60000002384 -1 + 2.2000000477 0.60000002384 -1 2.2999999523 0.60000002384 -1 + 2.4000000954 0.60000002384 -1 2.5 0.60000002384 -1 + 2.5999999046 0.60000002384 -1 2.7000000477 0.60000002384 -1 + 2.7999999523 0.60000002384 -1 2.9000000954 0.60000002384 -1 + 3 0.60000002384 -1 3.0999999046 0.60000002384 -1 + 3.2000000477 0.60000002384 -1 3.2999999523 0.60000002384 -1 + 3.4000000954 0.60000002384 -1 3.5 0.60000002384 -1 + 3.5999999046 0.60000002384 -1 3.7000000477 0.60000002384 -1 + 3.7999999523 0.60000002384 -1 3.9000000954 0.60000002384 -1 + 4 0.60000002384 -1 4.0999999046 0.60000002384 -1 + 4.1999998093 0.60000002384 -1 4.3000001907 0.60000002384 -1 + 4.4000000954 0.60000002384 -1 4.5 0.60000002384 -1 + 4.5999999046 0.60000002384 -1 4.6999998093 0.60000002384 -1 + 4.8000001907 0.60000002384 -1 4.9000000954 0.60000002384 -1 + 5 0.60000002384 -1 5.0999999046 0.60000002384 -1 + 5.1999998093 0.60000002384 -1 5.3000001907 0.60000002384 -1 + 5.4000000954 0.60000002384 -1 5.5 0.60000002384 -1 + 5.5999999046 0.60000002384 -1 5.6999998093 0.60000002384 -1 + 5.8000001907 0.60000002384 -1 5.9000000954 0.60000002384 -1 + 6 0.60000002384 -1 6.0999999046 0.60000002384 -1 + 6.1999998093 0.60000002384 -1 6.3000001907 0.60000002384 -1 + 6.4000000954 0.60000002384 -1 6.5 0.60000002384 -1 + 6.5999999046 0.60000002384 -1 6.6999998093 0.60000002384 -1 + 6.8000001907 0.60000002384 -1 6.9000000954 0.60000002384 -1 + 7 0.60000002384 -1 7.0999999046 0.60000002384 -1 + 7.1999998093 0.60000002384 -1 7.3000001907 0.60000002384 -1 + 7.4000000954 0.60000002384 -1 7.5 0.60000002384 -1 + 7.5999999046 0.60000002384 -1 7.6999998093 0.60000002384 -1 + 7.8000001907 0.60000002384 -1 7.9000000954 0.60000002384 -1 + 8 0.60000002384 -1 8.1000003815 0.60000002384 -1 + 8.1999998093 0.60000002384 -1 8.3000001907 0.60000002384 -1 + 8.3999996185 0.60000002384 -1 8.5 0.60000002384 -1 + 8.6000003815 0.60000002384 -1 8.6999998093 0.60000002384 -1 + 8.8000001907 0.60000002384 -1 8.8999996185 0.60000002384 -1 + 9 0.60000002384 -1 0 0.69999998808 -1 + 0.10000000149 0.69999998808 -1 0.20000000298 0.69999998808 -1 + 0.30000001192 0.69999998808 -1 0.40000000596 0.69999998808 -1 + 0.5 0.69999998808 -1 0.60000002384 0.69999998808 -1 + 0.69999998808 0.69999998808 -1 0.80000001192 0.69999998808 -1 + 0.89999997616 0.69999998808 -1 1 0.69999998808 -1 + 1.1000000238 0.69999998808 -1 1.2000000477 0.69999998808 -1 + 1.2999999523 0.69999998808 -1 1.3999999762 0.69999998808 -1 + 1.5 0.69999998808 -1 1.6000000238 0.69999998808 -1 + 1.7000000477 0.69999998808 -1 1.7999999523 0.69999998808 -1 + 1.8999999762 0.69999998808 -1 2 0.69999998808 -1 + 2.0999999046 0.69999998808 -1 2.2000000477 0.69999998808 -1 + 2.2999999523 0.69999998808 -1 2.4000000954 0.69999998808 -1 + 2.5 0.69999998808 -1 2.5999999046 0.69999998808 -1 + 2.7000000477 0.69999998808 -1 2.7999999523 0.69999998808 -1 + 2.9000000954 0.69999998808 -1 3 0.69999998808 -1 + 3.0999999046 0.69999998808 -1 3.2000000477 0.69999998808 -1 + 3.2999999523 0.69999998808 -1 3.4000000954 0.69999998808 -1 + 3.5 0.69999998808 -1 3.5999999046 0.69999998808 -1 + 3.7000000477 0.69999998808 -1 3.7999999523 0.69999998808 -1 + 3.9000000954 0.69999998808 -1 4 0.69999998808 -1 + 4.0999999046 0.69999998808 -1 4.1999998093 0.69999998808 -1 + 4.3000001907 0.69999998808 -1 4.4000000954 0.69999998808 -1 + 4.5 0.69999998808 -1 4.5999999046 0.69999998808 -1 + 4.6999998093 0.69999998808 -1 4.8000001907 0.69999998808 -1 + 4.9000000954 0.69999998808 -1 5 0.69999998808 -1 + 5.0999999046 0.69999998808 -1 5.1999998093 0.69999998808 -1 + 5.3000001907 0.69999998808 -1 5.4000000954 0.69999998808 -1 + 5.5 0.69999998808 -1 5.5999999046 0.69999998808 -1 + 5.6999998093 0.69999998808 -1 5.8000001907 0.69999998808 -1 + 5.9000000954 0.69999998808 -1 6 0.69999998808 -1 + 6.0999999046 0.69999998808 -1 6.1999998093 0.69999998808 -1 + 6.3000001907 0.69999998808 -1 6.4000000954 0.69999998808 -1 + 6.5 0.69999998808 -1 6.5999999046 0.69999998808 -1 + 6.6999998093 0.69999998808 -1 6.8000001907 0.69999998808 -1 + 6.9000000954 0.69999998808 -1 7 0.69999998808 -1 + 7.0999999046 0.69999998808 -1 7.1999998093 0.69999998808 -1 + 7.3000001907 0.69999998808 -1 7.4000000954 0.69999998808 -1 + 7.5 0.69999998808 -1 7.5999999046 0.69999998808 -1 + 7.6999998093 0.69999998808 -1 7.8000001907 0.69999998808 -1 + 7.9000000954 0.69999998808 -1 8 0.69999998808 -1 + 8.1000003815 0.69999998808 -1 8.1999998093 0.69999998808 -1 + 8.3000001907 0.69999998808 -1 8.3999996185 0.69999998808 -1 + 8.5 0.69999998808 -1 8.6000003815 0.69999998808 -1 + 8.6999998093 0.69999998808 -1 8.8000001907 0.69999998808 -1 + 8.8999996185 0.69999998808 -1 9 0.69999998808 -1 + 0 0.80000001192 -1 0.10000000149 0.80000001192 -1 + 0.20000000298 0.80000001192 -1 0.30000001192 0.80000001192 -1 + 0.40000000596 0.80000001192 -1 0.5 0.80000001192 -1 + 0.60000002384 0.80000001192 -1 0.69999998808 0.80000001192 -1 + 0.80000001192 0.80000001192 -1 0.89999997616 0.80000001192 -1 + 1 0.80000001192 -1 1.1000000238 0.80000001192 -1 + 1.2000000477 0.80000001192 -1 1.2999999523 0.80000001192 -1 + 1.3999999762 0.80000001192 -1 1.5 0.80000001192 -1 + 1.6000000238 0.80000001192 -1 1.7000000477 0.80000001192 -1 + 1.7999999523 0.80000001192 -1 1.8999999762 0.80000001192 -1 + 2 0.80000001192 -1 2.0999999046 0.80000001192 -1 + 2.2000000477 0.80000001192 -1 2.2999999523 0.80000001192 -1 + 2.4000000954 0.80000001192 -1 2.5 0.80000001192 -1 + 2.5999999046 0.80000001192 -1 2.7000000477 0.80000001192 -1 + 2.7999999523 0.80000001192 -1 2.9000000954 0.80000001192 -1 + 3 0.80000001192 -1 3.0999999046 0.80000001192 -1 + 3.2000000477 0.80000001192 -1 3.2999999523 0.80000001192 -1 + 3.4000000954 0.80000001192 -1 3.5 0.80000001192 -1 + 3.5999999046 0.80000001192 -1 3.7000000477 0.80000001192 -1 + 3.7999999523 0.80000001192 -1 3.9000000954 0.80000001192 -1 + 4 0.80000001192 -1 4.0999999046 0.80000001192 -1 + 4.1999998093 0.80000001192 -1 4.3000001907 0.80000001192 -1 + 4.4000000954 0.80000001192 -1 4.5 0.80000001192 -1 + 4.5999999046 0.80000001192 -1 4.6999998093 0.80000001192 -1 + 4.8000001907 0.80000001192 -1 4.9000000954 0.80000001192 -1 + 5 0.80000001192 -1 5.0999999046 0.80000001192 -1 + 5.1999998093 0.80000001192 -1 5.3000001907 0.80000001192 -1 + 5.4000000954 0.80000001192 -1 5.5 0.80000001192 -1 + 5.5999999046 0.80000001192 -1 5.6999998093 0.80000001192 -1 + 5.8000001907 0.80000001192 -1 5.9000000954 0.80000001192 -1 + 6 0.80000001192 -1 6.0999999046 0.80000001192 -1 + 6.1999998093 0.80000001192 -1 6.3000001907 0.80000001192 -1 + 6.4000000954 0.80000001192 -1 6.5 0.80000001192 -1 + 6.5999999046 0.80000001192 -1 6.6999998093 0.80000001192 -1 + 6.8000001907 0.80000001192 -1 6.9000000954 0.80000001192 -1 + 7 0.80000001192 -1 7.0999999046 0.80000001192 -1 + 7.1999998093 0.80000001192 -1 7.3000001907 0.80000001192 -1 + 7.4000000954 0.80000001192 -1 7.5 0.80000001192 -1 + 7.5999999046 0.80000001192 -1 7.6999998093 0.80000001192 -1 + 7.8000001907 0.80000001192 -1 7.9000000954 0.80000001192 -1 + 8 0.80000001192 -1 8.1000003815 0.80000001192 -1 + 8.1999998093 0.80000001192 -1 8.3000001907 0.80000001192 -1 + 8.3999996185 0.80000001192 -1 8.5 0.80000001192 -1 + 8.6000003815 0.80000001192 -1 8.6999998093 0.80000001192 -1 + 8.8000001907 0.80000001192 -1 8.8999996185 0.80000001192 -1 + 9 0.80000001192 -1 0 0.89999997616 -1 + 0.10000000149 0.89999997616 -1 0.20000000298 0.89999997616 -1 + 0.30000001192 0.89999997616 -1 0.40000000596 0.89999997616 -1 + 0.5 0.89999997616 -1 0.60000002384 0.89999997616 -1 + 0.69999998808 0.89999997616 -1 0.80000001192 0.89999997616 -1 + 0.89999997616 0.89999997616 -1 1 0.89999997616 -1 + 1.1000000238 0.89999997616 -1 1.2000000477 0.89999997616 -1 + 1.2999999523 0.89999997616 -1 1.3999999762 0.89999997616 -1 + 1.5 0.89999997616 -1 1.6000000238 0.89999997616 -1 + 1.7000000477 0.89999997616 -1 1.7999999523 0.89999997616 -1 + 1.8999999762 0.89999997616 -1 2 0.89999997616 -1 + 2.0999999046 0.89999997616 -1 2.2000000477 0.89999997616 -1 + 2.2999999523 0.89999997616 -1 2.4000000954 0.89999997616 -1 + 2.5 0.89999997616 -1 2.5999999046 0.89999997616 -1 + 2.7000000477 0.89999997616 -1 2.7999999523 0.89999997616 -1 + 2.9000000954 0.89999997616 -1 3 0.89999997616 -1 + 3.0999999046 0.89999997616 -1 3.2000000477 0.89999997616 -1 + 3.2999999523 0.89999997616 -1 3.4000000954 0.89999997616 -1 + 3.5 0.89999997616 -1 3.5999999046 0.89999997616 -1 + 3.7000000477 0.89999997616 -1 3.7999999523 0.89999997616 -1 + 3.9000000954 0.89999997616 -1 4 0.89999997616 -1 + 4.0999999046 0.89999997616 -1 4.1999998093 0.89999997616 -1 + 4.3000001907 0.89999997616 -1 4.4000000954 0.89999997616 -1 + 4.5 0.89999997616 -1 4.5999999046 0.89999997616 -1 + 4.6999998093 0.89999997616 -1 4.8000001907 0.89999997616 -1 + 4.9000000954 0.89999997616 -1 5 0.89999997616 -1 + 5.0999999046 0.89999997616 -1 5.1999998093 0.89999997616 -1 + 5.3000001907 0.89999997616 -1 5.4000000954 0.89999997616 -1 + 5.5 0.89999997616 -1 5.5999999046 0.89999997616 -1 + 5.6999998093 0.89999997616 -1 5.8000001907 0.89999997616 -1 + 5.9000000954 0.89999997616 -1 6 0.89999997616 -1 + 6.0999999046 0.89999997616 -1 6.1999998093 0.89999997616 -1 + 6.3000001907 0.89999997616 -1 6.4000000954 0.89999997616 -1 + 6.5 0.89999997616 -1 6.5999999046 0.89999997616 -1 + 6.6999998093 0.89999997616 -1 6.8000001907 0.89999997616 -1 + 6.9000000954 0.89999997616 -1 7 0.89999997616 -1 + 7.0999999046 0.89999997616 -1 7.1999998093 0.89999997616 -1 + 7.3000001907 0.89999997616 -1 7.4000000954 0.89999997616 -1 + 7.5 0.89999997616 -1 7.5999999046 0.89999997616 -1 + 7.6999998093 0.89999997616 -1 7.8000001907 0.89999997616 -1 + 7.9000000954 0.89999997616 -1 8 0.89999997616 -1 + 8.1000003815 0.89999997616 -1 8.1999998093 0.89999997616 -1 + 8.3000001907 0.89999997616 -1 8.3999996185 0.89999997616 -1 + 8.5 0.89999997616 -1 8.6000003815 0.89999997616 -1 + 8.6999998093 0.89999997616 -1 8.8000001907 0.89999997616 -1 + 8.8999996185 0.89999997616 -1 9 0.89999997616 -1 + 0 1 -1 0.10000000149 1 -1 + 0.20000000298 1 -1 0.30000001192 1 -1 + 0.40000000596 1 -1 0.5 1 -1 + 0.60000002384 1 -1 0.69999998808 1 -1 + 0.80000001192 1 -1 0.89999997616 1 -1 + 1 1 -1 1.1000000238 1 -1 + 1.2000000477 1 -1 1.2999999523 1 -1 + 1.3999999762 1 -1 1.5 1 -1 + 1.6000000238 1 -1 1.7000000477 1 -1 + 1.7999999523 1 -1 1.8999999762 1 -1 + 2 1 -1 2.0999999046 1 -1 + 2.2000000477 1 -1 2.2999999523 1 -1 + 2.4000000954 1 -1 2.5 1 -1 + 2.5999999046 1 -1 2.7000000477 1 -1 + 2.7999999523 1 -1 2.9000000954 1 -1 + 3 1 -1 3.0999999046 1 -1 + 3.2000000477 1 -1 3.2999999523 1 -1 + 3.4000000954 1 -1 3.5 1 -1 + 3.5999999046 1 -1 3.7000000477 1 -1 + 3.7999999523 1 -1 3.9000000954 1 -1 + 4 1 -1 4.0999999046 1 -1 + 4.1999998093 1 -1 4.3000001907 1 -1 + 4.4000000954 1 -1 4.5 1 -1 + 4.5999999046 1 -1 4.6999998093 1 -1 + 4.8000001907 1 -1 4.9000000954 1 -1 + 5 1 -1 5.0999999046 1 -1 + 5.1999998093 1 -1 5.3000001907 1 -1 + 5.4000000954 1 -1 5.5 1 -1 + 5.5999999046 1 -1 5.6999998093 1 -1 + 5.8000001907 1 -1 5.9000000954 1 -1 + 6 1 -1 6.0999999046 1 -1 + 6.1999998093 1 -1 6.3000001907 1 -1 + 6.4000000954 1 -1 6.5 1 -1 + 6.5999999046 1 -1 6.6999998093 1 -1 + 6.8000001907 1 -1 6.9000000954 1 -1 + 7 1 -1 7.0999999046 1 -1 + 7.1999998093 1 -1 7.3000001907 1 -1 + 7.4000000954 1 -1 7.5 1 -1 + 7.5999999046 1 -1 7.6999998093 1 -1 + 7.8000001907 1 -1 7.9000000954 1 -1 + 8 1 -1 8.1000003815 1 -1 + 8.1999998093 1 -1 8.3000001907 1 -1 + 8.3999996185 1 -1 8.5 1 -1 + 8.6000003815 1 -1 8.6999998093 1 -1 + 8.8000001907 1 -1 8.8999996185 1 -1 + 9 1 -1 0 0 1 + 0.10000000149 0 1 0.20000000298 0 1 + 0.30000001192 0 1 0.40000000596 0 1 + 0.5 0 1 0.60000002384 0 1 + 0.69999998808 0 1 0.80000001192 0 1 + 0.89999997616 0 1 1 0 1 + 1.1000000238 0 1 1.2000000477 0 1 + 1.2999999523 0 1 1.3999999762 0 1 + 1.5 0 1 1.6000000238 0 1 + 1.7000000477 0 1 1.7999999523 0 1 + 1.8999999762 0 1 2 0 1 + 2.0999999046 0 1 2.2000000477 0 1 + 2.2999999523 0 1 2.4000000954 0 1 + 2.5 0 1 2.5999999046 0 1 + 2.7000000477 0 1 2.7999999523 0 1 + 2.9000000954 0 1 3 0 1 + 3.0999999046 0 1 3.2000000477 0 1 + 3.2999999523 0 1 3.4000000954 0 1 + 3.5 0 1 3.5999999046 0 1 + 3.7000000477 0 1 3.7999999523 0 1 + 3.9000000954 0 1 4 0 1 + 4.0999999046 0 1 4.1999998093 0 1 + 4.3000001907 0 1 4.4000000954 0 1 + 4.5 0 1 4.5999999046 0 1 + 4.6999998093 0 1 4.8000001907 0 1 + 4.9000000954 0 1 5 0 1 + 5.0999999046 0 1 5.1999998093 0 1 + 5.3000001907 0 1 5.4000000954 0 1 + 5.5 0 1 5.5999999046 0 1 + 5.6999998093 0 1 5.8000001907 0 1 + 5.9000000954 0 1 6 0 1 + 6.0999999046 0 1 6.1999998093 0 1 + 6.3000001907 0 1 6.4000000954 0 1 + 6.5 0 1 6.5999999046 0 1 + 6.6999998093 0 1 6.8000001907 0 1 + 6.9000000954 0 1 7 0 1 + 7.0999999046 0 1 7.1999998093 0 1 + 7.3000001907 0 1 7.4000000954 0 1 + 7.5 0 1 7.5999999046 0 1 + 7.6999998093 0 1 7.8000001907 0 1 + 7.9000000954 0 1 8 0 1 + 8.1000003815 0 1 8.1999998093 0 1 + 8.3000001907 0 1 8.3999996185 0 1 + 8.5 0 1 8.6000003815 0 1 + 8.6999998093 0 1 8.8000001907 0 1 + 8.8999996185 0 1 9 0 1 + 0 0.10000000149 1 0.10000000149 0.10000000149 1 + 0.20000000298 0.10000000149 1 0.30000001192 0.10000000149 1 + 0.40000000596 0.10000000149 1 0.5 0.10000000149 1 + 0.60000002384 0.10000000149 1 0.69999998808 0.10000000149 1 + 0.80000001192 0.10000000149 1 0.89999997616 0.10000000149 1 + 1 0.10000000149 1 1.1000000238 0.10000000149 1 + 1.2000000477 0.10000000149 1 1.2999999523 0.10000000149 1 + 1.3999999762 0.10000000149 1 1.5 0.10000000149 1 + 1.6000000238 0.10000000149 1 1.7000000477 0.10000000149 1 + 1.7999999523 0.10000000149 1 1.8999999762 0.10000000149 1 + 2 0.10000000149 1 2.0999999046 0.10000000149 1 + 2.2000000477 0.10000000149 1 2.2999999523 0.10000000149 1 + 2.4000000954 0.10000000149 1 2.5 0.10000000149 1 + 2.5999999046 0.10000000149 1 2.7000000477 0.10000000149 1 + 2.7999999523 0.10000000149 1 2.9000000954 0.10000000149 1 + 3 0.10000000149 1 3.0999999046 0.10000000149 1 + 3.2000000477 0.10000000149 1 3.2999999523 0.10000000149 1 + 3.4000000954 0.10000000149 1 3.5 0.10000000149 1 + 3.5999999046 0.10000000149 1 3.7000000477 0.10000000149 1 + 3.7999999523 0.10000000149 1 3.9000000954 0.10000000149 1 + 4 0.10000000149 1 4.0999999046 0.10000000149 1 + 4.1999998093 0.10000000149 1 4.3000001907 0.10000000149 1 + 4.4000000954 0.10000000149 1 4.5 0.10000000149 1 + 4.5999999046 0.10000000149 1 4.6999998093 0.10000000149 1 + 4.8000001907 0.10000000149 1 4.9000000954 0.10000000149 1 + 5 0.10000000149 1 5.0999999046 0.10000000149 1 + 5.1999998093 0.10000000149 1 5.3000001907 0.10000000149 1 + 5.4000000954 0.10000000149 1 5.5 0.10000000149 1 + 5.5999999046 0.10000000149 1 5.6999998093 0.10000000149 1 + 5.8000001907 0.10000000149 1 5.9000000954 0.10000000149 1 + 6 0.10000000149 1 6.0999999046 0.10000000149 1 + 6.1999998093 0.10000000149 1 6.3000001907 0.10000000149 1 + 6.4000000954 0.10000000149 1 6.5 0.10000000149 1 + 6.5999999046 0.10000000149 1 6.6999998093 0.10000000149 1 + 6.8000001907 0.10000000149 1 6.9000000954 0.10000000149 1 + 7 0.10000000149 1 7.0999999046 0.10000000149 1 + 7.1999998093 0.10000000149 1 7.3000001907 0.10000000149 1 + 7.4000000954 0.10000000149 1 7.5 0.10000000149 1 + 7.5999999046 0.10000000149 1 7.6999998093 0.10000000149 1 + 7.8000001907 0.10000000149 1 7.9000000954 0.10000000149 1 + 8 0.10000000149 1 8.1000003815 0.10000000149 1 + 8.1999998093 0.10000000149 1 8.3000001907 0.10000000149 1 + 8.3999996185 0.10000000149 1 8.5 0.10000000149 1 + 8.6000003815 0.10000000149 1 8.6999998093 0.10000000149 1 + 8.8000001907 0.10000000149 1 8.8999996185 0.10000000149 1 + 9 0.10000000149 1 0 0.20000000298 1 + 0.10000000149 0.20000000298 1 0.20000000298 0.20000000298 1 + 0.30000001192 0.20000000298 1 0.40000000596 0.20000000298 1 + 0.5 0.20000000298 1 0.60000002384 0.20000000298 1 + 0.69999998808 0.20000000298 1 0.80000001192 0.20000000298 1 + 0.89999997616 0.20000000298 1 1 0.20000000298 1 + 1.1000000238 0.20000000298 1 1.2000000477 0.20000000298 1 + 1.2999999523 0.20000000298 1 1.3999999762 0.20000000298 1 + 1.5 0.20000000298 1 1.6000000238 0.20000000298 1 + 1.7000000477 0.20000000298 1 1.7999999523 0.20000000298 1 + 1.8999999762 0.20000000298 1 2 0.20000000298 1 + 2.0999999046 0.20000000298 1 2.2000000477 0.20000000298 1 + 2.2999999523 0.20000000298 1 2.4000000954 0.20000000298 1 + 2.5 0.20000000298 1 2.5999999046 0.20000000298 1 + 2.7000000477 0.20000000298 1 2.7999999523 0.20000000298 1 + 2.9000000954 0.20000000298 1 3 0.20000000298 1 + 3.0999999046 0.20000000298 1 3.2000000477 0.20000000298 1 + 3.2999999523 0.20000000298 1 3.4000000954 0.20000000298 1 + 3.5 0.20000000298 1 3.5999999046 0.20000000298 1 + 3.7000000477 0.20000000298 1 3.7999999523 0.20000000298 1 + 3.9000000954 0.20000000298 1 4 0.20000000298 1 + 4.0999999046 0.20000000298 1 4.1999998093 0.20000000298 1 + 4.3000001907 0.20000000298 1 4.4000000954 0.20000000298 1 + 4.5 0.20000000298 1 4.5999999046 0.20000000298 1 + 4.6999998093 0.20000000298 1 4.8000001907 0.20000000298 1 + 4.9000000954 0.20000000298 1 5 0.20000000298 1 + 5.0999999046 0.20000000298 1 5.1999998093 0.20000000298 1 + 5.3000001907 0.20000000298 1 5.4000000954 0.20000000298 1 + 5.5 0.20000000298 1 5.5999999046 0.20000000298 1 + 5.6999998093 0.20000000298 1 5.8000001907 0.20000000298 1 + 5.9000000954 0.20000000298 1 6 0.20000000298 1 + 6.0999999046 0.20000000298 1 6.1999998093 0.20000000298 1 + 6.3000001907 0.20000000298 1 6.4000000954 0.20000000298 1 + 6.5 0.20000000298 1 6.5999999046 0.20000000298 1 + 6.6999998093 0.20000000298 1 6.8000001907 0.20000000298 1 + 6.9000000954 0.20000000298 1 7 0.20000000298 1 + 7.0999999046 0.20000000298 1 7.1999998093 0.20000000298 1 + 7.3000001907 0.20000000298 1 7.4000000954 0.20000000298 1 + 7.5 0.20000000298 1 7.5999999046 0.20000000298 1 + 7.6999998093 0.20000000298 1 7.8000001907 0.20000000298 1 + 7.9000000954 0.20000000298 1 8 0.20000000298 1 + 8.1000003815 0.20000000298 1 8.1999998093 0.20000000298 1 + 8.3000001907 0.20000000298 1 8.3999996185 0.20000000298 1 + 8.5 0.20000000298 1 8.6000003815 0.20000000298 1 + 8.6999998093 0.20000000298 1 8.8000001907 0.20000000298 1 + 8.8999996185 0.20000000298 1 9 0.20000000298 1 + 0 0.30000001192 1 0.10000000149 0.30000001192 1 + 0.20000000298 0.30000001192 1 0.30000001192 0.30000001192 1 + 0.40000000596 0.30000001192 1 0.5 0.30000001192 1 + 0.60000002384 0.30000001192 1 0.69999998808 0.30000001192 1 + 0.80000001192 0.30000001192 1 0.89999997616 0.30000001192 1 + 1 0.30000001192 1 1.1000000238 0.30000001192 1 + 1.2000000477 0.30000001192 1 1.2999999523 0.30000001192 1 + 1.3999999762 0.30000001192 1 1.5 0.30000001192 1 + 1.6000000238 0.30000001192 1 1.7000000477 0.30000001192 1 + 1.7999999523 0.30000001192 1 1.8999999762 0.30000001192 1 + 2 0.30000001192 1 2.0999999046 0.30000001192 1 + 2.2000000477 0.30000001192 1 2.2999999523 0.30000001192 1 + 2.4000000954 0.30000001192 1 2.5 0.30000001192 1 + 2.5999999046 0.30000001192 1 2.7000000477 0.30000001192 1 + 2.7999999523 0.30000001192 1 2.9000000954 0.30000001192 1 + 3 0.30000001192 1 3.0999999046 0.30000001192 1 + 3.2000000477 0.30000001192 1 3.2999999523 0.30000001192 1 + 3.4000000954 0.30000001192 1 3.5 0.30000001192 1 + 3.5999999046 0.30000001192 1 3.7000000477 0.30000001192 1 + 3.7999999523 0.30000001192 1 3.9000000954 0.30000001192 1 + 4 0.30000001192 1 4.0999999046 0.30000001192 1 + 4.1999998093 0.30000001192 1 4.3000001907 0.30000001192 1 + 4.4000000954 0.30000001192 1 4.5 0.30000001192 1 + 4.5999999046 0.30000001192 1 4.6999998093 0.30000001192 1 + 4.8000001907 0.30000001192 1 4.9000000954 0.30000001192 1 + 5 0.30000001192 1 5.0999999046 0.30000001192 1 + 5.1999998093 0.30000001192 1 5.3000001907 0.30000001192 1 + 5.4000000954 0.30000001192 1 5.5 0.30000001192 1 + 5.5999999046 0.30000001192 1 5.6999998093 0.30000001192 1 + 5.8000001907 0.30000001192 1 5.9000000954 0.30000001192 1 + 6 0.30000001192 1 6.0999999046 0.30000001192 1 + 6.1999998093 0.30000001192 1 6.3000001907 0.30000001192 1 + 6.4000000954 0.30000001192 1 6.5 0.30000001192 1 + 6.5999999046 0.30000001192 1 6.6999998093 0.30000001192 1 + 6.8000001907 0.30000001192 1 6.9000000954 0.30000001192 1 + 7 0.30000001192 1 7.0999999046 0.30000001192 1 + 7.1999998093 0.30000001192 1 7.3000001907 0.30000001192 1 + 7.4000000954 0.30000001192 1 7.5 0.30000001192 1 + 7.5999999046 0.30000001192 1 7.6999998093 0.30000001192 1 + 7.8000001907 0.30000001192 1 7.9000000954 0.30000001192 1 + 8 0.30000001192 1 8.1000003815 0.30000001192 1 + 8.1999998093 0.30000001192 1 8.3000001907 0.30000001192 1 + 8.3999996185 0.30000001192 1 8.5 0.30000001192 1 + 8.6000003815 0.30000001192 1 8.6999998093 0.30000001192 1 + 8.8000001907 0.30000001192 1 8.8999996185 0.30000001192 1 + 9 0.30000001192 1 0 0.40000000596 1 + 0.10000000149 0.40000000596 1 0.20000000298 0.40000000596 1 + 0.30000001192 0.40000000596 1 0.40000000596 0.40000000596 1 + 0.5 0.40000000596 1 0.60000002384 0.40000000596 1 + 0.69999998808 0.40000000596 1 0.80000001192 0.40000000596 1 + 0.89999997616 0.40000000596 1 1 0.40000000596 1 + 1.1000000238 0.40000000596 1 1.2000000477 0.40000000596 1 + 1.2999999523 0.40000000596 1 1.3999999762 0.40000000596 1 + 1.5 0.40000000596 1 1.6000000238 0.40000000596 1 + 1.7000000477 0.40000000596 1 1.7999999523 0.40000000596 1 + 1.8999999762 0.40000000596 1 2 0.40000000596 1 + 2.0999999046 0.40000000596 1 2.2000000477 0.40000000596 1 + 2.2999999523 0.40000000596 1 2.4000000954 0.40000000596 1 + 2.5 0.40000000596 1 2.5999999046 0.40000000596 1 + 2.7000000477 0.40000000596 1 2.7999999523 0.40000000596 1 + 2.9000000954 0.40000000596 1 3 0.40000000596 1 + 3.0999999046 0.40000000596 1 3.2000000477 0.40000000596 1 + 3.2999999523 0.40000000596 1 3.4000000954 0.40000000596 1 + 3.5 0.40000000596 1 3.5999999046 0.40000000596 1 + 3.7000000477 0.40000000596 1 3.7999999523 0.40000000596 1 + 3.9000000954 0.40000000596 1 4 0.40000000596 1 + 4.0999999046 0.40000000596 1 4.1999998093 0.40000000596 1 + 4.3000001907 0.40000000596 1 4.4000000954 0.40000000596 1 + 4.5 0.40000000596 1 4.5999999046 0.40000000596 1 + 4.6999998093 0.40000000596 1 4.8000001907 0.40000000596 1 + 4.9000000954 0.40000000596 1 5 0.40000000596 1 + 5.0999999046 0.40000000596 1 5.1999998093 0.40000000596 1 + 5.3000001907 0.40000000596 1 5.4000000954 0.40000000596 1 + 5.5 0.40000000596 1 5.5999999046 0.40000000596 1 + 5.6999998093 0.40000000596 1 5.8000001907 0.40000000596 1 + 5.9000000954 0.40000000596 1 6 0.40000000596 1 + 6.0999999046 0.40000000596 1 6.1999998093 0.40000000596 1 + 6.3000001907 0.40000000596 1 6.4000000954 0.40000000596 1 + 6.5 0.40000000596 1 6.5999999046 0.40000000596 1 + 6.6999998093 0.40000000596 1 6.8000001907 0.40000000596 1 + 6.9000000954 0.40000000596 1 7 0.40000000596 1 + 7.0999999046 0.40000000596 1 7.1999998093 0.40000000596 1 + 7.3000001907 0.40000000596 1 7.4000000954 0.40000000596 1 + 7.5 0.40000000596 1 7.5999999046 0.40000000596 1 + 7.6999998093 0.40000000596 1 7.8000001907 0.40000000596 1 + 7.9000000954 0.40000000596 1 8 0.40000000596 1 + 8.1000003815 0.40000000596 1 8.1999998093 0.40000000596 1 + 8.3000001907 0.40000000596 1 8.3999996185 0.40000000596 1 + 8.5 0.40000000596 1 8.6000003815 0.40000000596 1 + 8.6999998093 0.40000000596 1 8.8000001907 0.40000000596 1 + 8.8999996185 0.40000000596 1 9 0.40000000596 1 + 0 0.5 1 0.10000000149 0.5 1 + 0.20000000298 0.5 1 0.30000001192 0.5 1 + 0.40000000596 0.5 1 0.5 0.5 1 + 0.60000002384 0.5 1 0.69999998808 0.5 1 + 0.80000001192 0.5 1 0.89999997616 0.5 1 + 1 0.5 1 1.1000000238 0.5 1 + 1.2000000477 0.5 1 1.2999999523 0.5 1 + 1.3999999762 0.5 1 1.5 0.5 1 + 1.6000000238 0.5 1 1.7000000477 0.5 1 + 1.7999999523 0.5 1 1.8999999762 0.5 1 + 2 0.5 1 2.0999999046 0.5 1 + 2.2000000477 0.5 1 2.2999999523 0.5 1 + 2.4000000954 0.5 1 2.5 0.5 1 + 2.5999999046 0.5 1 2.7000000477 0.5 1 + 2.7999999523 0.5 1 2.9000000954 0.5 1 + 3 0.5 1 3.0999999046 0.5 1 + 3.2000000477 0.5 1 3.2999999523 0.5 1 + 3.4000000954 0.5 1 3.5 0.5 1 + 3.5999999046 0.5 1 3.7000000477 0.5 1 + 3.7999999523 0.5 1 3.9000000954 0.5 1 + 4 0.5 1 4.0999999046 0.5 1 + 4.1999998093 0.5 1 4.3000001907 0.5 1 + 4.4000000954 0.5 1 4.5 0.5 1 + 4.5999999046 0.5 1 4.6999998093 0.5 1 + 4.8000001907 0.5 1 4.9000000954 0.5 1 + 5 0.5 1 5.0999999046 0.5 1 + 5.1999998093 0.5 1 5.3000001907 0.5 1 + 5.4000000954 0.5 1 5.5 0.5 1 + 5.5999999046 0.5 1 5.6999998093 0.5 1 + 5.8000001907 0.5 1 5.9000000954 0.5 1 + 6 0.5 1 6.0999999046 0.5 1 + 6.1999998093 0.5 1 6.3000001907 0.5 1 + 6.4000000954 0.5 1 6.5 0.5 1 + 6.5999999046 0.5 1 6.6999998093 0.5 1 + 6.8000001907 0.5 1 6.9000000954 0.5 1 + 7 0.5 1 7.0999999046 0.5 1 + 7.1999998093 0.5 1 7.3000001907 0.5 1 + 7.4000000954 0.5 1 7.5 0.5 1 + 7.5999999046 0.5 1 7.6999998093 0.5 1 + 7.8000001907 0.5 1 7.9000000954 0.5 1 + 8 0.5 1 8.1000003815 0.5 1 + 8.1999998093 0.5 1 8.3000001907 0.5 1 + 8.3999996185 0.5 1 8.5 0.5 1 + 8.6000003815 0.5 1 8.6999998093 0.5 1 + 8.8000001907 0.5 1 8.8999996185 0.5 1 + 9 0.5 1 0 0.60000002384 1 + 0.10000000149 0.60000002384 1 0.20000000298 0.60000002384 1 + 0.30000001192 0.60000002384 1 0.40000000596 0.60000002384 1 + 0.5 0.60000002384 1 0.60000002384 0.60000002384 1 + 0.69999998808 0.60000002384 1 0.80000001192 0.60000002384 1 + 0.89999997616 0.60000002384 1 1 0.60000002384 1 + 1.1000000238 0.60000002384 1 1.2000000477 0.60000002384 1 + 1.2999999523 0.60000002384 1 1.3999999762 0.60000002384 1 + 1.5 0.60000002384 1 1.6000000238 0.60000002384 1 + 1.7000000477 0.60000002384 1 1.7999999523 0.60000002384 1 + 1.8999999762 0.60000002384 1 2 0.60000002384 1 + 2.0999999046 0.60000002384 1 2.2000000477 0.60000002384 1 + 2.2999999523 0.60000002384 1 2.4000000954 0.60000002384 1 + 2.5 0.60000002384 1 2.5999999046 0.60000002384 1 + 2.7000000477 0.60000002384 1 2.7999999523 0.60000002384 1 + 2.9000000954 0.60000002384 1 3 0.60000002384 1 + 3.0999999046 0.60000002384 1 3.2000000477 0.60000002384 1 + 3.2999999523 0.60000002384 1 3.4000000954 0.60000002384 1 + 3.5 0.60000002384 1 3.5999999046 0.60000002384 1 + 3.7000000477 0.60000002384 1 3.7999999523 0.60000002384 1 + 3.9000000954 0.60000002384 1 4 0.60000002384 1 + 4.0999999046 0.60000002384 1 4.1999998093 0.60000002384 1 + 4.3000001907 0.60000002384 1 4.4000000954 0.60000002384 1 + 4.5 0.60000002384 1 4.5999999046 0.60000002384 1 + 4.6999998093 0.60000002384 1 4.8000001907 0.60000002384 1 + 4.9000000954 0.60000002384 1 5 0.60000002384 1 + 5.0999999046 0.60000002384 1 5.1999998093 0.60000002384 1 + 5.3000001907 0.60000002384 1 5.4000000954 0.60000002384 1 + 5.5 0.60000002384 1 5.5999999046 0.60000002384 1 + 5.6999998093 0.60000002384 1 5.8000001907 0.60000002384 1 + 5.9000000954 0.60000002384 1 6 0.60000002384 1 + 6.0999999046 0.60000002384 1 6.1999998093 0.60000002384 1 + 6.3000001907 0.60000002384 1 6.4000000954 0.60000002384 1 + 6.5 0.60000002384 1 6.5999999046 0.60000002384 1 + 6.6999998093 0.60000002384 1 6.8000001907 0.60000002384 1 + 6.9000000954 0.60000002384 1 7 0.60000002384 1 + 7.0999999046 0.60000002384 1 7.1999998093 0.60000002384 1 + 7.3000001907 0.60000002384 1 7.4000000954 0.60000002384 1 + 7.5 0.60000002384 1 7.5999999046 0.60000002384 1 + 7.6999998093 0.60000002384 1 7.8000001907 0.60000002384 1 + 7.9000000954 0.60000002384 1 8 0.60000002384 1 + 8.1000003815 0.60000002384 1 8.1999998093 0.60000002384 1 + 8.3000001907 0.60000002384 1 8.3999996185 0.60000002384 1 + 8.5 0.60000002384 1 8.6000003815 0.60000002384 1 + 8.6999998093 0.60000002384 1 8.8000001907 0.60000002384 1 + 8.8999996185 0.60000002384 1 9 0.60000002384 1 + 0 0.69999998808 1 0.10000000149 0.69999998808 1 + 0.20000000298 0.69999998808 1 0.30000001192 0.69999998808 1 + 0.40000000596 0.69999998808 1 0.5 0.69999998808 1 + 0.60000002384 0.69999998808 1 0.69999998808 0.69999998808 1 + 0.80000001192 0.69999998808 1 0.89999997616 0.69999998808 1 + 1 0.69999998808 1 1.1000000238 0.69999998808 1 + 1.2000000477 0.69999998808 1 1.2999999523 0.69999998808 1 + 1.3999999762 0.69999998808 1 1.5 0.69999998808 1 + 1.6000000238 0.69999998808 1 1.7000000477 0.69999998808 1 + 1.7999999523 0.69999998808 1 1.8999999762 0.69999998808 1 + 2 0.69999998808 1 2.0999999046 0.69999998808 1 + 2.2000000477 0.69999998808 1 2.2999999523 0.69999998808 1 + 2.4000000954 0.69999998808 1 2.5 0.69999998808 1 + 2.5999999046 0.69999998808 1 2.7000000477 0.69999998808 1 + 2.7999999523 0.69999998808 1 2.9000000954 0.69999998808 1 + 3 0.69999998808 1 3.0999999046 0.69999998808 1 + 3.2000000477 0.69999998808 1 3.2999999523 0.69999998808 1 + 3.4000000954 0.69999998808 1 3.5 0.69999998808 1 + 3.5999999046 0.69999998808 1 3.7000000477 0.69999998808 1 + 3.7999999523 0.69999998808 1 3.9000000954 0.69999998808 1 + 4 0.69999998808 1 4.0999999046 0.69999998808 1 + 4.1999998093 0.69999998808 1 4.3000001907 0.69999998808 1 + 4.4000000954 0.69999998808 1 4.5 0.69999998808 1 + 4.5999999046 0.69999998808 1 4.6999998093 0.69999998808 1 + 4.8000001907 0.69999998808 1 4.9000000954 0.69999998808 1 + 5 0.69999998808 1 5.0999999046 0.69999998808 1 + 5.1999998093 0.69999998808 1 5.3000001907 0.69999998808 1 + 5.4000000954 0.69999998808 1 5.5 0.69999998808 1 + 5.5999999046 0.69999998808 1 5.6999998093 0.69999998808 1 + 5.8000001907 0.69999998808 1 5.9000000954 0.69999998808 1 + 6 0.69999998808 1 6.0999999046 0.69999998808 1 + 6.1999998093 0.69999998808 1 6.3000001907 0.69999998808 1 + 6.4000000954 0.69999998808 1 6.5 0.69999998808 1 + 6.5999999046 0.69999998808 1 6.6999998093 0.69999998808 1 + 6.8000001907 0.69999998808 1 6.9000000954 0.69999998808 1 + 7 0.69999998808 1 7.0999999046 0.69999998808 1 + 7.1999998093 0.69999998808 1 7.3000001907 0.69999998808 1 + 7.4000000954 0.69999998808 1 7.5 0.69999998808 1 + 7.5999999046 0.69999998808 1 7.6999998093 0.69999998808 1 + 7.8000001907 0.69999998808 1 7.9000000954 0.69999998808 1 + 8 0.69999998808 1 8.1000003815 0.69999998808 1 + 8.1999998093 0.69999998808 1 8.3000001907 0.69999998808 1 + 8.3999996185 0.69999998808 1 8.5 0.69999998808 1 + 8.6000003815 0.69999998808 1 8.6999998093 0.69999998808 1 + 8.8000001907 0.69999998808 1 8.8999996185 0.69999998808 1 + 9 0.69999998808 1 0 0.80000001192 1 + 0.10000000149 0.80000001192 1 0.20000000298 0.80000001192 1 + 0.30000001192 0.80000001192 1 0.40000000596 0.80000001192 1 + 0.5 0.80000001192 1 0.60000002384 0.80000001192 1 + 0.69999998808 0.80000001192 1 0.80000001192 0.80000001192 1 + 0.89999997616 0.80000001192 1 1 0.80000001192 1 + 1.1000000238 0.80000001192 1 1.2000000477 0.80000001192 1 + 1.2999999523 0.80000001192 1 1.3999999762 0.80000001192 1 + 1.5 0.80000001192 1 1.6000000238 0.80000001192 1 + 1.7000000477 0.80000001192 1 1.7999999523 0.80000001192 1 + 1.8999999762 0.80000001192 1 2 0.80000001192 1 + 2.0999999046 0.80000001192 1 2.2000000477 0.80000001192 1 + 2.2999999523 0.80000001192 1 2.4000000954 0.80000001192 1 + 2.5 0.80000001192 1 2.5999999046 0.80000001192 1 + 2.7000000477 0.80000001192 1 2.7999999523 0.80000001192 1 + 2.9000000954 0.80000001192 1 3 0.80000001192 1 + 3.0999999046 0.80000001192 1 3.2000000477 0.80000001192 1 + 3.2999999523 0.80000001192 1 3.4000000954 0.80000001192 1 + 3.5 0.80000001192 1 3.5999999046 0.80000001192 1 + 3.7000000477 0.80000001192 1 3.7999999523 0.80000001192 1 + 3.9000000954 0.80000001192 1 4 0.80000001192 1 + 4.0999999046 0.80000001192 1 4.1999998093 0.80000001192 1 + 4.3000001907 0.80000001192 1 4.4000000954 0.80000001192 1 + 4.5 0.80000001192 1 4.5999999046 0.80000001192 1 + 4.6999998093 0.80000001192 1 4.8000001907 0.80000001192 1 + 4.9000000954 0.80000001192 1 5 0.80000001192 1 + 5.0999999046 0.80000001192 1 5.1999998093 0.80000001192 1 + 5.3000001907 0.80000001192 1 5.4000000954 0.80000001192 1 + 5.5 0.80000001192 1 5.5999999046 0.80000001192 1 + 5.6999998093 0.80000001192 1 5.8000001907 0.80000001192 1 + 5.9000000954 0.80000001192 1 6 0.80000001192 1 + 6.0999999046 0.80000001192 1 6.1999998093 0.80000001192 1 + 6.3000001907 0.80000001192 1 6.4000000954 0.80000001192 1 + 6.5 0.80000001192 1 6.5999999046 0.80000001192 1 + 6.6999998093 0.80000001192 1 6.8000001907 0.80000001192 1 + 6.9000000954 0.80000001192 1 7 0.80000001192 1 + 7.0999999046 0.80000001192 1 7.1999998093 0.80000001192 1 + 7.3000001907 0.80000001192 1 7.4000000954 0.80000001192 1 + 7.5 0.80000001192 1 7.5999999046 0.80000001192 1 + 7.6999998093 0.80000001192 1 7.8000001907 0.80000001192 1 + 7.9000000954 0.80000001192 1 8 0.80000001192 1 + 8.1000003815 0.80000001192 1 8.1999998093 0.80000001192 1 + 8.3000001907 0.80000001192 1 8.3999996185 0.80000001192 1 + 8.5 0.80000001192 1 8.6000003815 0.80000001192 1 + 8.6999998093 0.80000001192 1 8.8000001907 0.80000001192 1 + 8.8999996185 0.80000001192 1 9 0.80000001192 1 + 0 0.89999997616 1 0.10000000149 0.89999997616 1 + 0.20000000298 0.89999997616 1 0.30000001192 0.89999997616 1 + 0.40000000596 0.89999997616 1 0.5 0.89999997616 1 + 0.60000002384 0.89999997616 1 0.69999998808 0.89999997616 1 + 0.80000001192 0.89999997616 1 0.89999997616 0.89999997616 1 + 1 0.89999997616 1 1.1000000238 0.89999997616 1 + 1.2000000477 0.89999997616 1 1.2999999523 0.89999997616 1 + 1.3999999762 0.89999997616 1 1.5 0.89999997616 1 + 1.6000000238 0.89999997616 1 1.7000000477 0.89999997616 1 + 1.7999999523 0.89999997616 1 1.8999999762 0.89999997616 1 + 2 0.89999997616 1 2.0999999046 0.89999997616 1 + 2.2000000477 0.89999997616 1 2.2999999523 0.89999997616 1 + 2.4000000954 0.89999997616 1 2.5 0.89999997616 1 + 2.5999999046 0.89999997616 1 2.7000000477 0.89999997616 1 + 2.7999999523 0.89999997616 1 2.9000000954 0.89999997616 1 + 3 0.89999997616 1 3.0999999046 0.89999997616 1 + 3.2000000477 0.89999997616 1 3.2999999523 0.89999997616 1 + 3.4000000954 0.89999997616 1 3.5 0.89999997616 1 + 3.5999999046 0.89999997616 1 3.7000000477 0.89999997616 1 + 3.7999999523 0.89999997616 1 3.9000000954 0.89999997616 1 + 4 0.89999997616 1 4.0999999046 0.89999997616 1 + 4.1999998093 0.89999997616 1 4.3000001907 0.89999997616 1 + 4.4000000954 0.89999997616 1 4.5 0.89999997616 1 + 4.5999999046 0.89999997616 1 4.6999998093 0.89999997616 1 + 4.8000001907 0.89999997616 1 4.9000000954 0.89999997616 1 + 5 0.89999997616 1 5.0999999046 0.89999997616 1 + 5.1999998093 0.89999997616 1 5.3000001907 0.89999997616 1 + 5.4000000954 0.89999997616 1 5.5 0.89999997616 1 + 5.5999999046 0.89999997616 1 5.6999998093 0.89999997616 1 + 5.8000001907 0.89999997616 1 5.9000000954 0.89999997616 1 + 6 0.89999997616 1 6.0999999046 0.89999997616 1 + 6.1999998093 0.89999997616 1 6.3000001907 0.89999997616 1 + 6.4000000954 0.89999997616 1 6.5 0.89999997616 1 + 6.5999999046 0.89999997616 1 6.6999998093 0.89999997616 1 + 6.8000001907 0.89999997616 1 6.9000000954 0.89999997616 1 + 7 0.89999997616 1 7.0999999046 0.89999997616 1 + 7.1999998093 0.89999997616 1 7.3000001907 0.89999997616 1 + 7.4000000954 0.89999997616 1 7.5 0.89999997616 1 + 7.5999999046 0.89999997616 1 7.6999998093 0.89999997616 1 + 7.8000001907 0.89999997616 1 7.9000000954 0.89999997616 1 + 8 0.89999997616 1 8.1000003815 0.89999997616 1 + 8.1999998093 0.89999997616 1 8.3000001907 0.89999997616 1 + 8.3999996185 0.89999997616 1 8.5 0.89999997616 1 + 8.6000003815 0.89999997616 1 8.6999998093 0.89999997616 1 + 8.8000001907 0.89999997616 1 8.8999996185 0.89999997616 1 + 9 0.89999997616 1 0 1 1 + 0.10000000149 1 1 0.20000000298 1 1 + 0.30000001192 1 1 0.40000000596 1 1 + 0.5 1 1 0.60000002384 1 1 + 0.69999998808 1 1 0.80000001192 1 1 + 0.89999997616 1 1 1 1 1 + 1.1000000238 1 1 1.2000000477 1 1 + 1.2999999523 1 1 1.3999999762 1 1 + 1.5 1 1 1.6000000238 1 1 + 1.7000000477 1 1 1.7999999523 1 1 + 1.8999999762 1 1 2 1 1 + 2.0999999046 1 1 2.2000000477 1 1 + 2.2999999523 1 1 2.4000000954 1 1 + 2.5 1 1 2.5999999046 1 1 + 2.7000000477 1 1 2.7999999523 1 1 + 2.9000000954 1 1 3 1 1 + 3.0999999046 1 1 3.2000000477 1 1 + 3.2999999523 1 1 3.4000000954 1 1 + 3.5 1 1 3.5999999046 1 1 + 3.7000000477 1 1 3.7999999523 1 1 + 3.9000000954 1 1 4 1 1 + 4.0999999046 1 1 4.1999998093 1 1 + 4.3000001907 1 1 4.4000000954 1 1 + 4.5 1 1 4.5999999046 1 1 + 4.6999998093 1 1 4.8000001907 1 1 + 4.9000000954 1 1 5 1 1 + 5.0999999046 1 1 5.1999998093 1 1 + 5.3000001907 1 1 5.4000000954 1 1 + 5.5 1 1 5.5999999046 1 1 + 5.6999998093 1 1 5.8000001907 1 1 + 5.9000000954 1 1 6 1 1 + 6.0999999046 1 1 6.1999998093 1 1 + 6.3000001907 1 1 6.4000000954 1 1 + 6.5 1 1 6.5999999046 1 1 + 6.6999998093 1 1 6.8000001907 1 1 + 6.9000000954 1 1 7 1 1 + 7.0999999046 1 1 7.1999998093 1 1 + 7.3000001907 1 1 7.4000000954 1 1 + 7.5 1 1 7.5999999046 1 1 + 7.6999998093 1 1 7.8000001907 1 1 + 7.9000000954 1 1 8 1 1 + 8.1000003815 1 1 8.1999998093 1 1 + 8.3000001907 1 1 8.3999996185 1 1 + 8.5 1 1 8.6000003815 1 1 + 8.6999998093 1 1 8.8000001907 1 1 + 8.8999996185 1 1 9 1 1 + + + + + 1002 1093 92 1 1001 1092 + 91 0 1 92 1093 1002 + 2 93 1094 1003 2 93 + 1094 1003 3 94 1095 1004 + 3 94 1095 1004 4 95 + 1096 1005 4 95 1096 1005 + 5 96 1097 1006 5 96 + 1097 1006 6 97 1098 1007 + 6 97 1098 1007 7 98 + 1099 1008 7 98 1099 1008 + 8 99 1100 1009 8 99 + 1100 1009 9 100 1101 1010 + 9 100 1101 1010 10 101 + 1102 1011 10 101 1102 1011 + 11 102 1103 1012 11 102 + 1103 1012 12 103 1104 1013 + 12 103 1104 1013 13 104 + 1105 1014 13 104 1105 1014 + 14 105 1106 1015 14 105 + 1106 1015 15 106 1107 1016 + 15 106 1107 1016 16 107 + 1108 1017 16 107 1108 1017 + 17 108 1109 1018 17 108 + 1109 1018 18 109 1110 1019 + 18 109 1110 1019 19 110 + 1111 1020 19 110 1111 1020 + 20 111 1112 1021 20 111 + 1112 1021 21 112 1113 1022 + 21 112 1113 1022 22 113 + 1114 1023 22 113 1114 1023 + 23 114 1115 1024 23 114 + 1115 1024 24 115 1116 1025 + 24 115 1116 1025 25 116 + 1117 1026 25 116 1117 1026 + 26 117 1118 1027 26 117 + 1118 1027 27 118 1119 1028 + 27 118 1119 1028 28 119 + 1120 1029 28 119 1120 1029 + 29 120 1121 1030 29 120 + 1121 1030 30 121 1122 1031 + 30 121 1122 1031 31 122 + 1123 1032 31 122 1123 1032 + 32 123 1124 1033 32 123 + 1124 1033 33 124 1125 1034 + 33 124 1125 1034 34 125 + 1126 1035 34 125 1126 1035 + 35 126 1127 1036 35 126 + 1127 1036 36 127 1128 1037 + 36 127 1128 1037 37 128 + 1129 1038 37 128 1129 1038 + 38 129 1130 1039 38 129 + 1130 1039 39 130 1131 1040 + 39 130 1131 1040 40 131 + 1132 1041 40 131 1132 1041 + 41 132 1133 1042 41 132 + 1133 1042 42 133 1134 1043 + 42 133 1134 1043 43 134 + 1135 1044 43 134 1135 1044 + 44 135 1136 1045 44 135 + 1136 1045 45 136 1137 1046 + 45 136 1137 1046 46 137 + 1138 1047 46 137 1138 1047 + 47 138 1139 1048 47 138 + 1139 1048 48 139 1140 1049 + 48 139 1140 1049 49 140 + 1141 1050 49 140 1141 1050 + 50 141 1142 1051 50 141 + 1142 1051 51 142 1143 1052 + 51 142 1143 1052 52 143 + 1144 1053 52 143 1144 1053 + 53 144 1145 1054 53 144 + 1145 1054 54 145 1146 1055 + 54 145 1146 1055 55 146 + 1147 1056 55 146 1147 1056 + 56 147 1148 1057 56 147 + 1148 1057 57 148 1149 1058 + 57 148 1149 1058 58 149 + 1150 1059 58 149 1150 1059 + 59 150 1151 1060 59 150 + 1151 1060 60 151 1152 1061 + 60 151 1152 1061 61 152 + 1153 1062 61 152 1153 1062 + 62 153 1154 1063 62 153 + 1154 1063 63 154 1155 1064 + 63 154 1155 1064 64 155 + 1156 1065 64 155 1156 1065 + 65 156 1157 1066 65 156 + 1157 1066 66 157 1158 1067 + 66 157 1158 1067 67 158 + 1159 1068 67 158 1159 1068 + 68 159 1160 1069 68 159 + 1160 1069 69 160 1161 1070 + 69 160 1161 1070 70 161 + 1162 1071 70 161 1162 1071 + 71 162 1163 1072 71 162 + 1163 1072 72 163 1164 1073 + 72 163 1164 1073 73 164 + 1165 1074 73 164 1165 1074 + 74 165 1166 1075 74 165 + 1166 1075 75 166 1167 1076 + 75 166 1167 1076 76 167 + 1168 1077 76 167 1168 1077 + 77 168 1169 1078 77 168 + 1169 1078 78 169 1170 1079 + 78 169 1170 1079 79 170 + 1171 1080 79 170 1171 1080 + 80 171 1172 1081 80 171 + 1172 1081 81 172 1173 1082 + 81 172 1173 1082 82 173 + 1174 1083 82 173 1174 1083 + 83 174 1175 1084 83 174 + 1175 1084 84 175 1176 1085 + 84 175 1176 1085 85 176 + 1177 1086 85 176 1177 1086 + 86 177 1178 1087 86 177 + 1178 1087 87 178 1179 1088 + 87 178 1179 1088 88 179 + 1180 1089 88 179 1180 1089 + 89 180 1181 1090 89 180 + 1181 1090 90 181 1182 1091 + 91 1092 1093 92 182 1183 + 1184 183 92 1093 1094 93 + 183 1184 1185 184 93 1094 + 1095 94 184 1185 1186 185 + 94 1095 1096 95 185 1186 + 1187 186 95 1096 1097 96 + 186 1187 1188 187 96 1097 + 1098 97 187 1188 1189 188 + 97 1098 1099 98 188 1189 + 1190 189 98 1099 1100 99 + 189 1190 1191 190 99 1100 + 1101 100 190 1191 1192 191 + 100 1101 1102 101 191 1192 + 1193 192 101 1102 1103 102 + 192 1193 1194 193 102 1103 + 1104 103 193 1194 1195 194 + 103 1104 1105 104 194 1195 + 1196 195 104 1105 1106 105 + 195 1196 1197 196 105 1106 + 1107 106 196 1197 1198 197 + 106 1107 1108 107 197 1198 + 1199 198 107 1108 1109 108 + 198 1199 1200 199 108 1109 + 1110 109 199 1200 1201 200 + 109 1110 1111 110 200 1201 + 1202 201 110 1111 1112 111 + 201 1202 1203 202 111 1112 + 1113 112 202 1203 1204 203 + 112 1113 1114 113 203 1204 + 1205 204 113 1114 1115 114 + 204 1205 1206 205 114 1115 + 1116 115 205 1206 1207 206 + 115 1116 1117 116 206 1207 + 1208 207 116 1117 1118 117 + 207 1208 1209 208 117 1118 + 1119 118 208 1209 1210 209 + 118 1119 1120 119 209 1210 + 1211 210 119 1120 1121 120 + 210 1211 1212 211 120 1121 + 1122 121 211 1212 1213 212 + 121 1122 1123 122 212 1213 + 1214 213 122 1123 1124 123 + 213 1214 1215 214 123 1124 + 1125 124 214 1215 1216 215 + 124 1125 1126 125 215 1216 + 1217 216 125 1126 1127 126 + 216 1217 1218 217 126 1127 + 1128 127 217 1218 1219 218 + 127 1128 1129 128 218 1219 + 1220 219 128 1129 1130 129 + 219 1220 1221 220 129 1130 + 1131 130 220 1221 1222 221 + 130 1131 1132 131 221 1222 + 1223 222 131 1132 1133 132 + 222 1223 1224 223 132 1133 + 1134 133 223 1224 1225 224 + 133 1134 1135 134 224 1225 + 1226 225 134 1135 1136 135 + 225 1226 1227 226 135 1136 + 1137 136 226 1227 1228 227 + 136 1137 1138 137 227 1228 + 1229 228 137 1138 1139 138 + 228 1229 1230 229 138 1139 + 1140 139 229 1230 1231 230 + 139 1140 1141 140 230 1231 + 1232 231 140 1141 1142 141 + 231 1232 1233 232 141 1142 + 1143 142 232 1233 1234 233 + 142 1143 1144 143 233 1234 + 1235 234 143 1144 1145 144 + 234 1235 1236 235 144 1145 + 1146 145 235 1236 1237 236 + 145 1146 1147 146 236 1237 + 1238 237 146 1147 1148 147 + 237 1238 1239 238 147 1148 + 1149 148 238 1239 1240 239 + 148 1149 1150 149 239 1240 + 1241 240 149 1150 1151 150 + 240 1241 1242 241 150 1151 + 1152 151 241 1242 1243 242 + 151 1152 1153 152 242 1243 + 1244 243 152 1153 1154 153 + 243 1244 1245 244 153 1154 + 1155 154 244 1245 1246 245 + 154 1155 1156 155 245 1246 + 1247 246 155 1156 1157 156 + 246 1247 1248 247 156 1157 + 1158 157 247 1248 1249 248 + 157 1158 1159 158 248 1249 + 1250 249 158 1159 1160 159 + 249 1250 1251 250 159 1160 + 1161 160 250 1251 1252 251 + 160 1161 1162 161 251 1252 + 1253 252 161 1162 1163 162 + 252 1253 1254 253 162 1163 + 1164 163 253 1254 1255 254 + 163 1164 1165 164 254 1255 + 1256 255 164 1165 1166 165 + 255 1256 1257 256 165 1166 + 1167 166 256 1257 1258 257 + 166 1167 1168 167 257 1258 + 1259 258 167 1168 1169 168 + 258 1259 1260 259 168 1169 + 1170 169 259 1260 1261 260 + 169 1170 1171 170 260 1261 + 1262 261 170 1171 1172 171 + 261 1262 1263 262 171 1172 + 1173 172 262 1263 1264 263 + 172 1173 1174 173 263 1264 + 1265 264 173 1174 1175 174 + 264 1265 1266 265 174 1175 + 1176 175 265 1266 1267 266 + 175 1176 1177 176 266 1267 + 1268 267 176 1177 1178 177 + 267 1268 1269 268 177 1178 + 1179 178 268 1269 1270 269 + 178 1179 1180 179 269 1270 + 1271 270 179 1180 1181 180 + 270 1271 1272 271 180 1181 + 1182 181 271 1272 1273 272 + 182 1183 1184 183 273 1274 + 1275 274 183 1184 1185 184 + 274 1275 1276 275 184 1185 + 1186 185 275 1276 1277 276 + 185 1186 1187 186 276 1277 + 1278 277 186 1187 1188 187 + 277 1278 1279 278 187 1188 + 1189 188 278 1279 1280 279 + 188 1189 1190 189 279 1280 + 1281 280 189 1190 1191 190 + 280 1281 1282 281 190 1191 + 1192 191 281 1282 1283 282 + 191 1192 1193 192 282 1283 + 1284 283 192 1193 1194 193 + 283 1284 1285 284 193 1194 + 1195 194 284 1285 1286 285 + 194 1195 1196 195 285 1286 + 1287 286 195 1196 1197 196 + 286 1287 1288 287 196 1197 + 1198 197 287 1288 1289 288 + 197 1198 1199 198 288 1289 + 1290 289 198 1199 1200 199 + 289 1290 1291 290 199 1200 + 1201 200 290 1291 1292 291 + 200 1201 1202 201 291 1292 + 1293 292 201 1202 1203 202 + 292 1293 1294 293 202 1203 + 1204 203 293 1294 1295 294 + 203 1204 1205 204 294 1295 + 1296 295 204 1205 1206 205 + 295 1296 1297 296 205 1206 + 1207 206 296 1297 1298 297 + 206 1207 1208 207 297 1298 + 1299 298 207 1208 1209 208 + 298 1299 1300 299 208 1209 + 1210 209 299 1300 1301 300 + 209 1210 1211 210 300 1301 + 1302 301 210 1211 1212 211 + 301 1302 1303 302 211 1212 + 1213 212 302 1303 1304 303 + 212 1213 1214 213 303 1304 + 1305 304 213 1214 1215 214 + 304 1305 1306 305 214 1215 + 1216 215 305 1306 1307 306 + 215 1216 1217 216 306 1307 + 1308 307 216 1217 1218 217 + 307 1308 1309 308 217 1218 + 1219 218 308 1309 1310 309 + 218 1219 1220 219 309 1310 + 1311 310 219 1220 1221 220 + 310 1311 1312 311 220 1221 + 1222 221 311 1312 1313 312 + 221 1222 1223 222 312 1313 + 1314 313 222 1223 1224 223 + 313 1314 1315 314 223 1224 + 1225 224 314 1315 1316 315 + 224 1225 1226 225 315 1316 + 1317 316 225 1226 1227 226 + 316 1317 1318 317 226 1227 + 1228 227 317 1318 1319 318 + 227 1228 1229 228 318 1319 + 1320 319 228 1229 1230 229 + 319 1320 1321 320 229 1230 + 1231 230 320 1321 1322 321 + 230 1231 1232 231 321 1322 + 1323 322 231 1232 1233 232 + 322 1323 1324 323 232 1233 + 1234 233 323 1324 1325 324 + 233 1234 1235 234 324 1325 + 1326 325 234 1235 1236 235 + 325 1326 1327 326 235 1236 + 1237 236 326 1327 1328 327 + 236 1237 1238 237 327 1328 + 1329 328 237 1238 1239 238 + 328 1329 1330 329 238 1239 + 1240 239 329 1330 1331 330 + 239 1240 1241 240 330 1331 + 1332 331 240 1241 1242 241 + 331 1332 1333 332 241 1242 + 1243 242 332 1333 1334 333 + 242 1243 1244 243 333 1334 + 1335 334 243 1244 1245 244 + 334 1335 1336 335 244 1245 + 1246 245 335 1336 1337 336 + 245 1246 1247 246 336 1337 + 1338 337 246 1247 1248 247 + 337 1338 1339 338 247 1248 + 1249 248 338 1339 1340 339 + 248 1249 1250 249 339 1340 + 1341 340 249 1250 1251 250 + 340 1341 1342 341 250 1251 + 1252 251 341 1342 1343 342 + 251 1252 1253 252 342 1343 + 1344 343 252 1253 1254 253 + 343 1344 1345 344 253 1254 + 1255 254 344 1345 1346 345 + 254 1255 1256 255 345 1346 + 1347 346 255 1256 1257 256 + 346 1347 1348 347 256 1257 + 1258 257 347 1348 1349 348 + 257 1258 1259 258 348 1349 + 1350 349 258 1259 1260 259 + 349 1350 1351 350 259 1260 + 1261 260 350 1351 1352 351 + 260 1261 1262 261 351 1352 + 1353 352 261 1262 1263 262 + 352 1353 1354 353 262 1263 + 1264 263 353 1354 1355 354 + 263 1264 1265 264 354 1355 + 1356 355 264 1265 1266 265 + 355 1356 1357 356 265 1266 + 1267 266 356 1357 1358 357 + 266 1267 1268 267 357 1358 + 1359 358 267 1268 1269 268 + 358 1359 1360 359 268 1269 + 1270 269 359 1360 1361 360 + 269 1270 1271 270 360 1361 + 1362 361 270 1271 1272 271 + 361 1362 1363 362 271 1272 + 1273 272 362 1363 1364 363 + 273 1274 1275 274 364 1365 + 1366 365 274 1275 1276 275 + 365 1366 1367 366 275 1276 + 1277 276 366 1367 1368 367 + 276 1277 1278 277 367 1368 + 1369 368 277 1278 1279 278 + 368 1369 1370 369 278 1279 + 1280 279 369 1370 1371 370 + 279 1280 1281 280 370 1371 + 1372 371 280 1281 1282 281 + 371 1372 1373 372 281 1282 + 1283 282 372 1373 1374 373 + 282 1283 1284 283 373 1374 + 1375 374 283 1284 1285 284 + 374 1375 1376 375 284 1285 + 1286 285 375 1376 1377 376 + 285 1286 1287 286 376 1377 + 1378 377 286 1287 1288 287 + 377 1378 1379 378 287 1288 + 1289 288 378 1379 1380 379 + 288 1289 1290 289 379 1380 + 1381 380 289 1290 1291 290 + 380 1381 1382 381 290 1291 + 1292 291 381 1382 1383 382 + 291 1292 1293 292 382 1383 + 1384 383 292 1293 1294 293 + 383 1384 1385 384 293 1294 + 1295 294 384 1385 1386 385 + 294 1295 1296 295 385 1386 + 1387 386 295 1296 1297 296 + 386 1387 1388 387 296 1297 + 1298 297 387 1388 1389 388 + 297 1298 1299 298 388 1389 + 1390 389 298 1299 1300 299 + 389 1390 1391 390 299 1300 + 1301 300 390 1391 1392 391 + 300 1301 1302 301 391 1392 + 1393 392 301 1302 1303 302 + 392 1393 1394 393 302 1303 + 1304 303 393 1394 1395 394 + 303 1304 1305 304 394 1395 + 1396 395 304 1305 1306 305 + 395 1396 1397 396 305 1306 + 1307 306 396 1397 1398 397 + 306 1307 1308 307 397 1398 + 1399 398 307 1308 1309 308 + 398 1399 1400 399 308 1309 + 1310 309 399 1400 1401 400 + 309 1310 1311 310 400 1401 + 1402 401 310 1311 1312 311 + 401 1402 1403 402 311 1312 + 1313 312 402 1403 1404 403 + 312 1313 1314 313 403 1404 + 1405 404 313 1314 1315 314 + 404 1405 1406 405 314 1315 + 1316 315 405 1406 1407 406 + 315 1316 1317 316 406 1407 + 1408 407 316 1317 1318 317 + 407 1408 1409 408 317 1318 + 1319 318 408 1409 1410 409 + 318 1319 1320 319 409 1410 + 1411 410 319 1320 1321 320 + 410 1411 1412 411 320 1321 + 1322 321 411 1412 1413 412 + 321 1322 1323 322 412 1413 + 1414 413 322 1323 1324 323 + 413 1414 1415 414 323 1324 + 1325 324 414 1415 1416 415 + 324 1325 1326 325 415 1416 + 1417 416 325 1326 1327 326 + 416 1417 1418 417 326 1327 + 1328 327 417 1418 1419 418 + 327 1328 1329 328 418 1419 + 1420 419 328 1329 1330 329 + 419 1420 1421 420 329 1330 + 1331 330 420 1421 1422 421 + 330 1331 1332 331 421 1422 + 1423 422 331 1332 1333 332 + 422 1423 1424 423 332 1333 + 1334 333 423 1424 1425 424 + 333 1334 1335 334 424 1425 + 1426 425 334 1335 1336 335 + 425 1426 1427 426 335 1336 + 1337 336 426 1427 1428 427 + 336 1337 1338 337 427 1428 + 1429 428 337 1338 1339 338 + 428 1429 1430 429 338 1339 + 1340 339 429 1430 1431 430 + 339 1340 1341 340 430 1431 + 1432 431 340 1341 1342 341 + 431 1432 1433 432 341 1342 + 1343 342 432 1433 1434 433 + 342 1343 1344 343 433 1434 + 1435 434 343 1344 1345 344 + 434 1435 1436 435 344 1345 + 1346 345 435 1436 1437 436 + 345 1346 1347 346 436 1437 + 1438 437 346 1347 1348 347 + 437 1438 1439 438 347 1348 + 1349 348 438 1439 1440 439 + 348 1349 1350 349 439 1440 + 1441 440 349 1350 1351 350 + 440 1441 1442 441 350 1351 + 1352 351 441 1442 1443 442 + 351 1352 1353 352 442 1443 + 1444 443 352 1353 1354 353 + 443 1444 1445 444 353 1354 + 1355 354 444 1445 1446 445 + 354 1355 1356 355 445 1446 + 1447 446 355 1356 1357 356 + 446 1447 1448 447 356 1357 + 1358 357 447 1448 1449 448 + 357 1358 1359 358 448 1449 + 1450 449 358 1359 1360 359 + 449 1450 1451 450 359 1360 + 1361 360 450 1451 1452 451 + 360 1361 1362 361 451 1452 + 1453 452 361 1362 1363 362 + 452 1453 1454 453 362 1363 + 1364 363 453 1454 1455 454 + 364 1365 1366 365 455 1456 + 1457 456 365 1366 1367 366 + 456 1457 1458 457 366 1367 + 1368 367 457 1458 1459 458 + 367 1368 1369 368 458 1459 + 1460 459 368 1369 1370 369 + 459 1460 1461 460 369 1370 + 1371 370 460 1461 1462 461 + 370 1371 1372 371 461 1462 + 1463 462 371 1372 1373 372 + 462 1463 1464 463 372 1373 + 1374 373 463 1464 1465 464 + 373 1374 1375 374 464 1465 + 1466 465 374 1375 1376 375 + 465 1466 1467 466 375 1376 + 1377 376 466 1467 1468 467 + 376 1377 1378 377 467 1468 + 1469 468 377 1378 1379 378 + 468 1469 1470 469 378 1379 + 1380 379 469 1470 1471 470 + 379 1380 1381 380 470 1471 + 1472 471 380 1381 1382 381 + 471 1472 1473 472 381 1382 + 1383 382 472 1473 1474 473 + 382 1383 1384 383 473 1474 + 1475 474 383 1384 1385 384 + 474 1475 1476 475 384 1385 + 1386 385 475 1476 1477 476 + 385 1386 1387 386 476 1477 + 1478 477 386 1387 1388 387 + 477 1478 1479 478 387 1388 + 1389 388 478 1479 1480 479 + 388 1389 1390 389 479 1480 + 1481 480 389 1390 1391 390 + 480 1481 1482 481 390 1391 + 1392 391 481 1482 1483 482 + 391 1392 1393 392 482 1483 + 1484 483 392 1393 1394 393 + 483 1484 1485 484 393 1394 + 1395 394 484 1485 1486 485 + 394 1395 1396 395 485 1486 + 1487 486 395 1396 1397 396 + 486 1487 1488 487 396 1397 + 1398 397 487 1488 1489 488 + 397 1398 1399 398 488 1489 + 1490 489 398 1399 1400 399 + 489 1490 1491 490 399 1400 + 1401 400 490 1491 1492 491 + 400 1401 1402 401 491 1492 + 1493 492 401 1402 1403 402 + 492 1493 1494 493 402 1403 + 1404 403 493 1494 1495 494 + 403 1404 1405 404 494 1495 + 1496 495 404 1405 1406 405 + 495 1496 1497 496 405 1406 + 1407 406 496 1497 1498 497 + 406 1407 1408 407 497 1498 + 1499 498 407 1408 1409 408 + 498 1499 1500 499 408 1409 + 1410 409 499 1500 1501 500 + 409 1410 1411 410 500 1501 + 1502 501 410 1411 1412 411 + 501 1502 1503 502 411 1412 + 1413 412 502 1503 1504 503 + 412 1413 1414 413 503 1504 + 1505 504 413 1414 1415 414 + 504 1505 1506 505 414 1415 + 1416 415 505 1506 1507 506 + 415 1416 1417 416 506 1507 + 1508 507 416 1417 1418 417 + 507 1508 1509 508 417 1418 + 1419 418 508 1509 1510 509 + 418 1419 1420 419 509 1510 + 1511 510 419 1420 1421 420 + 510 1511 1512 511 420 1421 + 1422 421 511 1512 1513 512 + 421 1422 1423 422 512 1513 + 1514 513 422 1423 1424 423 + 513 1514 1515 514 423 1424 + 1425 424 514 1515 1516 515 + 424 1425 1426 425 515 1516 + 1517 516 425 1426 1427 426 + 516 1517 1518 517 426 1427 + 1428 427 517 1518 1519 518 + 427 1428 1429 428 518 1519 + 1520 519 428 1429 1430 429 + 519 1520 1521 520 429 1430 + 1431 430 520 1521 1522 521 + 430 1431 1432 431 521 1522 + 1523 522 431 1432 1433 432 + 522 1523 1524 523 432 1433 + 1434 433 523 1524 1525 524 + 433 1434 1435 434 524 1525 + 1526 525 434 1435 1436 435 + 525 1526 1527 526 435 1436 + 1437 436 526 1527 1528 527 + 436 1437 1438 437 527 1528 + 1529 528 437 1438 1439 438 + 528 1529 1530 529 438 1439 + 1440 439 529 1530 1531 530 + 439 1440 1441 440 530 1531 + 1532 531 440 1441 1442 441 + 531 1532 1533 532 441 1442 + 1443 442 532 1533 1534 533 + 442 1443 1444 443 533 1534 + 1535 534 443 1444 1445 444 + 534 1535 1536 535 444 1445 + 1446 445 535 1536 1537 536 + 445 1446 1447 446 536 1537 + 1538 537 446 1447 1448 447 + 537 1538 1539 538 447 1448 + 1449 448 538 1539 1540 539 + 448 1449 1450 449 539 1540 + 1541 540 449 1450 1451 450 + 540 1541 1542 541 450 1451 + 1452 451 541 1542 1543 542 + 451 1452 1453 452 542 1543 + 1544 543 452 1453 1454 453 + 543 1544 1545 544 453 1454 + 1455 454 544 1545 1546 545 + 455 1456 1457 456 546 1547 + 1548 547 456 1457 1458 457 + 547 1548 1549 548 457 1458 + 1459 458 548 1549 1550 549 + 458 1459 1460 459 549 1550 + 1551 550 459 1460 1461 460 + 550 1551 1552 551 460 1461 + 1462 461 551 1552 1553 552 + 461 1462 1463 462 552 1553 + 1554 553 462 1463 1464 463 + 553 1554 1555 554 463 1464 + 1465 464 554 1555 1556 555 + 464 1465 1466 465 555 1556 + 1557 556 465 1466 1467 466 + 556 1557 1558 557 466 1467 + 1468 467 557 1558 1559 558 + 467 1468 1469 468 558 1559 + 1560 559 468 1469 1470 469 + 559 1560 1561 560 469 1470 + 1471 470 560 1561 1562 561 + 470 1471 1472 471 561 1562 + 1563 562 471 1472 1473 472 + 562 1563 1564 563 472 1473 + 1474 473 563 1564 1565 564 + 473 1474 1475 474 564 1565 + 1566 565 474 1475 1476 475 + 565 1566 1567 566 475 1476 + 1477 476 566 1567 1568 567 + 476 1477 1478 477 567 1568 + 1569 568 477 1478 1479 478 + 568 1569 1570 569 478 1479 + 1480 479 569 1570 1571 570 + 479 1480 1481 480 570 1571 + 1572 571 480 1481 1482 481 + 571 1572 1573 572 481 1482 + 1483 482 572 1573 1574 573 + 482 1483 1484 483 573 1574 + 1575 574 483 1484 1485 484 + 574 1575 1576 575 484 1485 + 1486 485 575 1576 1577 576 + 485 1486 1487 486 576 1577 + 1578 577 486 1487 1488 487 + 577 1578 1579 578 487 1488 + 1489 488 578 1579 1580 579 + 488 1489 1490 489 579 1580 + 1581 580 489 1490 1491 490 + 580 1581 1582 581 490 1491 + 1492 491 581 1582 1583 582 + 491 1492 1493 492 582 1583 + 1584 583 492 1493 1494 493 + 583 1584 1585 584 493 1494 + 1495 494 584 1585 1586 585 + 494 1495 1496 495 585 1586 + 1587 586 495 1496 1497 496 + 586 1587 1588 587 496 1497 + 1498 497 587 1588 1589 588 + 497 1498 1499 498 588 1589 + 1590 589 498 1499 1500 499 + 589 1590 1591 590 499 1500 + 1501 500 590 1591 1592 591 + 500 1501 1502 501 591 1592 + 1593 592 501 1502 1503 502 + 592 1593 1594 593 502 1503 + 1504 503 593 1594 1595 594 + 503 1504 1505 504 594 1595 + 1596 595 504 1505 1506 505 + 595 1596 1597 596 505 1506 + 1507 506 596 1597 1598 597 + 506 1507 1508 507 597 1598 + 1599 598 507 1508 1509 508 + 598 1599 1600 599 508 1509 + 1510 509 599 1600 1601 600 + 509 1510 1511 510 600 1601 + 1602 601 510 1511 1512 511 + 601 1602 1603 602 511 1512 + 1513 512 602 1603 1604 603 + 512 1513 1514 513 603 1604 + 1605 604 513 1514 1515 514 + 604 1605 1606 605 514 1515 + 1516 515 605 1606 1607 606 + 515 1516 1517 516 606 1607 + 1608 607 516 1517 1518 517 + 607 1608 1609 608 517 1518 + 1519 518 608 1609 1610 609 + 518 1519 1520 519 609 1610 + 1611 610 519 1520 1521 520 + 610 1611 1612 611 520 1521 + 1522 521 611 1612 1613 612 + 521 1522 1523 522 612 1613 + 1614 613 522 1523 1524 523 + 613 1614 1615 614 523 1524 + 1525 524 614 1615 1616 615 + 524 1525 1526 525 615 1616 + 1617 616 525 1526 1527 526 + 616 1617 1618 617 526 1527 + 1528 527 617 1618 1619 618 + 527 1528 1529 528 618 1619 + 1620 619 528 1529 1530 529 + 619 1620 1621 620 529 1530 + 1531 530 620 1621 1622 621 + 530 1531 1532 531 621 1622 + 1623 622 531 1532 1533 532 + 622 1623 1624 623 532 1533 + 1534 533 623 1624 1625 624 + 533 1534 1535 534 624 1625 + 1626 625 534 1535 1536 535 + 625 1626 1627 626 535 1536 + 1537 536 626 1627 1628 627 + 536 1537 1538 537 627 1628 + 1629 628 537 1538 1539 538 + 628 1629 1630 629 538 1539 + 1540 539 629 1630 1631 630 + 539 1540 1541 540 630 1631 + 1632 631 540 1541 1542 541 + 631 1632 1633 632 541 1542 + 1543 542 632 1633 1634 633 + 542 1543 1544 543 633 1634 + 1635 634 543 1544 1545 544 + 634 1635 1636 635 544 1545 + 1546 545 635 1636 1637 636 + 546 1547 1548 547 637 1638 + 1639 638 547 1548 1549 548 + 638 1639 1640 639 548 1549 + 1550 549 639 1640 1641 640 + 549 1550 1551 550 640 1641 + 1642 641 550 1551 1552 551 + 641 1642 1643 642 551 1552 + 1553 552 642 1643 1644 643 + 552 1553 1554 553 643 1644 + 1645 644 553 1554 1555 554 + 644 1645 1646 645 554 1555 + 1556 555 645 1646 1647 646 + 555 1556 1557 556 646 1647 + 1648 647 556 1557 1558 557 + 647 1648 1649 648 557 1558 + 1559 558 648 1649 1650 649 + 558 1559 1560 559 649 1650 + 1651 650 559 1560 1561 560 + 650 1651 1652 651 560 1561 + 1562 561 651 1652 1653 652 + 561 1562 1563 562 652 1653 + 1654 653 562 1563 1564 563 + 653 1654 1655 654 563 1564 + 1565 564 654 1655 1656 655 + 564 1565 1566 565 655 1656 + 1657 656 565 1566 1567 566 + 656 1657 1658 657 566 1567 + 1568 567 657 1658 1659 658 + 567 1568 1569 568 658 1659 + 1660 659 568 1569 1570 569 + 659 1660 1661 660 569 1570 + 1571 570 660 1661 1662 661 + 570 1571 1572 571 661 1662 + 1663 662 571 1572 1573 572 + 662 1663 1664 663 572 1573 + 1574 573 663 1664 1665 664 + 573 1574 1575 574 664 1665 + 1666 665 574 1575 1576 575 + 665 1666 1667 666 575 1576 + 1577 576 666 1667 1668 667 + 576 1577 1578 577 667 1668 + 1669 668 577 1578 1579 578 + 668 1669 1670 669 578 1579 + 1580 579 669 1670 1671 670 + 579 1580 1581 580 670 1671 + 1672 671 580 1581 1582 581 + 671 1672 1673 672 581 1582 + 1583 582 672 1673 1674 673 + 582 1583 1584 583 673 1674 + 1675 674 583 1584 1585 584 + 674 1675 1676 675 584 1585 + 1586 585 675 1676 1677 676 + 585 1586 1587 586 676 1677 + 1678 677 586 1587 1588 587 + 677 1678 1679 678 587 1588 + 1589 588 678 1679 1680 679 + 588 1589 1590 589 679 1680 + 1681 680 589 1590 1591 590 + 680 1681 1682 681 590 1591 + 1592 591 681 1682 1683 682 + 591 1592 1593 592 682 1683 + 1684 683 592 1593 1594 593 + 683 1684 1685 684 593 1594 + 1595 594 684 1685 1686 685 + 594 1595 1596 595 685 1686 + 1687 686 595 1596 1597 596 + 686 1687 1688 687 596 1597 + 1598 597 687 1688 1689 688 + 597 1598 1599 598 688 1689 + 1690 689 598 1599 1600 599 + 689 1690 1691 690 599 1600 + 1601 600 690 1691 1692 691 + 600 1601 1602 601 691 1692 + 1693 692 601 1602 1603 602 + 692 1693 1694 693 602 1603 + 1604 603 693 1694 1695 694 + 603 1604 1605 604 694 1695 + 1696 695 604 1605 1606 605 + 695 1696 1697 696 605 1606 + 1607 606 696 1697 1698 697 + 606 1607 1608 607 697 1698 + 1699 698 607 1608 1609 608 + 698 1699 1700 699 608 1609 + 1610 609 699 1700 1701 700 + 609 1610 1611 610 700 1701 + 1702 701 610 1611 1612 611 + 701 1702 1703 702 611 1612 + 1613 612 702 1703 1704 703 + 612 1613 1614 613 703 1704 + 1705 704 613 1614 1615 614 + 704 1705 1706 705 614 1615 + 1616 615 705 1706 1707 706 + 615 1616 1617 616 706 1707 + 1708 707 616 1617 1618 617 + 707 1708 1709 708 617 1618 + 1619 618 708 1709 1710 709 + 618 1619 1620 619 709 1710 + 1711 710 619 1620 1621 620 + 710 1711 1712 711 620 1621 + 1622 621 711 1712 1713 712 + 621 1622 1623 622 712 1713 + 1714 713 622 1623 1624 623 + 713 1714 1715 714 623 1624 + 1625 624 714 1715 1716 715 + 624 1625 1626 625 715 1716 + 1717 716 625 1626 1627 626 + 716 1717 1718 717 626 1627 + 1628 627 717 1718 1719 718 + 627 1628 1629 628 718 1719 + 1720 719 628 1629 1630 629 + 719 1720 1721 720 629 1630 + 1631 630 720 1721 1722 721 + 630 1631 1632 631 721 1722 + 1723 722 631 1632 1633 632 + 722 1723 1724 723 632 1633 + 1634 633 723 1724 1725 724 + 633 1634 1635 634 724 1725 + 1726 725 634 1635 1636 635 + 725 1726 1727 726 635 1636 + 1637 636 726 1727 1728 727 + 637 1638 1639 638 728 1729 + 1730 729 638 1639 1640 639 + 729 1730 1731 730 639 1640 + 1641 640 730 1731 1732 731 + 640 1641 1642 641 731 1732 + 1733 732 641 1642 1643 642 + 732 1733 1734 733 642 1643 + 1644 643 733 1734 1735 734 + 643 1644 1645 644 734 1735 + 1736 735 644 1645 1646 645 + 735 1736 1737 736 645 1646 + 1647 646 736 1737 1738 737 + 646 1647 1648 647 737 1738 + 1739 738 647 1648 1649 648 + 738 1739 1740 739 648 1649 + 1650 649 739 1740 1741 740 + 649 1650 1651 650 740 1741 + 1742 741 650 1651 1652 651 + 741 1742 1743 742 651 1652 + 1653 652 742 1743 1744 743 + 652 1653 1654 653 743 1744 + 1745 744 653 1654 1655 654 + 744 1745 1746 745 654 1655 + 1656 655 745 1746 1747 746 + 655 1656 1657 656 746 1747 + 1748 747 656 1657 1658 657 + 747 1748 1749 748 657 1658 + 1659 658 748 1749 1750 749 + 658 1659 1660 659 749 1750 + 1751 750 659 1660 1661 660 + 750 1751 1752 751 660 1661 + 1662 661 751 1752 1753 752 + 661 1662 1663 662 752 1753 + 1754 753 662 1663 1664 663 + 753 1754 1755 754 663 1664 + 1665 664 754 1755 1756 755 + 664 1665 1666 665 755 1756 + 1757 756 665 1666 1667 666 + 756 1757 1758 757 666 1667 + 1668 667 757 1758 1759 758 + 667 1668 1669 668 758 1759 + 1760 759 668 1669 1670 669 + 759 1760 1761 760 669 1670 + 1671 670 760 1761 1762 761 + 670 1671 1672 671 761 1762 + 1763 762 671 1672 1673 672 + 762 1763 1764 763 672 1673 + 1674 673 763 1764 1765 764 + 673 1674 1675 674 764 1765 + 1766 765 674 1675 1676 675 + 765 1766 1767 766 675 1676 + 1677 676 766 1767 1768 767 + 676 1677 1678 677 767 1768 + 1769 768 677 1678 1679 678 + 768 1769 1770 769 678 1679 + 1680 679 769 1770 1771 770 + 679 1680 1681 680 770 1771 + 1772 771 680 1681 1682 681 + 771 1772 1773 772 681 1682 + 1683 682 772 1773 1774 773 + 682 1683 1684 683 773 1774 + 1775 774 683 1684 1685 684 + 774 1775 1776 775 684 1685 + 1686 685 775 1776 1777 776 + 685 1686 1687 686 776 1777 + 1778 777 686 1687 1688 687 + 777 1778 1779 778 687 1688 + 1689 688 778 1779 1780 779 + 688 1689 1690 689 779 1780 + 1781 780 689 1690 1691 690 + 780 1781 1782 781 690 1691 + 1692 691 781 1782 1783 782 + 691 1692 1693 692 782 1783 + 1784 783 692 1693 1694 693 + 783 1784 1785 784 693 1694 + 1695 694 784 1785 1786 785 + 694 1695 1696 695 785 1786 + 1787 786 695 1696 1697 696 + 786 1787 1788 787 696 1697 + 1698 697 787 1788 1789 788 + 697 1698 1699 698 788 1789 + 1790 789 698 1699 1700 699 + 789 1790 1791 790 699 1700 + 1701 700 790 1791 1792 791 + 700 1701 1702 701 791 1792 + 1793 792 701 1702 1703 702 + 792 1793 1794 793 702 1703 + 1704 703 793 1794 1795 794 + 703 1704 1705 704 794 1795 + 1796 795 704 1705 1706 705 + 795 1796 1797 796 705 1706 + 1707 706 796 1797 1798 797 + 706 1707 1708 707 797 1798 + 1799 798 707 1708 1709 708 + 798 1799 1800 799 708 1709 + 1710 709 799 1800 1801 800 + 709 1710 1711 710 800 1801 + 1802 801 710 1711 1712 711 + 801 1802 1803 802 711 1712 + 1713 712 802 1803 1804 803 + 712 1713 1714 713 803 1804 + 1805 804 713 1714 1715 714 + 804 1805 1806 805 714 1715 + 1716 715 805 1806 1807 806 + 715 1716 1717 716 806 1807 + 1808 807 716 1717 1718 717 + 807 1808 1809 808 717 1718 + 1719 718 808 1809 1810 809 + 718 1719 1720 719 809 1810 + 1811 810 719 1720 1721 720 + 810 1811 1812 811 720 1721 + 1722 721 811 1812 1813 812 + 721 1722 1723 722 812 1813 + 1814 813 722 1723 1724 723 + 813 1814 1815 814 723 1724 + 1725 724 814 1815 1816 815 + 724 1725 1726 725 815 1816 + 1817 816 725 1726 1727 726 + 816 1817 1818 817 726 1727 + 1728 727 817 1818 1819 818 + 728 1729 1730 729 819 1820 + 1821 820 729 1730 1731 730 + 820 1821 1822 821 730 1731 + 1732 731 821 1822 1823 822 + 731 1732 1733 732 822 1823 + 1824 823 732 1733 1734 733 + 823 1824 1825 824 733 1734 + 1735 734 824 1825 1826 825 + 734 1735 1736 735 825 1826 + 1827 826 735 1736 1737 736 + 826 1827 1828 827 736 1737 + 1738 737 827 1828 1829 828 + 737 1738 1739 738 828 1829 + 1830 829 738 1739 1740 739 + 829 1830 1831 830 739 1740 + 1741 740 830 1831 1832 831 + 740 1741 1742 741 831 1832 + 1833 832 741 1742 1743 742 + 832 1833 1834 833 742 1743 + 1744 743 833 1834 1835 834 + 743 1744 1745 744 834 1835 + 1836 835 744 1745 1746 745 + 835 1836 1837 836 745 1746 + 1747 746 836 1837 1838 837 + 746 1747 1748 747 837 1838 + 1839 838 747 1748 1749 748 + 838 1839 1840 839 748 1749 + 1750 749 839 1840 1841 840 + 749 1750 1751 750 840 1841 + 1842 841 750 1751 1752 751 + 841 1842 1843 842 751 1752 + 1753 752 842 1843 1844 843 + 752 1753 1754 753 843 1844 + 1845 844 753 1754 1755 754 + 844 1845 1846 845 754 1755 + 1756 755 845 1846 1847 846 + 755 1756 1757 756 846 1847 + 1848 847 756 1757 1758 757 + 847 1848 1849 848 757 1758 + 1759 758 848 1849 1850 849 + 758 1759 1760 759 849 1850 + 1851 850 759 1760 1761 760 + 850 1851 1852 851 760 1761 + 1762 761 851 1852 1853 852 + 761 1762 1763 762 852 1853 + 1854 853 762 1763 1764 763 + 853 1854 1855 854 763 1764 + 1765 764 854 1855 1856 855 + 764 1765 1766 765 855 1856 + 1857 856 765 1766 1767 766 + 856 1857 1858 857 766 1767 + 1768 767 857 1858 1859 858 + 767 1768 1769 768 858 1859 + 1860 859 768 1769 1770 769 + 859 1860 1861 860 769 1770 + 1771 770 860 1861 1862 861 + 770 1771 1772 771 861 1862 + 1863 862 771 1772 1773 772 + 862 1863 1864 863 772 1773 + 1774 773 863 1864 1865 864 + 773 1774 1775 774 864 1865 + 1866 865 774 1775 1776 775 + 865 1866 1867 866 775 1776 + 1777 776 866 1867 1868 867 + 776 1777 1778 777 867 1868 + 1869 868 777 1778 1779 778 + 868 1869 1870 869 778 1779 + 1780 779 869 1870 1871 870 + 779 1780 1781 780 870 1871 + 1872 871 780 1781 1782 781 + 871 1872 1873 872 781 1782 + 1783 782 872 1873 1874 873 + 782 1783 1784 783 873 1874 + 1875 874 783 1784 1785 784 + 874 1875 1876 875 784 1785 + 1786 785 875 1876 1877 876 + 785 1786 1787 786 876 1877 + 1878 877 786 1787 1788 787 + 877 1878 1879 878 787 1788 + 1789 788 878 1879 1880 879 + 788 1789 1790 789 879 1880 + 1881 880 789 1790 1791 790 + 880 1881 1882 881 790 1791 + 1792 791 881 1882 1883 882 + 791 1792 1793 792 882 1883 + 1884 883 792 1793 1794 793 + 883 1884 1885 884 793 1794 + 1795 794 884 1885 1886 885 + 794 1795 1796 795 885 1886 + 1887 886 795 1796 1797 796 + 886 1887 1888 887 796 1797 + 1798 797 887 1888 1889 888 + 797 1798 1799 798 888 1889 + 1890 889 798 1799 1800 799 + 889 1890 1891 890 799 1800 + 1801 800 890 1891 1892 891 + 800 1801 1802 801 891 1892 + 1893 892 801 1802 1803 802 + 892 1893 1894 893 802 1803 + 1804 803 893 1894 1895 894 + 803 1804 1805 804 894 1895 + 1896 895 804 1805 1806 805 + 895 1896 1897 896 805 1806 + 1807 806 896 1897 1898 897 + 806 1807 1808 807 897 1898 + 1899 898 807 1808 1809 808 + 898 1899 1900 899 808 1809 + 1810 809 899 1900 1901 900 + 809 1810 1811 810 900 1901 + 1902 901 810 1811 1812 811 + 901 1902 1903 902 811 1812 + 1813 812 902 1903 1904 903 + 812 1813 1814 813 903 1904 + 1905 904 813 1814 1815 814 + 904 1905 1906 905 814 1815 + 1816 815 905 1906 1907 906 + 815 1816 1817 816 906 1907 + 1908 907 816 1817 1818 817 + 907 1908 1909 908 817 1818 + 1819 818 908 1909 1910 909 + 819 1820 1821 820 910 1911 + 1912 911 820 1821 1822 821 + 911 1912 1913 912 821 1822 + 1823 822 912 1913 1914 913 + 822 1823 1824 823 913 1914 + 1915 914 823 1824 1825 824 + 914 1915 1916 915 824 1825 + 1826 825 915 1916 1917 916 + 825 1826 1827 826 916 1917 + 1918 917 826 1827 1828 827 + 917 1918 1919 918 827 1828 + 1829 828 918 1919 1920 919 + 828 1829 1830 829 919 1920 + 1921 920 829 1830 1831 830 + 920 1921 1922 921 830 1831 + 1832 831 921 1922 1923 922 + 831 1832 1833 832 922 1923 + 1924 923 832 1833 1834 833 + 923 1924 1925 924 833 1834 + 1835 834 924 1925 1926 925 + 834 1835 1836 835 925 1926 + 1927 926 835 1836 1837 836 + 926 1927 1928 927 836 1837 + 1838 837 927 1928 1929 928 + 837 1838 1839 838 928 1929 + 1930 929 838 1839 1840 839 + 929 1930 1931 930 839 1840 + 1841 840 930 1931 1932 931 + 840 1841 1842 841 931 1932 + 1933 932 841 1842 1843 842 + 932 1933 1934 933 842 1843 + 1844 843 933 1934 1935 934 + 843 1844 1845 844 934 1935 + 1936 935 844 1845 1846 845 + 935 1936 1937 936 845 1846 + 1847 846 936 1937 1938 937 + 846 1847 1848 847 937 1938 + 1939 938 847 1848 1849 848 + 938 1939 1940 939 848 1849 + 1850 849 939 1940 1941 940 + 849 1850 1851 850 940 1941 + 1942 941 850 1851 1852 851 + 941 1942 1943 942 851 1852 + 1853 852 942 1943 1944 943 + 852 1853 1854 853 943 1944 + 1945 944 853 1854 1855 854 + 944 1945 1946 945 854 1855 + 1856 855 945 1946 1947 946 + 855 1856 1857 856 946 1947 + 1948 947 856 1857 1858 857 + 947 1948 1949 948 857 1858 + 1859 858 948 1949 1950 949 + 858 1859 1860 859 949 1950 + 1951 950 859 1860 1861 860 + 950 1951 1952 951 860 1861 + 1862 861 951 1952 1953 952 + 861 1862 1863 862 952 1953 + 1954 953 862 1863 1864 863 + 953 1954 1955 954 863 1864 + 1865 864 954 1955 1956 955 + 864 1865 1866 865 955 1956 + 1957 956 865 1866 1867 866 + 956 1957 1958 957 866 1867 + 1868 867 957 1958 1959 958 + 867 1868 1869 868 958 1959 + 1960 959 868 1869 1870 869 + 959 1960 1961 960 869 1870 + 1871 870 960 1961 1962 961 + 870 1871 1872 871 961 1962 + 1963 962 871 1872 1873 872 + 962 1963 1964 963 872 1873 + 1874 873 963 1964 1965 964 + 873 1874 1875 874 964 1965 + 1966 965 874 1875 1876 875 + 965 1966 1967 966 875 1876 + 1877 876 966 1967 1968 967 + 876 1877 1878 877 967 1968 + 1969 968 877 1878 1879 878 + 968 1969 1970 969 878 1879 + 1880 879 969 1970 1971 970 + 879 1880 1881 880 970 1971 + 1972 971 880 1881 1882 881 + 971 1972 1973 972 881 1882 + 1883 882 972 1973 1974 973 + 882 1883 1884 883 973 1974 + 1975 974 883 1884 1885 884 + 974 1975 1976 975 884 1885 + 1886 885 975 1976 1977 976 + 885 1886 1887 886 976 1977 + 1978 977 886 1887 1888 887 + 977 1978 1979 978 887 1888 + 1889 888 978 1979 1980 979 + 888 1889 1890 889 979 1980 + 1981 980 889 1890 1891 890 + 980 1981 1982 981 890 1891 + 1892 891 981 1982 1983 982 + 891 1892 1893 892 982 1983 + 1984 983 892 1893 1894 893 + 983 1984 1985 984 893 1894 + 1895 894 984 1985 1986 985 + 894 1895 1896 895 985 1986 + 1987 986 895 1896 1897 896 + 986 1987 1988 987 896 1897 + 1898 897 987 1988 1989 988 + 897 1898 1899 898 988 1989 + 1990 989 898 1899 1900 899 + 989 1990 1991 990 899 1900 + 1901 900 990 1991 1992 991 + 900 1901 1902 901 991 1992 + 1993 992 901 1902 1903 902 + 992 1993 1994 993 902 1903 + 1904 903 993 1994 1995 994 + 903 1904 1905 904 994 1995 + 1996 995 904 1905 1906 905 + 995 1996 1997 996 905 1906 + 1907 906 996 1997 1998 997 + 906 1907 1908 907 997 1998 + 1999 998 907 1908 1909 908 + 998 1999 2000 999 908 1909 + 1910 909 999 2000 2001 1000 + + + 8 16 24 32 40 48 + 56 64 72 80 88 96 + 104 112 120 128 136 144 + 152 160 168 176 184 192 + 200 208 216 224 232 240 + 248 256 264 272 280 288 + 296 304 312 320 328 336 + 344 352 360 368 376 384 + 392 400 408 416 424 432 + 440 448 456 464 472 480 + 488 496 504 512 520 528 + 536 544 552 560 568 576 + 584 592 600 608 616 624 + 632 640 648 656 664 672 + 680 688 696 704 712 720 + 728 736 744 752 760 768 + 776 784 792 800 808 816 + 824 832 840 848 856 864 + 872 880 888 896 904 912 + 920 928 936 944 952 960 + 968 976 984 992 1000 1008 + 1016 1024 1032 1040 1048 1056 + 1064 1072 1080 1088 1096 1104 + 1112 1120 1128 1136 1144 1152 + 1160 1168 1176 1184 1192 1200 + 1208 1216 1224 1232 1240 1248 + 1256 1264 1272 1280 1288 1296 + 1304 1312 1320 1328 1336 1344 + 1352 1360 1368 1376 1384 1392 + 1400 1408 1416 1424 1432 1440 + 1448 1456 1464 1472 1480 1488 + 1496 1504 1512 1520 1528 1536 + 1544 1552 1560 1568 1576 1584 + 1592 1600 1608 1616 1624 1632 + 1640 1648 1656 1664 1672 1680 + 1688 1696 1704 1712 1720 1728 + 1736 1744 1752 1760 1768 1776 + 1784 1792 1800 1808 1816 1824 + 1832 1840 1848 1856 1864 1872 + 1880 1888 1896 1904 1912 1920 + 1928 1936 1944 1952 1960 1968 + 1976 1984 1992 2000 2008 2016 + 2024 2032 2040 2048 2056 2064 + 2072 2080 2088 2096 2104 2112 + 2120 2128 2136 2144 2152 2160 + 2168 2176 2184 2192 2200 2208 + 2216 2224 2232 2240 2248 2256 + 2264 2272 2280 2288 2296 2304 + 2312 2320 2328 2336 2344 2352 + 2360 2368 2376 2384 2392 2400 + 2408 2416 2424 2432 2440 2448 + 2456 2464 2472 2480 2488 2496 + 2504 2512 2520 2528 2536 2544 + 2552 2560 2568 2576 2584 2592 + 2600 2608 2616 2624 2632 2640 + 2648 2656 2664 2672 2680 2688 + 2696 2704 2712 2720 2728 2736 + 2744 2752 2760 2768 2776 2784 + 2792 2800 2808 2816 2824 2832 + 2840 2848 2856 2864 2872 2880 + 2888 2896 2904 2912 2920 2928 + 2936 2944 2952 2960 2968 2976 + 2984 2992 3000 3008 3016 3024 + 3032 3040 3048 3056 3064 3072 + 3080 3088 3096 3104 3112 3120 + 3128 3136 3144 3152 3160 3168 + 3176 3184 3192 3200 3208 3216 + 3224 3232 3240 3248 3256 3264 + 3272 3280 3288 3296 3304 3312 + 3320 3328 3336 3344 3352 3360 + 3368 3376 3384 3392 3400 3408 + 3416 3424 3432 3440 3448 3456 + 3464 3472 3480 3488 3496 3504 + 3512 3520 3528 3536 3544 3552 + 3560 3568 3576 3584 3592 3600 + 3608 3616 3624 3632 3640 3648 + 3656 3664 3672 3680 3688 3696 + 3704 3712 3720 3728 3736 3744 + 3752 3760 3768 3776 3784 3792 + 3800 3808 3816 3824 3832 3840 + 3848 3856 3864 3872 3880 3888 + 3896 3904 3912 3920 3928 3936 + 3944 3952 3960 3968 3976 3984 + 3992 4000 4008 4016 4024 4032 + 4040 4048 4056 4064 4072 4080 + 4088 4096 4104 4112 4120 4128 + 4136 4144 4152 4160 4168 4176 + 4184 4192 4200 4208 4216 4224 + 4232 4240 4248 4256 4264 4272 + 4280 4288 4296 4304 4312 4320 + 4328 4336 4344 4352 4360 4368 + 4376 4384 4392 4400 4408 4416 + 4424 4432 4440 4448 4456 4464 + 4472 4480 4488 4496 4504 4512 + 4520 4528 4536 4544 4552 4560 + 4568 4576 4584 4592 4600 4608 + 4616 4624 4632 4640 4648 4656 + 4664 4672 4680 4688 4696 4704 + 4712 4720 4728 4736 4744 4752 + 4760 4768 4776 4784 4792 4800 + 4808 4816 4824 4832 4840 4848 + 4856 4864 4872 4880 4888 4896 + 4904 4912 4920 4928 4936 4944 + 4952 4960 4968 4976 4984 4992 + 5000 5008 5016 5024 5032 5040 + 5048 5056 5064 5072 5080 5088 + 5096 5104 5112 5120 5128 5136 + 5144 5152 5160 5168 5176 5184 + 5192 5200 5208 5216 5224 5232 + 5240 5248 5256 5264 5272 5280 + 5288 5296 5304 5312 5320 5328 + 5336 5344 5352 5360 5368 5376 + 5384 5392 5400 5408 5416 5424 + 5432 5440 5448 5456 5464 5472 + 5480 5488 5496 5504 5512 5520 + 5528 5536 5544 5552 5560 5568 + 5576 5584 5592 5600 5608 5616 + 5624 5632 5640 5648 5656 5664 + 5672 5680 5688 5696 5704 5712 + 5720 5728 5736 5744 5752 5760 + 5768 5776 5784 5792 5800 5808 + 5816 5824 5832 5840 5848 5856 + 5864 5872 5880 5888 5896 5904 + 5912 5920 5928 5936 5944 5952 + 5960 5968 5976 5984 5992 6000 + 6008 6016 6024 6032 6040 6048 + 6056 6064 6072 6080 6088 6096 + 6104 6112 6120 6128 6136 6144 + 6152 6160 6168 6176 6184 6192 + 6200 6208 6216 6224 6232 6240 + 6248 6256 6264 6272 6280 6288 + 6296 6304 6312 6320 6328 6336 + 6344 6352 6360 6368 6376 6384 + 6392 6400 6408 6416 6424 6432 + 6440 6448 6456 6464 6472 6480 + 6488 6496 6504 6512 6520 6528 + 6536 6544 6552 6560 6568 6576 + 6584 6592 6600 6608 6616 6624 + 6632 6640 6648 6656 6664 6672 + 6680 6688 6696 6704 6712 6720 + 6728 6736 6744 6752 6760 6768 + 6776 6784 6792 6800 6808 6816 + 6824 6832 6840 6848 6856 6864 + 6872 6880 6888 6896 6904 6912 + 6920 6928 6936 6944 6952 6960 + 6968 6976 6984 6992 7000 7008 + 7016 7024 7032 7040 7048 7056 + 7064 7072 7080 7088 7096 7104 + 7112 7120 7128 7136 7144 7152 + 7160 7168 7176 7184 7192 7200 + + + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + 12 12 12 12 12 12 + + + + + diff --git a/examples/RBCells/vtk/mesh/mesh_1_0.vtp b/examples/RBCells/vtk/mesh/mesh_1_0.vtp new file mode 100755 index 0000000..1e832df --- /dev/null +++ b/examples/RBCells/vtk/mesh/mesh_1_0.vtp @@ -0,0 +1,204 @@ + + + + + + + + + + 0 0 -1 0.10000000149 0 -1 + 0.20000000298 0 -1 0.30000001192 0 -1 + 0.40000000596 0 -1 0.5 0 -1 + 0.60000002384 0 -1 0.69999998808 0 -1 + 0.80000001192 0 -1 0.89999997616 0 -1 + 1 0 -1 1.1000000238 0 -1 + 1.2000000477 0 -1 1.2999999523 0 -1 + 1.3999999762 0 -1 1.5 0 -1 + 1.6000000238 0 -1 1.7000000477 0 -1 + 1.7999999523 0 -1 1.8999999762 0 -1 + 2 0 -1 2.0999999046 0 -1 + 2.2000000477 0 -1 2.2999999523 0 -1 + 2.4000000954 0 -1 2.5 0 -1 + 2.5999999046 0 -1 2.7000000477 0 -1 + 2.7999999523 0 -1 2.9000000954 0 -1 + 3 0 -1 3.0999999046 0 -1 + 3.2000000477 0 -1 3.2999999523 0 -1 + 3.4000000954 0 -1 3.5 0 -1 + 3.5999999046 0 -1 3.7000000477 0 -1 + 3.7999999523 0 -1 3.9000000954 0 -1 + 4 0 -1 4.0999999046 0 -1 + 4.1999998093 0 -1 4.3000001907 0 -1 + 4.4000000954 0 -1 4.5 0 -1 + 4.5999999046 0 -1 4.6999998093 0 -1 + 4.8000001907 0 -1 4.9000000954 0 -1 + 5 0 -1 5.0999999046 0 -1 + 5.1999998093 0 -1 5.3000001907 0 -1 + 5.4000000954 0 -1 5.5 0 -1 + 5.5999999046 0 -1 5.6999998093 0 -1 + 5.8000001907 0 -1 5.9000000954 0 -1 + 6 0 -1 6.0999999046 0 -1 + 6.1999998093 0 -1 6.3000001907 0 -1 + 6.4000000954 0 -1 6.5 0 -1 + 6.5999999046 0 -1 6.6999998093 0 -1 + 6.8000001907 0 -1 6.9000000954 0 -1 + 7 0 -1 7.0999999046 0 -1 + 7.1999998093 0 -1 7.3000001907 0 -1 + 7.4000000954 0 -1 7.5 0 -1 + 7.5999999046 0 -1 7.6999998093 0 -1 + 7.8000001907 0 -1 7.9000000954 0 -1 + 8 0 -1 8.1000003815 0 -1 + 8.1999998093 0 -1 8.3000001907 0 -1 + 8.3999996185 0 -1 8.5 0 -1 + 8.6000003815 0 -1 8.6999998093 0 -1 + 8.8000001907 0 -1 8.8999996185 0 -1 + 9 0 -1 0 0 1 + 0.10000000149 0 1 0.20000000298 0 1 + 0.30000001192 0 1 0.40000000596 0 1 + 0.5 0 1 0.60000002384 0 1 + 0.69999998808 0 1 0.80000001192 0 1 + 0.89999997616 0 1 1 0 1 + 1.1000000238 0 1 1.2000000477 0 1 + 1.2999999523 0 1 1.3999999762 0 1 + 1.5 0 1 1.6000000238 0 1 + 1.7000000477 0 1 1.7999999523 0 1 + 1.8999999762 0 1 2 0 1 + 2.0999999046 0 1 2.2000000477 0 1 + 2.2999999523 0 1 2.4000000954 0 1 + 2.5 0 1 2.5999999046 0 1 + 2.7000000477 0 1 2.7999999523 0 1 + 2.9000000954 0 1 3 0 1 + 3.0999999046 0 1 3.2000000477 0 1 + 3.2999999523 0 1 3.4000000954 0 1 + 3.5 0 1 3.5999999046 0 1 + 3.7000000477 0 1 3.7999999523 0 1 + 3.9000000954 0 1 4 0 1 + 4.0999999046 0 1 4.1999998093 0 1 + 4.3000001907 0 1 4.4000000954 0 1 + 4.5 0 1 4.5999999046 0 1 + 4.6999998093 0 1 4.8000001907 0 1 + 4.9000000954 0 1 5 0 1 + 5.0999999046 0 1 5.1999998093 0 1 + 5.3000001907 0 1 5.4000000954 0 1 + 5.5 0 1 5.5999999046 0 1 + 5.6999998093 0 1 5.8000001907 0 1 + 5.9000000954 0 1 6 0 1 + 6.0999999046 0 1 6.1999998093 0 1 + 6.3000001907 0 1 6.4000000954 0 1 + 6.5 0 1 6.5999999046 0 1 + 6.6999998093 0 1 6.8000001907 0 1 + 6.9000000954 0 1 7 0 1 + 7.0999999046 0 1 7.1999998093 0 1 + 7.3000001907 0 1 7.4000000954 0 1 + 7.5 0 1 7.5999999046 0 1 + 7.6999998093 0 1 7.8000001907 0 1 + 7.9000000954 0 1 8 0 1 + 8.1000003815 0 1 8.1999998093 0 1 + 8.3000001907 0 1 8.3999996185 0 1 + 8.5 0 1 8.6000003815 0 1 + 8.6999998093 0 1 8.8000001907 0 1 + 8.8999996185 0 1 9 0 1 + + + + + + + + + + + + + + + + + + + + + + + 0 1 92 91 1 2 + 93 92 2 3 94 93 + 3 4 95 94 4 5 + 96 95 5 6 97 96 + 6 7 98 97 7 8 + 99 98 8 9 100 99 + 9 10 101 100 10 11 + 102 101 11 12 103 102 + 12 13 104 103 13 14 + 105 104 14 15 106 105 + 15 16 107 106 16 17 + 108 107 17 18 109 108 + 18 19 110 109 19 20 + 111 110 20 21 112 111 + 21 22 113 112 22 23 + 114 113 23 24 115 114 + 24 25 116 115 25 26 + 117 116 26 27 118 117 + 27 28 119 118 28 29 + 120 119 29 30 121 120 + 30 31 122 121 31 32 + 123 122 32 33 124 123 + 33 34 125 124 34 35 + 126 125 35 36 127 126 + 36 37 128 127 37 38 + 129 128 38 39 130 129 + 39 40 131 130 40 41 + 132 131 41 42 133 132 + 42 43 134 133 43 44 + 135 134 44 45 136 135 + 45 46 137 136 46 47 + 138 137 47 48 139 138 + 48 49 140 139 49 50 + 141 140 50 51 142 141 + 51 52 143 142 52 53 + 144 143 53 54 145 144 + 54 55 146 145 55 56 + 147 146 56 57 148 147 + 57 58 149 148 58 59 + 150 149 59 60 151 150 + 60 61 152 151 61 62 + 153 152 62 63 154 153 + 63 64 155 154 64 65 + 156 155 65 66 157 156 + 66 67 158 157 67 68 + 159 158 68 69 160 159 + 69 70 161 160 70 71 + 162 161 71 72 163 162 + 72 73 164 163 73 74 + 165 164 74 75 166 165 + 75 76 167 166 76 77 + 168 167 77 78 169 168 + 78 79 170 169 79 80 + 171 170 80 81 172 171 + 81 82 173 172 82 83 + 174 173 83 84 175 174 + 84 85 176 175 85 86 + 177 176 86 87 178 177 + 87 88 179 178 88 89 + 180 179 89 90 181 180 + + + 4 8 12 16 20 24 + 28 32 36 40 44 48 + 52 56 60 64 68 72 + 76 80 84 88 92 96 + 100 104 108 112 116 120 + 124 128 132 136 140 144 + 148 152 156 160 164 168 + 172 176 180 184 188 192 + 196 200 204 208 212 216 + 220 224 228 232 236 240 + 244 248 252 256 260 264 + 268 272 276 280 284 288 + 292 296 300 304 308 312 + 316 320 324 328 332 336 + 340 344 348 352 356 360 + + + + + diff --git a/examples/RBCells/vtk/mesh/mesh_2_0.vtp b/examples/RBCells/vtk/mesh/mesh_2_0.vtp new file mode 100755 index 0000000..6fc8d95 --- /dev/null +++ b/examples/RBCells/vtk/mesh/mesh_2_0.vtp @@ -0,0 +1,204 @@ + + + + + + + + + + 0 1 -1 0.10000000149 1 -1 + 0.20000000298 1 -1 0.30000001192 1 -1 + 0.40000000596 1 -1 0.5 1 -1 + 0.60000002384 1 -1 0.69999998808 1 -1 + 0.80000001192 1 -1 0.89999997616 1 -1 + 1 1 -1 1.1000000238 1 -1 + 1.2000000477 1 -1 1.2999999523 1 -1 + 1.3999999762 1 -1 1.5 1 -1 + 1.6000000238 1 -1 1.7000000477 1 -1 + 1.7999999523 1 -1 1.8999999762 1 -1 + 2 1 -1 2.0999999046 1 -1 + 2.2000000477 1 -1 2.2999999523 1 -1 + 2.4000000954 1 -1 2.5 1 -1 + 2.5999999046 1 -1 2.7000000477 1 -1 + 2.7999999523 1 -1 2.9000000954 1 -1 + 3 1 -1 3.0999999046 1 -1 + 3.2000000477 1 -1 3.2999999523 1 -1 + 3.4000000954 1 -1 3.5 1 -1 + 3.5999999046 1 -1 3.7000000477 1 -1 + 3.7999999523 1 -1 3.9000000954 1 -1 + 4 1 -1 4.0999999046 1 -1 + 4.1999998093 1 -1 4.3000001907 1 -1 + 4.4000000954 1 -1 4.5 1 -1 + 4.5999999046 1 -1 4.6999998093 1 -1 + 4.8000001907 1 -1 4.9000000954 1 -1 + 5 1 -1 5.0999999046 1 -1 + 5.1999998093 1 -1 5.3000001907 1 -1 + 5.4000000954 1 -1 5.5 1 -1 + 5.5999999046 1 -1 5.6999998093 1 -1 + 5.8000001907 1 -1 5.9000000954 1 -1 + 6 1 -1 6.0999999046 1 -1 + 6.1999998093 1 -1 6.3000001907 1 -1 + 6.4000000954 1 -1 6.5 1 -1 + 6.5999999046 1 -1 6.6999998093 1 -1 + 6.8000001907 1 -1 6.9000000954 1 -1 + 7 1 -1 7.0999999046 1 -1 + 7.1999998093 1 -1 7.3000001907 1 -1 + 7.4000000954 1 -1 7.5 1 -1 + 7.5999999046 1 -1 7.6999998093 1 -1 + 7.8000001907 1 -1 7.9000000954 1 -1 + 8 1 -1 8.1000003815 1 -1 + 8.1999998093 1 -1 8.3000001907 1 -1 + 8.3999996185 1 -1 8.5 1 -1 + 8.6000003815 1 -1 8.6999998093 1 -1 + 8.8000001907 1 -1 8.8999996185 1 -1 + 9 1 -1 0 1 1 + 0.10000000149 1 1 0.20000000298 1 1 + 0.30000001192 1 1 0.40000000596 1 1 + 0.5 1 1 0.60000002384 1 1 + 0.69999998808 1 1 0.80000001192 1 1 + 0.89999997616 1 1 1 1 1 + 1.1000000238 1 1 1.2000000477 1 1 + 1.2999999523 1 1 1.3999999762 1 1 + 1.5 1 1 1.6000000238 1 1 + 1.7000000477 1 1 1.7999999523 1 1 + 1.8999999762 1 1 2 1 1 + 2.0999999046 1 1 2.2000000477 1 1 + 2.2999999523 1 1 2.4000000954 1 1 + 2.5 1 1 2.5999999046 1 1 + 2.7000000477 1 1 2.7999999523 1 1 + 2.9000000954 1 1 3 1 1 + 3.0999999046 1 1 3.2000000477 1 1 + 3.2999999523 1 1 3.4000000954 1 1 + 3.5 1 1 3.5999999046 1 1 + 3.7000000477 1 1 3.7999999523 1 1 + 3.9000000954 1 1 4 1 1 + 4.0999999046 1 1 4.1999998093 1 1 + 4.3000001907 1 1 4.4000000954 1 1 + 4.5 1 1 4.5999999046 1 1 + 4.6999998093 1 1 4.8000001907 1 1 + 4.9000000954 1 1 5 1 1 + 5.0999999046 1 1 5.1999998093 1 1 + 5.3000001907 1 1 5.4000000954 1 1 + 5.5 1 1 5.5999999046 1 1 + 5.6999998093 1 1 5.8000001907 1 1 + 5.9000000954 1 1 6 1 1 + 6.0999999046 1 1 6.1999998093 1 1 + 6.3000001907 1 1 6.4000000954 1 1 + 6.5 1 1 6.5999999046 1 1 + 6.6999998093 1 1 6.8000001907 1 1 + 6.9000000954 1 1 7 1 1 + 7.0999999046 1 1 7.1999998093 1 1 + 7.3000001907 1 1 7.4000000954 1 1 + 7.5 1 1 7.5999999046 1 1 + 7.6999998093 1 1 7.8000001907 1 1 + 7.9000000954 1 1 8 1 1 + 8.1000003815 1 1 8.1999998093 1 1 + 8.3000001907 1 1 8.3999996185 1 1 + 8.5 1 1 8.6000003815 1 1 + 8.6999998093 1 1 8.8000001907 1 1 + 8.8999996185 1 1 9 1 1 + + + + + + + + + + + + + + + + + + + + + + + 0 91 92 1 1 92 + 93 2 2 93 94 3 + 3 94 95 4 4 95 + 96 5 5 96 97 6 + 6 97 98 7 7 98 + 99 8 8 99 100 9 + 9 100 101 10 10 101 + 102 11 11 102 103 12 + 12 103 104 13 13 104 + 105 14 14 105 106 15 + 15 106 107 16 16 107 + 108 17 17 108 109 18 + 18 109 110 19 19 110 + 111 20 20 111 112 21 + 21 112 113 22 22 113 + 114 23 23 114 115 24 + 24 115 116 25 25 116 + 117 26 26 117 118 27 + 27 118 119 28 28 119 + 120 29 29 120 121 30 + 30 121 122 31 31 122 + 123 32 32 123 124 33 + 33 124 125 34 34 125 + 126 35 35 126 127 36 + 36 127 128 37 37 128 + 129 38 38 129 130 39 + 39 130 131 40 40 131 + 132 41 41 132 133 42 + 42 133 134 43 43 134 + 135 44 44 135 136 45 + 45 136 137 46 46 137 + 138 47 47 138 139 48 + 48 139 140 49 49 140 + 141 50 50 141 142 51 + 51 142 143 52 52 143 + 144 53 53 144 145 54 + 54 145 146 55 55 146 + 147 56 56 147 148 57 + 57 148 149 58 58 149 + 150 59 59 150 151 60 + 60 151 152 61 61 152 + 153 62 62 153 154 63 + 63 154 155 64 64 155 + 156 65 65 156 157 66 + 66 157 158 67 67 158 + 159 68 68 159 160 69 + 69 160 161 70 70 161 + 162 71 71 162 163 72 + 72 163 164 73 73 164 + 165 74 74 165 166 75 + 75 166 167 76 76 167 + 168 77 77 168 169 78 + 78 169 170 79 79 170 + 171 80 80 171 172 81 + 81 172 173 82 82 173 + 174 83 83 174 175 84 + 84 175 176 85 85 176 + 177 86 86 177 178 87 + 87 178 179 88 88 179 + 180 89 89 180 181 90 + + + 4 8 12 16 20 24 + 28 32 36 40 44 48 + 52 56 60 64 68 72 + 76 80 84 88 92 96 + 100 104 108 112 116 120 + 124 128 132 136 140 144 + 148 152 156 160 164 168 + 172 176 180 184 188 192 + 196 200 204 208 212 216 + 220 224 228 232 236 240 + 244 248 252 256 260 264 + 268 272 276 280 284 288 + 292 296 300 304 308 312 + 316 320 324 328 332 336 + 340 344 348 352 356 360 + + + + + diff --git a/examples/RBCells/vtk/mesh/mesh_3_0.vtp b/examples/RBCells/vtk/mesh/mesh_3_0.vtp new file mode 100755 index 0000000..e750d5a --- /dev/null +++ b/examples/RBCells/vtk/mesh/mesh_3_0.vtp @@ -0,0 +1,78 @@ + + + + + + + + + + 0 0 -1 9 0 -1 + 0 0.10000000149 -1 9 0.10000000149 -1 + 0 0.20000000298 -1 9 0.20000000298 -1 + 0 0.30000001192 -1 9 0.30000001192 -1 + 0 0.40000000596 -1 9 0.40000000596 -1 + 0 0.5 -1 9 0.5 -1 + 0 0.60000002384 -1 9 0.60000002384 -1 + 0 0.69999998808 -1 9 0.69999998808 -1 + 0 0.80000001192 -1 9 0.80000001192 -1 + 0 0.89999997616 -1 9 0.89999997616 -1 + 0 1 -1 9 1 -1 + 0 0 1 9 0 1 + 0 0.10000000149 1 9 0.10000000149 1 + 0 0.20000000298 1 9 0.20000000298 1 + 0 0.30000001192 1 9 0.30000001192 1 + 0 0.40000000596 1 9 0.40000000596 1 + 0 0.5 1 9 0.5 1 + 0 0.60000002384 1 9 0.60000002384 1 + 0 0.69999998808 1 9 0.69999998808 1 + 0 0.80000001192 1 9 0.80000001192 1 + 0 0.89999997616 1 9 0.89999997616 1 + 0 1 1 9 1 1 + + + + + + + + + + + + + + + + + + + + + + + 0 22 24 2 2 24 + 26 4 4 26 28 6 + 6 28 30 8 8 30 + 32 10 10 32 34 12 + 12 34 36 14 14 36 + 38 16 16 38 40 18 + 18 40 42 20 1 3 + 25 23 3 5 27 25 + 5 7 29 27 7 9 + 31 29 9 11 33 31 + 11 13 35 33 13 15 + 37 35 15 17 39 37 + 17 19 41 39 19 21 + 43 41 + + + 4 8 12 16 20 24 + 28 32 36 40 44 48 + 52 56 60 64 68 72 + 76 80 + + + + + diff --git a/examples/RBCells/vtk/mesh/mesh_4_0.vtp b/examples/RBCells/vtk/mesh/mesh_4_0.vtp new file mode 100755 index 0000000..1af0089 --- /dev/null +++ b/examples/RBCells/vtk/mesh/mesh_4_0.vtp @@ -0,0 +1,2539 @@ + + + + + + + + + + 0 0 -1 0.10000000149 0 -1 + 0.20000000298 0 -1 0.30000001192 0 -1 + 0.40000000596 0 -1 0.5 0 -1 + 0.60000002384 0 -1 0.69999998808 0 -1 + 0.80000001192 0 -1 0.89999997616 0 -1 + 1 0 -1 1.1000000238 0 -1 + 1.2000000477 0 -1 1.2999999523 0 -1 + 1.3999999762 0 -1 1.5 0 -1 + 1.6000000238 0 -1 1.7000000477 0 -1 + 1.7999999523 0 -1 1.8999999762 0 -1 + 2 0 -1 2.0999999046 0 -1 + 2.2000000477 0 -1 2.2999999523 0 -1 + 2.4000000954 0 -1 2.5 0 -1 + 2.5999999046 0 -1 2.7000000477 0 -1 + 2.7999999523 0 -1 2.9000000954 0 -1 + 3 0 -1 3.0999999046 0 -1 + 3.2000000477 0 -1 3.2999999523 0 -1 + 3.4000000954 0 -1 3.5 0 -1 + 3.5999999046 0 -1 3.7000000477 0 -1 + 3.7999999523 0 -1 3.9000000954 0 -1 + 4 0 -1 4.0999999046 0 -1 + 4.1999998093 0 -1 4.3000001907 0 -1 + 4.4000000954 0 -1 4.5 0 -1 + 4.5999999046 0 -1 4.6999998093 0 -1 + 4.8000001907 0 -1 4.9000000954 0 -1 + 5 0 -1 5.0999999046 0 -1 + 5.1999998093 0 -1 5.3000001907 0 -1 + 5.4000000954 0 -1 5.5 0 -1 + 5.5999999046 0 -1 5.6999998093 0 -1 + 5.8000001907 0 -1 5.9000000954 0 -1 + 6 0 -1 6.0999999046 0 -1 + 6.1999998093 0 -1 6.3000001907 0 -1 + 6.4000000954 0 -1 6.5 0 -1 + 6.5999999046 0 -1 6.6999998093 0 -1 + 6.8000001907 0 -1 6.9000000954 0 -1 + 7 0 -1 7.0999999046 0 -1 + 7.1999998093 0 -1 7.3000001907 0 -1 + 7.4000000954 0 -1 7.5 0 -1 + 7.5999999046 0 -1 7.6999998093 0 -1 + 7.8000001907 0 -1 7.9000000954 0 -1 + 8 0 -1 8.1000003815 0 -1 + 8.1999998093 0 -1 8.3000001907 0 -1 + 8.3999996185 0 -1 8.5 0 -1 + 8.6000003815 0 -1 8.6999998093 0 -1 + 8.8000001907 0 -1 8.8999996185 0 -1 + 9 0 -1 0 0.10000000149 -1 + 0.10000000149 0.10000000149 -1 0.20000000298 0.10000000149 -1 + 0.30000001192 0.10000000149 -1 0.40000000596 0.10000000149 -1 + 0.5 0.10000000149 -1 0.60000002384 0.10000000149 -1 + 0.69999998808 0.10000000149 -1 0.80000001192 0.10000000149 -1 + 0.89999997616 0.10000000149 -1 1 0.10000000149 -1 + 1.1000000238 0.10000000149 -1 1.2000000477 0.10000000149 -1 + 1.2999999523 0.10000000149 -1 1.3999999762 0.10000000149 -1 + 1.5 0.10000000149 -1 1.6000000238 0.10000000149 -1 + 1.7000000477 0.10000000149 -1 1.7999999523 0.10000000149 -1 + 1.8999999762 0.10000000149 -1 2 0.10000000149 -1 + 2.0999999046 0.10000000149 -1 2.2000000477 0.10000000149 -1 + 2.2999999523 0.10000000149 -1 2.4000000954 0.10000000149 -1 + 2.5 0.10000000149 -1 2.5999999046 0.10000000149 -1 + 2.7000000477 0.10000000149 -1 2.7999999523 0.10000000149 -1 + 2.9000000954 0.10000000149 -1 3 0.10000000149 -1 + 3.0999999046 0.10000000149 -1 3.2000000477 0.10000000149 -1 + 3.2999999523 0.10000000149 -1 3.4000000954 0.10000000149 -1 + 3.5 0.10000000149 -1 3.5999999046 0.10000000149 -1 + 3.7000000477 0.10000000149 -1 3.7999999523 0.10000000149 -1 + 3.9000000954 0.10000000149 -1 4 0.10000000149 -1 + 4.0999999046 0.10000000149 -1 4.1999998093 0.10000000149 -1 + 4.3000001907 0.10000000149 -1 4.4000000954 0.10000000149 -1 + 4.5 0.10000000149 -1 4.5999999046 0.10000000149 -1 + 4.6999998093 0.10000000149 -1 4.8000001907 0.10000000149 -1 + 4.9000000954 0.10000000149 -1 5 0.10000000149 -1 + 5.0999999046 0.10000000149 -1 5.1999998093 0.10000000149 -1 + 5.3000001907 0.10000000149 -1 5.4000000954 0.10000000149 -1 + 5.5 0.10000000149 -1 5.5999999046 0.10000000149 -1 + 5.6999998093 0.10000000149 -1 5.8000001907 0.10000000149 -1 + 5.9000000954 0.10000000149 -1 6 0.10000000149 -1 + 6.0999999046 0.10000000149 -1 6.1999998093 0.10000000149 -1 + 6.3000001907 0.10000000149 -1 6.4000000954 0.10000000149 -1 + 6.5 0.10000000149 -1 6.5999999046 0.10000000149 -1 + 6.6999998093 0.10000000149 -1 6.8000001907 0.10000000149 -1 + 6.9000000954 0.10000000149 -1 7 0.10000000149 -1 + 7.0999999046 0.10000000149 -1 7.1999998093 0.10000000149 -1 + 7.3000001907 0.10000000149 -1 7.4000000954 0.10000000149 -1 + 7.5 0.10000000149 -1 7.5999999046 0.10000000149 -1 + 7.6999998093 0.10000000149 -1 7.8000001907 0.10000000149 -1 + 7.9000000954 0.10000000149 -1 8 0.10000000149 -1 + 8.1000003815 0.10000000149 -1 8.1999998093 0.10000000149 -1 + 8.3000001907 0.10000000149 -1 8.3999996185 0.10000000149 -1 + 8.5 0.10000000149 -1 8.6000003815 0.10000000149 -1 + 8.6999998093 0.10000000149 -1 8.8000001907 0.10000000149 -1 + 8.8999996185 0.10000000149 -1 9 0.10000000149 -1 + 0 0.20000000298 -1 0.10000000149 0.20000000298 -1 + 0.20000000298 0.20000000298 -1 0.30000001192 0.20000000298 -1 + 0.40000000596 0.20000000298 -1 0.5 0.20000000298 -1 + 0.60000002384 0.20000000298 -1 0.69999998808 0.20000000298 -1 + 0.80000001192 0.20000000298 -1 0.89999997616 0.20000000298 -1 + 1 0.20000000298 -1 1.1000000238 0.20000000298 -1 + 1.2000000477 0.20000000298 -1 1.2999999523 0.20000000298 -1 + 1.3999999762 0.20000000298 -1 1.5 0.20000000298 -1 + 1.6000000238 0.20000000298 -1 1.7000000477 0.20000000298 -1 + 1.7999999523 0.20000000298 -1 1.8999999762 0.20000000298 -1 + 2 0.20000000298 -1 2.0999999046 0.20000000298 -1 + 2.2000000477 0.20000000298 -1 2.2999999523 0.20000000298 -1 + 2.4000000954 0.20000000298 -1 2.5 0.20000000298 -1 + 2.5999999046 0.20000000298 -1 2.7000000477 0.20000000298 -1 + 2.7999999523 0.20000000298 -1 2.9000000954 0.20000000298 -1 + 3 0.20000000298 -1 3.0999999046 0.20000000298 -1 + 3.2000000477 0.20000000298 -1 3.2999999523 0.20000000298 -1 + 3.4000000954 0.20000000298 -1 3.5 0.20000000298 -1 + 3.5999999046 0.20000000298 -1 3.7000000477 0.20000000298 -1 + 3.7999999523 0.20000000298 -1 3.9000000954 0.20000000298 -1 + 4 0.20000000298 -1 4.0999999046 0.20000000298 -1 + 4.1999998093 0.20000000298 -1 4.3000001907 0.20000000298 -1 + 4.4000000954 0.20000000298 -1 4.5 0.20000000298 -1 + 4.5999999046 0.20000000298 -1 4.6999998093 0.20000000298 -1 + 4.8000001907 0.20000000298 -1 4.9000000954 0.20000000298 -1 + 5 0.20000000298 -1 5.0999999046 0.20000000298 -1 + 5.1999998093 0.20000000298 -1 5.3000001907 0.20000000298 -1 + 5.4000000954 0.20000000298 -1 5.5 0.20000000298 -1 + 5.5999999046 0.20000000298 -1 5.6999998093 0.20000000298 -1 + 5.8000001907 0.20000000298 -1 5.9000000954 0.20000000298 -1 + 6 0.20000000298 -1 6.0999999046 0.20000000298 -1 + 6.1999998093 0.20000000298 -1 6.3000001907 0.20000000298 -1 + 6.4000000954 0.20000000298 -1 6.5 0.20000000298 -1 + 6.5999999046 0.20000000298 -1 6.6999998093 0.20000000298 -1 + 6.8000001907 0.20000000298 -1 6.9000000954 0.20000000298 -1 + 7 0.20000000298 -1 7.0999999046 0.20000000298 -1 + 7.1999998093 0.20000000298 -1 7.3000001907 0.20000000298 -1 + 7.4000000954 0.20000000298 -1 7.5 0.20000000298 -1 + 7.5999999046 0.20000000298 -1 7.6999998093 0.20000000298 -1 + 7.8000001907 0.20000000298 -1 7.9000000954 0.20000000298 -1 + 8 0.20000000298 -1 8.1000003815 0.20000000298 -1 + 8.1999998093 0.20000000298 -1 8.3000001907 0.20000000298 -1 + 8.3999996185 0.20000000298 -1 8.5 0.20000000298 -1 + 8.6000003815 0.20000000298 -1 8.6999998093 0.20000000298 -1 + 8.8000001907 0.20000000298 -1 8.8999996185 0.20000000298 -1 + 9 0.20000000298 -1 0 0.30000001192 -1 + 0.10000000149 0.30000001192 -1 0.20000000298 0.30000001192 -1 + 0.30000001192 0.30000001192 -1 0.40000000596 0.30000001192 -1 + 0.5 0.30000001192 -1 0.60000002384 0.30000001192 -1 + 0.69999998808 0.30000001192 -1 0.80000001192 0.30000001192 -1 + 0.89999997616 0.30000001192 -1 1 0.30000001192 -1 + 1.1000000238 0.30000001192 -1 1.2000000477 0.30000001192 -1 + 1.2999999523 0.30000001192 -1 1.3999999762 0.30000001192 -1 + 1.5 0.30000001192 -1 1.6000000238 0.30000001192 -1 + 1.7000000477 0.30000001192 -1 1.7999999523 0.30000001192 -1 + 1.8999999762 0.30000001192 -1 2 0.30000001192 -1 + 2.0999999046 0.30000001192 -1 2.2000000477 0.30000001192 -1 + 2.2999999523 0.30000001192 -1 2.4000000954 0.30000001192 -1 + 2.5 0.30000001192 -1 2.5999999046 0.30000001192 -1 + 2.7000000477 0.30000001192 -1 2.7999999523 0.30000001192 -1 + 2.9000000954 0.30000001192 -1 3 0.30000001192 -1 + 3.0999999046 0.30000001192 -1 3.2000000477 0.30000001192 -1 + 3.2999999523 0.30000001192 -1 3.4000000954 0.30000001192 -1 + 3.5 0.30000001192 -1 3.5999999046 0.30000001192 -1 + 3.7000000477 0.30000001192 -1 3.7999999523 0.30000001192 -1 + 3.9000000954 0.30000001192 -1 4 0.30000001192 -1 + 4.0999999046 0.30000001192 -1 4.1999998093 0.30000001192 -1 + 4.3000001907 0.30000001192 -1 4.4000000954 0.30000001192 -1 + 4.5 0.30000001192 -1 4.5999999046 0.30000001192 -1 + 4.6999998093 0.30000001192 -1 4.8000001907 0.30000001192 -1 + 4.9000000954 0.30000001192 -1 5 0.30000001192 -1 + 5.0999999046 0.30000001192 -1 5.1999998093 0.30000001192 -1 + 5.3000001907 0.30000001192 -1 5.4000000954 0.30000001192 -1 + 5.5 0.30000001192 -1 5.5999999046 0.30000001192 -1 + 5.6999998093 0.30000001192 -1 5.8000001907 0.30000001192 -1 + 5.9000000954 0.30000001192 -1 6 0.30000001192 -1 + 6.0999999046 0.30000001192 -1 6.1999998093 0.30000001192 -1 + 6.3000001907 0.30000001192 -1 6.4000000954 0.30000001192 -1 + 6.5 0.30000001192 -1 6.5999999046 0.30000001192 -1 + 6.6999998093 0.30000001192 -1 6.8000001907 0.30000001192 -1 + 6.9000000954 0.30000001192 -1 7 0.30000001192 -1 + 7.0999999046 0.30000001192 -1 7.1999998093 0.30000001192 -1 + 7.3000001907 0.30000001192 -1 7.4000000954 0.30000001192 -1 + 7.5 0.30000001192 -1 7.5999999046 0.30000001192 -1 + 7.6999998093 0.30000001192 -1 7.8000001907 0.30000001192 -1 + 7.9000000954 0.30000001192 -1 8 0.30000001192 -1 + 8.1000003815 0.30000001192 -1 8.1999998093 0.30000001192 -1 + 8.3000001907 0.30000001192 -1 8.3999996185 0.30000001192 -1 + 8.5 0.30000001192 -1 8.6000003815 0.30000001192 -1 + 8.6999998093 0.30000001192 -1 8.8000001907 0.30000001192 -1 + 8.8999996185 0.30000001192 -1 9 0.30000001192 -1 + 0 0.40000000596 -1 0.10000000149 0.40000000596 -1 + 0.20000000298 0.40000000596 -1 0.30000001192 0.40000000596 -1 + 0.40000000596 0.40000000596 -1 0.5 0.40000000596 -1 + 0.60000002384 0.40000000596 -1 0.69999998808 0.40000000596 -1 + 0.80000001192 0.40000000596 -1 0.89999997616 0.40000000596 -1 + 1 0.40000000596 -1 1.1000000238 0.40000000596 -1 + 1.2000000477 0.40000000596 -1 1.2999999523 0.40000000596 -1 + 1.3999999762 0.40000000596 -1 1.5 0.40000000596 -1 + 1.6000000238 0.40000000596 -1 1.7000000477 0.40000000596 -1 + 1.7999999523 0.40000000596 -1 1.8999999762 0.40000000596 -1 + 2 0.40000000596 -1 2.0999999046 0.40000000596 -1 + 2.2000000477 0.40000000596 -1 2.2999999523 0.40000000596 -1 + 2.4000000954 0.40000000596 -1 2.5 0.40000000596 -1 + 2.5999999046 0.40000000596 -1 2.7000000477 0.40000000596 -1 + 2.7999999523 0.40000000596 -1 2.9000000954 0.40000000596 -1 + 3 0.40000000596 -1 3.0999999046 0.40000000596 -1 + 3.2000000477 0.40000000596 -1 3.2999999523 0.40000000596 -1 + 3.4000000954 0.40000000596 -1 3.5 0.40000000596 -1 + 3.5999999046 0.40000000596 -1 3.7000000477 0.40000000596 -1 + 3.7999999523 0.40000000596 -1 3.9000000954 0.40000000596 -1 + 4 0.40000000596 -1 4.0999999046 0.40000000596 -1 + 4.1999998093 0.40000000596 -1 4.3000001907 0.40000000596 -1 + 4.4000000954 0.40000000596 -1 4.5 0.40000000596 -1 + 4.5999999046 0.40000000596 -1 4.6999998093 0.40000000596 -1 + 4.8000001907 0.40000000596 -1 4.9000000954 0.40000000596 -1 + 5 0.40000000596 -1 5.0999999046 0.40000000596 -1 + 5.1999998093 0.40000000596 -1 5.3000001907 0.40000000596 -1 + 5.4000000954 0.40000000596 -1 5.5 0.40000000596 -1 + 5.5999999046 0.40000000596 -1 5.6999998093 0.40000000596 -1 + 5.8000001907 0.40000000596 -1 5.9000000954 0.40000000596 -1 + 6 0.40000000596 -1 6.0999999046 0.40000000596 -1 + 6.1999998093 0.40000000596 -1 6.3000001907 0.40000000596 -1 + 6.4000000954 0.40000000596 -1 6.5 0.40000000596 -1 + 6.5999999046 0.40000000596 -1 6.6999998093 0.40000000596 -1 + 6.8000001907 0.40000000596 -1 6.9000000954 0.40000000596 -1 + 7 0.40000000596 -1 7.0999999046 0.40000000596 -1 + 7.1999998093 0.40000000596 -1 7.3000001907 0.40000000596 -1 + 7.4000000954 0.40000000596 -1 7.5 0.40000000596 -1 + 7.5999999046 0.40000000596 -1 7.6999998093 0.40000000596 -1 + 7.8000001907 0.40000000596 -1 7.9000000954 0.40000000596 -1 + 8 0.40000000596 -1 8.1000003815 0.40000000596 -1 + 8.1999998093 0.40000000596 -1 8.3000001907 0.40000000596 -1 + 8.3999996185 0.40000000596 -1 8.5 0.40000000596 -1 + 8.6000003815 0.40000000596 -1 8.6999998093 0.40000000596 -1 + 8.8000001907 0.40000000596 -1 8.8999996185 0.40000000596 -1 + 9 0.40000000596 -1 0 0.5 -1 + 0.10000000149 0.5 -1 0.20000000298 0.5 -1 + 0.30000001192 0.5 -1 0.40000000596 0.5 -1 + 0.5 0.5 -1 0.60000002384 0.5 -1 + 0.69999998808 0.5 -1 0.80000001192 0.5 -1 + 0.89999997616 0.5 -1 1 0.5 -1 + 1.1000000238 0.5 -1 1.2000000477 0.5 -1 + 1.2999999523 0.5 -1 1.3999999762 0.5 -1 + 1.5 0.5 -1 1.6000000238 0.5 -1 + 1.7000000477 0.5 -1 1.7999999523 0.5 -1 + 1.8999999762 0.5 -1 2 0.5 -1 + 2.0999999046 0.5 -1 2.2000000477 0.5 -1 + 2.2999999523 0.5 -1 2.4000000954 0.5 -1 + 2.5 0.5 -1 2.5999999046 0.5 -1 + 2.7000000477 0.5 -1 2.7999999523 0.5 -1 + 2.9000000954 0.5 -1 3 0.5 -1 + 3.0999999046 0.5 -1 3.2000000477 0.5 -1 + 3.2999999523 0.5 -1 3.4000000954 0.5 -1 + 3.5 0.5 -1 3.5999999046 0.5 -1 + 3.7000000477 0.5 -1 3.7999999523 0.5 -1 + 3.9000000954 0.5 -1 4 0.5 -1 + 4.0999999046 0.5 -1 4.1999998093 0.5 -1 + 4.3000001907 0.5 -1 4.4000000954 0.5 -1 + 4.5 0.5 -1 4.5999999046 0.5 -1 + 4.6999998093 0.5 -1 4.8000001907 0.5 -1 + 4.9000000954 0.5 -1 5 0.5 -1 + 5.0999999046 0.5 -1 5.1999998093 0.5 -1 + 5.3000001907 0.5 -1 5.4000000954 0.5 -1 + 5.5 0.5 -1 5.5999999046 0.5 -1 + 5.6999998093 0.5 -1 5.8000001907 0.5 -1 + 5.9000000954 0.5 -1 6 0.5 -1 + 6.0999999046 0.5 -1 6.1999998093 0.5 -1 + 6.3000001907 0.5 -1 6.4000000954 0.5 -1 + 6.5 0.5 -1 6.5999999046 0.5 -1 + 6.6999998093 0.5 -1 6.8000001907 0.5 -1 + 6.9000000954 0.5 -1 7 0.5 -1 + 7.0999999046 0.5 -1 7.1999998093 0.5 -1 + 7.3000001907 0.5 -1 7.4000000954 0.5 -1 + 7.5 0.5 -1 7.5999999046 0.5 -1 + 7.6999998093 0.5 -1 7.8000001907 0.5 -1 + 7.9000000954 0.5 -1 8 0.5 -1 + 8.1000003815 0.5 -1 8.1999998093 0.5 -1 + 8.3000001907 0.5 -1 8.3999996185 0.5 -1 + 8.5 0.5 -1 8.6000003815 0.5 -1 + 8.6999998093 0.5 -1 8.8000001907 0.5 -1 + 8.8999996185 0.5 -1 9 0.5 -1 + 0 0.60000002384 -1 0.10000000149 0.60000002384 -1 + 0.20000000298 0.60000002384 -1 0.30000001192 0.60000002384 -1 + 0.40000000596 0.60000002384 -1 0.5 0.60000002384 -1 + 0.60000002384 0.60000002384 -1 0.69999998808 0.60000002384 -1 + 0.80000001192 0.60000002384 -1 0.89999997616 0.60000002384 -1 + 1 0.60000002384 -1 1.1000000238 0.60000002384 -1 + 1.2000000477 0.60000002384 -1 1.2999999523 0.60000002384 -1 + 1.3999999762 0.60000002384 -1 1.5 0.60000002384 -1 + 1.6000000238 0.60000002384 -1 1.7000000477 0.60000002384 -1 + 1.7999999523 0.60000002384 -1 1.8999999762 0.60000002384 -1 + 2 0.60000002384 -1 2.0999999046 0.60000002384 -1 + 2.2000000477 0.60000002384 -1 2.2999999523 0.60000002384 -1 + 2.4000000954 0.60000002384 -1 2.5 0.60000002384 -1 + 2.5999999046 0.60000002384 -1 2.7000000477 0.60000002384 -1 + 2.7999999523 0.60000002384 -1 2.9000000954 0.60000002384 -1 + 3 0.60000002384 -1 3.0999999046 0.60000002384 -1 + 3.2000000477 0.60000002384 -1 3.2999999523 0.60000002384 -1 + 3.4000000954 0.60000002384 -1 3.5 0.60000002384 -1 + 3.5999999046 0.60000002384 -1 3.7000000477 0.60000002384 -1 + 3.7999999523 0.60000002384 -1 3.9000000954 0.60000002384 -1 + 4 0.60000002384 -1 4.0999999046 0.60000002384 -1 + 4.1999998093 0.60000002384 -1 4.3000001907 0.60000002384 -1 + 4.4000000954 0.60000002384 -1 4.5 0.60000002384 -1 + 4.5999999046 0.60000002384 -1 4.6999998093 0.60000002384 -1 + 4.8000001907 0.60000002384 -1 4.9000000954 0.60000002384 -1 + 5 0.60000002384 -1 5.0999999046 0.60000002384 -1 + 5.1999998093 0.60000002384 -1 5.3000001907 0.60000002384 -1 + 5.4000000954 0.60000002384 -1 5.5 0.60000002384 -1 + 5.5999999046 0.60000002384 -1 5.6999998093 0.60000002384 -1 + 5.8000001907 0.60000002384 -1 5.9000000954 0.60000002384 -1 + 6 0.60000002384 -1 6.0999999046 0.60000002384 -1 + 6.1999998093 0.60000002384 -1 6.3000001907 0.60000002384 -1 + 6.4000000954 0.60000002384 -1 6.5 0.60000002384 -1 + 6.5999999046 0.60000002384 -1 6.6999998093 0.60000002384 -1 + 6.8000001907 0.60000002384 -1 6.9000000954 0.60000002384 -1 + 7 0.60000002384 -1 7.0999999046 0.60000002384 -1 + 7.1999998093 0.60000002384 -1 7.3000001907 0.60000002384 -1 + 7.4000000954 0.60000002384 -1 7.5 0.60000002384 -1 + 7.5999999046 0.60000002384 -1 7.6999998093 0.60000002384 -1 + 7.8000001907 0.60000002384 -1 7.9000000954 0.60000002384 -1 + 8 0.60000002384 -1 8.1000003815 0.60000002384 -1 + 8.1999998093 0.60000002384 -1 8.3000001907 0.60000002384 -1 + 8.3999996185 0.60000002384 -1 8.5 0.60000002384 -1 + 8.6000003815 0.60000002384 -1 8.6999998093 0.60000002384 -1 + 8.8000001907 0.60000002384 -1 8.8999996185 0.60000002384 -1 + 9 0.60000002384 -1 0 0.69999998808 -1 + 0.10000000149 0.69999998808 -1 0.20000000298 0.69999998808 -1 + 0.30000001192 0.69999998808 -1 0.40000000596 0.69999998808 -1 + 0.5 0.69999998808 -1 0.60000002384 0.69999998808 -1 + 0.69999998808 0.69999998808 -1 0.80000001192 0.69999998808 -1 + 0.89999997616 0.69999998808 -1 1 0.69999998808 -1 + 1.1000000238 0.69999998808 -1 1.2000000477 0.69999998808 -1 + 1.2999999523 0.69999998808 -1 1.3999999762 0.69999998808 -1 + 1.5 0.69999998808 -1 1.6000000238 0.69999998808 -1 + 1.7000000477 0.69999998808 -1 1.7999999523 0.69999998808 -1 + 1.8999999762 0.69999998808 -1 2 0.69999998808 -1 + 2.0999999046 0.69999998808 -1 2.2000000477 0.69999998808 -1 + 2.2999999523 0.69999998808 -1 2.4000000954 0.69999998808 -1 + 2.5 0.69999998808 -1 2.5999999046 0.69999998808 -1 + 2.7000000477 0.69999998808 -1 2.7999999523 0.69999998808 -1 + 2.9000000954 0.69999998808 -1 3 0.69999998808 -1 + 3.0999999046 0.69999998808 -1 3.2000000477 0.69999998808 -1 + 3.2999999523 0.69999998808 -1 3.4000000954 0.69999998808 -1 + 3.5 0.69999998808 -1 3.5999999046 0.69999998808 -1 + 3.7000000477 0.69999998808 -1 3.7999999523 0.69999998808 -1 + 3.9000000954 0.69999998808 -1 4 0.69999998808 -1 + 4.0999999046 0.69999998808 -1 4.1999998093 0.69999998808 -1 + 4.3000001907 0.69999998808 -1 4.4000000954 0.69999998808 -1 + 4.5 0.69999998808 -1 4.5999999046 0.69999998808 -1 + 4.6999998093 0.69999998808 -1 4.8000001907 0.69999998808 -1 + 4.9000000954 0.69999998808 -1 5 0.69999998808 -1 + 5.0999999046 0.69999998808 -1 5.1999998093 0.69999998808 -1 + 5.3000001907 0.69999998808 -1 5.4000000954 0.69999998808 -1 + 5.5 0.69999998808 -1 5.5999999046 0.69999998808 -1 + 5.6999998093 0.69999998808 -1 5.8000001907 0.69999998808 -1 + 5.9000000954 0.69999998808 -1 6 0.69999998808 -1 + 6.0999999046 0.69999998808 -1 6.1999998093 0.69999998808 -1 + 6.3000001907 0.69999998808 -1 6.4000000954 0.69999998808 -1 + 6.5 0.69999998808 -1 6.5999999046 0.69999998808 -1 + 6.6999998093 0.69999998808 -1 6.8000001907 0.69999998808 -1 + 6.9000000954 0.69999998808 -1 7 0.69999998808 -1 + 7.0999999046 0.69999998808 -1 7.1999998093 0.69999998808 -1 + 7.3000001907 0.69999998808 -1 7.4000000954 0.69999998808 -1 + 7.5 0.69999998808 -1 7.5999999046 0.69999998808 -1 + 7.6999998093 0.69999998808 -1 7.8000001907 0.69999998808 -1 + 7.9000000954 0.69999998808 -1 8 0.69999998808 -1 + 8.1000003815 0.69999998808 -1 8.1999998093 0.69999998808 -1 + 8.3000001907 0.69999998808 -1 8.3999996185 0.69999998808 -1 + 8.5 0.69999998808 -1 8.6000003815 0.69999998808 -1 + 8.6999998093 0.69999998808 -1 8.8000001907 0.69999998808 -1 + 8.8999996185 0.69999998808 -1 9 0.69999998808 -1 + 0 0.80000001192 -1 0.10000000149 0.80000001192 -1 + 0.20000000298 0.80000001192 -1 0.30000001192 0.80000001192 -1 + 0.40000000596 0.80000001192 -1 0.5 0.80000001192 -1 + 0.60000002384 0.80000001192 -1 0.69999998808 0.80000001192 -1 + 0.80000001192 0.80000001192 -1 0.89999997616 0.80000001192 -1 + 1 0.80000001192 -1 1.1000000238 0.80000001192 -1 + 1.2000000477 0.80000001192 -1 1.2999999523 0.80000001192 -1 + 1.3999999762 0.80000001192 -1 1.5 0.80000001192 -1 + 1.6000000238 0.80000001192 -1 1.7000000477 0.80000001192 -1 + 1.7999999523 0.80000001192 -1 1.8999999762 0.80000001192 -1 + 2 0.80000001192 -1 2.0999999046 0.80000001192 -1 + 2.2000000477 0.80000001192 -1 2.2999999523 0.80000001192 -1 + 2.4000000954 0.80000001192 -1 2.5 0.80000001192 -1 + 2.5999999046 0.80000001192 -1 2.7000000477 0.80000001192 -1 + 2.7999999523 0.80000001192 -1 2.9000000954 0.80000001192 -1 + 3 0.80000001192 -1 3.0999999046 0.80000001192 -1 + 3.2000000477 0.80000001192 -1 3.2999999523 0.80000001192 -1 + 3.4000000954 0.80000001192 -1 3.5 0.80000001192 -1 + 3.5999999046 0.80000001192 -1 3.7000000477 0.80000001192 -1 + 3.7999999523 0.80000001192 -1 3.9000000954 0.80000001192 -1 + 4 0.80000001192 -1 4.0999999046 0.80000001192 -1 + 4.1999998093 0.80000001192 -1 4.3000001907 0.80000001192 -1 + 4.4000000954 0.80000001192 -1 4.5 0.80000001192 -1 + 4.5999999046 0.80000001192 -1 4.6999998093 0.80000001192 -1 + 4.8000001907 0.80000001192 -1 4.9000000954 0.80000001192 -1 + 5 0.80000001192 -1 5.0999999046 0.80000001192 -1 + 5.1999998093 0.80000001192 -1 5.3000001907 0.80000001192 -1 + 5.4000000954 0.80000001192 -1 5.5 0.80000001192 -1 + 5.5999999046 0.80000001192 -1 5.6999998093 0.80000001192 -1 + 5.8000001907 0.80000001192 -1 5.9000000954 0.80000001192 -1 + 6 0.80000001192 -1 6.0999999046 0.80000001192 -1 + 6.1999998093 0.80000001192 -1 6.3000001907 0.80000001192 -1 + 6.4000000954 0.80000001192 -1 6.5 0.80000001192 -1 + 6.5999999046 0.80000001192 -1 6.6999998093 0.80000001192 -1 + 6.8000001907 0.80000001192 -1 6.9000000954 0.80000001192 -1 + 7 0.80000001192 -1 7.0999999046 0.80000001192 -1 + 7.1999998093 0.80000001192 -1 7.3000001907 0.80000001192 -1 + 7.4000000954 0.80000001192 -1 7.5 0.80000001192 -1 + 7.5999999046 0.80000001192 -1 7.6999998093 0.80000001192 -1 + 7.8000001907 0.80000001192 -1 7.9000000954 0.80000001192 -1 + 8 0.80000001192 -1 8.1000003815 0.80000001192 -1 + 8.1999998093 0.80000001192 -1 8.3000001907 0.80000001192 -1 + 8.3999996185 0.80000001192 -1 8.5 0.80000001192 -1 + 8.6000003815 0.80000001192 -1 8.6999998093 0.80000001192 -1 + 8.8000001907 0.80000001192 -1 8.8999996185 0.80000001192 -1 + 9 0.80000001192 -1 0 0.89999997616 -1 + 0.10000000149 0.89999997616 -1 0.20000000298 0.89999997616 -1 + 0.30000001192 0.89999997616 -1 0.40000000596 0.89999997616 -1 + 0.5 0.89999997616 -1 0.60000002384 0.89999997616 -1 + 0.69999998808 0.89999997616 -1 0.80000001192 0.89999997616 -1 + 0.89999997616 0.89999997616 -1 1 0.89999997616 -1 + 1.1000000238 0.89999997616 -1 1.2000000477 0.89999997616 -1 + 1.2999999523 0.89999997616 -1 1.3999999762 0.89999997616 -1 + 1.5 0.89999997616 -1 1.6000000238 0.89999997616 -1 + 1.7000000477 0.89999997616 -1 1.7999999523 0.89999997616 -1 + 1.8999999762 0.89999997616 -1 2 0.89999997616 -1 + 2.0999999046 0.89999997616 -1 2.2000000477 0.89999997616 -1 + 2.2999999523 0.89999997616 -1 2.4000000954 0.89999997616 -1 + 2.5 0.89999997616 -1 2.5999999046 0.89999997616 -1 + 2.7000000477 0.89999997616 -1 2.7999999523 0.89999997616 -1 + 2.9000000954 0.89999997616 -1 3 0.89999997616 -1 + 3.0999999046 0.89999997616 -1 3.2000000477 0.89999997616 -1 + 3.2999999523 0.89999997616 -1 3.4000000954 0.89999997616 -1 + 3.5 0.89999997616 -1 3.5999999046 0.89999997616 -1 + 3.7000000477 0.89999997616 -1 3.7999999523 0.89999997616 -1 + 3.9000000954 0.89999997616 -1 4 0.89999997616 -1 + 4.0999999046 0.89999997616 -1 4.1999998093 0.89999997616 -1 + 4.3000001907 0.89999997616 -1 4.4000000954 0.89999997616 -1 + 4.5 0.89999997616 -1 4.5999999046 0.89999997616 -1 + 4.6999998093 0.89999997616 -1 4.8000001907 0.89999997616 -1 + 4.9000000954 0.89999997616 -1 5 0.89999997616 -1 + 5.0999999046 0.89999997616 -1 5.1999998093 0.89999997616 -1 + 5.3000001907 0.89999997616 -1 5.4000000954 0.89999997616 -1 + 5.5 0.89999997616 -1 5.5999999046 0.89999997616 -1 + 5.6999998093 0.89999997616 -1 5.8000001907 0.89999997616 -1 + 5.9000000954 0.89999997616 -1 6 0.89999997616 -1 + 6.0999999046 0.89999997616 -1 6.1999998093 0.89999997616 -1 + 6.3000001907 0.89999997616 -1 6.4000000954 0.89999997616 -1 + 6.5 0.89999997616 -1 6.5999999046 0.89999997616 -1 + 6.6999998093 0.89999997616 -1 6.8000001907 0.89999997616 -1 + 6.9000000954 0.89999997616 -1 7 0.89999997616 -1 + 7.0999999046 0.89999997616 -1 7.1999998093 0.89999997616 -1 + 7.3000001907 0.89999997616 -1 7.4000000954 0.89999997616 -1 + 7.5 0.89999997616 -1 7.5999999046 0.89999997616 -1 + 7.6999998093 0.89999997616 -1 7.8000001907 0.89999997616 -1 + 7.9000000954 0.89999997616 -1 8 0.89999997616 -1 + 8.1000003815 0.89999997616 -1 8.1999998093 0.89999997616 -1 + 8.3000001907 0.89999997616 -1 8.3999996185 0.89999997616 -1 + 8.5 0.89999997616 -1 8.6000003815 0.89999997616 -1 + 8.6999998093 0.89999997616 -1 8.8000001907 0.89999997616 -1 + 8.8999996185 0.89999997616 -1 9 0.89999997616 -1 + 0 1 -1 0.10000000149 1 -1 + 0.20000000298 1 -1 0.30000001192 1 -1 + 0.40000000596 1 -1 0.5 1 -1 + 0.60000002384 1 -1 0.69999998808 1 -1 + 0.80000001192 1 -1 0.89999997616 1 -1 + 1 1 -1 1.1000000238 1 -1 + 1.2000000477 1 -1 1.2999999523 1 -1 + 1.3999999762 1 -1 1.5 1 -1 + 1.6000000238 1 -1 1.7000000477 1 -1 + 1.7999999523 1 -1 1.8999999762 1 -1 + 2 1 -1 2.0999999046 1 -1 + 2.2000000477 1 -1 2.2999999523 1 -1 + 2.4000000954 1 -1 2.5 1 -1 + 2.5999999046 1 -1 2.7000000477 1 -1 + 2.7999999523 1 -1 2.9000000954 1 -1 + 3 1 -1 3.0999999046 1 -1 + 3.2000000477 1 -1 3.2999999523 1 -1 + 3.4000000954 1 -1 3.5 1 -1 + 3.5999999046 1 -1 3.7000000477 1 -1 + 3.7999999523 1 -1 3.9000000954 1 -1 + 4 1 -1 4.0999999046 1 -1 + 4.1999998093 1 -1 4.3000001907 1 -1 + 4.4000000954 1 -1 4.5 1 -1 + 4.5999999046 1 -1 4.6999998093 1 -1 + 4.8000001907 1 -1 4.9000000954 1 -1 + 5 1 -1 5.0999999046 1 -1 + 5.1999998093 1 -1 5.3000001907 1 -1 + 5.4000000954 1 -1 5.5 1 -1 + 5.5999999046 1 -1 5.6999998093 1 -1 + 5.8000001907 1 -1 5.9000000954 1 -1 + 6 1 -1 6.0999999046 1 -1 + 6.1999998093 1 -1 6.3000001907 1 -1 + 6.4000000954 1 -1 6.5 1 -1 + 6.5999999046 1 -1 6.6999998093 1 -1 + 6.8000001907 1 -1 6.9000000954 1 -1 + 7 1 -1 7.0999999046 1 -1 + 7.1999998093 1 -1 7.3000001907 1 -1 + 7.4000000954 1 -1 7.5 1 -1 + 7.5999999046 1 -1 7.6999998093 1 -1 + 7.8000001907 1 -1 7.9000000954 1 -1 + 8 1 -1 8.1000003815 1 -1 + 8.1999998093 1 -1 8.3000001907 1 -1 + 8.3999996185 1 -1 8.5 1 -1 + 8.6000003815 1 -1 8.6999998093 1 -1 + 8.8000001907 1 -1 8.8999996185 1 -1 + 9 1 -1 0 0 1 + 0.10000000149 0 1 0.20000000298 0 1 + 0.30000001192 0 1 0.40000000596 0 1 + 0.5 0 1 0.60000002384 0 1 + 0.69999998808 0 1 0.80000001192 0 1 + 0.89999997616 0 1 1 0 1 + 1.1000000238 0 1 1.2000000477 0 1 + 1.2999999523 0 1 1.3999999762 0 1 + 1.5 0 1 1.6000000238 0 1 + 1.7000000477 0 1 1.7999999523 0 1 + 1.8999999762 0 1 2 0 1 + 2.0999999046 0 1 2.2000000477 0 1 + 2.2999999523 0 1 2.4000000954 0 1 + 2.5 0 1 2.5999999046 0 1 + 2.7000000477 0 1 2.7999999523 0 1 + 2.9000000954 0 1 3 0 1 + 3.0999999046 0 1 3.2000000477 0 1 + 3.2999999523 0 1 3.4000000954 0 1 + 3.5 0 1 3.5999999046 0 1 + 3.7000000477 0 1 3.7999999523 0 1 + 3.9000000954 0 1 4 0 1 + 4.0999999046 0 1 4.1999998093 0 1 + 4.3000001907 0 1 4.4000000954 0 1 + 4.5 0 1 4.5999999046 0 1 + 4.6999998093 0 1 4.8000001907 0 1 + 4.9000000954 0 1 5 0 1 + 5.0999999046 0 1 5.1999998093 0 1 + 5.3000001907 0 1 5.4000000954 0 1 + 5.5 0 1 5.5999999046 0 1 + 5.6999998093 0 1 5.8000001907 0 1 + 5.9000000954 0 1 6 0 1 + 6.0999999046 0 1 6.1999998093 0 1 + 6.3000001907 0 1 6.4000000954 0 1 + 6.5 0 1 6.5999999046 0 1 + 6.6999998093 0 1 6.8000001907 0 1 + 6.9000000954 0 1 7 0 1 + 7.0999999046 0 1 7.1999998093 0 1 + 7.3000001907 0 1 7.4000000954 0 1 + 7.5 0 1 7.5999999046 0 1 + 7.6999998093 0 1 7.8000001907 0 1 + 7.9000000954 0 1 8 0 1 + 8.1000003815 0 1 8.1999998093 0 1 + 8.3000001907 0 1 8.3999996185 0 1 + 8.5 0 1 8.6000003815 0 1 + 8.6999998093 0 1 8.8000001907 0 1 + 8.8999996185 0 1 9 0 1 + 0 0.10000000149 1 0.10000000149 0.10000000149 1 + 0.20000000298 0.10000000149 1 0.30000001192 0.10000000149 1 + 0.40000000596 0.10000000149 1 0.5 0.10000000149 1 + 0.60000002384 0.10000000149 1 0.69999998808 0.10000000149 1 + 0.80000001192 0.10000000149 1 0.89999997616 0.10000000149 1 + 1 0.10000000149 1 1.1000000238 0.10000000149 1 + 1.2000000477 0.10000000149 1 1.2999999523 0.10000000149 1 + 1.3999999762 0.10000000149 1 1.5 0.10000000149 1 + 1.6000000238 0.10000000149 1 1.7000000477 0.10000000149 1 + 1.7999999523 0.10000000149 1 1.8999999762 0.10000000149 1 + 2 0.10000000149 1 2.0999999046 0.10000000149 1 + 2.2000000477 0.10000000149 1 2.2999999523 0.10000000149 1 + 2.4000000954 0.10000000149 1 2.5 0.10000000149 1 + 2.5999999046 0.10000000149 1 2.7000000477 0.10000000149 1 + 2.7999999523 0.10000000149 1 2.9000000954 0.10000000149 1 + 3 0.10000000149 1 3.0999999046 0.10000000149 1 + 3.2000000477 0.10000000149 1 3.2999999523 0.10000000149 1 + 3.4000000954 0.10000000149 1 3.5 0.10000000149 1 + 3.5999999046 0.10000000149 1 3.7000000477 0.10000000149 1 + 3.7999999523 0.10000000149 1 3.9000000954 0.10000000149 1 + 4 0.10000000149 1 4.0999999046 0.10000000149 1 + 4.1999998093 0.10000000149 1 4.3000001907 0.10000000149 1 + 4.4000000954 0.10000000149 1 4.5 0.10000000149 1 + 4.5999999046 0.10000000149 1 4.6999998093 0.10000000149 1 + 4.8000001907 0.10000000149 1 4.9000000954 0.10000000149 1 + 5 0.10000000149 1 5.0999999046 0.10000000149 1 + 5.1999998093 0.10000000149 1 5.3000001907 0.10000000149 1 + 5.4000000954 0.10000000149 1 5.5 0.10000000149 1 + 5.5999999046 0.10000000149 1 5.6999998093 0.10000000149 1 + 5.8000001907 0.10000000149 1 5.9000000954 0.10000000149 1 + 6 0.10000000149 1 6.0999999046 0.10000000149 1 + 6.1999998093 0.10000000149 1 6.3000001907 0.10000000149 1 + 6.4000000954 0.10000000149 1 6.5 0.10000000149 1 + 6.5999999046 0.10000000149 1 6.6999998093 0.10000000149 1 + 6.8000001907 0.10000000149 1 6.9000000954 0.10000000149 1 + 7 0.10000000149 1 7.0999999046 0.10000000149 1 + 7.1999998093 0.10000000149 1 7.3000001907 0.10000000149 1 + 7.4000000954 0.10000000149 1 7.5 0.10000000149 1 + 7.5999999046 0.10000000149 1 7.6999998093 0.10000000149 1 + 7.8000001907 0.10000000149 1 7.9000000954 0.10000000149 1 + 8 0.10000000149 1 8.1000003815 0.10000000149 1 + 8.1999998093 0.10000000149 1 8.3000001907 0.10000000149 1 + 8.3999996185 0.10000000149 1 8.5 0.10000000149 1 + 8.6000003815 0.10000000149 1 8.6999998093 0.10000000149 1 + 8.8000001907 0.10000000149 1 8.8999996185 0.10000000149 1 + 9 0.10000000149 1 0 0.20000000298 1 + 0.10000000149 0.20000000298 1 0.20000000298 0.20000000298 1 + 0.30000001192 0.20000000298 1 0.40000000596 0.20000000298 1 + 0.5 0.20000000298 1 0.60000002384 0.20000000298 1 + 0.69999998808 0.20000000298 1 0.80000001192 0.20000000298 1 + 0.89999997616 0.20000000298 1 1 0.20000000298 1 + 1.1000000238 0.20000000298 1 1.2000000477 0.20000000298 1 + 1.2999999523 0.20000000298 1 1.3999999762 0.20000000298 1 + 1.5 0.20000000298 1 1.6000000238 0.20000000298 1 + 1.7000000477 0.20000000298 1 1.7999999523 0.20000000298 1 + 1.8999999762 0.20000000298 1 2 0.20000000298 1 + 2.0999999046 0.20000000298 1 2.2000000477 0.20000000298 1 + 2.2999999523 0.20000000298 1 2.4000000954 0.20000000298 1 + 2.5 0.20000000298 1 2.5999999046 0.20000000298 1 + 2.7000000477 0.20000000298 1 2.7999999523 0.20000000298 1 + 2.9000000954 0.20000000298 1 3 0.20000000298 1 + 3.0999999046 0.20000000298 1 3.2000000477 0.20000000298 1 + 3.2999999523 0.20000000298 1 3.4000000954 0.20000000298 1 + 3.5 0.20000000298 1 3.5999999046 0.20000000298 1 + 3.7000000477 0.20000000298 1 3.7999999523 0.20000000298 1 + 3.9000000954 0.20000000298 1 4 0.20000000298 1 + 4.0999999046 0.20000000298 1 4.1999998093 0.20000000298 1 + 4.3000001907 0.20000000298 1 4.4000000954 0.20000000298 1 + 4.5 0.20000000298 1 4.5999999046 0.20000000298 1 + 4.6999998093 0.20000000298 1 4.8000001907 0.20000000298 1 + 4.9000000954 0.20000000298 1 5 0.20000000298 1 + 5.0999999046 0.20000000298 1 5.1999998093 0.20000000298 1 + 5.3000001907 0.20000000298 1 5.4000000954 0.20000000298 1 + 5.5 0.20000000298 1 5.5999999046 0.20000000298 1 + 5.6999998093 0.20000000298 1 5.8000001907 0.20000000298 1 + 5.9000000954 0.20000000298 1 6 0.20000000298 1 + 6.0999999046 0.20000000298 1 6.1999998093 0.20000000298 1 + 6.3000001907 0.20000000298 1 6.4000000954 0.20000000298 1 + 6.5 0.20000000298 1 6.5999999046 0.20000000298 1 + 6.6999998093 0.20000000298 1 6.8000001907 0.20000000298 1 + 6.9000000954 0.20000000298 1 7 0.20000000298 1 + 7.0999999046 0.20000000298 1 7.1999998093 0.20000000298 1 + 7.3000001907 0.20000000298 1 7.4000000954 0.20000000298 1 + 7.5 0.20000000298 1 7.5999999046 0.20000000298 1 + 7.6999998093 0.20000000298 1 7.8000001907 0.20000000298 1 + 7.9000000954 0.20000000298 1 8 0.20000000298 1 + 8.1000003815 0.20000000298 1 8.1999998093 0.20000000298 1 + 8.3000001907 0.20000000298 1 8.3999996185 0.20000000298 1 + 8.5 0.20000000298 1 8.6000003815 0.20000000298 1 + 8.6999998093 0.20000000298 1 8.8000001907 0.20000000298 1 + 8.8999996185 0.20000000298 1 9 0.20000000298 1 + 0 0.30000001192 1 0.10000000149 0.30000001192 1 + 0.20000000298 0.30000001192 1 0.30000001192 0.30000001192 1 + 0.40000000596 0.30000001192 1 0.5 0.30000001192 1 + 0.60000002384 0.30000001192 1 0.69999998808 0.30000001192 1 + 0.80000001192 0.30000001192 1 0.89999997616 0.30000001192 1 + 1 0.30000001192 1 1.1000000238 0.30000001192 1 + 1.2000000477 0.30000001192 1 1.2999999523 0.30000001192 1 + 1.3999999762 0.30000001192 1 1.5 0.30000001192 1 + 1.6000000238 0.30000001192 1 1.7000000477 0.30000001192 1 + 1.7999999523 0.30000001192 1 1.8999999762 0.30000001192 1 + 2 0.30000001192 1 2.0999999046 0.30000001192 1 + 2.2000000477 0.30000001192 1 2.2999999523 0.30000001192 1 + 2.4000000954 0.30000001192 1 2.5 0.30000001192 1 + 2.5999999046 0.30000001192 1 2.7000000477 0.30000001192 1 + 2.7999999523 0.30000001192 1 2.9000000954 0.30000001192 1 + 3 0.30000001192 1 3.0999999046 0.30000001192 1 + 3.2000000477 0.30000001192 1 3.2999999523 0.30000001192 1 + 3.4000000954 0.30000001192 1 3.5 0.30000001192 1 + 3.5999999046 0.30000001192 1 3.7000000477 0.30000001192 1 + 3.7999999523 0.30000001192 1 3.9000000954 0.30000001192 1 + 4 0.30000001192 1 4.0999999046 0.30000001192 1 + 4.1999998093 0.30000001192 1 4.3000001907 0.30000001192 1 + 4.4000000954 0.30000001192 1 4.5 0.30000001192 1 + 4.5999999046 0.30000001192 1 4.6999998093 0.30000001192 1 + 4.8000001907 0.30000001192 1 4.9000000954 0.30000001192 1 + 5 0.30000001192 1 5.0999999046 0.30000001192 1 + 5.1999998093 0.30000001192 1 5.3000001907 0.30000001192 1 + 5.4000000954 0.30000001192 1 5.5 0.30000001192 1 + 5.5999999046 0.30000001192 1 5.6999998093 0.30000001192 1 + 5.8000001907 0.30000001192 1 5.9000000954 0.30000001192 1 + 6 0.30000001192 1 6.0999999046 0.30000001192 1 + 6.1999998093 0.30000001192 1 6.3000001907 0.30000001192 1 + 6.4000000954 0.30000001192 1 6.5 0.30000001192 1 + 6.5999999046 0.30000001192 1 6.6999998093 0.30000001192 1 + 6.8000001907 0.30000001192 1 6.9000000954 0.30000001192 1 + 7 0.30000001192 1 7.0999999046 0.30000001192 1 + 7.1999998093 0.30000001192 1 7.3000001907 0.30000001192 1 + 7.4000000954 0.30000001192 1 7.5 0.30000001192 1 + 7.5999999046 0.30000001192 1 7.6999998093 0.30000001192 1 + 7.8000001907 0.30000001192 1 7.9000000954 0.30000001192 1 + 8 0.30000001192 1 8.1000003815 0.30000001192 1 + 8.1999998093 0.30000001192 1 8.3000001907 0.30000001192 1 + 8.3999996185 0.30000001192 1 8.5 0.30000001192 1 + 8.6000003815 0.30000001192 1 8.6999998093 0.30000001192 1 + 8.8000001907 0.30000001192 1 8.8999996185 0.30000001192 1 + 9 0.30000001192 1 0 0.40000000596 1 + 0.10000000149 0.40000000596 1 0.20000000298 0.40000000596 1 + 0.30000001192 0.40000000596 1 0.40000000596 0.40000000596 1 + 0.5 0.40000000596 1 0.60000002384 0.40000000596 1 + 0.69999998808 0.40000000596 1 0.80000001192 0.40000000596 1 + 0.89999997616 0.40000000596 1 1 0.40000000596 1 + 1.1000000238 0.40000000596 1 1.2000000477 0.40000000596 1 + 1.2999999523 0.40000000596 1 1.3999999762 0.40000000596 1 + 1.5 0.40000000596 1 1.6000000238 0.40000000596 1 + 1.7000000477 0.40000000596 1 1.7999999523 0.40000000596 1 + 1.8999999762 0.40000000596 1 2 0.40000000596 1 + 2.0999999046 0.40000000596 1 2.2000000477 0.40000000596 1 + 2.2999999523 0.40000000596 1 2.4000000954 0.40000000596 1 + 2.5 0.40000000596 1 2.5999999046 0.40000000596 1 + 2.7000000477 0.40000000596 1 2.7999999523 0.40000000596 1 + 2.9000000954 0.40000000596 1 3 0.40000000596 1 + 3.0999999046 0.40000000596 1 3.2000000477 0.40000000596 1 + 3.2999999523 0.40000000596 1 3.4000000954 0.40000000596 1 + 3.5 0.40000000596 1 3.5999999046 0.40000000596 1 + 3.7000000477 0.40000000596 1 3.7999999523 0.40000000596 1 + 3.9000000954 0.40000000596 1 4 0.40000000596 1 + 4.0999999046 0.40000000596 1 4.1999998093 0.40000000596 1 + 4.3000001907 0.40000000596 1 4.4000000954 0.40000000596 1 + 4.5 0.40000000596 1 4.5999999046 0.40000000596 1 + 4.6999998093 0.40000000596 1 4.8000001907 0.40000000596 1 + 4.9000000954 0.40000000596 1 5 0.40000000596 1 + 5.0999999046 0.40000000596 1 5.1999998093 0.40000000596 1 + 5.3000001907 0.40000000596 1 5.4000000954 0.40000000596 1 + 5.5 0.40000000596 1 5.5999999046 0.40000000596 1 + 5.6999998093 0.40000000596 1 5.8000001907 0.40000000596 1 + 5.9000000954 0.40000000596 1 6 0.40000000596 1 + 6.0999999046 0.40000000596 1 6.1999998093 0.40000000596 1 + 6.3000001907 0.40000000596 1 6.4000000954 0.40000000596 1 + 6.5 0.40000000596 1 6.5999999046 0.40000000596 1 + 6.6999998093 0.40000000596 1 6.8000001907 0.40000000596 1 + 6.9000000954 0.40000000596 1 7 0.40000000596 1 + 7.0999999046 0.40000000596 1 7.1999998093 0.40000000596 1 + 7.3000001907 0.40000000596 1 7.4000000954 0.40000000596 1 + 7.5 0.40000000596 1 7.5999999046 0.40000000596 1 + 7.6999998093 0.40000000596 1 7.8000001907 0.40000000596 1 + 7.9000000954 0.40000000596 1 8 0.40000000596 1 + 8.1000003815 0.40000000596 1 8.1999998093 0.40000000596 1 + 8.3000001907 0.40000000596 1 8.3999996185 0.40000000596 1 + 8.5 0.40000000596 1 8.6000003815 0.40000000596 1 + 8.6999998093 0.40000000596 1 8.8000001907 0.40000000596 1 + 8.8999996185 0.40000000596 1 9 0.40000000596 1 + 0 0.5 1 0.10000000149 0.5 1 + 0.20000000298 0.5 1 0.30000001192 0.5 1 + 0.40000000596 0.5 1 0.5 0.5 1 + 0.60000002384 0.5 1 0.69999998808 0.5 1 + 0.80000001192 0.5 1 0.89999997616 0.5 1 + 1 0.5 1 1.1000000238 0.5 1 + 1.2000000477 0.5 1 1.2999999523 0.5 1 + 1.3999999762 0.5 1 1.5 0.5 1 + 1.6000000238 0.5 1 1.7000000477 0.5 1 + 1.7999999523 0.5 1 1.8999999762 0.5 1 + 2 0.5 1 2.0999999046 0.5 1 + 2.2000000477 0.5 1 2.2999999523 0.5 1 + 2.4000000954 0.5 1 2.5 0.5 1 + 2.5999999046 0.5 1 2.7000000477 0.5 1 + 2.7999999523 0.5 1 2.9000000954 0.5 1 + 3 0.5 1 3.0999999046 0.5 1 + 3.2000000477 0.5 1 3.2999999523 0.5 1 + 3.4000000954 0.5 1 3.5 0.5 1 + 3.5999999046 0.5 1 3.7000000477 0.5 1 + 3.7999999523 0.5 1 3.9000000954 0.5 1 + 4 0.5 1 4.0999999046 0.5 1 + 4.1999998093 0.5 1 4.3000001907 0.5 1 + 4.4000000954 0.5 1 4.5 0.5 1 + 4.5999999046 0.5 1 4.6999998093 0.5 1 + 4.8000001907 0.5 1 4.9000000954 0.5 1 + 5 0.5 1 5.0999999046 0.5 1 + 5.1999998093 0.5 1 5.3000001907 0.5 1 + 5.4000000954 0.5 1 5.5 0.5 1 + 5.5999999046 0.5 1 5.6999998093 0.5 1 + 5.8000001907 0.5 1 5.9000000954 0.5 1 + 6 0.5 1 6.0999999046 0.5 1 + 6.1999998093 0.5 1 6.3000001907 0.5 1 + 6.4000000954 0.5 1 6.5 0.5 1 + 6.5999999046 0.5 1 6.6999998093 0.5 1 + 6.8000001907 0.5 1 6.9000000954 0.5 1 + 7 0.5 1 7.0999999046 0.5 1 + 7.1999998093 0.5 1 7.3000001907 0.5 1 + 7.4000000954 0.5 1 7.5 0.5 1 + 7.5999999046 0.5 1 7.6999998093 0.5 1 + 7.8000001907 0.5 1 7.9000000954 0.5 1 + 8 0.5 1 8.1000003815 0.5 1 + 8.1999998093 0.5 1 8.3000001907 0.5 1 + 8.3999996185 0.5 1 8.5 0.5 1 + 8.6000003815 0.5 1 8.6999998093 0.5 1 + 8.8000001907 0.5 1 8.8999996185 0.5 1 + 9 0.5 1 0 0.60000002384 1 + 0.10000000149 0.60000002384 1 0.20000000298 0.60000002384 1 + 0.30000001192 0.60000002384 1 0.40000000596 0.60000002384 1 + 0.5 0.60000002384 1 0.60000002384 0.60000002384 1 + 0.69999998808 0.60000002384 1 0.80000001192 0.60000002384 1 + 0.89999997616 0.60000002384 1 1 0.60000002384 1 + 1.1000000238 0.60000002384 1 1.2000000477 0.60000002384 1 + 1.2999999523 0.60000002384 1 1.3999999762 0.60000002384 1 + 1.5 0.60000002384 1 1.6000000238 0.60000002384 1 + 1.7000000477 0.60000002384 1 1.7999999523 0.60000002384 1 + 1.8999999762 0.60000002384 1 2 0.60000002384 1 + 2.0999999046 0.60000002384 1 2.2000000477 0.60000002384 1 + 2.2999999523 0.60000002384 1 2.4000000954 0.60000002384 1 + 2.5 0.60000002384 1 2.5999999046 0.60000002384 1 + 2.7000000477 0.60000002384 1 2.7999999523 0.60000002384 1 + 2.9000000954 0.60000002384 1 3 0.60000002384 1 + 3.0999999046 0.60000002384 1 3.2000000477 0.60000002384 1 + 3.2999999523 0.60000002384 1 3.4000000954 0.60000002384 1 + 3.5 0.60000002384 1 3.5999999046 0.60000002384 1 + 3.7000000477 0.60000002384 1 3.7999999523 0.60000002384 1 + 3.9000000954 0.60000002384 1 4 0.60000002384 1 + 4.0999999046 0.60000002384 1 4.1999998093 0.60000002384 1 + 4.3000001907 0.60000002384 1 4.4000000954 0.60000002384 1 + 4.5 0.60000002384 1 4.5999999046 0.60000002384 1 + 4.6999998093 0.60000002384 1 4.8000001907 0.60000002384 1 + 4.9000000954 0.60000002384 1 5 0.60000002384 1 + 5.0999999046 0.60000002384 1 5.1999998093 0.60000002384 1 + 5.3000001907 0.60000002384 1 5.4000000954 0.60000002384 1 + 5.5 0.60000002384 1 5.5999999046 0.60000002384 1 + 5.6999998093 0.60000002384 1 5.8000001907 0.60000002384 1 + 5.9000000954 0.60000002384 1 6 0.60000002384 1 + 6.0999999046 0.60000002384 1 6.1999998093 0.60000002384 1 + 6.3000001907 0.60000002384 1 6.4000000954 0.60000002384 1 + 6.5 0.60000002384 1 6.5999999046 0.60000002384 1 + 6.6999998093 0.60000002384 1 6.8000001907 0.60000002384 1 + 6.9000000954 0.60000002384 1 7 0.60000002384 1 + 7.0999999046 0.60000002384 1 7.1999998093 0.60000002384 1 + 7.3000001907 0.60000002384 1 7.4000000954 0.60000002384 1 + 7.5 0.60000002384 1 7.5999999046 0.60000002384 1 + 7.6999998093 0.60000002384 1 7.8000001907 0.60000002384 1 + 7.9000000954 0.60000002384 1 8 0.60000002384 1 + 8.1000003815 0.60000002384 1 8.1999998093 0.60000002384 1 + 8.3000001907 0.60000002384 1 8.3999996185 0.60000002384 1 + 8.5 0.60000002384 1 8.6000003815 0.60000002384 1 + 8.6999998093 0.60000002384 1 8.8000001907 0.60000002384 1 + 8.8999996185 0.60000002384 1 9 0.60000002384 1 + 0 0.69999998808 1 0.10000000149 0.69999998808 1 + 0.20000000298 0.69999998808 1 0.30000001192 0.69999998808 1 + 0.40000000596 0.69999998808 1 0.5 0.69999998808 1 + 0.60000002384 0.69999998808 1 0.69999998808 0.69999998808 1 + 0.80000001192 0.69999998808 1 0.89999997616 0.69999998808 1 + 1 0.69999998808 1 1.1000000238 0.69999998808 1 + 1.2000000477 0.69999998808 1 1.2999999523 0.69999998808 1 + 1.3999999762 0.69999998808 1 1.5 0.69999998808 1 + 1.6000000238 0.69999998808 1 1.7000000477 0.69999998808 1 + 1.7999999523 0.69999998808 1 1.8999999762 0.69999998808 1 + 2 0.69999998808 1 2.0999999046 0.69999998808 1 + 2.2000000477 0.69999998808 1 2.2999999523 0.69999998808 1 + 2.4000000954 0.69999998808 1 2.5 0.69999998808 1 + 2.5999999046 0.69999998808 1 2.7000000477 0.69999998808 1 + 2.7999999523 0.69999998808 1 2.9000000954 0.69999998808 1 + 3 0.69999998808 1 3.0999999046 0.69999998808 1 + 3.2000000477 0.69999998808 1 3.2999999523 0.69999998808 1 + 3.4000000954 0.69999998808 1 3.5 0.69999998808 1 + 3.5999999046 0.69999998808 1 3.7000000477 0.69999998808 1 + 3.7999999523 0.69999998808 1 3.9000000954 0.69999998808 1 + 4 0.69999998808 1 4.0999999046 0.69999998808 1 + 4.1999998093 0.69999998808 1 4.3000001907 0.69999998808 1 + 4.4000000954 0.69999998808 1 4.5 0.69999998808 1 + 4.5999999046 0.69999998808 1 4.6999998093 0.69999998808 1 + 4.8000001907 0.69999998808 1 4.9000000954 0.69999998808 1 + 5 0.69999998808 1 5.0999999046 0.69999998808 1 + 5.1999998093 0.69999998808 1 5.3000001907 0.69999998808 1 + 5.4000000954 0.69999998808 1 5.5 0.69999998808 1 + 5.5999999046 0.69999998808 1 5.6999998093 0.69999998808 1 + 5.8000001907 0.69999998808 1 5.9000000954 0.69999998808 1 + 6 0.69999998808 1 6.0999999046 0.69999998808 1 + 6.1999998093 0.69999998808 1 6.3000001907 0.69999998808 1 + 6.4000000954 0.69999998808 1 6.5 0.69999998808 1 + 6.5999999046 0.69999998808 1 6.6999998093 0.69999998808 1 + 6.8000001907 0.69999998808 1 6.9000000954 0.69999998808 1 + 7 0.69999998808 1 7.0999999046 0.69999998808 1 + 7.1999998093 0.69999998808 1 7.3000001907 0.69999998808 1 + 7.4000000954 0.69999998808 1 7.5 0.69999998808 1 + 7.5999999046 0.69999998808 1 7.6999998093 0.69999998808 1 + 7.8000001907 0.69999998808 1 7.9000000954 0.69999998808 1 + 8 0.69999998808 1 8.1000003815 0.69999998808 1 + 8.1999998093 0.69999998808 1 8.3000001907 0.69999998808 1 + 8.3999996185 0.69999998808 1 8.5 0.69999998808 1 + 8.6000003815 0.69999998808 1 8.6999998093 0.69999998808 1 + 8.8000001907 0.69999998808 1 8.8999996185 0.69999998808 1 + 9 0.69999998808 1 0 0.80000001192 1 + 0.10000000149 0.80000001192 1 0.20000000298 0.80000001192 1 + 0.30000001192 0.80000001192 1 0.40000000596 0.80000001192 1 + 0.5 0.80000001192 1 0.60000002384 0.80000001192 1 + 0.69999998808 0.80000001192 1 0.80000001192 0.80000001192 1 + 0.89999997616 0.80000001192 1 1 0.80000001192 1 + 1.1000000238 0.80000001192 1 1.2000000477 0.80000001192 1 + 1.2999999523 0.80000001192 1 1.3999999762 0.80000001192 1 + 1.5 0.80000001192 1 1.6000000238 0.80000001192 1 + 1.7000000477 0.80000001192 1 1.7999999523 0.80000001192 1 + 1.8999999762 0.80000001192 1 2 0.80000001192 1 + 2.0999999046 0.80000001192 1 2.2000000477 0.80000001192 1 + 2.2999999523 0.80000001192 1 2.4000000954 0.80000001192 1 + 2.5 0.80000001192 1 2.5999999046 0.80000001192 1 + 2.7000000477 0.80000001192 1 2.7999999523 0.80000001192 1 + 2.9000000954 0.80000001192 1 3 0.80000001192 1 + 3.0999999046 0.80000001192 1 3.2000000477 0.80000001192 1 + 3.2999999523 0.80000001192 1 3.4000000954 0.80000001192 1 + 3.5 0.80000001192 1 3.5999999046 0.80000001192 1 + 3.7000000477 0.80000001192 1 3.7999999523 0.80000001192 1 + 3.9000000954 0.80000001192 1 4 0.80000001192 1 + 4.0999999046 0.80000001192 1 4.1999998093 0.80000001192 1 + 4.3000001907 0.80000001192 1 4.4000000954 0.80000001192 1 + 4.5 0.80000001192 1 4.5999999046 0.80000001192 1 + 4.6999998093 0.80000001192 1 4.8000001907 0.80000001192 1 + 4.9000000954 0.80000001192 1 5 0.80000001192 1 + 5.0999999046 0.80000001192 1 5.1999998093 0.80000001192 1 + 5.3000001907 0.80000001192 1 5.4000000954 0.80000001192 1 + 5.5 0.80000001192 1 5.5999999046 0.80000001192 1 + 5.6999998093 0.80000001192 1 5.8000001907 0.80000001192 1 + 5.9000000954 0.80000001192 1 6 0.80000001192 1 + 6.0999999046 0.80000001192 1 6.1999998093 0.80000001192 1 + 6.3000001907 0.80000001192 1 6.4000000954 0.80000001192 1 + 6.5 0.80000001192 1 6.5999999046 0.80000001192 1 + 6.6999998093 0.80000001192 1 6.8000001907 0.80000001192 1 + 6.9000000954 0.80000001192 1 7 0.80000001192 1 + 7.0999999046 0.80000001192 1 7.1999998093 0.80000001192 1 + 7.3000001907 0.80000001192 1 7.4000000954 0.80000001192 1 + 7.5 0.80000001192 1 7.5999999046 0.80000001192 1 + 7.6999998093 0.80000001192 1 7.8000001907 0.80000001192 1 + 7.9000000954 0.80000001192 1 8 0.80000001192 1 + 8.1000003815 0.80000001192 1 8.1999998093 0.80000001192 1 + 8.3000001907 0.80000001192 1 8.3999996185 0.80000001192 1 + 8.5 0.80000001192 1 8.6000003815 0.80000001192 1 + 8.6999998093 0.80000001192 1 8.8000001907 0.80000001192 1 + 8.8999996185 0.80000001192 1 9 0.80000001192 1 + 0 0.89999997616 1 0.10000000149 0.89999997616 1 + 0.20000000298 0.89999997616 1 0.30000001192 0.89999997616 1 + 0.40000000596 0.89999997616 1 0.5 0.89999997616 1 + 0.60000002384 0.89999997616 1 0.69999998808 0.89999997616 1 + 0.80000001192 0.89999997616 1 0.89999997616 0.89999997616 1 + 1 0.89999997616 1 1.1000000238 0.89999997616 1 + 1.2000000477 0.89999997616 1 1.2999999523 0.89999997616 1 + 1.3999999762 0.89999997616 1 1.5 0.89999997616 1 + 1.6000000238 0.89999997616 1 1.7000000477 0.89999997616 1 + 1.7999999523 0.89999997616 1 1.8999999762 0.89999997616 1 + 2 0.89999997616 1 2.0999999046 0.89999997616 1 + 2.2000000477 0.89999997616 1 2.2999999523 0.89999997616 1 + 2.4000000954 0.89999997616 1 2.5 0.89999997616 1 + 2.5999999046 0.89999997616 1 2.7000000477 0.89999997616 1 + 2.7999999523 0.89999997616 1 2.9000000954 0.89999997616 1 + 3 0.89999997616 1 3.0999999046 0.89999997616 1 + 3.2000000477 0.89999997616 1 3.2999999523 0.89999997616 1 + 3.4000000954 0.89999997616 1 3.5 0.89999997616 1 + 3.5999999046 0.89999997616 1 3.7000000477 0.89999997616 1 + 3.7999999523 0.89999997616 1 3.9000000954 0.89999997616 1 + 4 0.89999997616 1 4.0999999046 0.89999997616 1 + 4.1999998093 0.89999997616 1 4.3000001907 0.89999997616 1 + 4.4000000954 0.89999997616 1 4.5 0.89999997616 1 + 4.5999999046 0.89999997616 1 4.6999998093 0.89999997616 1 + 4.8000001907 0.89999997616 1 4.9000000954 0.89999997616 1 + 5 0.89999997616 1 5.0999999046 0.89999997616 1 + 5.1999998093 0.89999997616 1 5.3000001907 0.89999997616 1 + 5.4000000954 0.89999997616 1 5.5 0.89999997616 1 + 5.5999999046 0.89999997616 1 5.6999998093 0.89999997616 1 + 5.8000001907 0.89999997616 1 5.9000000954 0.89999997616 1 + 6 0.89999997616 1 6.0999999046 0.89999997616 1 + 6.1999998093 0.89999997616 1 6.3000001907 0.89999997616 1 + 6.4000000954 0.89999997616 1 6.5 0.89999997616 1 + 6.5999999046 0.89999997616 1 6.6999998093 0.89999997616 1 + 6.8000001907 0.89999997616 1 6.9000000954 0.89999997616 1 + 7 0.89999997616 1 7.0999999046 0.89999997616 1 + 7.1999998093 0.89999997616 1 7.3000001907 0.89999997616 1 + 7.4000000954 0.89999997616 1 7.5 0.89999997616 1 + 7.5999999046 0.89999997616 1 7.6999998093 0.89999997616 1 + 7.8000001907 0.89999997616 1 7.9000000954 0.89999997616 1 + 8 0.89999997616 1 8.1000003815 0.89999997616 1 + 8.1999998093 0.89999997616 1 8.3000001907 0.89999997616 1 + 8.3999996185 0.89999997616 1 8.5 0.89999997616 1 + 8.6000003815 0.89999997616 1 8.6999998093 0.89999997616 1 + 8.8000001907 0.89999997616 1 8.8999996185 0.89999997616 1 + 9 0.89999997616 1 0 1 1 + 0.10000000149 1 1 0.20000000298 1 1 + 0.30000001192 1 1 0.40000000596 1 1 + 0.5 1 1 0.60000002384 1 1 + 0.69999998808 1 1 0.80000001192 1 1 + 0.89999997616 1 1 1 1 1 + 1.1000000238 1 1 1.2000000477 1 1 + 1.2999999523 1 1 1.3999999762 1 1 + 1.5 1 1 1.6000000238 1 1 + 1.7000000477 1 1 1.7999999523 1 1 + 1.8999999762 1 1 2 1 1 + 2.0999999046 1 1 2.2000000477 1 1 + 2.2999999523 1 1 2.4000000954 1 1 + 2.5 1 1 2.5999999046 1 1 + 2.7000000477 1 1 2.7999999523 1 1 + 2.9000000954 1 1 3 1 1 + 3.0999999046 1 1 3.2000000477 1 1 + 3.2999999523 1 1 3.4000000954 1 1 + 3.5 1 1 3.5999999046 1 1 + 3.7000000477 1 1 3.7999999523 1 1 + 3.9000000954 1 1 4 1 1 + 4.0999999046 1 1 4.1999998093 1 1 + 4.3000001907 1 1 4.4000000954 1 1 + 4.5 1 1 4.5999999046 1 1 + 4.6999998093 1 1 4.8000001907 1 1 + 4.9000000954 1 1 5 1 1 + 5.0999999046 1 1 5.1999998093 1 1 + 5.3000001907 1 1 5.4000000954 1 1 + 5.5 1 1 5.5999999046 1 1 + 5.6999998093 1 1 5.8000001907 1 1 + 5.9000000954 1 1 6 1 1 + 6.0999999046 1 1 6.1999998093 1 1 + 6.3000001907 1 1 6.4000000954 1 1 + 6.5 1 1 6.5999999046 1 1 + 6.6999998093 1 1 6.8000001907 1 1 + 6.9000000954 1 1 7 1 1 + 7.0999999046 1 1 7.1999998093 1 1 + 7.3000001907 1 1 7.4000000954 1 1 + 7.5 1 1 7.5999999046 1 1 + 7.6999998093 1 1 7.8000001907 1 1 + 7.9000000954 1 1 8 1 1 + 8.1000003815 1 1 8.1999998093 1 1 + 8.3000001907 1 1 8.3999996185 1 1 + 8.5 1 1 8.6000003815 1 1 + 8.6999998093 1 1 8.8000001907 1 1 + 8.8999996185 1 1 9 1 1 + + + + + + + + + + + + + + + + + + + + + + + 0 91 92 1 91 182 + 183 92 182 273 274 183 + 273 364 365 274 364 455 + 456 365 455 546 547 456 + 546 637 638 547 637 728 + 729 638 728 819 820 729 + 819 910 911 820 1 92 + 93 2 92 183 184 93 + 183 274 275 184 274 365 + 366 275 365 456 457 366 + 456 547 548 457 547 638 + 639 548 638 729 730 639 + 729 820 821 730 820 911 + 912 821 2 93 94 3 + 93 184 185 94 184 275 + 276 185 275 366 367 276 + 366 457 458 367 457 548 + 549 458 548 639 640 549 + 639 730 731 640 730 821 + 822 731 821 912 913 822 + 3 94 95 4 94 185 + 186 95 185 276 277 186 + 276 367 368 277 367 458 + 459 368 458 549 550 459 + 549 640 641 550 640 731 + 732 641 731 822 823 732 + 822 913 914 823 4 95 + 96 5 95 186 187 96 + 186 277 278 187 277 368 + 369 278 368 459 460 369 + 459 550 551 460 550 641 + 642 551 641 732 733 642 + 732 823 824 733 823 914 + 915 824 5 96 97 6 + 96 187 188 97 187 278 + 279 188 278 369 370 279 + 369 460 461 370 460 551 + 552 461 551 642 643 552 + 642 733 734 643 733 824 + 825 734 824 915 916 825 + 6 97 98 7 97 188 + 189 98 188 279 280 189 + 279 370 371 280 370 461 + 462 371 461 552 553 462 + 552 643 644 553 643 734 + 735 644 734 825 826 735 + 825 916 917 826 7 98 + 99 8 98 189 190 99 + 189 280 281 190 280 371 + 372 281 371 462 463 372 + 462 553 554 463 553 644 + 645 554 644 735 736 645 + 735 826 827 736 826 917 + 918 827 8 99 100 9 + 99 190 191 100 190 281 + 282 191 281 372 373 282 + 372 463 464 373 463 554 + 555 464 554 645 646 555 + 645 736 737 646 736 827 + 828 737 827 918 919 828 + 9 100 101 10 100 191 + 192 101 191 282 283 192 + 282 373 374 283 373 464 + 465 374 464 555 556 465 + 555 646 647 556 646 737 + 738 647 737 828 829 738 + 828 919 920 829 10 101 + 102 11 101 192 193 102 + 192 283 284 193 283 374 + 375 284 374 465 466 375 + 465 556 557 466 556 647 + 648 557 647 738 739 648 + 738 829 830 739 829 920 + 921 830 11 102 103 12 + 102 193 194 103 193 284 + 285 194 284 375 376 285 + 375 466 467 376 466 557 + 558 467 557 648 649 558 + 648 739 740 649 739 830 + 831 740 830 921 922 831 + 12 103 104 13 103 194 + 195 104 194 285 286 195 + 285 376 377 286 376 467 + 468 377 467 558 559 468 + 558 649 650 559 649 740 + 741 650 740 831 832 741 + 831 922 923 832 13 104 + 105 14 104 195 196 105 + 195 286 287 196 286 377 + 378 287 377 468 469 378 + 468 559 560 469 559 650 + 651 560 650 741 742 651 + 741 832 833 742 832 923 + 924 833 14 105 106 15 + 105 196 197 106 196 287 + 288 197 287 378 379 288 + 378 469 470 379 469 560 + 561 470 560 651 652 561 + 651 742 743 652 742 833 + 834 743 833 924 925 834 + 15 106 107 16 106 197 + 198 107 197 288 289 198 + 288 379 380 289 379 470 + 471 380 470 561 562 471 + 561 652 653 562 652 743 + 744 653 743 834 835 744 + 834 925 926 835 16 107 + 108 17 107 198 199 108 + 198 289 290 199 289 380 + 381 290 380 471 472 381 + 471 562 563 472 562 653 + 654 563 653 744 745 654 + 744 835 836 745 835 926 + 927 836 17 108 109 18 + 108 199 200 109 199 290 + 291 200 290 381 382 291 + 381 472 473 382 472 563 + 564 473 563 654 655 564 + 654 745 746 655 745 836 + 837 746 836 927 928 837 + 18 109 110 19 109 200 + 201 110 200 291 292 201 + 291 382 383 292 382 473 + 474 383 473 564 565 474 + 564 655 656 565 655 746 + 747 656 746 837 838 747 + 837 928 929 838 19 110 + 111 20 110 201 202 111 + 201 292 293 202 292 383 + 384 293 383 474 475 384 + 474 565 566 475 565 656 + 657 566 656 747 748 657 + 747 838 839 748 838 929 + 930 839 20 111 112 21 + 111 202 203 112 202 293 + 294 203 293 384 385 294 + 384 475 476 385 475 566 + 567 476 566 657 658 567 + 657 748 749 658 748 839 + 840 749 839 930 931 840 + 21 112 113 22 112 203 + 204 113 203 294 295 204 + 294 385 386 295 385 476 + 477 386 476 567 568 477 + 567 658 659 568 658 749 + 750 659 749 840 841 750 + 840 931 932 841 22 113 + 114 23 113 204 205 114 + 204 295 296 205 295 386 + 387 296 386 477 478 387 + 477 568 569 478 568 659 + 660 569 659 750 751 660 + 750 841 842 751 841 932 + 933 842 23 114 115 24 + 114 205 206 115 205 296 + 297 206 296 387 388 297 + 387 478 479 388 478 569 + 570 479 569 660 661 570 + 660 751 752 661 751 842 + 843 752 842 933 934 843 + 24 115 116 25 115 206 + 207 116 206 297 298 207 + 297 388 389 298 388 479 + 480 389 479 570 571 480 + 570 661 662 571 661 752 + 753 662 752 843 844 753 + 843 934 935 844 25 116 + 117 26 116 207 208 117 + 207 298 299 208 298 389 + 390 299 389 480 481 390 + 480 571 572 481 571 662 + 663 572 662 753 754 663 + 753 844 845 754 844 935 + 936 845 26 117 118 27 + 117 208 209 118 208 299 + 300 209 299 390 391 300 + 390 481 482 391 481 572 + 573 482 572 663 664 573 + 663 754 755 664 754 845 + 846 755 845 936 937 846 + 27 118 119 28 118 209 + 210 119 209 300 301 210 + 300 391 392 301 391 482 + 483 392 482 573 574 483 + 573 664 665 574 664 755 + 756 665 755 846 847 756 + 846 937 938 847 28 119 + 120 29 119 210 211 120 + 210 301 302 211 301 392 + 393 302 392 483 484 393 + 483 574 575 484 574 665 + 666 575 665 756 757 666 + 756 847 848 757 847 938 + 939 848 29 120 121 30 + 120 211 212 121 211 302 + 303 212 302 393 394 303 + 393 484 485 394 484 575 + 576 485 575 666 667 576 + 666 757 758 667 757 848 + 849 758 848 939 940 849 + 30 121 122 31 121 212 + 213 122 212 303 304 213 + 303 394 395 304 394 485 + 486 395 485 576 577 486 + 576 667 668 577 667 758 + 759 668 758 849 850 759 + 849 940 941 850 31 122 + 123 32 122 213 214 123 + 213 304 305 214 304 395 + 396 305 395 486 487 396 + 486 577 578 487 577 668 + 669 578 668 759 760 669 + 759 850 851 760 850 941 + 942 851 32 123 124 33 + 123 214 215 124 214 305 + 306 215 305 396 397 306 + 396 487 488 397 487 578 + 579 488 578 669 670 579 + 669 760 761 670 760 851 + 852 761 851 942 943 852 + 33 124 125 34 124 215 + 216 125 215 306 307 216 + 306 397 398 307 397 488 + 489 398 488 579 580 489 + 579 670 671 580 670 761 + 762 671 761 852 853 762 + 852 943 944 853 34 125 + 126 35 125 216 217 126 + 216 307 308 217 307 398 + 399 308 398 489 490 399 + 489 580 581 490 580 671 + 672 581 671 762 763 672 + 762 853 854 763 853 944 + 945 854 35 126 127 36 + 126 217 218 127 217 308 + 309 218 308 399 400 309 + 399 490 491 400 490 581 + 582 491 581 672 673 582 + 672 763 764 673 763 854 + 855 764 854 945 946 855 + 36 127 128 37 127 218 + 219 128 218 309 310 219 + 309 400 401 310 400 491 + 492 401 491 582 583 492 + 582 673 674 583 673 764 + 765 674 764 855 856 765 + 855 946 947 856 37 128 + 129 38 128 219 220 129 + 219 310 311 220 310 401 + 402 311 401 492 493 402 + 492 583 584 493 583 674 + 675 584 674 765 766 675 + 765 856 857 766 856 947 + 948 857 38 129 130 39 + 129 220 221 130 220 311 + 312 221 311 402 403 312 + 402 493 494 403 493 584 + 585 494 584 675 676 585 + 675 766 767 676 766 857 + 858 767 857 948 949 858 + 39 130 131 40 130 221 + 222 131 221 312 313 222 + 312 403 404 313 403 494 + 495 404 494 585 586 495 + 585 676 677 586 676 767 + 768 677 767 858 859 768 + 858 949 950 859 40 131 + 132 41 131 222 223 132 + 222 313 314 223 313 404 + 405 314 404 495 496 405 + 495 586 587 496 586 677 + 678 587 677 768 769 678 + 768 859 860 769 859 950 + 951 860 41 132 133 42 + 132 223 224 133 223 314 + 315 224 314 405 406 315 + 405 496 497 406 496 587 + 588 497 587 678 679 588 + 678 769 770 679 769 860 + 861 770 860 951 952 861 + 42 133 134 43 133 224 + 225 134 224 315 316 225 + 315 406 407 316 406 497 + 498 407 497 588 589 498 + 588 679 680 589 679 770 + 771 680 770 861 862 771 + 861 952 953 862 43 134 + 135 44 134 225 226 135 + 225 316 317 226 316 407 + 408 317 407 498 499 408 + 498 589 590 499 589 680 + 681 590 680 771 772 681 + 771 862 863 772 862 953 + 954 863 44 135 136 45 + 135 226 227 136 226 317 + 318 227 317 408 409 318 + 408 499 500 409 499 590 + 591 500 590 681 682 591 + 681 772 773 682 772 863 + 864 773 863 954 955 864 + 45 136 137 46 136 227 + 228 137 227 318 319 228 + 318 409 410 319 409 500 + 501 410 500 591 592 501 + 591 682 683 592 682 773 + 774 683 773 864 865 774 + 864 955 956 865 46 137 + 138 47 137 228 229 138 + 228 319 320 229 319 410 + 411 320 410 501 502 411 + 501 592 593 502 592 683 + 684 593 683 774 775 684 + 774 865 866 775 865 956 + 957 866 47 138 139 48 + 138 229 230 139 229 320 + 321 230 320 411 412 321 + 411 502 503 412 502 593 + 594 503 593 684 685 594 + 684 775 776 685 775 866 + 867 776 866 957 958 867 + 48 139 140 49 139 230 + 231 140 230 321 322 231 + 321 412 413 322 412 503 + 504 413 503 594 595 504 + 594 685 686 595 685 776 + 777 686 776 867 868 777 + 867 958 959 868 49 140 + 141 50 140 231 232 141 + 231 322 323 232 322 413 + 414 323 413 504 505 414 + 504 595 596 505 595 686 + 687 596 686 777 778 687 + 777 868 869 778 868 959 + 960 869 50 141 142 51 + 141 232 233 142 232 323 + 324 233 323 414 415 324 + 414 505 506 415 505 596 + 597 506 596 687 688 597 + 687 778 779 688 778 869 + 870 779 869 960 961 870 + 51 142 143 52 142 233 + 234 143 233 324 325 234 + 324 415 416 325 415 506 + 507 416 506 597 598 507 + 597 688 689 598 688 779 + 780 689 779 870 871 780 + 870 961 962 871 52 143 + 144 53 143 234 235 144 + 234 325 326 235 325 416 + 417 326 416 507 508 417 + 507 598 599 508 598 689 + 690 599 689 780 781 690 + 780 871 872 781 871 962 + 963 872 53 144 145 54 + 144 235 236 145 235 326 + 327 236 326 417 418 327 + 417 508 509 418 508 599 + 600 509 599 690 691 600 + 690 781 782 691 781 872 + 873 782 872 963 964 873 + 54 145 146 55 145 236 + 237 146 236 327 328 237 + 327 418 419 328 418 509 + 510 419 509 600 601 510 + 600 691 692 601 691 782 + 783 692 782 873 874 783 + 873 964 965 874 55 146 + 147 56 146 237 238 147 + 237 328 329 238 328 419 + 420 329 419 510 511 420 + 510 601 602 511 601 692 + 693 602 692 783 784 693 + 783 874 875 784 874 965 + 966 875 56 147 148 57 + 147 238 239 148 238 329 + 330 239 329 420 421 330 + 420 511 512 421 511 602 + 603 512 602 693 694 603 + 693 784 785 694 784 875 + 876 785 875 966 967 876 + 57 148 149 58 148 239 + 240 149 239 330 331 240 + 330 421 422 331 421 512 + 513 422 512 603 604 513 + 603 694 695 604 694 785 + 786 695 785 876 877 786 + 876 967 968 877 58 149 + 150 59 149 240 241 150 + 240 331 332 241 331 422 + 423 332 422 513 514 423 + 513 604 605 514 604 695 + 696 605 695 786 787 696 + 786 877 878 787 877 968 + 969 878 59 150 151 60 + 150 241 242 151 241 332 + 333 242 332 423 424 333 + 423 514 515 424 514 605 + 606 515 605 696 697 606 + 696 787 788 697 787 878 + 879 788 878 969 970 879 + 60 151 152 61 151 242 + 243 152 242 333 334 243 + 333 424 425 334 424 515 + 516 425 515 606 607 516 + 606 697 698 607 697 788 + 789 698 788 879 880 789 + 879 970 971 880 61 152 + 153 62 152 243 244 153 + 243 334 335 244 334 425 + 426 335 425 516 517 426 + 516 607 608 517 607 698 + 699 608 698 789 790 699 + 789 880 881 790 880 971 + 972 881 62 153 154 63 + 153 244 245 154 244 335 + 336 245 335 426 427 336 + 426 517 518 427 517 608 + 609 518 608 699 700 609 + 699 790 791 700 790 881 + 882 791 881 972 973 882 + 63 154 155 64 154 245 + 246 155 245 336 337 246 + 336 427 428 337 427 518 + 519 428 518 609 610 519 + 609 700 701 610 700 791 + 792 701 791 882 883 792 + 882 973 974 883 64 155 + 156 65 155 246 247 156 + 246 337 338 247 337 428 + 429 338 428 519 520 429 + 519 610 611 520 610 701 + 702 611 701 792 793 702 + 792 883 884 793 883 974 + 975 884 65 156 157 66 + 156 247 248 157 247 338 + 339 248 338 429 430 339 + 429 520 521 430 520 611 + 612 521 611 702 703 612 + 702 793 794 703 793 884 + 885 794 884 975 976 885 + 66 157 158 67 157 248 + 249 158 248 339 340 249 + 339 430 431 340 430 521 + 522 431 521 612 613 522 + 612 703 704 613 703 794 + 795 704 794 885 886 795 + 885 976 977 886 67 158 + 159 68 158 249 250 159 + 249 340 341 250 340 431 + 432 341 431 522 523 432 + 522 613 614 523 613 704 + 705 614 704 795 796 705 + 795 886 887 796 886 977 + 978 887 68 159 160 69 + 159 250 251 160 250 341 + 342 251 341 432 433 342 + 432 523 524 433 523 614 + 615 524 614 705 706 615 + 705 796 797 706 796 887 + 888 797 887 978 979 888 + 69 160 161 70 160 251 + 252 161 251 342 343 252 + 342 433 434 343 433 524 + 525 434 524 615 616 525 + 615 706 707 616 706 797 + 798 707 797 888 889 798 + 888 979 980 889 70 161 + 162 71 161 252 253 162 + 252 343 344 253 343 434 + 435 344 434 525 526 435 + 525 616 617 526 616 707 + 708 617 707 798 799 708 + 798 889 890 799 889 980 + 981 890 71 162 163 72 + 162 253 254 163 253 344 + 345 254 344 435 436 345 + 435 526 527 436 526 617 + 618 527 617 708 709 618 + 708 799 800 709 799 890 + 891 800 890 981 982 891 + 72 163 164 73 163 254 + 255 164 254 345 346 255 + 345 436 437 346 436 527 + 528 437 527 618 619 528 + 618 709 710 619 709 800 + 801 710 800 891 892 801 + 891 982 983 892 73 164 + 165 74 164 255 256 165 + 255 346 347 256 346 437 + 438 347 437 528 529 438 + 528 619 620 529 619 710 + 711 620 710 801 802 711 + 801 892 893 802 892 983 + 984 893 74 165 166 75 + 165 256 257 166 256 347 + 348 257 347 438 439 348 + 438 529 530 439 529 620 + 621 530 620 711 712 621 + 711 802 803 712 802 893 + 894 803 893 984 985 894 + 75 166 167 76 166 257 + 258 167 257 348 349 258 + 348 439 440 349 439 530 + 531 440 530 621 622 531 + 621 712 713 622 712 803 + 804 713 803 894 895 804 + 894 985 986 895 76 167 + 168 77 167 258 259 168 + 258 349 350 259 349 440 + 441 350 440 531 532 441 + 531 622 623 532 622 713 + 714 623 713 804 805 714 + 804 895 896 805 895 986 + 987 896 77 168 169 78 + 168 259 260 169 259 350 + 351 260 350 441 442 351 + 441 532 533 442 532 623 + 624 533 623 714 715 624 + 714 805 806 715 805 896 + 897 806 896 987 988 897 + 78 169 170 79 169 260 + 261 170 260 351 352 261 + 351 442 443 352 442 533 + 534 443 533 624 625 534 + 624 715 716 625 715 806 + 807 716 806 897 898 807 + 897 988 989 898 79 170 + 171 80 170 261 262 171 + 261 352 353 262 352 443 + 444 353 443 534 535 444 + 534 625 626 535 625 716 + 717 626 716 807 808 717 + 807 898 899 808 898 989 + 990 899 80 171 172 81 + 171 262 263 172 262 353 + 354 263 353 444 445 354 + 444 535 536 445 535 626 + 627 536 626 717 718 627 + 717 808 809 718 808 899 + 900 809 899 990 991 900 + 81 172 173 82 172 263 + 264 173 263 354 355 264 + 354 445 446 355 445 536 + 537 446 536 627 628 537 + 627 718 719 628 718 809 + 810 719 809 900 901 810 + 900 991 992 901 82 173 + 174 83 173 264 265 174 + 264 355 356 265 355 446 + 447 356 446 537 538 447 + 537 628 629 538 628 719 + 720 629 719 810 811 720 + 810 901 902 811 901 992 + 993 902 83 174 175 84 + 174 265 266 175 265 356 + 357 266 356 447 448 357 + 447 538 539 448 538 629 + 630 539 629 720 721 630 + 720 811 812 721 811 902 + 903 812 902 993 994 903 + 84 175 176 85 175 266 + 267 176 266 357 358 267 + 357 448 449 358 448 539 + 540 449 539 630 631 540 + 630 721 722 631 721 812 + 813 722 812 903 904 813 + 903 994 995 904 85 176 + 177 86 176 267 268 177 + 267 358 359 268 358 449 + 450 359 449 540 541 450 + 540 631 632 541 631 722 + 723 632 722 813 814 723 + 813 904 905 814 904 995 + 996 905 86 177 178 87 + 177 268 269 178 268 359 + 360 269 359 450 451 360 + 450 541 542 451 541 632 + 633 542 632 723 724 633 + 723 814 815 724 814 905 + 906 815 905 996 997 906 + 87 178 179 88 178 269 + 270 179 269 360 361 270 + 360 451 452 361 451 542 + 543 452 542 633 634 543 + 633 724 725 634 724 815 + 816 725 815 906 907 816 + 906 997 998 907 88 179 + 180 89 179 270 271 180 + 270 361 362 271 361 452 + 453 362 452 543 544 453 + 543 634 635 544 634 725 + 726 635 725 816 817 726 + 816 907 908 817 907 998 + 999 908 89 180 181 90 + 180 271 272 181 271 362 + 363 272 362 453 454 363 + 453 544 545 454 544 635 + 636 545 635 726 727 636 + 726 817 818 727 817 908 + 909 818 908 999 1000 909 + 1001 1002 1093 1092 1092 1093 + 1184 1183 1183 1184 1275 1274 + 1274 1275 1366 1365 1365 1366 + 1457 1456 1456 1457 1548 1547 + 1547 1548 1639 1638 1638 1639 + 1730 1729 1729 1730 1821 1820 + 1820 1821 1912 1911 1002 1003 + 1094 1093 1093 1094 1185 1184 + 1184 1185 1276 1275 1275 1276 + 1367 1366 1366 1367 1458 1457 + 1457 1458 1549 1548 1548 1549 + 1640 1639 1639 1640 1731 1730 + 1730 1731 1822 1821 1821 1822 + 1913 1912 1003 1004 1095 1094 + 1094 1095 1186 1185 1185 1186 + 1277 1276 1276 1277 1368 1367 + 1367 1368 1459 1458 1458 1459 + 1550 1549 1549 1550 1641 1640 + 1640 1641 1732 1731 1731 1732 + 1823 1822 1822 1823 1914 1913 + 1004 1005 1096 1095 1095 1096 + 1187 1186 1186 1187 1278 1277 + 1277 1278 1369 1368 1368 1369 + 1460 1459 1459 1460 1551 1550 + 1550 1551 1642 1641 1641 1642 + 1733 1732 1732 1733 1824 1823 + 1823 1824 1915 1914 1005 1006 + 1097 1096 1096 1097 1188 1187 + 1187 1188 1279 1278 1278 1279 + 1370 1369 1369 1370 1461 1460 + 1460 1461 1552 1551 1551 1552 + 1643 1642 1642 1643 1734 1733 + 1733 1734 1825 1824 1824 1825 + 1916 1915 1006 1007 1098 1097 + 1097 1098 1189 1188 1188 1189 + 1280 1279 1279 1280 1371 1370 + 1370 1371 1462 1461 1461 1462 + 1553 1552 1552 1553 1644 1643 + 1643 1644 1735 1734 1734 1735 + 1826 1825 1825 1826 1917 1916 + 1007 1008 1099 1098 1098 1099 + 1190 1189 1189 1190 1281 1280 + 1280 1281 1372 1371 1371 1372 + 1463 1462 1462 1463 1554 1553 + 1553 1554 1645 1644 1644 1645 + 1736 1735 1735 1736 1827 1826 + 1826 1827 1918 1917 1008 1009 + 1100 1099 1099 1100 1191 1190 + 1190 1191 1282 1281 1281 1282 + 1373 1372 1372 1373 1464 1463 + 1463 1464 1555 1554 1554 1555 + 1646 1645 1645 1646 1737 1736 + 1736 1737 1828 1827 1827 1828 + 1919 1918 1009 1010 1101 1100 + 1100 1101 1192 1191 1191 1192 + 1283 1282 1282 1283 1374 1373 + 1373 1374 1465 1464 1464 1465 + 1556 1555 1555 1556 1647 1646 + 1646 1647 1738 1737 1737 1738 + 1829 1828 1828 1829 1920 1919 + 1010 1011 1102 1101 1101 1102 + 1193 1192 1192 1193 1284 1283 + 1283 1284 1375 1374 1374 1375 + 1466 1465 1465 1466 1557 1556 + 1556 1557 1648 1647 1647 1648 + 1739 1738 1738 1739 1830 1829 + 1829 1830 1921 1920 1011 1012 + 1103 1102 1102 1103 1194 1193 + 1193 1194 1285 1284 1284 1285 + 1376 1375 1375 1376 1467 1466 + 1466 1467 1558 1557 1557 1558 + 1649 1648 1648 1649 1740 1739 + 1739 1740 1831 1830 1830 1831 + 1922 1921 1012 1013 1104 1103 + 1103 1104 1195 1194 1194 1195 + 1286 1285 1285 1286 1377 1376 + 1376 1377 1468 1467 1467 1468 + 1559 1558 1558 1559 1650 1649 + 1649 1650 1741 1740 1740 1741 + 1832 1831 1831 1832 1923 1922 + 1013 1014 1105 1104 1104 1105 + 1196 1195 1195 1196 1287 1286 + 1286 1287 1378 1377 1377 1378 + 1469 1468 1468 1469 1560 1559 + 1559 1560 1651 1650 1650 1651 + 1742 1741 1741 1742 1833 1832 + 1832 1833 1924 1923 1014 1015 + 1106 1105 1105 1106 1197 1196 + 1196 1197 1288 1287 1287 1288 + 1379 1378 1378 1379 1470 1469 + 1469 1470 1561 1560 1560 1561 + 1652 1651 1651 1652 1743 1742 + 1742 1743 1834 1833 1833 1834 + 1925 1924 1015 1016 1107 1106 + 1106 1107 1198 1197 1197 1198 + 1289 1288 1288 1289 1380 1379 + 1379 1380 1471 1470 1470 1471 + 1562 1561 1561 1562 1653 1652 + 1652 1653 1744 1743 1743 1744 + 1835 1834 1834 1835 1926 1925 + 1016 1017 1108 1107 1107 1108 + 1199 1198 1198 1199 1290 1289 + 1289 1290 1381 1380 1380 1381 + 1472 1471 1471 1472 1563 1562 + 1562 1563 1654 1653 1653 1654 + 1745 1744 1744 1745 1836 1835 + 1835 1836 1927 1926 1017 1018 + 1109 1108 1108 1109 1200 1199 + 1199 1200 1291 1290 1290 1291 + 1382 1381 1381 1382 1473 1472 + 1472 1473 1564 1563 1563 1564 + 1655 1654 1654 1655 1746 1745 + 1745 1746 1837 1836 1836 1837 + 1928 1927 1018 1019 1110 1109 + 1109 1110 1201 1200 1200 1201 + 1292 1291 1291 1292 1383 1382 + 1382 1383 1474 1473 1473 1474 + 1565 1564 1564 1565 1656 1655 + 1655 1656 1747 1746 1746 1747 + 1838 1837 1837 1838 1929 1928 + 1019 1020 1111 1110 1110 1111 + 1202 1201 1201 1202 1293 1292 + 1292 1293 1384 1383 1383 1384 + 1475 1474 1474 1475 1566 1565 + 1565 1566 1657 1656 1656 1657 + 1748 1747 1747 1748 1839 1838 + 1838 1839 1930 1929 1020 1021 + 1112 1111 1111 1112 1203 1202 + 1202 1203 1294 1293 1293 1294 + 1385 1384 1384 1385 1476 1475 + 1475 1476 1567 1566 1566 1567 + 1658 1657 1657 1658 1749 1748 + 1748 1749 1840 1839 1839 1840 + 1931 1930 1021 1022 1113 1112 + 1112 1113 1204 1203 1203 1204 + 1295 1294 1294 1295 1386 1385 + 1385 1386 1477 1476 1476 1477 + 1568 1567 1567 1568 1659 1658 + 1658 1659 1750 1749 1749 1750 + 1841 1840 1840 1841 1932 1931 + 1022 1023 1114 1113 1113 1114 + 1205 1204 1204 1205 1296 1295 + 1295 1296 1387 1386 1386 1387 + 1478 1477 1477 1478 1569 1568 + 1568 1569 1660 1659 1659 1660 + 1751 1750 1750 1751 1842 1841 + 1841 1842 1933 1932 1023 1024 + 1115 1114 1114 1115 1206 1205 + 1205 1206 1297 1296 1296 1297 + 1388 1387 1387 1388 1479 1478 + 1478 1479 1570 1569 1569 1570 + 1661 1660 1660 1661 1752 1751 + 1751 1752 1843 1842 1842 1843 + 1934 1933 1024 1025 1116 1115 + 1115 1116 1207 1206 1206 1207 + 1298 1297 1297 1298 1389 1388 + 1388 1389 1480 1479 1479 1480 + 1571 1570 1570 1571 1662 1661 + 1661 1662 1753 1752 1752 1753 + 1844 1843 1843 1844 1935 1934 + 1025 1026 1117 1116 1116 1117 + 1208 1207 1207 1208 1299 1298 + 1298 1299 1390 1389 1389 1390 + 1481 1480 1480 1481 1572 1571 + 1571 1572 1663 1662 1662 1663 + 1754 1753 1753 1754 1845 1844 + 1844 1845 1936 1935 1026 1027 + 1118 1117 1117 1118 1209 1208 + 1208 1209 1300 1299 1299 1300 + 1391 1390 1390 1391 1482 1481 + 1481 1482 1573 1572 1572 1573 + 1664 1663 1663 1664 1755 1754 + 1754 1755 1846 1845 1845 1846 + 1937 1936 1027 1028 1119 1118 + 1118 1119 1210 1209 1209 1210 + 1301 1300 1300 1301 1392 1391 + 1391 1392 1483 1482 1482 1483 + 1574 1573 1573 1574 1665 1664 + 1664 1665 1756 1755 1755 1756 + 1847 1846 1846 1847 1938 1937 + 1028 1029 1120 1119 1119 1120 + 1211 1210 1210 1211 1302 1301 + 1301 1302 1393 1392 1392 1393 + 1484 1483 1483 1484 1575 1574 + 1574 1575 1666 1665 1665 1666 + 1757 1756 1756 1757 1848 1847 + 1847 1848 1939 1938 1029 1030 + 1121 1120 1120 1121 1212 1211 + 1211 1212 1303 1302 1302 1303 + 1394 1393 1393 1394 1485 1484 + 1484 1485 1576 1575 1575 1576 + 1667 1666 1666 1667 1758 1757 + 1757 1758 1849 1848 1848 1849 + 1940 1939 1030 1031 1122 1121 + 1121 1122 1213 1212 1212 1213 + 1304 1303 1303 1304 1395 1394 + 1394 1395 1486 1485 1485 1486 + 1577 1576 1576 1577 1668 1667 + 1667 1668 1759 1758 1758 1759 + 1850 1849 1849 1850 1941 1940 + 1031 1032 1123 1122 1122 1123 + 1214 1213 1213 1214 1305 1304 + 1304 1305 1396 1395 1395 1396 + 1487 1486 1486 1487 1578 1577 + 1577 1578 1669 1668 1668 1669 + 1760 1759 1759 1760 1851 1850 + 1850 1851 1942 1941 1032 1033 + 1124 1123 1123 1124 1215 1214 + 1214 1215 1306 1305 1305 1306 + 1397 1396 1396 1397 1488 1487 + 1487 1488 1579 1578 1578 1579 + 1670 1669 1669 1670 1761 1760 + 1760 1761 1852 1851 1851 1852 + 1943 1942 1033 1034 1125 1124 + 1124 1125 1216 1215 1215 1216 + 1307 1306 1306 1307 1398 1397 + 1397 1398 1489 1488 1488 1489 + 1580 1579 1579 1580 1671 1670 + 1670 1671 1762 1761 1761 1762 + 1853 1852 1852 1853 1944 1943 + 1034 1035 1126 1125 1125 1126 + 1217 1216 1216 1217 1308 1307 + 1307 1308 1399 1398 1398 1399 + 1490 1489 1489 1490 1581 1580 + 1580 1581 1672 1671 1671 1672 + 1763 1762 1762 1763 1854 1853 + 1853 1854 1945 1944 1035 1036 + 1127 1126 1126 1127 1218 1217 + 1217 1218 1309 1308 1308 1309 + 1400 1399 1399 1400 1491 1490 + 1490 1491 1582 1581 1581 1582 + 1673 1672 1672 1673 1764 1763 + 1763 1764 1855 1854 1854 1855 + 1946 1945 1036 1037 1128 1127 + 1127 1128 1219 1218 1218 1219 + 1310 1309 1309 1310 1401 1400 + 1400 1401 1492 1491 1491 1492 + 1583 1582 1582 1583 1674 1673 + 1673 1674 1765 1764 1764 1765 + 1856 1855 1855 1856 1947 1946 + 1037 1038 1129 1128 1128 1129 + 1220 1219 1219 1220 1311 1310 + 1310 1311 1402 1401 1401 1402 + 1493 1492 1492 1493 1584 1583 + 1583 1584 1675 1674 1674 1675 + 1766 1765 1765 1766 1857 1856 + 1856 1857 1948 1947 1038 1039 + 1130 1129 1129 1130 1221 1220 + 1220 1221 1312 1311 1311 1312 + 1403 1402 1402 1403 1494 1493 + 1493 1494 1585 1584 1584 1585 + 1676 1675 1675 1676 1767 1766 + 1766 1767 1858 1857 1857 1858 + 1949 1948 1039 1040 1131 1130 + 1130 1131 1222 1221 1221 1222 + 1313 1312 1312 1313 1404 1403 + 1403 1404 1495 1494 1494 1495 + 1586 1585 1585 1586 1677 1676 + 1676 1677 1768 1767 1767 1768 + 1859 1858 1858 1859 1950 1949 + 1040 1041 1132 1131 1131 1132 + 1223 1222 1222 1223 1314 1313 + 1313 1314 1405 1404 1404 1405 + 1496 1495 1495 1496 1587 1586 + 1586 1587 1678 1677 1677 1678 + 1769 1768 1768 1769 1860 1859 + 1859 1860 1951 1950 1041 1042 + 1133 1132 1132 1133 1224 1223 + 1223 1224 1315 1314 1314 1315 + 1406 1405 1405 1406 1497 1496 + 1496 1497 1588 1587 1587 1588 + 1679 1678 1678 1679 1770 1769 + 1769 1770 1861 1860 1860 1861 + 1952 1951 1042 1043 1134 1133 + 1133 1134 1225 1224 1224 1225 + 1316 1315 1315 1316 1407 1406 + 1406 1407 1498 1497 1497 1498 + 1589 1588 1588 1589 1680 1679 + 1679 1680 1771 1770 1770 1771 + 1862 1861 1861 1862 1953 1952 + 1043 1044 1135 1134 1134 1135 + 1226 1225 1225 1226 1317 1316 + 1316 1317 1408 1407 1407 1408 + 1499 1498 1498 1499 1590 1589 + 1589 1590 1681 1680 1680 1681 + 1772 1771 1771 1772 1863 1862 + 1862 1863 1954 1953 1044 1045 + 1136 1135 1135 1136 1227 1226 + 1226 1227 1318 1317 1317 1318 + 1409 1408 1408 1409 1500 1499 + 1499 1500 1591 1590 1590 1591 + 1682 1681 1681 1682 1773 1772 + 1772 1773 1864 1863 1863 1864 + 1955 1954 1045 1046 1137 1136 + 1136 1137 1228 1227 1227 1228 + 1319 1318 1318 1319 1410 1409 + 1409 1410 1501 1500 1500 1501 + 1592 1591 1591 1592 1683 1682 + 1682 1683 1774 1773 1773 1774 + 1865 1864 1864 1865 1956 1955 + 1046 1047 1138 1137 1137 1138 + 1229 1228 1228 1229 1320 1319 + 1319 1320 1411 1410 1410 1411 + 1502 1501 1501 1502 1593 1592 + 1592 1593 1684 1683 1683 1684 + 1775 1774 1774 1775 1866 1865 + 1865 1866 1957 1956 1047 1048 + 1139 1138 1138 1139 1230 1229 + 1229 1230 1321 1320 1320 1321 + 1412 1411 1411 1412 1503 1502 + 1502 1503 1594 1593 1593 1594 + 1685 1684 1684 1685 1776 1775 + 1775 1776 1867 1866 1866 1867 + 1958 1957 1048 1049 1140 1139 + 1139 1140 1231 1230 1230 1231 + 1322 1321 1321 1322 1413 1412 + 1412 1413 1504 1503 1503 1504 + 1595 1594 1594 1595 1686 1685 + 1685 1686 1777 1776 1776 1777 + 1868 1867 1867 1868 1959 1958 + 1049 1050 1141 1140 1140 1141 + 1232 1231 1231 1232 1323 1322 + 1322 1323 1414 1413 1413 1414 + 1505 1504 1504 1505 1596 1595 + 1595 1596 1687 1686 1686 1687 + 1778 1777 1777 1778 1869 1868 + 1868 1869 1960 1959 1050 1051 + 1142 1141 1141 1142 1233 1232 + 1232 1233 1324 1323 1323 1324 + 1415 1414 1414 1415 1506 1505 + 1505 1506 1597 1596 1596 1597 + 1688 1687 1687 1688 1779 1778 + 1778 1779 1870 1869 1869 1870 + 1961 1960 1051 1052 1143 1142 + 1142 1143 1234 1233 1233 1234 + 1325 1324 1324 1325 1416 1415 + 1415 1416 1507 1506 1506 1507 + 1598 1597 1597 1598 1689 1688 + 1688 1689 1780 1779 1779 1780 + 1871 1870 1870 1871 1962 1961 + 1052 1053 1144 1143 1143 1144 + 1235 1234 1234 1235 1326 1325 + 1325 1326 1417 1416 1416 1417 + 1508 1507 1507 1508 1599 1598 + 1598 1599 1690 1689 1689 1690 + 1781 1780 1780 1781 1872 1871 + 1871 1872 1963 1962 1053 1054 + 1145 1144 1144 1145 1236 1235 + 1235 1236 1327 1326 1326 1327 + 1418 1417 1417 1418 1509 1508 + 1508 1509 1600 1599 1599 1600 + 1691 1690 1690 1691 1782 1781 + 1781 1782 1873 1872 1872 1873 + 1964 1963 1054 1055 1146 1145 + 1145 1146 1237 1236 1236 1237 + 1328 1327 1327 1328 1419 1418 + 1418 1419 1510 1509 1509 1510 + 1601 1600 1600 1601 1692 1691 + 1691 1692 1783 1782 1782 1783 + 1874 1873 1873 1874 1965 1964 + 1055 1056 1147 1146 1146 1147 + 1238 1237 1237 1238 1329 1328 + 1328 1329 1420 1419 1419 1420 + 1511 1510 1510 1511 1602 1601 + 1601 1602 1693 1692 1692 1693 + 1784 1783 1783 1784 1875 1874 + 1874 1875 1966 1965 1056 1057 + 1148 1147 1147 1148 1239 1238 + 1238 1239 1330 1329 1329 1330 + 1421 1420 1420 1421 1512 1511 + 1511 1512 1603 1602 1602 1603 + 1694 1693 1693 1694 1785 1784 + 1784 1785 1876 1875 1875 1876 + 1967 1966 1057 1058 1149 1148 + 1148 1149 1240 1239 1239 1240 + 1331 1330 1330 1331 1422 1421 + 1421 1422 1513 1512 1512 1513 + 1604 1603 1603 1604 1695 1694 + 1694 1695 1786 1785 1785 1786 + 1877 1876 1876 1877 1968 1967 + 1058 1059 1150 1149 1149 1150 + 1241 1240 1240 1241 1332 1331 + 1331 1332 1423 1422 1422 1423 + 1514 1513 1513 1514 1605 1604 + 1604 1605 1696 1695 1695 1696 + 1787 1786 1786 1787 1878 1877 + 1877 1878 1969 1968 1059 1060 + 1151 1150 1150 1151 1242 1241 + 1241 1242 1333 1332 1332 1333 + 1424 1423 1423 1424 1515 1514 + 1514 1515 1606 1605 1605 1606 + 1697 1696 1696 1697 1788 1787 + 1787 1788 1879 1878 1878 1879 + 1970 1969 1060 1061 1152 1151 + 1151 1152 1243 1242 1242 1243 + 1334 1333 1333 1334 1425 1424 + 1424 1425 1516 1515 1515 1516 + 1607 1606 1606 1607 1698 1697 + 1697 1698 1789 1788 1788 1789 + 1880 1879 1879 1880 1971 1970 + 1061 1062 1153 1152 1152 1153 + 1244 1243 1243 1244 1335 1334 + 1334 1335 1426 1425 1425 1426 + 1517 1516 1516 1517 1608 1607 + 1607 1608 1699 1698 1698 1699 + 1790 1789 1789 1790 1881 1880 + 1880 1881 1972 1971 1062 1063 + 1154 1153 1153 1154 1245 1244 + 1244 1245 1336 1335 1335 1336 + 1427 1426 1426 1427 1518 1517 + 1517 1518 1609 1608 1608 1609 + 1700 1699 1699 1700 1791 1790 + 1790 1791 1882 1881 1881 1882 + 1973 1972 1063 1064 1155 1154 + 1154 1155 1246 1245 1245 1246 + 1337 1336 1336 1337 1428 1427 + 1427 1428 1519 1518 1518 1519 + 1610 1609 1609 1610 1701 1700 + 1700 1701 1792 1791 1791 1792 + 1883 1882 1882 1883 1974 1973 + 1064 1065 1156 1155 1155 1156 + 1247 1246 1246 1247 1338 1337 + 1337 1338 1429 1428 1428 1429 + 1520 1519 1519 1520 1611 1610 + 1610 1611 1702 1701 1701 1702 + 1793 1792 1792 1793 1884 1883 + 1883 1884 1975 1974 1065 1066 + 1157 1156 1156 1157 1248 1247 + 1247 1248 1339 1338 1338 1339 + 1430 1429 1429 1430 1521 1520 + 1520 1521 1612 1611 1611 1612 + 1703 1702 1702 1703 1794 1793 + 1793 1794 1885 1884 1884 1885 + 1976 1975 1066 1067 1158 1157 + 1157 1158 1249 1248 1248 1249 + 1340 1339 1339 1340 1431 1430 + 1430 1431 1522 1521 1521 1522 + 1613 1612 1612 1613 1704 1703 + 1703 1704 1795 1794 1794 1795 + 1886 1885 1885 1886 1977 1976 + 1067 1068 1159 1158 1158 1159 + 1250 1249 1249 1250 1341 1340 + 1340 1341 1432 1431 1431 1432 + 1523 1522 1522 1523 1614 1613 + 1613 1614 1705 1704 1704 1705 + 1796 1795 1795 1796 1887 1886 + 1886 1887 1978 1977 1068 1069 + 1160 1159 1159 1160 1251 1250 + 1250 1251 1342 1341 1341 1342 + 1433 1432 1432 1433 1524 1523 + 1523 1524 1615 1614 1614 1615 + 1706 1705 1705 1706 1797 1796 + 1796 1797 1888 1887 1887 1888 + 1979 1978 1069 1070 1161 1160 + 1160 1161 1252 1251 1251 1252 + 1343 1342 1342 1343 1434 1433 + 1433 1434 1525 1524 1524 1525 + 1616 1615 1615 1616 1707 1706 + 1706 1707 1798 1797 1797 1798 + 1889 1888 1888 1889 1980 1979 + 1070 1071 1162 1161 1161 1162 + 1253 1252 1252 1253 1344 1343 + 1343 1344 1435 1434 1434 1435 + 1526 1525 1525 1526 1617 1616 + 1616 1617 1708 1707 1707 1708 + 1799 1798 1798 1799 1890 1889 + 1889 1890 1981 1980 1071 1072 + 1163 1162 1162 1163 1254 1253 + 1253 1254 1345 1344 1344 1345 + 1436 1435 1435 1436 1527 1526 + 1526 1527 1618 1617 1617 1618 + 1709 1708 1708 1709 1800 1799 + 1799 1800 1891 1890 1890 1891 + 1982 1981 1072 1073 1164 1163 + 1163 1164 1255 1254 1254 1255 + 1346 1345 1345 1346 1437 1436 + 1436 1437 1528 1527 1527 1528 + 1619 1618 1618 1619 1710 1709 + 1709 1710 1801 1800 1800 1801 + 1892 1891 1891 1892 1983 1982 + 1073 1074 1165 1164 1164 1165 + 1256 1255 1255 1256 1347 1346 + 1346 1347 1438 1437 1437 1438 + 1529 1528 1528 1529 1620 1619 + 1619 1620 1711 1710 1710 1711 + 1802 1801 1801 1802 1893 1892 + 1892 1893 1984 1983 1074 1075 + 1166 1165 1165 1166 1257 1256 + 1256 1257 1348 1347 1347 1348 + 1439 1438 1438 1439 1530 1529 + 1529 1530 1621 1620 1620 1621 + 1712 1711 1711 1712 1803 1802 + 1802 1803 1894 1893 1893 1894 + 1985 1984 1075 1076 1167 1166 + 1166 1167 1258 1257 1257 1258 + 1349 1348 1348 1349 1440 1439 + 1439 1440 1531 1530 1530 1531 + 1622 1621 1621 1622 1713 1712 + 1712 1713 1804 1803 1803 1804 + 1895 1894 1894 1895 1986 1985 + 1076 1077 1168 1167 1167 1168 + 1259 1258 1258 1259 1350 1349 + 1349 1350 1441 1440 1440 1441 + 1532 1531 1531 1532 1623 1622 + 1622 1623 1714 1713 1713 1714 + 1805 1804 1804 1805 1896 1895 + 1895 1896 1987 1986 1077 1078 + 1169 1168 1168 1169 1260 1259 + 1259 1260 1351 1350 1350 1351 + 1442 1441 1441 1442 1533 1532 + 1532 1533 1624 1623 1623 1624 + 1715 1714 1714 1715 1806 1805 + 1805 1806 1897 1896 1896 1897 + 1988 1987 1078 1079 1170 1169 + 1169 1170 1261 1260 1260 1261 + 1352 1351 1351 1352 1443 1442 + 1442 1443 1534 1533 1533 1534 + 1625 1624 1624 1625 1716 1715 + 1715 1716 1807 1806 1806 1807 + 1898 1897 1897 1898 1989 1988 + 1079 1080 1171 1170 1170 1171 + 1262 1261 1261 1262 1353 1352 + 1352 1353 1444 1443 1443 1444 + 1535 1534 1534 1535 1626 1625 + 1625 1626 1717 1716 1716 1717 + 1808 1807 1807 1808 1899 1898 + 1898 1899 1990 1989 1080 1081 + 1172 1171 1171 1172 1263 1262 + 1262 1263 1354 1353 1353 1354 + 1445 1444 1444 1445 1536 1535 + 1535 1536 1627 1626 1626 1627 + 1718 1717 1717 1718 1809 1808 + 1808 1809 1900 1899 1899 1900 + 1991 1990 1081 1082 1173 1172 + 1172 1173 1264 1263 1263 1264 + 1355 1354 1354 1355 1446 1445 + 1445 1446 1537 1536 1536 1537 + 1628 1627 1627 1628 1719 1718 + 1718 1719 1810 1809 1809 1810 + 1901 1900 1900 1901 1992 1991 + 1082 1083 1174 1173 1173 1174 + 1265 1264 1264 1265 1356 1355 + 1355 1356 1447 1446 1446 1447 + 1538 1537 1537 1538 1629 1628 + 1628 1629 1720 1719 1719 1720 + 1811 1810 1810 1811 1902 1901 + 1901 1902 1993 1992 1083 1084 + 1175 1174 1174 1175 1266 1265 + 1265 1266 1357 1356 1356 1357 + 1448 1447 1447 1448 1539 1538 + 1538 1539 1630 1629 1629 1630 + 1721 1720 1720 1721 1812 1811 + 1811 1812 1903 1902 1902 1903 + 1994 1993 1084 1085 1176 1175 + 1175 1176 1267 1266 1266 1267 + 1358 1357 1357 1358 1449 1448 + 1448 1449 1540 1539 1539 1540 + 1631 1630 1630 1631 1722 1721 + 1721 1722 1813 1812 1812 1813 + 1904 1903 1903 1904 1995 1994 + 1085 1086 1177 1176 1176 1177 + 1268 1267 1267 1268 1359 1358 + 1358 1359 1450 1449 1449 1450 + 1541 1540 1540 1541 1632 1631 + 1631 1632 1723 1722 1722 1723 + 1814 1813 1813 1814 1905 1904 + 1904 1905 1996 1995 1086 1087 + 1178 1177 1177 1178 1269 1268 + 1268 1269 1360 1359 1359 1360 + 1451 1450 1450 1451 1542 1541 + 1541 1542 1633 1632 1632 1633 + 1724 1723 1723 1724 1815 1814 + 1814 1815 1906 1905 1905 1906 + 1997 1996 1087 1088 1179 1178 + 1178 1179 1270 1269 1269 1270 + 1361 1360 1360 1361 1452 1451 + 1451 1452 1543 1542 1542 1543 + 1634 1633 1633 1634 1725 1724 + 1724 1725 1816 1815 1815 1816 + 1907 1906 1906 1907 1998 1997 + 1088 1089 1180 1179 1179 1180 + 1271 1270 1270 1271 1362 1361 + 1361 1362 1453 1452 1452 1453 + 1544 1543 1543 1544 1635 1634 + 1634 1635 1726 1725 1725 1726 + 1817 1816 1816 1817 1908 1907 + 1907 1908 1999 1998 1089 1090 + 1181 1180 1180 1181 1272 1271 + 1271 1272 1363 1362 1362 1363 + 1454 1453 1453 1454 1545 1544 + 1544 1545 1636 1635 1635 1636 + 1727 1726 1726 1727 1818 1817 + 1817 1818 1909 1908 1908 1909 + 2000 1999 1090 1091 1182 1181 + 1181 1182 1273 1272 1272 1273 + 1364 1363 1363 1364 1455 1454 + 1454 1455 1546 1545 1545 1546 + 1637 1636 1636 1637 1728 1727 + 1727 1728 1819 1818 1818 1819 + 1910 1909 1909 1910 2001 2000 + + + 4 8 12 16 20 24 + 28 32 36 40 44 48 + 52 56 60 64 68 72 + 76 80 84 88 92 96 + 100 104 108 112 116 120 + 124 128 132 136 140 144 + 148 152 156 160 164 168 + 172 176 180 184 188 192 + 196 200 204 208 212 216 + 220 224 228 232 236 240 + 244 248 252 256 260 264 + 268 272 276 280 284 288 + 292 296 300 304 308 312 + 316 320 324 328 332 336 + 340 344 348 352 356 360 + 364 368 372 376 380 384 + 388 392 396 400 404 408 + 412 416 420 424 428 432 + 436 440 444 448 452 456 + 460 464 468 472 476 480 + 484 488 492 496 500 504 + 508 512 516 520 524 528 + 532 536 540 544 548 552 + 556 560 564 568 572 576 + 580 584 588 592 596 600 + 604 608 612 616 620 624 + 628 632 636 640 644 648 + 652 656 660 664 668 672 + 676 680 684 688 692 696 + 700 704 708 712 716 720 + 724 728 732 736 740 744 + 748 752 756 760 764 768 + 772 776 780 784 788 792 + 796 800 804 808 812 816 + 820 824 828 832 836 840 + 844 848 852 856 860 864 + 868 872 876 880 884 888 + 892 896 900 904 908 912 + 916 920 924 928 932 936 + 940 944 948 952 956 960 + 964 968 972 976 980 984 + 988 992 996 1000 1004 1008 + 1012 1016 1020 1024 1028 1032 + 1036 1040 1044 1048 1052 1056 + 1060 1064 1068 1072 1076 1080 + 1084 1088 1092 1096 1100 1104 + 1108 1112 1116 1120 1124 1128 + 1132 1136 1140 1144 1148 1152 + 1156 1160 1164 1168 1172 1176 + 1180 1184 1188 1192 1196 1200 + 1204 1208 1212 1216 1220 1224 + 1228 1232 1236 1240 1244 1248 + 1252 1256 1260 1264 1268 1272 + 1276 1280 1284 1288 1292 1296 + 1300 1304 1308 1312 1316 1320 + 1324 1328 1332 1336 1340 1344 + 1348 1352 1356 1360 1364 1368 + 1372 1376 1380 1384 1388 1392 + 1396 1400 1404 1408 1412 1416 + 1420 1424 1428 1432 1436 1440 + 1444 1448 1452 1456 1460 1464 + 1468 1472 1476 1480 1484 1488 + 1492 1496 1500 1504 1508 1512 + 1516 1520 1524 1528 1532 1536 + 1540 1544 1548 1552 1556 1560 + 1564 1568 1572 1576 1580 1584 + 1588 1592 1596 1600 1604 1608 + 1612 1616 1620 1624 1628 1632 + 1636 1640 1644 1648 1652 1656 + 1660 1664 1668 1672 1676 1680 + 1684 1688 1692 1696 1700 1704 + 1708 1712 1716 1720 1724 1728 + 1732 1736 1740 1744 1748 1752 + 1756 1760 1764 1768 1772 1776 + 1780 1784 1788 1792 1796 1800 + 1804 1808 1812 1816 1820 1824 + 1828 1832 1836 1840 1844 1848 + 1852 1856 1860 1864 1868 1872 + 1876 1880 1884 1888 1892 1896 + 1900 1904 1908 1912 1916 1920 + 1924 1928 1932 1936 1940 1944 + 1948 1952 1956 1960 1964 1968 + 1972 1976 1980 1984 1988 1992 + 1996 2000 2004 2008 2012 2016 + 2020 2024 2028 2032 2036 2040 + 2044 2048 2052 2056 2060 2064 + 2068 2072 2076 2080 2084 2088 + 2092 2096 2100 2104 2108 2112 + 2116 2120 2124 2128 2132 2136 + 2140 2144 2148 2152 2156 2160 + 2164 2168 2172 2176 2180 2184 + 2188 2192 2196 2200 2204 2208 + 2212 2216 2220 2224 2228 2232 + 2236 2240 2244 2248 2252 2256 + 2260 2264 2268 2272 2276 2280 + 2284 2288 2292 2296 2300 2304 + 2308 2312 2316 2320 2324 2328 + 2332 2336 2340 2344 2348 2352 + 2356 2360 2364 2368 2372 2376 + 2380 2384 2388 2392 2396 2400 + 2404 2408 2412 2416 2420 2424 + 2428 2432 2436 2440 2444 2448 + 2452 2456 2460 2464 2468 2472 + 2476 2480 2484 2488 2492 2496 + 2500 2504 2508 2512 2516 2520 + 2524 2528 2532 2536 2540 2544 + 2548 2552 2556 2560 2564 2568 + 2572 2576 2580 2584 2588 2592 + 2596 2600 2604 2608 2612 2616 + 2620 2624 2628 2632 2636 2640 + 2644 2648 2652 2656 2660 2664 + 2668 2672 2676 2680 2684 2688 + 2692 2696 2700 2704 2708 2712 + 2716 2720 2724 2728 2732 2736 + 2740 2744 2748 2752 2756 2760 + 2764 2768 2772 2776 2780 2784 + 2788 2792 2796 2800 2804 2808 + 2812 2816 2820 2824 2828 2832 + 2836 2840 2844 2848 2852 2856 + 2860 2864 2868 2872 2876 2880 + 2884 2888 2892 2896 2900 2904 + 2908 2912 2916 2920 2924 2928 + 2932 2936 2940 2944 2948 2952 + 2956 2960 2964 2968 2972 2976 + 2980 2984 2988 2992 2996 3000 + 3004 3008 3012 3016 3020 3024 + 3028 3032 3036 3040 3044 3048 + 3052 3056 3060 3064 3068 3072 + 3076 3080 3084 3088 3092 3096 + 3100 3104 3108 3112 3116 3120 + 3124 3128 3132 3136 3140 3144 + 3148 3152 3156 3160 3164 3168 + 3172 3176 3180 3184 3188 3192 + 3196 3200 3204 3208 3212 3216 + 3220 3224 3228 3232 3236 3240 + 3244 3248 3252 3256 3260 3264 + 3268 3272 3276 3280 3284 3288 + 3292 3296 3300 3304 3308 3312 + 3316 3320 3324 3328 3332 3336 + 3340 3344 3348 3352 3356 3360 + 3364 3368 3372 3376 3380 3384 + 3388 3392 3396 3400 3404 3408 + 3412 3416 3420 3424 3428 3432 + 3436 3440 3444 3448 3452 3456 + 3460 3464 3468 3472 3476 3480 + 3484 3488 3492 3496 3500 3504 + 3508 3512 3516 3520 3524 3528 + 3532 3536 3540 3544 3548 3552 + 3556 3560 3564 3568 3572 3576 + 3580 3584 3588 3592 3596 3600 + 3604 3608 3612 3616 3620 3624 + 3628 3632 3636 3640 3644 3648 + 3652 3656 3660 3664 3668 3672 + 3676 3680 3684 3688 3692 3696 + 3700 3704 3708 3712 3716 3720 + 3724 3728 3732 3736 3740 3744 + 3748 3752 3756 3760 3764 3768 + 3772 3776 3780 3784 3788 3792 + 3796 3800 3804 3808 3812 3816 + 3820 3824 3828 3832 3836 3840 + 3844 3848 3852 3856 3860 3864 + 3868 3872 3876 3880 3884 3888 + 3892 3896 3900 3904 3908 3912 + 3916 3920 3924 3928 3932 3936 + 3940 3944 3948 3952 3956 3960 + 3964 3968 3972 3976 3980 3984 + 3988 3992 3996 4000 4004 4008 + 4012 4016 4020 4024 4028 4032 + 4036 4040 4044 4048 4052 4056 + 4060 4064 4068 4072 4076 4080 + 4084 4088 4092 4096 4100 4104 + 4108 4112 4116 4120 4124 4128 + 4132 4136 4140 4144 4148 4152 + 4156 4160 4164 4168 4172 4176 + 4180 4184 4188 4192 4196 4200 + 4204 4208 4212 4216 4220 4224 + 4228 4232 4236 4240 4244 4248 + 4252 4256 4260 4264 4268 4272 + 4276 4280 4284 4288 4292 4296 + 4300 4304 4308 4312 4316 4320 + 4324 4328 4332 4336 4340 4344 + 4348 4352 4356 4360 4364 4368 + 4372 4376 4380 4384 4388 4392 + 4396 4400 4404 4408 4412 4416 + 4420 4424 4428 4432 4436 4440 + 4444 4448 4452 4456 4460 4464 + 4468 4472 4476 4480 4484 4488 + 4492 4496 4500 4504 4508 4512 + 4516 4520 4524 4528 4532 4536 + 4540 4544 4548 4552 4556 4560 + 4564 4568 4572 4576 4580 4584 + 4588 4592 4596 4600 4604 4608 + 4612 4616 4620 4624 4628 4632 + 4636 4640 4644 4648 4652 4656 + 4660 4664 4668 4672 4676 4680 + 4684 4688 4692 4696 4700 4704 + 4708 4712 4716 4720 4724 4728 + 4732 4736 4740 4744 4748 4752 + 4756 4760 4764 4768 4772 4776 + 4780 4784 4788 4792 4796 4800 + 4804 4808 4812 4816 4820 4824 + 4828 4832 4836 4840 4844 4848 + 4852 4856 4860 4864 4868 4872 + 4876 4880 4884 4888 4892 4896 + 4900 4904 4908 4912 4916 4920 + 4924 4928 4932 4936 4940 4944 + 4948 4952 4956 4960 4964 4968 + 4972 4976 4980 4984 4988 4992 + 4996 5000 5004 5008 5012 5016 + 5020 5024 5028 5032 5036 5040 + 5044 5048 5052 5056 5060 5064 + 5068 5072 5076 5080 5084 5088 + 5092 5096 5100 5104 5108 5112 + 5116 5120 5124 5128 5132 5136 + 5140 5144 5148 5152 5156 5160 + 5164 5168 5172 5176 5180 5184 + 5188 5192 5196 5200 5204 5208 + 5212 5216 5220 5224 5228 5232 + 5236 5240 5244 5248 5252 5256 + 5260 5264 5268 5272 5276 5280 + 5284 5288 5292 5296 5300 5304 + 5308 5312 5316 5320 5324 5328 + 5332 5336 5340 5344 5348 5352 + 5356 5360 5364 5368 5372 5376 + 5380 5384 5388 5392 5396 5400 + 5404 5408 5412 5416 5420 5424 + 5428 5432 5436 5440 5444 5448 + 5452 5456 5460 5464 5468 5472 + 5476 5480 5484 5488 5492 5496 + 5500 5504 5508 5512 5516 5520 + 5524 5528 5532 5536 5540 5544 + 5548 5552 5556 5560 5564 5568 + 5572 5576 5580 5584 5588 5592 + 5596 5600 5604 5608 5612 5616 + 5620 5624 5628 5632 5636 5640 + 5644 5648 5652 5656 5660 5664 + 5668 5672 5676 5680 5684 5688 + 5692 5696 5700 5704 5708 5712 + 5716 5720 5724 5728 5732 5736 + 5740 5744 5748 5752 5756 5760 + 5764 5768 5772 5776 5780 5784 + 5788 5792 5796 5800 5804 5808 + 5812 5816 5820 5824 5828 5832 + 5836 5840 5844 5848 5852 5856 + 5860 5864 5868 5872 5876 5880 + 5884 5888 5892 5896 5900 5904 + 5908 5912 5916 5920 5924 5928 + 5932 5936 5940 5944 5948 5952 + 5956 5960 5964 5968 5972 5976 + 5980 5984 5988 5992 5996 6000 + 6004 6008 6012 6016 6020 6024 + 6028 6032 6036 6040 6044 6048 + 6052 6056 6060 6064 6068 6072 + 6076 6080 6084 6088 6092 6096 + 6100 6104 6108 6112 6116 6120 + 6124 6128 6132 6136 6140 6144 + 6148 6152 6156 6160 6164 6168 + 6172 6176 6180 6184 6188 6192 + 6196 6200 6204 6208 6212 6216 + 6220 6224 6228 6232 6236 6240 + 6244 6248 6252 6256 6260 6264 + 6268 6272 6276 6280 6284 6288 + 6292 6296 6300 6304 6308 6312 + 6316 6320 6324 6328 6332 6336 + 6340 6344 6348 6352 6356 6360 + 6364 6368 6372 6376 6380 6384 + 6388 6392 6396 6400 6404 6408 + 6412 6416 6420 6424 6428 6432 + 6436 6440 6444 6448 6452 6456 + 6460 6464 6468 6472 6476 6480 + 6484 6488 6492 6496 6500 6504 + 6508 6512 6516 6520 6524 6528 + 6532 6536 6540 6544 6548 6552 + 6556 6560 6564 6568 6572 6576 + 6580 6584 6588 6592 6596 6600 + 6604 6608 6612 6616 6620 6624 + 6628 6632 6636 6640 6644 6648 + 6652 6656 6660 6664 6668 6672 + 6676 6680 6684 6688 6692 6696 + 6700 6704 6708 6712 6716 6720 + 6724 6728 6732 6736 6740 6744 + 6748 6752 6756 6760 6764 6768 + 6772 6776 6780 6784 6788 6792 + 6796 6800 6804 6808 6812 6816 + 6820 6824 6828 6832 6836 6840 + 6844 6848 6852 6856 6860 6864 + 6868 6872 6876 6880 6884 6888 + 6892 6896 6900 6904 6908 6912 + 6916 6920 6924 6928 6932 6936 + 6940 6944 6948 6952 6956 6960 + 6964 6968 6972 6976 6980 6984 + 6988 6992 6996 7000 7004 7008 + 7012 7016 7020 7024 7028 7032 + 7036 7040 7044 7048 7052 7056 + 7060 7064 7068 7072 7076 7080 + 7084 7088 7092 7096 7100 7104 + 7108 7112 7116 7120 7124 7128 + 7132 7136 7140 7144 7148 7152 + 7156 7160 7164 7168 7172 7176 + 7180 7184 7188 7192 7196 7200 + + + + + diff --git a/src-par/CourantNo.f90 b/src-par/CourantNo.f90 old mode 100644 new mode 100755 index b3a9c6c..9764262 --- a/src-par/CourantNo.f90 +++ b/src-par/CourantNo.f90 @@ -7,12 +7,12 @@ subroutine CourantNo use parameters, only: CoNum,meanCoNum, CoNumFixValue, CoNumFix, timestep, ltransient, itime, time, myid use geometry, only: numCells, numInnerFaces, owner, neighbour, numBoundaries, bctype, nfaces, startFace, Vol use sparse_matrix, only: res - use variables, only: flmass + use variables, only: flmass,den implicit none integer :: i, ijp, ijn, inp, ib, iface - real(dp):: suma,dt + real(dp):: TotalVol,dt if (ltransient) then CoNum = 0.0_dp @@ -63,26 +63,26 @@ subroutine CourantNo ! Accumulate by looping trough cells - suma = 0.0_dp + TotalVol = 0.0_dp do inp=1,numCells - CoNum = max( CoNum , res(inp)/Vol(inp) ) + CoNum = max( CoNum , res(inp)/(Vol(inp)*den(inp)) ) - meanCoNum = meanCoNum + res(inp) + meanCoNum = meanCoNum + res(inp)/den(inp) - suma = suma + Vol(inp) + TotalVol = TotalVol + Vol(inp) enddo res = 0.0_dp - ! AllReduce using sum, values of suma and MeanCoNum. + ! AllReduce using sum, values of TotalVol and MeanCoNum. call global_sum(MeanCoNum) - call global_sum(suma) + call global_sum(TotalVol) CoNum = 0.5*CoNum*timestep - meanCoNum = 0.5*meanCoNum/suma*timestep + meanCoNum = 0.5*meanCoNum/TotalVol*timestep ! Find global maximum Courant number in the whole field. call global_max(CoNum) diff --git a/src-par/LIS_linear_solver_library.f95 b/src-par/LIS_linear_solver_library.f95 old mode 100644 new mode 100755 diff --git a/src-par/Makefile b/src-par/Makefile old mode 100644 new mode 100755 index 5f6e313..e600669 --- a/src-par/Makefile +++ b/src-par/Makefile @@ -25,7 +25,8 @@ MOD_FILES=\ gradients.f90 \ output.f90 \ interpolation.f90 \ - scalar_fluxes.f90 + scalar_fluxes.f90 \ + periodicity.f90 MPI_FILES=\ global_max_mpi.f90 \ @@ -51,7 +52,7 @@ TURBULENCE_FILES=\ k_epsilon_rng.f90 \ spalart_allmaras.f90 \ k_eqn_eddy.f90 -# k_epsilon_zeta_f.f90 + #k_epsilon_zeta_f.f90 CAFFA_FILES=\ allocate.f90 \ @@ -74,14 +75,12 @@ CAFFA_FILES=\ updateVelocityAtBoundary.f90 \ correct_turbulence.f90 \ correct_turbulence_inlet.f90 \ - continuityErrors.f90\ constant_mass_flow_forcing.f90 \ - recirculate_flow.f90 \ + continuityErrors.f90\ fvm_laplacian.f90 \ init.f90 \ readfiles.f90 \ read_input.f90 \ - random_seed.f90 \ time_shift.f90 \ vortexIdentification.f90\ writefiles.f90 \ diff --git a/src-par/README.md b/src-par/README.md deleted file mode 100644 index 1fb21c0..0000000 --- a/src-par/README.md +++ /dev/null @@ -1,68 +0,0 @@ -# caffa3d-uns -A three-dimensional unstructured finite volume code for Computational Fluid Dynamics. - - MM MMM - NMN. MM - MMM.. OMM. MMM. - .MMO. MMM MMM ... - MMM: MMM MMM .. .?DMD7.. - MMM MMM MMM ..MMMMMMMMMMM~ - MMM: .M MMM. .NMMMMMMMMMMMMMM - .MMM .M. .MMM. ... .?MMMMM .. .MMMMMMMMMMMMMMMMM - MMM. .M . MMM. ....MMMMMMMMMMMM$..MMMMMM? .7MMMMM. - MM. M M MM ..MMMMMMM~.. .MMMMM7MMMMMM. 7MMMMN - =MMMMMM7.. ..MMM.MMMMMMMMM+ .MMMMM. - DMMMMMD.. . . MMMM. .MMMMMMMM. ..MMMMM. - ..=MMMMMZ. ...MMMM MMMMMMMI. .MMMM$. - MMMMM8. .. .NMMMM.. :MMMMMMM :MMMM. - :MMMMM....... ~MMMMN MMMMMMMMO. MMMM+ - . ?MMMM:. .... ,MMMMM .MMMMMMMMM. :MMMM. - ..IMMMM . . =MMMMMI ..MMMMMMMM. MMMM= - .MMMM. .... DMMMMM? 8MMMMM= NMMMM - +MMM. .~MMMMMM~ .MMMM. ,MMMM. - ~MM?.~MMMMMMM$ MMMD .MMMMM - .DMMMMMMM$ MMMM. .MMMMM - .MMMM. .MMMN..MMMMM, - ..MMMM. .MMMM.MMMMMM - =MMMZ.. .=. .. .. =. ,: .MMMMMMMMM - .MMMM~.. 7 .MM.M M MM. M. .. M .MMMMMMMM+ - MMMM....Z. .MM.M...M...MM..O:. M . ~.M...ZMMMMMMM - MMMM,. ., : ,: : : : ., ,, , . MMMMMMM - MMMM7. ..................................MMMMMM - MMMM8 ..................................MMMMMM - NMMMM ................................MMMMD - 7MMMM ............................... MMMM - MMMMO............................. :MMM - MMMMM..............................MMM - MMMMM..........................MMMMM - ZMMMMD.......................MMMMM - MMMMMM.................. MMMMM - MMMMMM. ............OMMMMMZ - NMMMMM8.......=MMMMMMMI - =MMMMMMMMMMMMMMMMM - NMMMMMMMMMM - -Introduction ------------------- -The purpose of the code is to enable experimentation in discretizations and mathematical models. Therefore we have included many discretization options and we are in the process of implementation of many turbulence models and scalar equations for different variables. - -The code is based on the reference: - -N Mirkov, B Rašuo, S Kenjereš, On the improved finite volume procedure for simulation of turbulent flows over real complex terrains, Journal of Computational Physics, Vol. 297 (2015), pp.18-45. - -The code allows meshes in OpenFOAM® polyMesh format. Only slight changes are necessary in the 'boundary' file. - -Discretized equations are written in CSR (Compressed Sparse Row) format, which allows easy interface with many linear solver libraries, such as [LIS](http://www.ssisc.org/lis/). Also, one can use linear solvers provided in the code such as, Incomplete Cholesky Conjugate Gradient (ICCG), ILU(0) preconditioned Bi-Conjugate Gradient Stabilised method for non-symmetric systems, etc. - -Requirements ------------------ -The code is written in modern fortran, so you will need fortran compiler (e.g. gfortran). Code may be built to use external library for solution of sparse linear systems [LIS](http://www.ssisc.org/lis/) or be used without it, just using built in linear solvers. - -Getting started ------------------ -Clone the git repository or download the zip archive of the most recent source, compile and build the code, and checkout the examples such as the lid-driven cavity, Pitz-Daily backward facing step, channel, and many more to come. -![alt tag](https://github.com/nikola-m/caffa3d-uns/blob/master/examples/cavity/cavity-t0.5.png) - -License ------------------- -The code is published under GNU General Public License v3.0. diff --git a/src-par/abort_mission_mpi.f90 b/src-par/abort_mission_mpi.f90 old mode 100644 new mode 100755 diff --git a/src-par/adjustMassFlow.f90 b/src-par/adjustMassFlow.f90 old mode 100644 new mode 100755 diff --git a/src-par/allocate.f90 b/src-par/allocate.f90 old mode 100644 new mode 100755 diff --git a/src-par/asm_heatflux_terms.f90 b/src-par/asm_heatflux_terms.f90 old mode 100644 new mode 100755 diff --git a/src-par/asm_stress_terms.f90 b/src-par/asm_stress_terms.f90 old mode 100644 new mode 100755 diff --git a/src-par/bcin.f90 b/src-par/bcin.f90 old mode 100644 new mode 100755 diff --git a/src-par/bicgstab.f90 b/src-par/bicgstab.f90 old mode 100644 new mode 100755 diff --git a/src-par/bpres.f90 b/src-par/bpres.f90 old mode 100644 new mode 100755 diff --git a/src-par/calc_statistics.f90 b/src-par/calc_statistics.f90 old mode 100644 new mode 100755 index 732ccf9..93609ec --- a/src-par/calc_statistics.f90 +++ b/src-par/calc_statistics.f90 @@ -6,7 +6,7 @@ subroutine calc_statistics ! use types use parameters - use geometry, only: numCells,nwal + use geometry use variables use statistics @@ -17,6 +17,8 @@ subroutine calc_statistics integer :: inp real(dp) :: n_1n, nr + integer :: iwall,ib,i,iface,ijp,ijb + real(dp) :: are,nxf,nyf,nzf,Vnp,Vtp,xtp,ytp,ztp,Ut2 n_sample = n_sample+1 @@ -38,19 +40,19 @@ subroutine calc_statistics if(lturb) then ! Reynolds stress components - uu_aver(inp) = uu_aver(inp)+(u(inp)-u_aver(inp))**2 - vv_aver(inp) = vv_aver(inp)+(v(inp)-v_aver(inp))**2 - ww_aver(inp) = ww_aver(inp)+(w(inp)-w_aver(inp))**2 + uu_aver(inp) = uu_aver(inp) * n_1n + (u(inp)-u_aver(inp))**2 * nr + vv_aver(inp) = vv_aver(inp) * n_1n + (v(inp)-v_aver(inp))**2 * nr + ww_aver(inp) = ww_aver(inp) * n_1n + (w(inp)-w_aver(inp))**2 * nr - te_aver(inp) = (uu_aver(inp)+vv_aver(inp)+ww_aver(inp)) / dble(2*n_sample) - - uv_aver(inp) = uv_aver(inp) + ((u(inp)-u_aver(inp))*(v(inp)-v_aver(inp))) - uw_aver(inp) = uw_aver(inp) + ((u(inp)-u_aver(inp))*(w(inp)-w_aver(inp))) - vw_aver(inp) = vw_aver(inp) + ((v(inp)-v_aver(inp))*(w(inp)-w_aver(inp))) + te_aver(inp) = 0.5*(uu_aver(inp)+vv_aver(inp)+ww_aver(inp)) + uv_aver(inp) = uv_aver(inp) * n_1n + ((u(inp)-u_aver(inp))*(v(inp)-v_aver(inp))) * nr + uw_aver(inp) = uw_aver(inp) * n_1n + ((u(inp)-u_aver(inp))*(w(inp)-w_aver(inp))) * nr + vw_aver(inp) = vw_aver(inp) * n_1n + ((v(inp)-v_aver(inp))*(w(inp)-w_aver(inp))) * nr + endif -! Other... +! Concentration and turbulent fluxes ! concon_aver(inp) = concon_aver(inp)+(con(inp)-con_nsample)**2 ! ucon_aver(inp) = ucon_aver(inp)+((u(inp)-u_aver(inp))*(con(inp)-con_nsample)) ! vcon_aver(inp) = vcon_aver(inp)+((v(inp)-v_aver(inp))*(con(inp)-con_nsample)) @@ -58,6 +60,50 @@ subroutine calc_statistics end do + ! Recompute wall shear stress in necessary + iWall = 0 + + do ib=1,numBoundaries + if ( bctype(ib) == 'wall') then + do i=1,nfaces(ib) + iface = startFace(ib) + i + ijp = owner(iface) + ijb = iBndValueStart(ib) + i + iWall = iWall + 1 + + ! Face area + are = sqrt(arx(iface)**2+ary(iface)**2+arz(iface)**2) + + ! Face normals + nxf = arx(iface)/are + nyf = ary(iface)/are + nzf = arz(iface)/are + + ! Magnitude of a cell center velocity projected on boundary face normal + Vnp = U(ijp)*nxf+V(ijp)*nyf+W(ijp)*nzf + + ! Tangential velocity components + xtp = U(ijp)-Vnp*nxf + ytp = V(ijp)-Vnp*nyf + ztp = W(ijp)-Vnp*nzf + + ! Its magnitude + Vtp = sqrt(xtp*xtp+ytp*ytp+ztp*ztp) + + ! Tangent direction + xtp = xtp/vtp + ytp = ytp/vtp + ztp = ztp/vtp + + ! projektovanje razlike brzina na pravac tangencijalne brzine u cell centru ijp + Ut2 = abs( (U(ijb)-U(ijp))*xtp + (V(ijb)-V(ijp))*ytp + (W(ijb)-W(ijp))*ztp ) + + Tau(iWall) = viscos*Ut2/dnw(iWall) + + enddo + endif + enddo + ! Time averaged Wall Shear Stress at wall bundaries wss_aver(1:nwal) = wss_aver(1:nwal) * n_1n + tau(1:nwal) * nr diff --git a/src-par/calc_strain_and_vorticity.f90 b/src-par/calc_strain_and_vorticity.f90 old mode 100644 new mode 100755 diff --git a/src-par/calcheatflux.f90 b/src-par/calcheatflux.f90 old mode 100644 new mode 100755 diff --git a/src-par/calcp_piso.f90 b/src-par/calcp_piso.f90 old mode 100644 new mode 100755 index 26e4342..0c594db --- a/src-par/calcp_piso.f90 +++ b/src-par/calcp_piso.f90 @@ -22,8 +22,7 @@ subroutine calcp_piso ! P P P ! "These are though as velocities from which the contribution of the ! pressure gradient has been removed"-Ferziger,Peric -! -! Relevant code here is get_rAU_x_UEqnH() subroutine. + ! ! 3) Ansemble pressure equation (Eq. 7.35). ! RHS is divergence of @@ -73,7 +72,7 @@ subroutine calcp_piso integer :: i, k, inp, iface, if, ib, ipro, istage integer :: ijp, ijn real(dp) :: cap, can - real(dp) :: pavg + ! real(dp) :: pavg real(dp) :: ppref real(dp) :: fmcor diff --git a/src-par/calcp_simple.f90 b/src-par/calcp_simple.f90 old mode 100644 new mode 100755 index ba5982b..692f309 --- a/src-par/calcp_simple.f90 +++ b/src-par/calcp_simple.f90 @@ -118,7 +118,8 @@ subroutine calcp_simple enddo ! Boundary loop - if(.not.const_mflux) call adjustMassFlow + ! if(.not.const_mflux) + call adjustMassFlow ! Add contributions to source of the inlet and outlet boundaries. @@ -169,8 +170,8 @@ subroutine calcp_simple pp = 0.0_dp ! Solving pressure correction equation - ! call bicgstab(pp,ip) - call iccg(pp,ip) + call bicgstab(pp,ip) + ! call iccg(pp,ip) ! call dpcg(pp,ip) ! call jacobi(pp,ip) ! call pmgmres_ilu ( numCells, nnz, ioffset, ja, a, diag, pp, ip, su, nsw(ip), 4, 1e-3, sor(ip) ) diff --git a/src-par/calcstress.f90 b/src-par/calcstress.f90 old mode 100644 new mode 100755 diff --git a/src-par/calcuvw.f90 b/src-par/calcuvw.f90 old mode 100644 new mode 100755 diff --git a/src-par/concentration.f90 b/src-par/concentration.f90 old mode 100644 new mode 100755 diff --git a/src-par/constant_mass_flow_forcing.f90 b/src-par/constant_mass_flow_forcing.f90 old mode 100644 new mode 100755 diff --git a/src-par/continuityErrors.f90 b/src-par/continuityErrors.f90 old mode 100644 new mode 100755 diff --git a/src-par/continuityErrors.h b/src-par/continuityErrors.h old mode 100644 new mode 100755 diff --git a/src-par/correct_turbulence.f90 b/src-par/correct_turbulence.f90 old mode 100644 new mode 100755 diff --git a/src-par/correct_turbulence_inlet.f90 b/src-par/correct_turbulence_inlet.f90 old mode 100644 new mode 100755 diff --git a/src-par/create_and_save_frame.f90 b/src-par/create_and_save_frame.f90 old mode 100644 new mode 100755 diff --git a/src-par/dpcg.f90 b/src-par/dpcg.f90 old mode 100644 new mode 100755 diff --git a/src-par/exchange.f90 b/src-par/exchange.f90 old mode 100644 new mode 100755 diff --git a/src-par/faceflux_mass.f90 b/src-par/faceflux_mass.f90 old mode 100644 new mode 100755 diff --git a/src-par/faceflux_velocity.f90 b/src-par/faceflux_velocity.f90 old mode 100644 new mode 100755 diff --git a/src-par/fieldManipulation.f90 b/src-par/fieldManipulation.f90 old mode 100644 new mode 100755 index 4c4d309..3b5cfd0 --- a/src-par/fieldManipulation.f90 +++ b/src-par/fieldManipulation.f90 @@ -868,6 +868,7 @@ subroutine add_random_noise_to_field(Phi,percent) use types use parameters use geometry, only: numCells,numTotal + use utils, only: init_random_seed implicit none ! diff --git a/src-par/field_initialization.f90 b/src-par/field_initialization.f90 old mode 100644 new mode 100755 diff --git a/src-par/fv_equation.f90 b/src-par/fv_equation.f90 old mode 100644 new mode 100755 diff --git a/src-par/fvm_ddt.f90 b/src-par/fvm_ddt.f90 old mode 100644 new mode 100755 diff --git a/src-par/fvm_div.f90 b/src-par/fvm_div.f90 old mode 100644 new mode 100755 diff --git a/src-par/fvm_laplacian.f90 b/src-par/fvm_laplacian.f90 old mode 100644 new mode 100755 diff --git a/src-par/geometry-old.f90 b/src-par/geometry-old.f90 old mode 100644 new mode 100755 diff --git a/src-par/geometry.f90 b/src-par/geometry.f90 old mode 100644 new mode 100755 diff --git a/src-par/global_isum_mpi.f90 b/src-par/global_isum_mpi.f90 old mode 100644 new mode 100755 diff --git a/src-par/global_max_mpi.f90 b/src-par/global_max_mpi.f90 old mode 100644 new mode 100755 diff --git a/src-par/global_min_mpi.f90 b/src-par/global_min_mpi.f90 old mode 100644 new mode 100755 diff --git a/src-par/global_sum_mpi.f90 b/src-par/global_sum_mpi.f90 old mode 100644 new mode 100755 diff --git a/src-par/gradients.f90 b/src-par/gradients.f90 old mode 100644 new mode 100755 diff --git a/src-par/iccg.f90 b/src-par/iccg.f90 old mode 100644 new mode 100755 diff --git a/src-par/init.f90 b/src-par/init.f90 old mode 100644 new mode 100755 diff --git a/src-par/interpolation.f90 b/src-par/interpolation.f90 old mode 100644 new mode 100755 index 89438a5..b0cafd5 --- a/src-par/interpolation.f90 +++ b/src-par/interpolation.f90 @@ -48,6 +48,9 @@ function face_value(ijp,ijn,xf,yf,zf,lambda,u,dUdxi) result(ue) elseif (lmuscl_flnt) then ue = face_value_muscl(ijp, ijn, xf, yf, zf, u, dUdxi) + elseif (lcubic) then + ue = face_value_cubic(ijp, ijn, xf, yf, zf, lambda, u, dUdxi) + elseif (flux_limiter) then ue = face_value_2nd_upwind_flux_limiter(ijp, ijn, lambda, u, dUdxi) @@ -294,6 +297,74 @@ function face_value_muscl(inp,inn, xf, yf, zf, fi, gradfi) result(face_value) end function +!*********************************************************************** +! + function face_value_cubic(inp,inn, xf, yf, zf, lambda, fi, gradfi) result(face_value) +! +!*********************************************************************** +! +! CUBIC interpolation function. +! Calculates face value using values of variables and their gradients +! at neighbours cell-centers fitted into a cubic polynomial. +! Implementation corresponds to one found tin OpenFOAM, but the details +! are taken from derivation in an cfd-online thread: +! https://www.cfd-online.com/Forums/openfoam-programming-development/184766-factors-cubic-inerpolation-scheme-openfoam.html +! +!*********************************************************************** +! + + implicit none + + ! Result + real(dp) :: face_value + + ! Input + integer :: inp, inn + real(dp) :: xf, yf, zf, lambda + real(dp), dimension(numTotal) :: fi + real(dp), dimension(3,numPCells) :: gradfi + + ! Locals + real(dp) :: central,corr1,corr2,lambda_,fP,fN,gx,gy,gz,dx,dy,dz,dpn + + ! Face interpolation factor + lambda_=1.0_dp-lambda + + ! The CUBIC interpolation has follwong for according to derivation + !\phi_f = \phi(1-\lambda) = \lambda \phi_P + (1-\lambda)\phi_N + \lambda (1-\lambda)(1-2\lambda)(\phi_N -\phi_P) - \lambda^2(\lambda-1) \nabla \phi_P - \lambda (1-\lambda)^2 \nabla \phi_N + ! Here \lambda is our lambda_=1-lambda. + ! + + central = lambda_ * fi(inp) + (1.0-lambda_)*fi(inn) + + corr1 = lambda_*(1-lambda_)*(1-2*lambda_)*(fi(inn)-fi(inp)) + + fP = lambda_**2*(lambda_-1.0) + fN = lambda_*(1.0-lambda_)**2 + gx = fP * gradfi(1,inp) + fN * gradfi(1,inn) + gy = fP * gradfi(2,inp) + fN * gradfi(2,inn) + gz = fP * gradfi(3,inp) + fN * gradfi(3,inn) + + + ! Project to face normal direction by doting with face area vector and then mulitpy with distance dpn + ! -> -> + ! Grad * Sf/|Sf| * + !aresq = arx * arx + ary * ary + arz * arz + !corr2 = ( gx * arx + gy * ary + gz * arz ) / are * dpn ! Maybe we don't need dpn factor? + + dx = xc(inn) - xc(inp) + dy = yc(inn) - yc(inp) + dz = zc(inn) - zc(inp) + dpn = sqrt(dx*dx + dy*dy +dz*dz) + + corr2 = (gx*dx + gy*dy + gz*dz)/dpn + + ! Finally cubic scheme, central scheme + high order corrections + face_value = central + corr1 - corr2 + + end function + + !*********************************************************************** ! function face_value_2nd_upwind_flux_limiter(ijp, ijn, lambda, u, dUdxi) result(face_value) diff --git a/src-par/jacobi.f90 b/src-par/jacobi.f90 old mode 100644 new mode 100755 diff --git a/src-par/k_epsilon_rng.f90 b/src-par/k_epsilon_rng.f90 old mode 100644 new mode 100755 diff --git a/src-par/k_epsilon_std.f90 b/src-par/k_epsilon_std.f90 old mode 100644 new mode 100755 diff --git a/src-par/k_epsilon_zeta_f.f90 b/src-par/k_epsilon_zeta_f.f90 old mode 100644 new mode 100755 diff --git a/src-par/k_eqn_eddy.f90 b/src-par/k_eqn_eddy.f90 old mode 100644 new mode 100755 diff --git a/src-par/k_omega_sst.f90 b/src-par/k_omega_sst.f90 old mode 100644 new mode 100755 diff --git a/src-par/main.f90 b/src-par/main.f90 old mode 100644 new mode 100755 index 9b21ec2..273049e --- a/src-par/main.f90 +++ b/src-par/main.f90 @@ -13,12 +13,13 @@ program cappuccino use types use parameters use geometry + use sparse_matrix use variables use title_mod use temperature use concentration use fieldManipulation - use sparse_matrix + use periodicity use utils use mpi @@ -88,7 +89,8 @@ program cappuccino ! Initialisation of fields call init - call add_random_noise_to_field(U,20) + !call add_random_noise_to_field(U,20) + call face_mapping ! !=============================================== ! T i m e l o o p : @@ -114,7 +116,7 @@ program cappuccino ! Courant number report: call CourantNo - ! if ( mod(itime,10).eq.0 ) call add_random_noise_to_field( U, 20 ) + !if ( mod(itime,10).eq.0 ) call add_random_noise_to_field( U, 10 ) ! !=============================================== @@ -138,7 +140,7 @@ program cappuccino if(lturb) call correct_turbulence() !Scalars: Temperature , temperature variance, and concentration eqs. - if(lcal(ien)) call calculate_temperature_field() + if(lcal(ien)) call calculate_temperature_field ! if(lcal(ivart)) call calculate_temperature_variance_field() diff --git a/src-par/matrix.f90 b/src-par/matrix.f90 old mode 100644 new mode 100755 diff --git a/src-par/mgmres.f90 b/src-par/mgmres.f90 old mode 100644 new mode 100755 diff --git a/src-par/modules_allocatable.f90 b/src-par/modules_allocatable.f90 old mode 100644 new mode 100755 index 1179f5b..5beeed6 --- a/src-par/modules_allocatable.f90 +++ b/src-par/modules_allocatable.f90 @@ -104,6 +104,7 @@ module parameters logical :: lcds_flnt = .false. logical :: l2nd_flnt = .false. logical :: lmuscl_flnt = .false. + logical :: lcubic = .false. logical :: flux_limiter = .false. diff --git a/src-par/my_mpi_module.f90 b/src-par/my_mpi_module.f90 new file mode 100755 index 0000000..77e564f --- /dev/null +++ b/src-par/my_mpi_module.f90 @@ -0,0 +1,212 @@ +module my_mpi_module +! +! Module that contains data and functions to perform inter-process exchange +! of data in buffer cells, between processes, in parallel execution of the program. +! + use types + + implicit none + + ! MPI related + integer :: lenbuf ! Buffer size, total no of faces that divide this and other domains + integer :: numConnections ! broj konektovanih domena na ovaj trenutni + integer, dimension(:), allocatable :: neighbProcNo ! size[1,num_connections]; Value: self descriptive. + integer, dimension(:), allocatable :: neighbProcOffset ! size[1,num_connections+1]; Value: Where, in arrays of size lenbuf, do the faces of certain conection start. + integer, dimension(:), allocatable :: bufind ! size[1,len_buffer]; Represents indexes of cell at process boudary. + real(dp), dimension(:), allocatable :: buffer ! size[1,len_buffer]; Stores buffer values of type real. + + public + +contains + +! +!*********************************************************************** +! + subroutine global_isum(i) +! +!*********************************************************************** +! +! Estimates global sum among all processors of an integer variable. +! +!*********************************************************************** +! + use types + use mpi + + implicit none + + integer :: i + + integer :: isum + integer :: ierr + + call mpi_allreduce & + (i, & ! send buffer + isum, & ! recv buffer + 1, & ! length + mpi_integer, & ! datatype + mpi_sum, & ! operation + mpi_comm_world, & ! communicator + ierr) + + i = isum + + end subroutine global_isum + +! +!*********************************************************************** +! + subroutine global_sum(phi) +! +!*********************************************************************** +! +! Estimates global sum among all processors. +! Used e.g. in dot product. Every process creates it own sum +! end stores it in phi. Than it all gets gathered and summed and sent +! back to each process. +! +!*********************************************************************** +! + use types + use mpi + + implicit none + + real(dp), intent(inout) :: phi + + integer :: ierr + real(dp) :: phisum + + CALL MPI_BARRIER(MPI_COMM_WORLD,IERR) + + CALL MPI_ALLREDUCE & + (phi, & ! send buffer + phisum, & ! recv buffer + 1, & ! length + MPI_DOUBLE_PRECISION, & ! datatype mpi_double_precision + MPI_SUM, & ! operation + MPI_COMM_WORLD, & ! communicator + ierr) + + phi = phisum + + end subroutine global_sum + +! +!*********************************************************************** +! + subroutine global_max(phi) +! +!*********************************************************************** +! +! Estimates global maximum value of phi among all processes. +! Every process creates it own maximum end stores it phi. +! Than it all gets gathered and summed and sent back to each process. +! +!*********************************************************************** +! + use types + use mpi + + implicit none + + + real(dp) :: phi + + real(dp) :: phimax + integer :: ierr + + call mpi_allreduce & + (phi, & ! send buffer + phimax, & ! recv buffer + 1, & ! length + mpi_double_precision, & ! datatype + mpi_max, & ! operation + mpi_comm_world, & ! communicator + ierr) + + phi = phimax + + end subroutine global_max + +! +!*********************************************************************** +! + subroutine global_min(phi) +! +!*********************************************************************** +! +! Estimates global minimum value of phi among all processes. +! Every process creates it own minimum end stores it phi. +! Than it all gets gathered and summed and sent back to each process. +! +!*********************************************************************** +! + use types + use mpi + + implicit none + + real(dp) :: phi + + real(dp) :: phimin + integer :: ierr + + call mpi_allreduce & + (phi, & ! send buffer + phimin, & ! recv buffer + 1, & ! length + mpi_double_precision, & ! datatype + mpi_min, & ! operation + mpi_comm_world, & ! communicator + ierr) + + phi = phimin + + end subroutine global_min + +! +!*********************************************************************** +! + subroutine synchronize +! +!*********************************************************************** +! +! Calls mpi_barrier and syncronizes all processes at an end of a task. +! +!*********************************************************************** +! + use mpi + + implicit none + + integer :: ierr + + CALL MPI_BARRIER(MPI_COMM_WORLD,IERR) + + end subroutine + +! +!*********************************************************************** +! + subroutine abort_mission +! +!*********************************************************************** +! +! Finalize parallel communication and program execution. +! +!*********************************************************************** +! + use parameters + use mpi + + implicit none + + call mpi_barrier(mpi_comm_world,ierr) + call mpi_finalize(ierr) + stop + + end subroutine + + +end module \ No newline at end of file diff --git a/src-par/openfiles.f90 b/src-par/openfiles.f90 old mode 100644 new mode 100755 diff --git a/src-par/output.f90 b/src-par/output.f90 old mode 100644 new mode 100755 diff --git a/src-par/periodicity.f90 b/src-par/periodicity.f90 new file mode 100755 index 0000000..259f6fc --- /dev/null +++ b/src-par/periodicity.f90 @@ -0,0 +1,218 @@ +module periodicity +! +! Written for periodic flows. We map flow from one end of the domain to the other. +! These boundary regions are usually not on same process in parallel run. +! We need to arrange pairs of face indices for sender and receiver first, +! which enables mapped data to get to the right place. +! We are dealing with unstructured meshes so there is no certainty how are faces +! ordered on both ends. +! + use types + use parameters + use geometry + use variables + use my_mpi_module + use mpi + + implicit none + + integer, parameter :: procSender = 3 ! Sending process + integer, parameter :: procReceiver = 0 ! Receiving process + integer, parameter :: asize = 4089 ! Number of faces in section, change for every case. + integer, dimension(:), allocatable :: mappedIndx + + private + + public :: face_mapping, recirculate_flow + + +contains + + +subroutine face_mapping + + implicit none + + + integer :: i,ib,iface + integer :: iDFriend + integer :: rectag,sendtag + integer :: length + integer :: status(mpi_status_size) + real(dp) :: buf(2*asize) + + integer :: indx, itemp + real(dp) :: ytemp, ztemp, mindist, dist + + ! Allocate array for mapped indices + allocate( mappedIndx(asize) ) + + ! Exchange + if (myid.eq.procReceiver) iDFriend = procSender + if (myid.eq.procSender) iDFriend = procReceiver + + sendtag = 123 + procSender + procReceiver ! tag for sending + rectag = sendtag ! tag for receiving + + length = 2*asize + + ! syncronization before communication + call MPI_Barrier(MPI_COMM_WORLD,ierr) + + + if ( myid.eq.procSender ) then + do ib=1,numBoundaries + if ( bctype(ib) == 'outlet' ) then ! NOTE, we use 'bcname' here. + do i=1,nfaces(ib) + iface = startFace(ib) + i + buf( i) = yf(iface) + buf( asize+i) = zf(iface) + end do + endif + enddo + + call MPI_SEND( & + buf, & + length, & + MPI_DOUBLE_PRECISION, & + iDFriend, & + sendtag, & + MPI_COMM_WORLD, & + ierr) + + endif + + + if ( myid.eq.procReceiver ) then + + call MPI_RECV( & + buf, & ! buffer + length, & ! length + MPI_DOUBLE_PRECISION, & ! datatype + iDFriend, & ! source, + rectag, & ! recvtag, + MPI_COMM_WORLD, & ! communicator + status, & ! status + ierr) ! error + + do ib=1,numBoundaries + if ( bctype(ib) == 'inlet' ) then + do i=1,nfaces(ib) + iface = startFace(ib) + i +! +! OK sad smo kod tog nekog fejsa, treba da vidimo koji mu je poslati podatak 'predodredjen' +! u tom smilsu da trazimo neku distancu po xf i yf i kada nadjemo poklapanje taj je indeks +! + mindist = 1e+30 + indx = 0 + do itemp=1,asize + ytemp = buf( itemp) + ztemp = buf(asize+itemp) + dist = abs(yf(iface)-ytemp) + abs(zf(iface)-ztemp) + if ( dist < mindist ) then + mindist = dist + indx = itemp + endif + enddo + + mappedIndx(i) = indx + + end do + endif + enddo + endif + + if (myid == 0) write(*,'(a)') ' **Mapped faces for flow recirculation.' + + +end subroutine + + +subroutine recirculate_flow + + implicit none + + integer :: i,ib,ini,iface + integer :: iDFriend + integer :: rectag,sendtag + integer :: length + integer :: status(mpi_status_size) + real(dp) :: buf(5*asize) + + ! Exchange + if (myid.eq.procReceiver) iDFriend = procSender + if (myid.eq.procSender) iDFriend = procReceiver + + sendtag = 123 + procSender + procReceiver ! tag for sending + rectag = sendtag ! tag for receiving + + length = 5*asize + + ! syncronization before communication + call MPI_Barrier(MPI_COMM_WORLD,ierr) + + + if ( myid.eq.procSender ) then + do ib=1,numBoundaries + if ( bctype(ib) == 'outlet' ) then ! NOTE, we use 'bcname' here. + ! asize = nfaces(ib) + do i=1,nfaces(ib) + iface = startFace(ib) + i + ini = iBndValueStart(ib) + i + buf(i) = u(ini) + buf( asize+i) = v(ini) + buf(2*asize+i) = w(ini) + buf(3*asize+i) = te(ini) + buf(4*asize+i) = vis(ini) + end do + endif + enddo + + call MPI_SEND( & + buf, & + length, & + MPI_DOUBLE_PRECISION, & + iDFriend, & + sendtag, & + MPI_COMM_WORLD, & + ierr) + + endif + + + if ( myid.eq.procReceiver ) then + + call MPI_RECV( & + buf, & ! buffer + length, & ! length + MPI_DOUBLE_PRECISION, & ! datatype + iDFriend, & ! source, + rectag, & ! recvtag, + MPI_COMM_WORLD, & ! communicator + status, & ! status + ierr) ! error + + do ib=1,numBoundaries + if ( bctype(ib) == 'inlet' ) then + do i=1,nfaces(ib) + iface = startFace(ib) + i + ini = iBndValueStart(ib) + i + u(ini) = buf( mappedIndx(i) ) + v(ini) = buf( asize+mappedIndx(i) ) + w(ini) = buf( 2*asize+mappedIndx(i) ) + te(ini) = buf( 3*asize+mappedIndx(i) ) + vis(ini) = buf( 4*asize+mappedIndx(i) ) + flmass(iface) = den(ini)*(arx(iface)*u(ini)+ary(iface)*v(ini)+arz(iface)*w(ini)) + + end do + endif + enddo + endif + + if (myid == 0) write(*,'(a)') ' **Recycled flow on periodic boundaries.' + + +end subroutine + + +end module \ No newline at end of file diff --git a/src-par/poisson.f90 b/src-par/poisson.f90 old mode 100644 new mode 100755 diff --git a/src-par/random_seed.f90 b/src-par/random_seed.f90 old mode 100644 new mode 100755 diff --git a/src-par/read_input.f90 b/src-par/read_input.f90 old mode 100644 new mode 100755 index be52e3c..7a593e2 --- a/src-par/read_input.f90 +++ b/src-par/read_input.f90 @@ -235,6 +235,8 @@ subroutine read_input_file l2nd_flnt = .true. case('muscl-f') lmuscl_flnt = .true. + case('cubic') + lcubic = .true. case default if (myid .eq. 0) write(*,'(a)') ' Using default convective scheme - 2nd order upwind.' l2nd_flnt = .true. @@ -304,7 +306,7 @@ subroutine read_input_file ! Open files for data at monitoring points ! - if( ltransient ) then + if( ltransient .and. mpoints>0 ) then ! nproc_char <- myid zapisan levo u vidu stringa. call i4_to_s_left ( myid, nproc_char ) diff --git a/src-par/readfiles.f90 b/src-par/readfiles.f90 old mode 100644 new mode 100755 diff --git a/src-par/recirculate_flow.f90 b/src-par/recirculate_flow.f90 old mode 100644 new mode 100755 diff --git a/src-par/recirculate_flow_periodichill.f90 b/src-par/recirculate_flow_periodichill.f90 old mode 100644 new mode 100755 diff --git a/src-par/recirculate_flow_stenosis.f90 b/src-par/recirculate_flow_stenosis.f90 old mode 100644 new mode 100755 index 74aae3f..8fd413f --- a/src-par/recirculate_flow_stenosis.f90 +++ b/src-par/recirculate_flow_stenosis.f90 @@ -15,8 +15,9 @@ subroutine recirculate_flow integer :: rectag,sendtag integer :: length integer :: status(mpi_status_size) - real(dp) :: buf(5*lenbuf) - + real(dp) :: buf(7*lenbuf) + integer :: indx, itemp + real(dp) :: ytemp, ztemp, mindist, dist asize = 4089 @@ -27,7 +28,7 @@ subroutine recirculate_flow sendtag = 123 + MYID + iDFriend ! tag for sending rectag = sendtag ! tag for receiving - length = 5*asize + length = 7*asize ! syncronization before communication call MPI_Barrier(MPI_COMM_WORLD,ierr) @@ -45,6 +46,8 @@ subroutine recirculate_flow buf(2*asize+i) = w(ini) buf(3*asize+i) = te(ini) buf(4*asize+i) = vis(ini) + buf(5*asize+i) = yf(iface) + buf(6*asize+i) = zf(iface) end do endif enddo @@ -77,12 +80,29 @@ subroutine recirculate_flow if ( bctype(ib) == 'inlet' ) then do i=1,nfaces(ib) iface = startFace(ib) + i + +! +! OK sad smo kod tog nekog fejsa, treba da vidimo koji mu je poslati podatak 'predodredjen' +! u tom smilsu da trazimo neku distancu po xf i yf i kada nadjemo poklapanje taj je indeks +! + mindist = 1e+30 + indx = 0 + do itemp=1,asize + ytemp = buf(5*asize+itemp) + ztemp = buf(6*asize+itemp) + dist = abs(yf(iface)-ytemp) + abs(zf(iface)-ztemp) + if ( dist < mindist ) then + mindist = dist + indx = itemp + endif + enddo + ini = iBndValueStart(ib) + i - u(ini) = buf(i) - v(ini) = buf( asize+i) - w(ini) = buf(2*asize+i) - te(ini) = buf(3*asize+i) - vis(ini) = buf(4*asize+i) + u(ini) = buf(indx) + v(ini) = buf( asize+indx) + w(ini) = buf(2*asize+indx) + te(ini) = buf(3*asize+indx) + vis(ini) = buf(4*asize+indx) flmass(iface) = den(ini)*(arx(iface)*u(ini)+ary(iface)*v(ini)+arz(iface)*w(ini)) end do endif diff --git a/src-par/scalar_fluxes.f90 b/src-par/scalar_fluxes.f90 old mode 100644 new mode 100755 diff --git a/src-par/spalart_allmaras.f90 b/src-par/spalart_allmaras.f90 old mode 100644 new mode 100755 diff --git a/src-par/sparse_matrix.f90 b/src-par/sparse_matrix.f90 old mode 100644 new mode 100755 diff --git a/src-par/synchronize_mpi.f90 b/src-par/synchronize_mpi.f90 old mode 100644 new mode 100755 diff --git a/src-par/temperature.f90 b/src-par/temperature.f90 old mode 100644 new mode 100755 index 510adae..a8ff8da --- a/src-par/temperature.f90 +++ b/src-par/temperature.f90 @@ -6,7 +6,6 @@ module temperature use parameters use geometry use variables - use scalar_fluxes, only: facefluxsc implicit none @@ -22,7 +21,7 @@ module temperature contains -subroutine calculate_temperature_field() +subroutine calculate_temperature_field ! ! Main module routine to assemble and solve temperature field. ! @@ -64,13 +63,13 @@ subroutine calcsc(Fi,dFidxi,ifi) ! ! Local variables ! - integer :: i, k, inp, ijp, ijn, ijb, ib, iface, ipro + integer :: i, k, inp, ijp, ijn, ijb, ib, iface, ipro, iWall real(dp) :: gam, prtr, apotime, urfrs, urfms real(dp) :: cap, can, suadd real(dp) :: off_diagonal_terms real(dp) :: coef,dcoef real(dp) :: fimax,fimin - + real(dp) :: are,nxf,nyf,nzf,dTn ! Variable specific coefficients: gam = gds(ifi) @@ -157,6 +156,7 @@ subroutine calcsc(Fi,dFidxi,ifi) ! Boundary conditions ! + iWall = 0 iPro = 0 do ib=1,numBoundaries @@ -197,7 +197,7 @@ subroutine calcsc(Fi,dFidxi,ifi) ijp = owner(iface) ijb = iBndValueStart(ib) + i - call facefluxsc( ijp, ijb, & + call facefluxsc_boundary( ijp, ijb, & xf(iface), yf(iface), zf(iface), arx(iface), ary(iface), arz(iface), & flmass(iface), & Fi, dFidxi, prtr, cap, can, suadd) @@ -216,7 +216,7 @@ subroutine calcsc(Fi,dFidxi,ifi) ijp = owner(iface) ijb = iBndValueStart(ib) + i - call facefluxsc( ijp, ijb, & + call facefluxsc_boundary( ijp, ijb, & xf(iface), yf(iface), zf(iface), arx(iface), ary(iface), arz(iface), & flmass(iface), & FI, dFidxi, prtr, cap, can, suadd ) @@ -227,20 +227,22 @@ subroutine calcsc(Fi,dFidxi,ifi) end do - elseif ( bctype(ib) == 'wallIsoth') then + elseif ( bctype(ib) == 'wall') then - ! Isothermal wall boundaries + ! Isothermal wall boundaries (that's Dirichlet on temperature) do i=1,nfaces(ib) iface = startFace(ib) + i ijp = owner(iface) ijb = iBndValueStart(ib) + i + iWall = iWall + 1 - - dcoef = (viscos+(vis(ijp)-viscos)/sigt)/pranl ! Vrlo diskutabilno, proveriti! - coef=dcoef*srdw(i) - a(diag(ijp)) = a(diag(ijp)) + coef + dcoef = viscos/pranl+(vis(ijp)-viscos)/sigt + coef=dcoef*srdw(iWall) + !# are = sqrt(arx(iface)**2+ary(iface)**2+arz(iface)**2) + !# coef = dcoef*are/dnw(iWall) + sp(ijp) = sp(ijp) + coef su(ijp) = su(ijp) + coef*t(ijb) enddo @@ -255,20 +257,41 @@ subroutine calcsc(Fi,dFidxi,ifi) ijp = owner(iface) ijb = iBndValueStart(ib) + i - t(ijb)=t(ijp) enddo elseif ( bctype(ib) == 'wallQFlux') then + ! Prescribed heat flux wall boundaries (that's actually non homo Neumann on temperature) + do i=1,nfaces(ib) iface = startFace(ib) + i ijp = owner(iface) ijb = iBndValueStart(ib) + i + iWall = iWall + 1 + + dcoef = viscos/pranl+(vis(ijp)-viscos)/sigt + coef=dcoef*srdw(iWall) + + ! Value of the temprature gradient in normal direction is set trough + ! proper choice of component values. Let's project in to normal direction + ! to recover normal gradient. + + ! Face area + are = sqrt(arx(iface)**2+ary(iface)**2+arz(iface)**2) + + ! Face normals + nxf = arx(iface)/are + nyf = ary(iface)/are + nzf = arz(iface)/are + ! Gradient in face-normal direction + dTn = dTdxi(1,ijb)*nxf+dTdxi(2,ijb)*nyf+dTdxi(3,ijb)*nzf + ! Explicit source + su(ijp) = su(ijp) + coef*dTn enddo @@ -396,4 +419,295 @@ subroutine calcsc(Fi,dFidxi,ifi) end subroutine calcsc + + +!*********************************************************************** +! +subroutine facefluxsc(ijp, ijn, xf, yf, zf, arx, ary, arz, & + flmass, lambda, gam, FI, dFidxi, & + prtr, cap, can, suadd) +! +!*********************************************************************** +! + use types + use parameters + use variables, only: vis + use interpolation + use gradients + + implicit none +! +!*********************************************************************** +! + + integer, intent(in) :: ijp, ijn + real(dp), intent(in) :: xf,yf,zf + real(dp), intent(in) :: arx, ary, arz + real(dp), intent(in) :: flmass + real(dp), intent(in) :: lambda + real(dp), intent(in) :: gam + real(dp), dimension(numTotal), intent(in) :: Fi + real(dp), dimension(3,numCells), intent(in) :: dFidxi + real(dp), intent(in) :: prtr + real(dp), intent(inout) :: cap, can, suadd + + +! Local variables + integer :: nrelax + character(len=12) :: approach + real(dp) :: are + real(dp) :: xpn,ypn,zpn!, xi,yi,zi,r1,r2,psie,psiw + real(dp) :: dpn + real(dp) :: Cp,Ce + real(dp) :: fii,fm + real(dp) :: fdfie,fdfii,fcfie,fcfii,ffic + real(dp) :: de, game, viste + real(dp) :: fxp,fxn + real(dp) :: dfixi,dfiyi,dfizi + real(dp) :: dfixii,dfiyii,dfizii +!---------------------------------------------------------------------- + + ! > Geometry: + + ! Face interpolation factor + fxn=lambda + fxp=1.0_dp-lambda + + ! Distance vector between cell centers + xpn=xc(ijn)-xc(ijp) + ypn=yc(ijn)-yc(ijp) + zpn=zc(ijn)-zc(ijp) + + ! Distance from P to neighbor N + dpn=sqrt(xpn**2+ypn**2+zpn**2) + + ! cell face area + are=sqrt(arx**2+ary**2+arz**2) + + + ! Cell face diffussion coefficient + viste = (vis(ijp)-viscos)*fxp+(vis(ijn)-viscos)*fxn + game = viscos*prtr+viste/sigt + + + ! Difusion coefficient for linear system + ! de = game*are/dpn + de = game*(arx*arx+ary*ary+arz*arz)/(xpn*arx+ypn*ary+zpn*arz) + + ! Convection fluxes - uds + fm = flmass + ce = min(fm,zero) + cp = max(fm,zero) + + !------------------------------------------------------- + ! System matrix coefficients + !------------------------------------------------------- + cap = -de - max(fm,zero) + can = -de + min(fm,zero) + !------------------------------------------------------- + + + !------------------------------------------------------- + ! Explicit part of diffusion + !------------------------------------------------------- + + nrelax = 0 + approach = 'skewness' + ! approach = 'offset' + + call sngrad(ijp, ijn, xf, yf, zf, arx, ary, arz, lambda, & + Fi, dFidxi, nrelax, approach, dfixi, dfiyi, dfizi, & + dfixii, dfiyii, dfizii) + + + ! Explicit diffusion + fdfie = game*(dfixii*arx + dfiyii*ary + dfizii*arz) + + ! Implicit diffussion + fdfii = game*are/dpn*(dfixi*xpn+dfiyi*ypn+dfizi*zpn) + + + !------------------------------------------------------- + ! Explicit higher order convection + !------------------------------------------------------- + if( flmass .ge. zero ) then + ! Flow goes from p to pj - > p is the upwind node + fii = face_value(ijp, ijn, xf, yf, zf, fxp, fi, dFidxi) + else + ! Other way, flow goes from pj, to p -> pj is the upwind node. + fii = face_value(ijn, ijp, xf, yf, zf, fxn, fi, dFidxi) + endif + + fcfie = fm*fii + + !------------------------------------------------------- + ! Explicit first order convection + !------------------------------------------------------- + fcfii = ce*fi(ijn)+cp*fi(ijp) + + !------------------------------------------------------- + ! Deffered correction for convection = gama_blending*(high-low) + !------------------------------------------------------- + ffic = gam*(fcfie-fcfii) + + !------------------------------------------------------- + ! Explicit part of fluxes + !------------------------------------------------------- + suadd = -ffic+fdfie-fdfii + +end subroutine + + +!*********************************************************************** +! +subroutine facefluxsc_boundary(ijp, ijn, xf, yf, zf, arx, ary, arz, flmass, FI, dFidxi, prtr, cap, can, suadd) +! +!*********************************************************************** +! + use types + use parameters + use variables, only: vis + use gradients + + implicit none +! +!*********************************************************************** +! + + integer, intent(in) :: ijp, ijn + real(dp), intent(in) :: xf,yf,zf + real(dp), intent(in) :: arx, ary, arz + real(dp), intent(in) :: flmass + real(dp), dimension(numTotal), intent(in) :: Fi + real(dp), dimension(3,numTotal), intent(in) :: dFidxi + real(dp), intent(in) :: prtr + real(dp), intent(inout) :: cap, can, suadd + + +! Local variables + real(dp) :: are + real(dp) :: xpn,ypn,zpn + real(dp) :: nxx,nyy,nzz,ixi1,ixi2,ixi3,dpn,costheta,costn + real(dp) :: Cp,Ce + real(dp) :: fm + real(dp) :: fdfie,fdfii + real(dp) :: d1x,d1y,d1z,d2x,d2y,d2z + real(dp) :: de, vole, game, viste + real(dp) :: fxp,fxn + real(dp) :: dfixi,dfiyi,dfizi + real(dp) :: dfixii,dfiyii,dfizii + +!---------------------------------------------------------------------- + + dfixi = 0.0_dp + dfiyi = 0.0_dp + dfizi = 0.0_dp + + ! > Geometry: + + ! Face interpolation factor + fxn=1.0_dp + fxp=0.0_dp + + ! Distance vector between cell center and face center + xpn=xf-xc(ijp) + ypn=yf-yc(ijp) + zpn=zf-zc(ijp) + + ! Distance from P to neighbor N + dpn=sqrt(xpn**2+ypn**2+zpn**2) + + ! Components of the unit vector i_ksi + ixi1=xpn/dpn + ixi2=ypn/dpn + ixi3=zpn/dpn + + ! Cell face area + are=sqrt(arx**2+ary**2+arz**2) + + ! Unit vectors of the normal + nxx=arx/are + nyy=ary/are + nzz=arz/are + + ! Angle between vectors n and i_xi - we need cosine + costheta=nxx*ixi1+nyy*ixi2+nzz*ixi3 + + ! Relaxation factor for higher-order cell face gradient + ! Minimal correction: nrelax = +1 : + !costn = costheta + ! Orthogonal correction: nrelax = 0 : + costn = 1.0_dp + ! Over-relaxed approach: nrelax = -1 : + !costn = 1./costheta + ! In general, nrelax can be any signed integer from some + ! reasonable interval [-nrelax,nrelax] (or maybe even real number): + !costn = costheta**nrelax + + ! dpp_j * sf + vole=xpn*arx+ypn*ary+zpn*arz + + + ! Turbulent viscosity + viste = vis(ijn)-viscos + + ! Cell face diffussion coefficient for TEMPERATURE + game = viscos*prtr + viste/sigt + + + !-- Skewness correction -- + + ! Overrelaxed correction vector d2, where s=dpn+d2 + d1x = costn + d1y = costn + d1z = costn + + d2x = xpn*costn + d2y = ypn*costn + d2z = zpn*costn + + ! Interpolate gradients defined at CV centers to faces.. + ! It should be dFidxi(:,ijn), because fxn=1.0, but we write dFidxi(:,ijp) because constant gradient + ! is applied between cell center and boundary cell face. + dfixi = dFidxi(1,ijp) + dfiyi = dFidxi(2,ijp) + dfizi = dFidxi(3,ijp) + + !.....du/dx_i interpolated at cell face: + dfixii = dfixi*d1x + arx/vole*( fi(ijn)-fi(ijp)-dfixi*d2x-dfiyi*d2y-dfizi*d2z ) + dfiyii = dfiyi*d1y + ary/vole*( fi(ijn)-fi(ijp)-dfixi*d2x-dfiyi*d2y-dfizi*d2z ) + dfizii = dfizi*d1z + arz/vole*( fi(ijn)-fi(ijp)-dfixi*d2x-dfiyi*d2y-dfizi*d2z ) + + !-- Skewness correction -- + + + ! Explicit diffusion + fdfie = game*(dfixii*arx + dfiyii*ary + dfizii*arz) + + ! Implicit diffussion + fdfii = game*are/dpn*(dfixi*xpn+dfiyi*ypn+dfizi*zpn) + + + ! Difusion coefficient + de = game*are/dpn + + ! Convection fluxes - uds + fm = flmass + ce = min(fm,zero) + cp = max(fm,zero) + + ! System matrix coefficients + cap = -de - max(fm,zero) + can = -de + min(fm,zero) + + !------------------------------------------------------- + ! Explicit part of fluxes + !------------------------------------------------------- + suadd = fdfie-fdfii + !------------------------------------------------------- + +end subroutine + + + end module temperature \ No newline at end of file diff --git a/src-par/tensor_fields.f90 b/src-par/tensor_fields.f90 old mode 100644 new mode 100755 diff --git a/src-par/time_shift.f90 b/src-par/time_shift.f90 old mode 100644 new mode 100755 diff --git a/src-par/turbulence.f90 b/src-par/turbulence.f90 new file mode 100755 index 0000000..9089bfd --- /dev/null +++ b/src-par/turbulence.f90 @@ -0,0 +1,85 @@ +module turbulence +! +! Module that contains driver subroutines for turbulence models, +! where each turbulence model is in separate module and is included here. +! + + use parameters, only: TurbModel + use variables, only: u,v,w,dudxi,dvdxi,dwdxi + use gradients + use k_epsilon_std + use k_epsilon_rng + use k_omega_sst + use k_eqn_eddy + use spalart_allmaras + + + implicit none + + public + + +contains + + +subroutine correct_turbulence() + + implicit none + + ! Velocity gradients: + call grad(U,dUdxi) + call grad(V,dVdxi) + call grad(W,dWdxi) + + call calcstress + + call calc_strain_and_vorticity + + select case (TurbModel) + + case (1) + call correct_turbulence_k_epsilon_std() + case (2) + call correct_turbulence_k_epsilon_rng() + case (3) + LowRe = .false. + call correct_turbulence_k_omega_sst() + case (4) + LowRe = .true. + call correct_turbulence_k_omega_sst() + case (5) + call correct_turbulence_spalart_allmaras() + case (6) + call correct_turbulence_k_eqn_eddy() + + case default + + end select + +end subroutine + + +subroutine correct_turbulence_inlet() + + implicit none + + select case (TurbModel) + case (1) + call correct_turbulence_inlet_k_epsilon_std() + case (2) + call correct_turbulence_inlet_k_epsilon_rng() + case (3) + call correct_turbulence_inlet_k_omega_sst() + case (4) + call correct_turbulence_inlet_k_omega_sst() + case (5) + call correct_turbulence_inlet_spalart_allmaras() + case (6) + call correct_turbulence_inlet_k_eqn_eddy() + case default + end select + +end subroutine + + +end module \ No newline at end of file diff --git a/src-par/updateVelocityAtBoundary.f90 b/src-par/updateVelocityAtBoundary.f90 old mode 100644 new mode 100755 diff --git a/src-par/utils.f90 b/src-par/utils.f90 old mode 100644 new mode 100755 index 4ca1069..53e0df4 --- a/src-par/utils.f90 +++ b/src-par/utils.f90 @@ -1134,4 +1134,61 @@ pure function str_int(i) result(s) write(s, '(i0)') i end function +! +! Unknown origin - please contact me for authorship +! +subroutine init_random_seed() + use iso_fortran_env, only: int64 + implicit none + integer, allocatable :: seed(:) + integer :: i, n, un, istat, dt(8), pid + integer(int64) :: t + + call random_seed(size = n) + allocate(seed(n)) + ! First try if the OS provides a random number generator + open(newunit=un, file="/dev/urandom", access="stream", & + form="unformatted", action="read", status="old", iostat=istat) + if (istat == 0) then + read(un) seed + close(un) + else + ! Fallback to XOR:ing the current time and pid. The PID is + ! useful in case one launches multiple instances of the same + ! program in parallel. + call system_clock(t) + if (t == 0) then + call date_and_time(values=dt) + t = (dt(1) - 1970) * 365_int64 * 24 * 60 * 60 * 1000 & + + dt(2) * 31_int64 * 24 * 60 * 60 * 1000 & + + dt(3) * 24_int64 * 60 * 60 * 1000 & + + dt(5) * 60 * 60 * 1000 & + + dt(6) * 60 * 1000 + dt(7) * 1000 & + + dt(8) + end if + pid = getpid() + t = ieor(t, int(pid, kind(t))) + do i = 1, n + seed(i) = lcg(t) + end do + end if + call random_seed(put=seed) +contains + ! This simple PRNG might not be good enough for real work, but is + ! sufficient for seeding a better PRNG. + function lcg(s) + integer :: lcg + integer(int64) :: s + if (s == 0) then + s = 104729 + else + s = mod(s, 4294967296_int64) + end if + s = mod(s * 279470273_int64, 4294967291_int64) + lcg = int(mod(s, int(huge(0), int64)), kind(0)) + end function lcg +end subroutine init_random_seed + + + end module \ No newline at end of file diff --git a/src-par/vortexIdentification.f90 b/src-par/vortexIdentification.f90 old mode 100644 new mode 100755 diff --git a/src-par/write_restart_files.f90 b/src-par/write_restart_files.f90 old mode 100644 new mode 100755 diff --git a/src-par/writefiles.f90 b/src-par/writefiles.f90 old mode 100644 new mode 100755 index fdd9f05..f81e370 --- a/src-par/writefiles.f90 +++ b/src-par/writefiles.f90 @@ -44,6 +44,7 @@ subroutine writefiles call execute_command_line('mkdir '//trim( timechar )//'/processor'//trim(nproc_char) ) call execute_command_line('mkdir '//trim( timechar )//'/processor'//trim(nproc_char)//'/boundary') + ! ! > Open and write a .vtm file for multi-block datasets for interior + boundary regions data. ! @@ -131,7 +132,15 @@ subroutine writefiles call vtu_write_XML_vector_field( output_unit, 'Uavg', u_aver,v_aver,w_aver ) - if(solveTKE) call vtu_write_XML_scalar_field ( output_unit, 'tkeAvg', te_aver ) + if(lturb) then + call vtu_write_XML_scalar_field ( output_unit, '05uiui', te_aver ) + call vtu_write_XML_scalar_field ( output_unit, 'uu', uu_aver ) + call vtu_write_XML_scalar_field ( output_unit, 'vv', vv_aver ) + call vtu_write_XML_scalar_field ( output_unit, 'ww', ww_aver ) + call vtu_write_XML_scalar_field ( output_unit, 'uv', uv_aver ) + call vtu_write_XML_scalar_field ( output_unit, 'uw', uw_aver ) + call vtu_write_XML_scalar_field ( output_unit, 'vw', vw_aver ) + endif if(lcal(ien) ) call vtu_write_XML_scalar_field ( output_unit, 'Tavg', t_aver ) @@ -261,7 +270,15 @@ subroutine writefiles call vtu_write_XML_vector_field_boundary ( output_unit, 'Uavg', u_aver,v_aver,w_aver, istart, iend ) - if(solveTKE) call vtu_write_XML_scalar_field_boundary ( output_unit, 'tkeAvg', te_aver, istart, iend ) + if(lturb) then + call vtu_write_XML_scalar_field_boundary ( output_unit, '05uiui', te_aver, istart, iend ) + call vtu_write_XML_scalar_field_boundary ( output_unit, 'uu', uu_aver, istart, iend ) + call vtu_write_XML_scalar_field_boundary ( output_unit, 'vv', vv_aver, istart, iend ) + call vtu_write_XML_scalar_field_boundary ( output_unit, 'ww', ww_aver, istart, iend ) + call vtu_write_XML_scalar_field_boundary ( output_unit, 'uv', uv_aver, istart, iend ) + call vtu_write_XML_scalar_field_boundary ( output_unit, 'uw', uw_aver, istart, iend ) + call vtu_write_XML_scalar_field_boundary ( output_unit, 'vw', vw_aver, istart, iend ) + endif if(lcal(ien) ) call vtu_write_XML_scalar_field_boundary ( output_unit, 'Tavg', t_aver, istart, iend ) diff --git a/src-par/writehistory.f90 b/src-par/writehistory.f90 old mode 100644 new mode 100755 index c662234..35222bd --- a/src-par/writehistory.f90 +++ b/src-par/writehistory.f90 @@ -8,8 +8,8 @@ subroutine writehistory ! !*********************************************************************** ! - use parameters, only: ltransient,time,mpoints,myid - use variables, only: u,v,w,te,ed + use parameters, only: ltransient,time,mpoints + use variables implicit none ! @@ -17,7 +17,7 @@ subroutine writehistory ! integer :: i,inp,imon - if(ltransient ) then + if(ltransient .and. mpoints>0 ) then read(89,*) mpoints diff --git a/src/Makefile b/src/Makefile deleted file mode 100644 index 5ab57b7..0000000 --- a/src/Makefile +++ /dev/null @@ -1,123 +0,0 @@ -# -# Makefile for caffa3d program -# - -# Compiler: -F90 = gfortran - -# Compiler flags: -LFLAGS = -llapack -F90FLAGS = -Wall -O2 - -MOD_FILES=\ - modules_allocatable.f90 \ - utils.f90 \ - matrix.f90 \ - geometry.f90 \ - tensor_fields.f90 \ - field_initialization.f90\ - sparse_matrix.f90 \ - gradients.f90 \ - output.f90 \ - interpolation.f90 \ - scalar_fluxes.f90 - - -LINEAR_SOLVER_FILES=\ - iccg.f90 \ - bicgstab.f90 \ - dpcg.f90 \ - mgmres.f90 \ - gauss-seidel.f90 - -TURBULENCE_FILES=\ - temperature.f90 \ - concentration.f90 \ - k_epsilon_std.f90\ - k_omega_sst.f90 \ - k_epsilon_rng.f90 \ - spalart_allmaras.f90 \ - k_eqn_eddy.f90 -# k_epsilon_zeta_f.f90 \ - -CAFFA_FILES=\ - allocate.f90 \ - asm_stress_terms.f90 \ - asm_heatflux_terms.f90 \ - adjustMassFlow.f90 \ - bcin.f90 \ - bpres.f90 \ - fieldManipulation.f90 \ - faceflux_velocity.f90 \ - facefluxmass.f90 \ - calcheatflux.f90 \ - calcp-multiple_correction_SIMPLE.f90 \ - calcstress.f90 \ - calc_strain_and_vorticity.f90 \ - calcuvw.f90 \ - calc_statistics.f90 \ - updateVelocityAtBoundary.f90 \ - correct_turbulence.f90 \ - correct_turbulence_inlet.f90 \ - fvm_laplacian.f90 \ - init.f90 \ - openfiles.f90 \ - PISO_multiple_correction.f90 \ - readfiles.f90 \ - read_input.f90 \ - time_shift.f90 \ - writefiles.f90 \ - write_restart_files.f90 \ - writehistory.f90 \ - main.f90 - - -POISSON_FILES=\ - fvm_laplacian.f90 \ - poisson.f90 - -STEADYHEAT_FILES=\ - fvm_laplacian.f90 \ - steadyHeatEq.f90 - - -# -# How to create object files: -# -MODS = ${MOD_FILES:.f90=.o} -TURBULENCE = ${TURBULENCE_FILES:.f90=.o} -LINEAR_SOLVERS = ${LINEAR_SOLVER_FILES:.f90=.o} -CAFFAOBJS = ${CAFFA_FILES:.f90=.o} -POISSONOBJS = ${POISSON_FILES:.f90=.o} -STEADYHEATOBJS = ${STEADYHEAT_FILES:.f90=.o} - -################################################################## -# Targets for make. -################################################################## - -all: caffa3d poisson steadyHeatEq - -caffa3d: ${MODS} ${TURBULENCE} ${LINEAR_SOLVERS} ${CAFFAOBJS} - @echo "Linking" $@ "... " - ${F90} ${CAFFAOBJS} ${MODS} ${TURBULENCE} ${LINEAR_SOLVERS} ${LFLAGS} ${INCS} -o ../bin/caffa3d - -poisson: ${MODS} ${LINEAR_SOLVERS} ${POISSONOBJS} - @echo "Linking" $@ "... " - ${F90} ${POISSONOBJS} ${MODS} ${LINEAR_SOLVERS} ${LFLAGS} ${INCS} -o ../bin/poisson - -steadyHeatEq: ${MODS} ${LINEAR_SOLVERS} ${STEADYHEATOBJS} - @echo "Linking" $@ "... " - ${F90} ${STEADYHEATOBJS} ${MODS} ${LINEAR_SOLVERS} ${LFLAGS} ${INCS} -o ../bin/steadyHeatEq - -.PHONY: clean -clean: - @rm *.o *.mod ../bin/caffa3d ../bin/poisson ../bin/steadyHeatEq - -################################################################## -# Generic rules -################################################################## - -.SUFFIXES : .f90 - -.f90.o: - ${F90} ${F90FLAGS} -c ${INCS} ${@:.o=.f90} diff --git a/src/Makefile-with-LIS b/src/Makefile-with-LIS deleted file mode 100644 index f302932..0000000 --- a/src/Makefile-with-LIS +++ /dev/null @@ -1,132 +0,0 @@ -# -# Makefile for caffa3d program -# - -# Compiler flags: -LFLAGS = -llapack -F90FLAGS = -Wall -O2 - -L95FLAGS = -fopenmp -llis -llapack -F95FLAGS = -Wall -O2 -cpp - -LIS_DIR = /usr/local/include - -# Compiler: -F90 = gfortran - -MOD_FILES=\ - modules_allocatable.f90 \ - utils.f90 \ - matrix.f90 \ - mesh_geometry_and_topology.f90 \ - tensor_fields.f90 \ - sparse_matrix.f90 \ - LIS_linear_solver_library.f95 \ - gradients.f90 \ - output.f90 \ - interpolation.f90 \ - scalar_fluxes.f90 - - -LINEAR_SOLVER_FILES=\ - iccg.f90 \ - bicgstab.f90 \ - dpcg.f90 \ - mgmres.f90 \ - gauss-seidel.f90 - -TURBULENCE_FILES=\ - temperature.f90 \ - concentration.f90 \ - k_epsilon_std.f90 \ - k_omega_sst.f90 \ - k_epsilon_rng.f90 \ - spalart_allmaras.f90 \ - k_eqn_eddy.f90 - -CAFFA_FILES=\ - allocate.f90 \ - asm_stress_terms.f90 \ - asm_heatflux_terms.f90 \ - adjustMassFlow.f90 \ - bcin.f90 \ - bpres.f90 \ - fieldManipulation.f90 \ - faceflux_velocity.f90 \ - facefluxmass.f90 \ - calcheatflux.f90 \ - calcp-multiple_correction_SIMPLE.f90 \ - calcstress.f90 \ - calcuvw.f90 \ - calc_statistics.f90 \ - correctBoundaryConditionsVelocity.f90 \ - correct_turbulence.f90 \ - correct_turbulence_inlet.f90 \ - fvm_laplacian.f90 \ - find_strain_rate.f90 \ - get_rAU_x_UEqnH.f90 \ - init.f90 \ - openfiles.f90 \ - PISO_multiple_correction.f90 \ - PIMPLE_multiple_correction.f90 \ - readfiles.f90 \ - read_input.f90 \ - random_seed.f90 \ - writefiles.f90 \ - write_restart_files.f90 \ - writehistory.f90 \ - main.f90 - -RK4_FILES=\ - assemble_pressure_eq_rk4Projection.f90 \ - fluxmass_plain.f90 \ - fluxuvw-explicit.f90 \ - main_rk4Projection.f90 - -POISSON_FILES=\ - fvm_laplacian.f90 \ - poisson.f90 - -# -# How to create object files: -# -MODS = ${MOD_FILES:.f90=.o} -TURBULENCE = ${TURBULENCE_FILES:.f90=.o} -LINEAR_SOLVERS = ${LINEAR_SOLVER_FILES:.f90=.o} -CAFFAOBJS = ${CAFFA_FILES:.f90=.o} -RK4OBJS = ${RK4_FILES:.f90=.o} -POISSONOBJS = ${POISSON_FILES:.f90=.o} - -################################################################## -# Targets for make. -################################################################## - -all: caffa3d poisson #rk4ProjectionCaffa - -caffa3d: ${MODS} ${TURBULENCE} ${LINEAR_SOLVERS} ${CAFFAOBJS} - @echo "Linking" $@ "... " - ${F90} ${CAFFAOBJS} ${MODS} ${TURBULENCE} ${LINEAR_SOLVERS} ${LFLAGS} ${L95FLAGS} ${INCS} -o ../bin/caffa3d - -rk4ProjectionCaffa: ${CAFFAOBJS} ${RK4OBJS} ${LINEAR_SOLVERS} - @echo "Linking" $@ "... " - ${F90} ${CAFFAOBJS} ${RK4OBJS} ${LINEAR_SOLVERS} ${LFLAGS} ${INCS} -o rk4ProjectionChannel - -poisson: ${MODS} ${LINEAR_SOLVERS} ${POISSONOBJS} - @echo "Linking" $@ "... " - ${F90} ${POISSONOBJS} ${MODS} ${LINEAR_SOLVERS} ${L95FLAGS} ${INCS} -o ../bin/poisson - -.PHONY: clean -clean: - @rm *.o *.mod ../bin/caffa3d ../bin/poisson - -################################################################## -# Generic rules -################################################################## - -.SUFFIXES : .f90 .f95 - -.f90.o: - ${F90} ${F90FLAGS} -c ${INCS} ${@:.o=.f90} - -.f95.o: - ${F90} ${F95FLAGS} -I${LIS_DIR} -c ${INCS} ${@:.o=.f95} diff --git a/src/cappuccino/CourantNo.f90 b/src/cappuccino/CourantNo.f90 old mode 100644 new mode 100755 index 7f4794e..e169247 --- a/src/cappuccino/CourantNo.f90 +++ b/src/cappuccino/CourantNo.f90 @@ -7,12 +7,12 @@ subroutine CourantNo use parameters, only: CoNum,meanCoNum, CoNumFixValue, CoNumFix, timestep, ltransient, itime, time use geometry, only: numCells, numInnerFaces, owner, neighbour, numBoundaries, bctype, nfaces, startFace, Vol use sparse_matrix, only: res - use variables, only: flmass + use variables, only: flmass,den implicit none integer :: i, ijp, ijn, inp, ib, iface - real(dp):: suma,dt + real(dp):: TotalVol,dt if (ltransient) then CoNum = 0.0_dp @@ -55,22 +55,22 @@ subroutine CourantNo ! Accumulate by looping trough cells - suma = 0.0_dp - + TotalVol = 0.0_dp + do inp=1,numCells - CoNum = max( CoNum , res(inp)/Vol(inp) ) + CoNum = max( CoNum , res(inp)/(den(inp)*Vol(inp)) ) - meanCoNum = meanCoNum + res(inp) + meanCoNum = meanCoNum + res(inp)/den(inp) - suma = suma + Vol(inp) + TotalVol = TotalVol + Vol(inp) enddo res = 0.0_dp CoNum = 0.5*CoNum*timestep - meanCoNum = 0.5*meanCoNum/suma*timestep + meanCoNum = 0.5*meanCoNum/TotalVol*timestep !// If we keep the value of Courant Number fixed if( CoNumFix ) then diff --git a/src/cappuccino/calc_statistics.f90 b/src/cappuccino/calc_statistics.f90 old mode 100644 new mode 100755 diff --git a/src/cappuccino/constant_mass_flow_forcing.f90 b/src/cappuccino/constant_mass_flow_forcing.f90 old mode 100644 new mode 100755 diff --git a/src/cappuccino/create_fields.f90 b/src/cappuccino/create_fields.f90 old mode 100644 new mode 100755 diff --git a/src/cappuccino/directories b/src/cappuccino/directories old mode 100644 new mode 100755 diff --git a/src/cappuccino/files b/src/cappuccino/files old mode 100644 new mode 100755 index 3bd5bfe..4f0d73a --- a/src/cappuccino/files +++ b/src/cappuccino/files @@ -45,8 +45,8 @@ CourantNo.f90 constant_mass_flow_forcing.f90 create_fields.f90 updateVelocityAtBoundary.f90 -correct_turbulence.f90 -correct_turbulence_inlet.f90 +modify_viscosity.f90 +modify_viscosity_inlet.f90 laplacian.f90 init.f90 readfiles.f90 diff --git a/src/cappuccino/init.f90 b/src/cappuccino/init.f90 old mode 100644 new mode 100755 index 245747b..4d74bb1 --- a/src/cappuccino/init.f90 +++ b/src/cappuccino/init.f90 @@ -112,21 +112,22 @@ subroutine init ! 1.2) Field Initialisation - call initialize_vector_field(u,v,w,dUdxi,'U') + + call initialize_vector_field(u,v,w,dUdxi,iu,'U') if (levm) then ! ! > TE Turbulent kinetic energy. ! - call initialize_scalar_field(te,dTEdxi,'k') + call initialize_scalar_field(te,dTEdxi,ite,'k') ! ! > ED Specific turbulent kinetic energy dissipation rate, also turbulence frequency - omega ! if(solveOmega) then - call initialize_scalar_field(ed,dEDdxi,'omega') + call initialize_scalar_field(ed,dEDdxi,ied,'omega') else - call initialize_scalar_field(ed,dEDdxi,'epsilon') + call initialize_scalar_field(ed,dEDdxi,ied,'epsilon') endif endif @@ -134,12 +135,12 @@ subroutine init ! ! > Temperature ! - if( lcal(ien) ) call initialize_scalar_field(t,dTdxi,'T') + if( lcal(ien) ) call initialize_scalar_field(t,dTdxi,ien,'T') ! ! Magnetic field ! - if ( lcal(iep) ) call initialize_vector_field(bmagx,bmagy,bmagz,dEpotdxi,'B') + if ( lcal(iep) ) call initialize_vector_field(bmagx,bmagy,bmagz,dEpotdxi,ibmag,'B') ! Density den = densit @@ -155,7 +156,7 @@ subroutine init if(lcal(icon)) con = conin - ! Initialize mass flow + ! Initialize mass flow on inner faces do i=1,numInnerFaces ijp = owner(i) ijn = neighbour(i) diff --git a/src/cappuccino/main.f90 b/src/cappuccino/main.f90 old mode 100644 new mode 100755 index 5845f8c..4d9e919 --- a/src/cappuccino/main.f90 +++ b/src/cappuccino/main.f90 @@ -61,7 +61,6 @@ program cappuccino call init - ! !=============================================== ! Time loop: @@ -94,14 +93,18 @@ program cappuccino call cpu_time(start) ! Calculate velocities. - call calcuvw + if(lcal(iu)) call calcuvw ! Pressure-velocity coupling. Two options: SIMPLE and PISO - if(SIMPLE) call calcp_simple - if(PISO) call calcp_piso + if(lcal(ip)) then + + if(SIMPLE) call calcp_simple + if(PISO) call calcp_piso + + endif ! Turbulence - if(lturb) call correct_turbulence() + if(lturb) call modify_viscosity !Scalars: Temperature , temperature variance, and concentration eqs. if(lcal(ien)) call calculate_temperature_field diff --git a/src/cappuccino/modules_allocatable.f90 b/src/cappuccino/modules_allocatable.f90 old mode 100644 new mode 100755 index 079c5b9..84208ae --- a/src/cappuccino/modules_allocatable.f90 +++ b/src/cappuccino/modules_allocatable.f90 @@ -22,6 +22,7 @@ module parameters integer, parameter :: ivart=9 integer, parameter :: icon=10 integer, parameter :: iep=11 + integer, parameter :: ibmag=12 real(dp), parameter :: one = 1.0_dp real(dp), parameter :: zero = 0.0_dp diff --git a/src/cappuccino/time_shift.f90 b/src/cappuccino/time_shift.f90 old mode 100644 new mode 100755 diff --git a/src/finiteVolume/boundary/adjustMassFlow.f90 b/src/finiteVolume/boundary/adjustMassFlow.f90 old mode 100644 new mode 100755 diff --git a/src/finiteVolume/boundary/bcin.f90 b/src/finiteVolume/boundary/bcin.f90 old mode 100644 new mode 100755 index c1129b2..954b872 --- a/src/finiteVolume/boundary/bcin.f90 +++ b/src/finiteVolume/boundary/bcin.f90 @@ -138,6 +138,6 @@ subroutine bcin ! Correct turbulence at inlet for appropriate turbulence model - if(lturb) call correct_turbulence_inlet() + if(lturb) call modify_viscosity_inlet() end subroutine \ No newline at end of file diff --git a/src/finiteVolume/boundary/bpres.f90 b/src/finiteVolume/boundary/bpres.f90 old mode 100644 new mode 100755 diff --git a/src/finiteVolume/boundary/updateScalar.f90 b/src/finiteVolume/boundary/updateScalar.f90 old mode 100644 new mode 100755 diff --git a/src/finiteVolume/boundary/updateVelocityAtBoundary.f90 b/src/finiteVolume/boundary/updateVelocityAtBoundary.f90 old mode 100644 new mode 100755 diff --git a/src/finiteVolume/fluxes/faceflux_mass.f90 b/src/finiteVolume/fluxes/faceflux_mass.f90 old mode 100644 new mode 100755 index 164900b..699d735 --- a/src/finiteVolume/fluxes/faceflux_mass.f90 +++ b/src/finiteVolume/fluxes/faceflux_mass.f90 @@ -40,16 +40,18 @@ subroutine facefluxmass(ijp, ijn, xf, yf, zf, arx, ary, arz, lambda, cap, can, f ! Local variables real(dp) :: fxn, fxp real(dp) :: are + ! real(dp) :: dpn real(dp) :: xpn,ypn,zpn,dene real(dp) :: nxx,nyy,nzz - real(dp) :: ui,vi,wi,ue,ve,we - real(dp) :: smdpn,sfdpnr + real(dp) :: ui,vi,wi + ! real(dp) :: ue,ve,we + real(dp) :: smdpn + ! real(dp) :: sfdpnr real(dp) :: xpp,ypp,zpp,xep,yep,zep real(dp) :: dpe - real(dp) :: dpex,dpey,dpez + ! real(dp) :: dpx,dpy,dpz real(dp) :: dpxi,dpyi,dpzi - real(dp) :: Dpu,Dpv,Dpw,dpecorr - ! real(dp) :: fcf + real(dp) :: Dpu!,Dpv,Dpw ! > Geometry: @@ -77,49 +79,37 @@ subroutine facefluxmass(ijp, ijn, xf, yf, zf, arx, ary, arz, lambda, cap, can, f ! ______ ! (Vol/Ap)_f Dpu = (fxn*Vol(ijn)*Apu(ijn)+fxp*Vol(ijp)*Apu(ijp)) - Dpv = (fxn*Vol(ijn)*Apv(ijn)+fxp*Vol(ijp)*Apv(ijp)) - Dpw = (fxn*Vol(ijn)*Apw(ijn)+fxp*Vol(ijp)*Apw(ijp)) + ! Dpv = (fxn*Vol(ijn)*Apv(ijn)+fxp*Vol(ijp)*Apv(ijp)) + ! Dpw = (fxn*Vol(ijn)*Apw(ijn)+fxp*Vol(ijp)*Apw(ijp)) ! Density at the cell face dene = den(ijp)*fxp+den(ijn)*fxn ! COEFFICIENTS OF PRESSURE-CORRECTION EQUATION - ! sfdpnr = 1.0d0/(arx*xpn*nxx+ary*ypn*nyy+arz*zpn*nzz+small) - sfdpnr = 1.0d0/(arx*xpn+ary*ypn+arz*zpn) - ! (Sf.Sf) / (dpn.Sf) - ! smdpn = (arx*arx+ary*ary+arz*arz)*sfdpnr + + ! (Sf.Sf) / (dpn.Sf) + !# smdpn = (arx*arx+ary*ary+arz*arz)/(arx*xpn*nxx+ary*ypn*nyy+arz*zpn*nzz+small) smdpn = (arx*arx+ary*ary+arz*arz)/(arx*xpn+ary*ypn+arz*zpn) + ! |Sf| / (dpn.nf) !smdpn = are/(xpn*nxx+ypn*nyy+zpn*nzz) + cap = -dene*Dpu*smdpn can = cap -! -! CELL FACE PRESSURE GRADIENTS AND VELOCITIES -! -!//////////////////////////////////////////////////////// -! RHIE-CHOW velocity interolation at face -! -! Uf = UI+DPDXI-API*Sf*(Pn-Pp) -! _ -! UI-> (U)f -> second order interpolation at face -! _______________ -! DPDXI-> (dPdx*Vol*(1/ap))f -> second order interpolation at cell face -! ______ -! API*Sf*(Pn-Pp) -> (1/ap)f*Sf*(Pn-Pp) cell face coefficient 1/Ap x Area_f x (p1-p2) -! -! Finally: -! __ _______________ ______ -! Uf = (U)f + (dPdx*Vol*(1/ap))f - (1/ap)f*Sf*(Pn-Pp) -! -! and: + +!//////////////////////////////////////////////////////////// +! RHIE-CHOW velocity interolation at face +! __ ______________ ______ +! Uf = (U)f + (dPdxi*(vol/ap))f - (vol/ap)f*(Pn'-Pp')/dp'n' +! ! Fluxmass = Densit*dot(Uf,Sf) -!///////////////////////////////////////////////////////// +!//////////////////////////////////////////////////////////// ! UI-> (U)f -> second order interpolation at face - !+Interpolate velocities to face center:+++++++++++++++++++++++++ + !+Interpolate velocities to face center: ! ui = face_value_cds( ijp, ijn, lambda, u ) ! vi = face_value_cds( ijp, ijn, lambda, v ) @@ -133,29 +123,27 @@ subroutine facefluxmass(ijp, ijn, xf, yf, zf, arx, ary, arz, lambda, cap, can, f vi = face_value_central( ijp,ijn, xf, yf, zf, v, dVdxi ) wi = face_value_central( ijp,ijn, xf, yf, zf, w, dWdxi ) - - !+END: Interpolate velocities to face center:+++++++++++++++++++++++++ - - - ! DPDXI-> (dPdx*Vol*(1/ap))f -> second order interpolation at cell face - !+Interpolate pressure gradients to cell face center++++++++++++++++++ - dpxi = Dpu*(fxn*dPdxi(1,ijn)+fxp*dPdxi(1,ijp))*xpn*nxx - dpyi = Dpv*(fxn*dPdxi(2,ijn)+fxp*dPdxi(2,ijp))*ypn*nyy - dpzi = Dpw*(fxn*dPdxi(3,ijn)+fxp*dPdxi(3,ijp))*zpn*nzz - !+END: Interpolate pressure gradients to cell face center+++++++++++++ + ! Try this - like in Fluent Theory Guide + ! ui = ( u(ijp)/Apu(ijp)+u(ijn)/Apu(ijn) ) / ( 1./Apu(ijp) + 1./Apu(ijn) ) + ! vi = ( v(ijp)/Apv(ijp)+v(ijn)/Apv(ijn) ) / ( 1./Apv(ijp) + 1./Apv(ijn) ) + ! wi = ( w(ijp)/Apw(ijp)+w(ijn)/Apw(ijn) ) / ( 1./Apw(ijp) + 1./Apw(ijn) ) + !+Interpolate pressure gradients to cell face center + dpxi = ( dPdxi(1,ijn)*fxp + dPdxi(1,ijp)*fxn ) * xpn + dpyi = ( dPdxi(2,ijn)*fxp + dPdxi(2,ijp)*fxn ) * ypn + dpzi = ( dPdxi(3,ijn)*fxp + dPdxi(3,ijp)*fxn ) * zpn - ! (1/ap)f*Sf*(Pn-Pp) - !+Pressure deriv. along normal+++++++++++++++++++++++++++++++++++++++++ + !+Face centered pressure gradient along cell-face normal - !.....Values at points p' and e' due to non-orthogonality. + ! Values at points p' and e' due to non-orthogonality. xpp = xf-(xf-xc(ijp))*nxx ypp = yf-(yf-yc(ijp))*nyy zpp = zf-(zf-zc(ijp))*nzz xep = xf-(xf-xc(ijn))*nxx yep = yf-(yf-yc(ijn))*nyy zep = zf-(zf-zc(ijn))*nzz - !.....Distances |P'P| and |E'E| projected ionto x,y,z-axis + + ! Distances |P'P| and |E'E| projected ionto x,y,z-axis xpp = xpp-xc(ijp) ypp = ypp-yc(ijp) zpp = zpp-zc(ijp) @@ -163,48 +151,45 @@ subroutine facefluxmass(ijp, ijn, xf, yf, zf, arx, ary, arz, lambda, cap, can, f yep = yep-yc(ijn) zep = zep-zc(ijn) - dpe = (p(ijn)-p(ijp)) - dpecorr = ( dPdxi(1,ijn)*xep+dPdxi(2,ijn)*yep+dPdxi(3,ijn)*zep - & !<<--Correction - dPdxi(1,ijp)*xpp+dPdxi(2,ijp)*ypp+dPdxi(3,ijp)*zpp ) !<<| - dpe = dpe+dpecorr + dpe = p(ijn) + dPdxi(1,ijn)*xep+dPdxi(2,ijn)*yep+dPdxi(3,ijn)*zep - & + p(ijp) + dPdxi(1,ijp)*xpp+dPdxi(2,ijp)*ypp+dPdxi(3,ijp)*zpp - dpex = Dpu * dpe*sfdpnr * arx - dpey = Dpv * dpe*sfdpnr * ary - dpez = Dpw * dpe*sfdpnr * arz - !+END: Pressure deriv. along normal++++++++++++++++++++++++++++++++++++ + ! Pressure gradient along normal between N' and P' point which are on face normal direction. + ! dpn = dpe/(xpn*nxx+ypn*nyy+zpn*nzz+small) ! Rhie-Chow Interpolation - ue = ui - dpex + dpxi - ve = vi - dpey + dpyi - we = wi - dpez + dpzi + ! ue = ui - Dpu * (dpn - dpxi) + ! ve = vi - Dpv * (dpn - dpyi) + ! we = wi - Dpw * (dpn - dpzi) ! MASS FLUX via Rhie-Chow Interpolation - fluxmass = dene*(ue*arx+ve*ary+we*arz) - - ! !****************************************** - ! ! Nonorthogonal contribution to rhs vector - ! dpex = Dpu * dpecorr*sfdpnr * arx - ! dpey = Dpv * dpecorr*sfdpnr * ary - ! dpez = Dpw * dpecorr*sfdpnr * arz - - ! fcf = dene * ( dpex*arx + dpey*ary + dpez*arz ) - ! !******************************************* - - ! fluxmass = fluxmass + fcf + ! fluxmass = dene*(ue*arx+ve*ary+we*arz) + fluxmass = dene*(ui*arx+vi*ary+wi*arz) + cap*(dpe-dpxi-dpyi-dpzi) end subroutine !*********************************************************************** ! -subroutine facefluxmass2(ijp, ijn, xf, yf, zf, arx, ary, arz, lambda, cap, can, fluxmass) +subroutine facefluxmass2(ijp, ijn, arx, ary, arz, lambda, cap, can, fluxmass) ! !*********************************************************************** ! +! You will have to call it like this: +! subroutine facefluxmass2(ijp, ijn, xf, yf, zf, arx, ary, arz, lambda, cap, can, fluxmass) +! with additional arguments xf, yf, zf, compare to the case above, +! if you are using +! ui = face_value_central( ijp,ijn, xf, yf, zf, u, dUdxi ) +! ... +! to find velocity interpolation value at face. +! Now we use weighted interpolation as described in Fluent Theory Guide +! for testing purposes. +! +!*********************************************************************** implicit none integer, intent(in) :: ijp, ijn - real(dp), intent(in) :: xf,yf,zf + ! real(dp), intent(in) :: xf,yf,zf real(dp), intent(in) :: arx, ary, arz real(dp), intent(in) :: lambda real(dp), intent(inout) :: cap, can @@ -241,7 +226,9 @@ subroutine facefluxmass2(ijp, ijn, xf, yf, zf, arx, ary, arz, lambda, cap, can, ! COEFFICIENTS OF PRESSURE-CORRECTION EQUATION Kj = vol(ijp)*apu(ijp)*fxp + vol(ijn)*apu(ijn)*fxn - cap = -dene*Kj*are/dpn + ! cap = -dene*Kj*are/dpn + !...or..(maybe better) + cap = -dene*Kj*(arx*arx+ary*ary+arz*arz)/(arx*xpn+ary*ypn+arz*zpn) can = cap @@ -251,28 +238,19 @@ subroutine facefluxmass2(ijp, ijn, xf, yf, zf, arx, ary, arz, lambda, cap, can, !//////////////////////////////////////////////////////// ! RHIE-CHOW velocity interolation at face -! -! Uf = UI+DPDXI-API*Sf*(Pn-Pp) -! _ -! UI-> (U)f -> second order interpolation at face -! _______________ -! DPDXI-> (dPdx*Vol*(1/ap))f -> second order interpolation at cell face -! ______ -! API*Sf*(Pn-Pp) -> (1/ap)f*Sf*(Pn-Pp) cell face coefficient 1/Ap x Area_f x (p1-p2) -! -! Finally: -! __ _______________ ______ -! Uf = (U)f + (dPdx*Vol*(1/ap))f - (1/ap)f*Sf*(Pn-Pp) -! -! and: -! Fluxmass = Densit*dot(Uf,Sf) +! Fluxmass = Densit*dot(Uf,Sf) !///////////////////////////////////////////////////////// ! UI-> (U)f -> second order interpolation at face - ui = face_value_central( ijp,ijn, xf, yf, zf, u, dUdxi ) - vi = face_value_central( ijp,ijn, xf, yf, zf, v, dVdxi ) - wi = face_value_central( ijp,ijn, xf, yf, zf, w, dWdxi ) + ! ui = face_value_central( ijp,ijn, xf, yf, zf, u, dUdxi ) + ! vi = face_value_central( ijp,ijn, xf, yf, zf, v, dVdxi ) + ! wi = face_value_central( ijp,ijn, xf, yf, zf, w, dWdxi ) + + ! ! Try this - like in Fluent Theory Guide + ui = ( u(ijp)/Apu(ijp)+u(ijn)/Apu(ijn) ) / ( 1./Apu(ijp) + 1./Apu(ijn) ) + vi = ( v(ijp)/Apv(ijp)+v(ijn)/Apv(ijn) ) / ( 1./Apv(ijp) + 1./Apv(ijn) ) + wi = ( w(ijp)/Apw(ijp)+w(ijn)/Apw(ijn) ) / ( 1./Apw(ijp) + 1./Apw(ijn) ) dpxi = ( dPdxi(1,ijn)*fxp + dPdxi(1,ijp)*fxn ) * xpn dpyi = ( dPdxi(2,ijn)*fxp + dPdxi(2,ijp)*fxn ) * ypn @@ -356,6 +334,11 @@ subroutine facefluxmass_piso(ijp, ijn, xf, yf, zf, arx, ary, arz, lambda, cap, c vi = face_value_central( ijp,ijn, xf, yf, zf, v, dVdxi ) wi = face_value_central( ijp,ijn, xf, yf, zf, w, dWdxi ) + ! Try this - like in Fluent Theory Guide + ! ui = ( u(ijp)/Apu(ijp)+u(ijn)/Apu(ijn) ) / ( 1./Apu(ijp) + 1./Apu(ijn) ) + ! vi = ( v(ijp)/Apv(ijp)+v(ijn)/Apv(ijn) ) / ( 1./Apv(ijp) + 1./Apv(ijn) ) + ! wi = ( w(ijp)/Apw(ijp)+w(ijn)/Apw(ijn) ) / ( 1./Apw(ijp) + 1./Apw(ijn) ) + ! MASS FLUX ! Calculate the fluxes by dotting the interpolated velocity (to cell faces) with face normals flmass = dene*(ui*arx+vi*ary+wi*arz) diff --git a/src/finiteVolume/fluxes/faceflux_velocity.f90 b/src/finiteVolume/fluxes/faceflux_velocity.f90 old mode 100644 new mode 100755 diff --git a/src/finiteVolume/fluxes/scalar_fluxes.f90 b/src/finiteVolume/fluxes/scalar_fluxes.f90 old mode 100644 new mode 100755 diff --git a/src/finiteVolume/fvEqnDiscretization/MHD/mhd.f90 b/src/finiteVolume/fvEqnDiscretization/MHD/mhd.f90 old mode 100644 new mode 100755 diff --git a/src/finiteVolume/fvEqnDiscretization/Pressure/calcp_piso.f90 b/src/finiteVolume/fvEqnDiscretization/Pressure/calcp_piso.f90 old mode 100644 new mode 100755 diff --git a/src/finiteVolume/fvEqnDiscretization/Pressure/calcp_simple.f90 b/src/finiteVolume/fvEqnDiscretization/Pressure/calcp_simple.f90 old mode 100644 new mode 100755 diff --git a/src/finiteVolume/fvEqnDiscretization/Pressure/continuityErrors.f90 b/src/finiteVolume/fvEqnDiscretization/Pressure/continuityErrors.f90 old mode 100644 new mode 100755 diff --git a/src/finiteVolume/fvEqnDiscretization/Pressure/piso_using_pressure_correction.f90 b/src/finiteVolume/fvEqnDiscretization/Pressure/piso_using_pressure_correction.f90 old mode 100644 new mode 100755 diff --git a/src/finiteVolume/fvEqnDiscretization/Pressure/pressure_velocity_density.f90 b/src/finiteVolume/fvEqnDiscretization/Pressure/pressure_velocity_density.f90 old mode 100644 new mode 100755 index 6f1417c..89b84a6 --- a/src/finiteVolume/fvEqnDiscretization/Pressure/pressure_velocity_density.f90 +++ b/src/finiteVolume/fvEqnDiscretization/Pressure/pressure_velocity_density.f90 @@ -1,8 +1,6 @@ module compressible ! -! Contains functions for compressible flow calculations -! using peessure as referent varibale, that is using -! pressure based approach. +! Contains functions for compressible flow calculations using pressure based solver. ! use types use parameters @@ -46,9 +44,9 @@ subroutine pressure_velocity_density_coupling do inp = 1, numCells ! We consider only BDF2 timestepping here - C_rho = 1./(RVOZD*t(inp)) - sp(inp) = C_rho*(3*vol(inp))/(2*timestep) - su(inp) = (3*den(inp)-4*deno(inp)+denoo(inp))*vol(inp)/(2*timestep) + C_rho = 1./(RVOZD*T(inp)) + sp(inp) = C_rho*1.5_dp*vol(inp)/timestep + su(inp) = ( 2*deno(inp) - 0.5_dp*denoo(inp) )*vol(inp)/timestep end do @@ -79,7 +77,7 @@ subroutine pressure_velocity_density_coupling call facefluxsc( ijp, ijn, & xf(i), yf(i), zf(i), arx(i), ary(i), arz(i), & flmass(i), facint(i), gam, & - fi, dFidxi, prtr, capc, canc, suadd ) + p, dpdxi, capc, canc, suadd ) ! > Off-diagonal elements: @@ -109,42 +107,6 @@ subroutine pressure_velocity_density_coupling end do - ! o- and c-grid cuts - do i=1,noc - - iface= ijlFace(i) ! In the future implement Weiler-Atherton cliping algorithm to compute area vector components for non matching boundaries. - ijp=ijl(i) - ijn=ijr(i) - - call facefluxmass(ijp, ijn, xf(iface), yf(iface), zf(iface), arx(iface), ary(iface), arz(iface), foc(i), capd, cand, fmoc(i)) - - - call facefluxsc( ijp, ijn, & - xf(iface), yf(iface), zf(iface), arx(iface), ary(iface), arz(iface), & - fmoc(i), foc(i), gam, & - srdoc(i), fi, dfidxi, prtr, capc, canc, suadd ) - - ar(i) = cand + canc - al(i) = capd + capc - - ! > Elements on main diagonal: - - ! (icell,icell) main diagonal element - k = diag(ijp) - a(k) = a(k) - ar(i) - - ! (jcell,jcell) main diagonal element - k = diag(ijn) - a(k) = a(k) - al(i) - - ! > Sources: - - su(ijp) = su(ijp) - fmoc(i) + suadd - su(ijn) = su(ijn) + fmoc(i) - suadd - - end do - - if(.not.const_mflux) call adjustMassFlow @@ -207,28 +169,24 @@ subroutine pressure_velocity_density_coupling enddo - ! - ! Correct mass fluxes at faces along O-C grid cuts. - ! - do i=1,noc - fmoc(i) = fmoc(i) + ar(i) * pp(ijr(i)) - al(i) * pp(ijl(i)) - end do - - ! + ! Correct velocities and pressure - ! do inp=1,numCells + u(inp) = u(inp) - dPdxi(1,inp) * vol(inp)*apu(inp) v(inp) = v(inp) - dPdxi(2,inp) * vol(inp)*apv(inp) w(inp) = w(inp) - dPdxi(3,inp) * vol(inp)*apw(inp) + p(inp) = p(inp) + urf(ip)*(pp(inp)-ppref) + enddo ! Explicit correction of boundary conditions call correctBoundaryConditionsVelocity - !.......................................................................................................! - if(ipcorr.ne.npcor) then + + if(ipcorr.ne.npcor) then ! non-orthogonal corrections -> > > + ! ! The source term for the non-orthogonal corrector, also the secondary mass flux correction. ! @@ -249,27 +207,10 @@ subroutine pressure_velocity_density_coupling enddo - ! Faces along O-C grid cuts - do i=1,noc - iface= ijlFace(i) ! In the future implement Weiler-Atherton cliping algorithm to compute area vector components for non matching boundaries. - ijp = ijl(i) - ijn = ijr(i) + endif ! < < <- END: non-orthogonal corrections - call fluxmc(ijp, ijn, xf(iface), yf(iface), zf(iface), arx(iface), ary(iface), arz(iface), foc(i), fmcor) - fmoc(i)=fmoc(i)+fmcor - - su(ijp)=su(ijp)-fmcor - su(ijn)=su(ijn)+fmcor - - end do - - endif - !.......................................................................................................! - - -!*END: Multiple pressure corrections loop ******************************************************************* - enddo + enddo ! END: Multiple pressure corrections loop ! Write continuity error report: include 'continuityErrors.h' @@ -282,14 +223,14 @@ subroutine pressure_velocity_density_coupling !*********************************************************************** ! subroutine facefluxsc(ijp, ijn, xf, yf, zf, arx, ary, arz, & - flmass, lambda, gam, FI, dFidxi, & - prtr, cap, can, suadd) + fm, lambda, gam, FI, dFidxi, & + cap, can, suadd) ! !*********************************************************************** ! use types use parameters - use variables, only: vis + use variables use interpolation implicit none @@ -300,22 +241,17 @@ subroutine facefluxsc(ijp, ijn, xf, yf, zf, arx, ary, arz, & integer, intent(in) :: ijp, ijn real(dp), intent(in) :: xf,yf,zf real(dp), intent(in) :: arx, ary, arz - real(dp), intent(in) :: flmass + real(dp), intent(in) :: fm real(dp), intent(in) :: lambda real(dp), intent(in) :: gam real(dp), dimension(numTotal), intent(in) :: Fi real(dp), dimension(3,numCells), intent(in) :: dFidxi - real(dp), intent(in) :: prtr real(dp), intent(inout) :: cap, can, suadd ! Local variables - integer :: nrelax - character(len=12) :: approach - real(dp) :: Cp,Ce - real(dp) :: fii,fm + real(dp) :: fii real(dp) :: fcfie,fcfii,ffic - real(dp) :: fxp,fxn !---------------------------------------------------------------------- @@ -327,28 +263,18 @@ subroutine facefluxsc(ijp, ijn, xf, yf, zf, arx, ary, arz, & ! Coeff in convection-like term - Crho_den = 1./(RVOZD*t(inp)*den(inp))*fxp + 1./(RVOZD*t(ine)*den(ine))*fxe + Crhof = 1./(RVOZD*T(inp)*den(inp))*fxp + 1./(RVOZD*T(ine)*den(ine))*fxe - ! Upwind varijanta - Crho_den_pj = 1./(RVOZD*t(ijn)*den(ijn)) - Crho_den_p = 1./(RVOZD*t(ijp)*den(ijp)) ! Convection fluxes - uds - fm = flmass - ce = min(fm,zero) - cp = max(fm,zero) - - !------------------------------------------------------- + ! System matrix coefficients - !------------------------------------------------------- - cap = max(-fm,zero)*Crho_den_pj*urf(ip) - can = max( fm,zero)*Crho_den_p *urf(ip) - !------------------------------------------------------- + cap = min(fm*Crhof,zero) + can = max(fm*Crhof,zero) - !------------------------------------------------------- ! Explicit higher order convection - !------------------------------------------------------- + if( flmass .ge. zero ) then ! Flow goes from p to pj - > p is the upwind node fii = face_value(ijp, ijn, xf, yf, zf, fxp, fi, dFidxi) @@ -359,20 +285,12 @@ subroutine facefluxsc(ijp, ijn, xf, yf, zf, arx, ary, arz, & fcfie = fm*fii - !------------------------------------------------------- ! Explicit first order convection - !------------------------------------------------------- - fcfii = ce*fi(ijn)+cp*fi(ijp) - - !------------------------------------------------------- - ! Deffered correction for convection = gama_blending*(high-low) - !------------------------------------------------------- - ffic = gam*(fcfie-fcfii) + fcfii = min(fm,zero)*fi(ijn)+max(fm,zero)*fi(ijp) + - !------------------------------------------------------- - ! Explicit part of fluxes - !------------------------------------------------------- - suadd = -ffic + ! Explicit part of fluxes - Deffered correction for convection = gama_blending*(high-low) + suadd = -gam*(fcfie-fcfii) end subroutine diff --git a/src/finiteVolume/fvEqnDiscretization/ScalarEqns/concentration.f90 b/src/finiteVolume/fvEqnDiscretization/ScalarEqns/concentration.f90 old mode 100644 new mode 100755 diff --git a/src/finiteVolume/fvEqnDiscretization/ScalarEqns/energy.f90 b/src/finiteVolume/fvEqnDiscretization/ScalarEqns/energy.f90 old mode 100644 new mode 100755 diff --git a/src/finiteVolume/fvEqnDiscretization/ScalarEqns/temperature.f90 b/src/finiteVolume/fvEqnDiscretization/ScalarEqns/temperature.f90 old mode 100644 new mode 100755 index a240c9a..d1797ad --- a/src/finiteVolume/fvEqnDiscretization/ScalarEqns/temperature.f90 +++ b/src/finiteVolume/fvEqnDiscretization/ScalarEqns/temperature.f90 @@ -6,7 +6,6 @@ module temperature use parameters use geometry use variables - ! use scalar_fluxes, only: facefluxsc implicit none @@ -93,15 +92,19 @@ subroutine calcsc(Fi,dFidxi,ifi) ! Unsteady Term if (ltransient) then + if( bdf .or. cn ) then apotime = den(inp)*vol(inp)/timestep su(inp) = su(inp) + apotime*to(inp) sp(inp) = sp(inp) + apotime + elseif( bdf2 ) then apotime=den(inp)*vol(inp)/timestep su(inp) = su(inp) + apotime*( 2*to(inp) - 0.5_dp*too(inp) ) sp(inp) = sp(inp) + 1.5_dp*apotime + endif + endif @@ -204,7 +207,7 @@ subroutine calcsc(Fi,dFidxi,ifi) end do - elseif ( bctype(ib) == 'wall') then + elseif ( bctype(ib) == 'wall' .and. bcDFraction(ien,ib)==1.0_dp ) then ! Isothermal wall boundaries (that's Dirichlet on temperature) @@ -224,7 +227,7 @@ subroutine calcsc(Fi,dFidxi,ifi) enddo - elseif ( bctype(ib) == 'wallAdiab') then + elseif ( bctype(ib) == 'wall' .and. bcDFraction(ien,ib)==0.0_dp ) then ! Adiabatic wall boundaries (that's actually zero grad on temperature) @@ -234,7 +237,6 @@ subroutine calcsc(Fi,dFidxi,ifi) ijp = owner(iface) ijb = iBndValueStart(ib) + i - t(ijb)=t(ijp) enddo @@ -295,6 +297,7 @@ subroutine calcsc(Fi,dFidxi,ifi) k = jcell_icell_csr_index(i) su(ijn) = su(ijn) - a(k)*to(ijp) enddo + do ijp=1,numCells apotime=den(ijp)*vol(ijp)/timestep off_diagonal_terms = sum( a( ioffset(ijp) : ioffset(ijp+1)-1 ) ) - a(diag(ijp)) diff --git a/src/finiteVolume/fvEqnDiscretization/TurbulenceModels/correct_turbulence_inlet.f90 b/src/finiteVolume/fvEqnDiscretization/TurbulenceModels/correct_turbulence_inlet.f90 deleted file mode 100644 index b262bfe..0000000 --- a/src/finiteVolume/fvEqnDiscretization/TurbulenceModels/correct_turbulence_inlet.f90 +++ /dev/null @@ -1,35 +0,0 @@ -subroutine correct_turbulence_inlet() - use parameters, only: TurbModel - use k_epsilon_std - use k_epsilon_std_2lewt - use k_epsilon_rng - use k_epsilon_rlzb - use k_epsilon_rlzb_2lewt - use k_omega_sst - use k_eqn_eddy - use spalart_allmaras - implicit none - - select case (TurbModel) - case (1) - call correct_turbulence_inlet_k_epsilon_std() - case (2) - call correct_turbulence_inlet_k_epsilon_rng() - case (3) - call correct_turbulence_inlet_k_omega_sst() - case (4) - call correct_turbulence_inlet_k_omega_sst() - case (5) - call correct_turbulence_inlet_spalart_allmaras() - case (6) - call correct_turbulence_inlet_k_eqn_eddy() - case (7) - call correct_turbulence_inlet_k_epsilon_std_2lewt() - case (8) - call correct_turbulence_inlet_k_epsilon_rlzb() - case (9) - call correct_turbulence_inlet_k_epsilon_rlzb_2lewt() - case default - end select - -end subroutine \ No newline at end of file diff --git a/src/finiteVolume/fvEqnDiscretization/TurbulenceModels/k_epsilon_rlzb.f90 b/src/finiteVolume/fvEqnDiscretization/TurbulenceModels/k_epsilon_rlzb.f90 old mode 100644 new mode 100755 index 51e5365..a808cf3 --- a/src/finiteVolume/fvEqnDiscretization/TurbulenceModels/k_epsilon_rlzb.f90 +++ b/src/finiteVolume/fvEqnDiscretization/TurbulenceModels/k_epsilon_rlzb.f90 @@ -27,15 +27,15 @@ module k_epsilon_rlzb private - public :: correct_turbulence_k_epsilon_rlzb - public :: correct_turbulence_inlet_k_epsilon_rlzb + public :: modify_viscosity_k_epsilon_rlzb + public :: modify_viscosity_inlet_k_epsilon_rlzb contains !*********************************************************************** ! -subroutine correct_turbulence_k_epsilon_rlzb() +subroutine modify_viscosity_k_epsilon_rlzb() ! !*********************************************************************** ! @@ -63,7 +63,7 @@ subroutine correct_turbulence_k_epsilon_rlzb() !*********************************************************************** ! -subroutine correct_turbulence_inlet_k_epsilon_rlzb() +subroutine modify_viscosity_inlet_k_epsilon_rlzb() ! !*********************************************************************** ! diff --git a/src/finiteVolume/fvEqnDiscretization/TurbulenceModels/k_epsilon_rlzb_2lewt.f90 b/src/finiteVolume/fvEqnDiscretization/TurbulenceModels/k_epsilon_rlzb_2lewt.f90 old mode 100644 new mode 100755 index 4a213ba..3c01e44 --- a/src/finiteVolume/fvEqnDiscretization/TurbulenceModels/k_epsilon_rlzb_2lewt.f90 +++ b/src/finiteVolume/fvEqnDiscretization/TurbulenceModels/k_epsilon_rlzb_2lewt.f90 @@ -35,15 +35,15 @@ module k_epsilon_rlzb_2lewt private - public :: correct_turbulence_k_epsilon_rlzb_2lewt - public :: correct_turbulence_inlet_k_epsilon_rlzb_2lewt + public :: modify_viscosity_k_epsilon_rlzb_2lewt + public :: modify_viscosity_inlet_k_epsilon_rlzb_2lewt contains !*********************************************************************** ! -subroutine correct_turbulence_k_epsilon_rlzb_2lewt() +subroutine modify_viscosity_k_epsilon_rlzb_2lewt() ! !*********************************************************************** ! @@ -71,7 +71,7 @@ subroutine correct_turbulence_k_epsilon_rlzb_2lewt() !*********************************************************************** ! -subroutine correct_turbulence_inlet_k_epsilon_rlzb_2lewt() +subroutine modify_viscosity_inlet_k_epsilon_rlzb_2lewt() ! !*********************************************************************** ! diff --git a/src/finiteVolume/fvEqnDiscretization/TurbulenceModels/k_epsilon_rng.f90 b/src/finiteVolume/fvEqnDiscretization/TurbulenceModels/k_epsilon_rng.f90 old mode 100644 new mode 100755 index 65f2914..0ab50c9 --- a/src/finiteVolume/fvEqnDiscretization/TurbulenceModels/k_epsilon_rng.f90 +++ b/src/finiteVolume/fvEqnDiscretization/TurbulenceModels/k_epsilon_rng.f90 @@ -26,14 +26,14 @@ module k_epsilon_rng private - public :: correct_turbulence_k_epsilon_rng - public :: correct_turbulence_inlet_k_epsilon_rng + public :: modify_viscosity_k_epsilon_rng + public :: modify_viscosity_inlet_k_epsilon_rng contains -subroutine correct_turbulence_k_epsilon_rng() +subroutine modify_viscosity_k_epsilon_rng() ! ! Main module routine to solve turbulence model equations and update effective viscosity. ! @@ -47,11 +47,11 @@ subroutine correct_turbulence_k_epsilon_rng() call calcsc(ED,dEDdxi,ied) ! Assemble and solve specific dissipation rate (omega [1/s]) of tke eq. call modify_mu_eff() -end subroutine correct_turbulence_k_epsilon_rng +end subroutine modify_viscosity_k_epsilon_rng -subroutine correct_turbulence_inlet_k_epsilon_rng() +subroutine modify_viscosity_inlet_k_epsilon_rng() ! ! Update effective viscosity at inlet ! @@ -59,7 +59,7 @@ subroutine correct_turbulence_inlet_k_epsilon_rng() call modify_mu_eff_inlet() -end subroutine correct_turbulence_inlet_k_epsilon_rng +end subroutine modify_viscosity_inlet_k_epsilon_rng !*********************************************************************** diff --git a/src/finiteVolume/fvEqnDiscretization/TurbulenceModels/k_epsilon_std.f90 b/src/finiteVolume/fvEqnDiscretization/TurbulenceModels/k_epsilon_std.f90 old mode 100644 new mode 100755 index b671f61..c1e4657 --- a/src/finiteVolume/fvEqnDiscretization/TurbulenceModels/k_epsilon_std.f90 +++ b/src/finiteVolume/fvEqnDiscretization/TurbulenceModels/k_epsilon_std.f90 @@ -7,6 +7,7 @@ module k_epsilon_std use geometry use variables use scalar_fluxes, only: facefluxsc + use utils, only: print_log implicit none @@ -22,19 +23,20 @@ module k_epsilon_std real(dp), parameter :: CMU25 = sqrt(sqrt(cmu)) real(dp), parameter :: CMU75 = cmu25**3 + logical :: init = .true. + private - public :: correct_turbulence_k_epsilon_std - public :: correct_turbulence_inlet_k_epsilon_std + public :: modify_viscosity_k_epsilon_std, modify_viscosity_inlet_k_epsilon_std contains !*********************************************************************** ! -subroutine correct_turbulence_k_epsilon_std() +subroutine modify_viscosity_k_epsilon_std ! !*********************************************************************** ! @@ -49,11 +51,20 @@ subroutine correct_turbulence_k_epsilon_std() use gradients implicit none + ! !*********************************************************************** ! - call calcsc(TE,dTEdxi,ite) ! Assemble and solve turbulence kinetic energy eq. - call calcsc(ED,dEDdxi,ied) ! Assemble and solve dissipation rate of tke eq. + + if (init) then + call modify_mu_eff + call print_log('Done setting effective viscosity based on initial fields of k and epsilon.') + init = .false. + return + endif + + call calcsc(TE,dTEdxi,ite) ! Assemble and solve turbulence kinetic energy eqn. + call calcsc(ED,dEDdxi,ied) ! Assemble and solve dissipation rate of tke eqn. call modify_mu_eff() end subroutine @@ -62,7 +73,7 @@ subroutine correct_turbulence_k_epsilon_std() !*********************************************************************** ! -subroutine correct_turbulence_inlet_k_epsilon_std() +subroutine modify_viscosity_inlet_k_epsilon_std() ! !*********************************************************************** ! diff --git a/src/finiteVolume/fvEqnDiscretization/TurbulenceModels/k_epsilon_std_2lewt.f90 b/src/finiteVolume/fvEqnDiscretization/TurbulenceModels/k_epsilon_std_2lewt.f90 old mode 100644 new mode 100755 index d17831a..2236ca5 --- a/src/finiteVolume/fvEqnDiscretization/TurbulenceModels/k_epsilon_std_2lewt.f90 +++ b/src/finiteVolume/fvEqnDiscretization/TurbulenceModels/k_epsilon_std_2lewt.f90 @@ -34,15 +34,15 @@ module k_epsilon_std_2lewt private - public :: correct_turbulence_k_epsilon_std_2lewt - public :: correct_turbulence_inlet_k_epsilon_std_2lewt + public :: modify_viscosity_k_epsilon_std_2lewt + public :: modify_viscosity_inlet_k_epsilon_std_2lewt contains !*********************************************************************** ! -subroutine correct_turbulence_k_epsilon_std_2lewt() +subroutine modify_viscosity_k_epsilon_std_2lewt() ! !*********************************************************************** ! @@ -70,7 +70,7 @@ subroutine correct_turbulence_k_epsilon_std_2lewt() !*********************************************************************** ! -subroutine correct_turbulence_inlet_k_epsilon_std_2lewt() +subroutine modify_viscosity_inlet_k_epsilon_std_2lewt() ! !*********************************************************************** ! diff --git a/src/finiteVolume/fvEqnDiscretization/TurbulenceModels/k_epsilon_zeta_f.f90 b/src/finiteVolume/fvEqnDiscretization/TurbulenceModels/k_epsilon_zeta_f.f90 old mode 100644 new mode 100755 index 87790ed..d7e78c2 --- a/src/finiteVolume/fvEqnDiscretization/TurbulenceModels/k_epsilon_zeta_f.f90 +++ b/src/finiteVolume/fvEqnDiscretization/TurbulenceModels/k_epsilon_zeta_f.f90 @@ -32,15 +32,15 @@ module k_epsilon_zeta_f private - public :: correct_turbulence_k_epsilon_zeta_f - public :: correct_turbulence_inlet_k_epsilon_zeta_f + public :: modify_viscosity_k_epsilon_zeta_f + public :: modify_viscosity_inlet_k_epsilon_zeta_f contains !*********************************************************************** ! -subroutine correct_turbulence_k_epsilon_zeta_f() +subroutine modify_viscosity_k_epsilon_zeta_f() ! !*********************************************************************** ! @@ -70,7 +70,7 @@ subroutine correct_turbulence_k_epsilon_zeta_f() !*********************************************************************** ! -subroutine correct_turbulence_inlet_k_epsilon_zeta_f() +subroutine modify_viscosity_inlet_k_epsilon_zeta_f() ! !*********************************************************************** ! diff --git a/src/finiteVolume/fvEqnDiscretization/TurbulenceModels/k_eqn_eddy.f90 b/src/finiteVolume/fvEqnDiscretization/TurbulenceModels/k_eqn_eddy.f90 old mode 100644 new mode 100755 index df03589..fbd87f2 --- a/src/finiteVolume/fvEqnDiscretization/TurbulenceModels/k_eqn_eddy.f90 +++ b/src/finiteVolume/fvEqnDiscretization/TurbulenceModels/k_eqn_eddy.f90 @@ -23,8 +23,8 @@ module k_eqn_eddy private - public :: correct_turbulence_k_eqn_eddy - public :: correct_turbulence_inlet_k_eqn_eddy + public :: modify_viscosity_k_eqn_eddy + public :: modify_viscosity_inlet_k_eqn_eddy contains @@ -32,7 +32,7 @@ module k_eqn_eddy !*********************************************************************** ! -subroutine correct_turbulence_k_eqn_eddy() +subroutine modify_viscosity_k_eqn_eddy() ! !*********************************************************************** ! @@ -53,7 +53,7 @@ subroutine correct_turbulence_k_eqn_eddy() !*********************************************************************** ! -subroutine correct_turbulence_inlet_k_eqn_eddy() +subroutine modify_viscosity_inlet_k_eqn_eddy() ! !*********************************************************************** ! diff --git a/src/finiteVolume/fvEqnDiscretization/TurbulenceModels/k_omega_EARSM_WJ.f90 b/src/finiteVolume/fvEqnDiscretization/TurbulenceModels/k_omega_EARSM_WJ.f90 old mode 100644 new mode 100755 index 2850440..ae224ae --- a/src/finiteVolume/fvEqnDiscretization/TurbulenceModels/k_omega_EARSM_WJ.f90 +++ b/src/finiteVolume/fvEqnDiscretization/TurbulenceModels/k_omega_EARSM_WJ.f90 @@ -76,15 +76,15 @@ module k_omega_sst private public :: LowRe - public :: correct_turbulence_k_omega_sst - public :: correct_turbulence_inlet_k_omega_sst + public :: modify_viscosity_k_omega_sst + public :: modify_viscosity_inlet_k_omega_sst contains !*********************************************************************** ! -subroutine correct_turbulence_k_omega_sst() +subroutine modify_viscosity_k_omega_sst() ! !*********************************************************************** ! @@ -111,7 +111,7 @@ subroutine correct_turbulence_k_omega_sst() !*********************************************************************** ! -subroutine correct_turbulence_inlet_k_omega_sst() +subroutine modify_viscosity_inlet_k_omega_sst() ! !*********************************************************************** ! diff --git a/src/finiteVolume/fvEqnDiscretization/TurbulenceModels/k_omega_sst.f90 b/src/finiteVolume/fvEqnDiscretization/TurbulenceModels/k_omega_sst.f90 old mode 100644 new mode 100755 index ce746c3..0069f30 --- a/src/finiteVolume/fvEqnDiscretization/TurbulenceModels/k_omega_sst.f90 +++ b/src/finiteVolume/fvEqnDiscretization/TurbulenceModels/k_omega_sst.f90 @@ -49,15 +49,15 @@ module k_omega_sst private public :: LowRe - public :: correct_turbulence_k_omega_sst - public :: correct_turbulence_inlet_k_omega_sst + public :: modify_viscosity_k_omega_sst + public :: modify_viscosity_inlet_k_omega_sst contains !*********************************************************************** ! -subroutine correct_turbulence_k_omega_sst() +subroutine modify_viscosity_k_omega_sst() ! !*********************************************************************** ! @@ -84,7 +84,7 @@ subroutine correct_turbulence_k_omega_sst() !*********************************************************************** ! -subroutine correct_turbulence_inlet_k_omega_sst() +subroutine modify_viscosity_inlet_k_omega_sst() ! !*********************************************************************** ! diff --git a/src/finiteVolume/fvEqnDiscretization/TurbulenceModels/correct_turbulence.f90 b/src/finiteVolume/fvEqnDiscretization/TurbulenceModels/modify_viscosity.f90 old mode 100644 new mode 100755 similarity index 62% rename from src/finiteVolume/fvEqnDiscretization/TurbulenceModels/correct_turbulence.f90 rename to src/finiteVolume/fvEqnDiscretization/TurbulenceModels/modify_viscosity.f90 index 62186ec..3235ccb --- a/src/finiteVolume/fvEqnDiscretization/TurbulenceModels/correct_turbulence.f90 +++ b/src/finiteVolume/fvEqnDiscretization/TurbulenceModels/modify_viscosity.f90 @@ -1,4 +1,4 @@ -subroutine correct_turbulence() +subroutine modify_viscosity use parameters, only: TurbModel use variables, only: u,v,w,dUdxi,dVdxi,dWdxi use gradients, only: grad @@ -28,25 +28,34 @@ subroutine correct_turbulence() select case (TurbModel) case (1) - call correct_turbulence_k_epsilon_std() + call modify_viscosity_k_epsilon_std() + case (2) - call correct_turbulence_k_epsilon_rng() + call modify_viscosity_k_epsilon_rng() + case (3) LowRe = .false. - call correct_turbulence_k_omega_sst() + call modify_viscosity_k_omega_sst() + case (4) LowRe = .true. - call correct_turbulence_k_omega_sst() + call modify_viscosity_k_omega_sst() + case (5) - call correct_turbulence_spalart_allmaras() + call modify_viscosity_spalart_allmaras() + case (6) - call correct_turbulence_k_eqn_eddy() + call modify_viscosity_k_eqn_eddy() + case (7) - call correct_turbulence_k_epsilon_std_2lewt() + call modify_viscosity_k_epsilon_std_2lewt() + case (8) - call correct_turbulence_k_epsilon_rlzb() + call modify_viscosity_k_epsilon_rlzb() + case (9) - call correct_turbulence_k_epsilon_rlzb_2lewt() + call modify_viscosity_k_epsilon_rlzb_2lewt() + case default end select diff --git a/src/finiteVolume/fvEqnDiscretization/TurbulenceModels/modify_viscosity_inlet.f90 b/src/finiteVolume/fvEqnDiscretization/TurbulenceModels/modify_viscosity_inlet.f90 new file mode 100755 index 0000000..fbda375 --- /dev/null +++ b/src/finiteVolume/fvEqnDiscretization/TurbulenceModels/modify_viscosity_inlet.f90 @@ -0,0 +1,35 @@ +subroutine modify_viscosity_inlet() + use parameters, only: TurbModel + use k_epsilon_std + use k_epsilon_std_2lewt + use k_epsilon_rng + use k_epsilon_rlzb + use k_epsilon_rlzb_2lewt + use k_omega_sst + use k_eqn_eddy + use spalart_allmaras + implicit none + + select case (TurbModel) + case (1) + call modify_viscosity_inlet_k_epsilon_std() + case (2) + call modify_viscosity_inlet_k_epsilon_rng() + case (3) + call modify_viscosity_inlet_k_omega_sst() + case (4) + call modify_viscosity_inlet_k_omega_sst() + case (5) + call modify_viscosity_inlet_spalart_allmaras() + case (6) + call modify_viscosity_inlet_k_eqn_eddy() + case (7) + call modify_viscosity_inlet_k_epsilon_std_2lewt() + case (8) + call modify_viscosity_inlet_k_epsilon_rlzb() + case (9) + call modify_viscosity_inlet_k_epsilon_rlzb_2lewt() + case default + end select + +end subroutine \ No newline at end of file diff --git a/src/finiteVolume/fvEqnDiscretization/TurbulenceModels/spalart_allmaras.f90 b/src/finiteVolume/fvEqnDiscretization/TurbulenceModels/spalart_allmaras.f90 old mode 100644 new mode 100755 index 217afba..6c3ea91 --- a/src/finiteVolume/fvEqnDiscretization/TurbulenceModels/spalart_allmaras.f90 +++ b/src/finiteVolume/fvEqnDiscretization/TurbulenceModels/spalart_allmaras.f90 @@ -35,14 +35,14 @@ module Spalart_Allmaras private - public :: correct_turbulence_spalart_allmaras - public :: correct_turbulence_inlet_spalart_allmaras + public :: modify_viscosity_spalart_allmaras + public :: modify_viscosity_inlet_spalart_allmaras contains -subroutine correct_turbulence_spalart_allmaras() +subroutine modify_viscosity_spalart_allmaras() ! ! Main module routine to solve turbulence model equations and update effective viscosity. ! *** @@ -62,7 +62,7 @@ subroutine correct_turbulence_spalart_allmaras() -subroutine correct_turbulence_inlet_spalart_allmaras() +subroutine modify_viscosity_inlet_spalart_allmaras() ! ! Update effective viscosity at inlet ! diff --git a/src/finiteVolume/fvEqnDiscretization/Velocity/asm_heatflux_terms.f90 b/src/finiteVolume/fvEqnDiscretization/Velocity/asm_heatflux_terms.f90 old mode 100644 new mode 100755 diff --git a/src/finiteVolume/fvEqnDiscretization/Velocity/asm_stress_terms.f90 b/src/finiteVolume/fvEqnDiscretization/Velocity/asm_stress_terms.f90 old mode 100644 new mode 100755 diff --git a/src/finiteVolume/fvEqnDiscretization/Velocity/calcuvw.f90 b/src/finiteVolume/fvEqnDiscretization/Velocity/calcuvw.f90 old mode 100644 new mode 100755 index 385e117..9650504 --- a/src/finiteVolume/fvEqnDiscretization/Velocity/calcuvw.f90 +++ b/src/finiteVolume/fvEqnDiscretization/Velocity/calcuvw.f90 @@ -183,9 +183,7 @@ subroutine calcuvw elseif( bdf3 ) then - ! - ! Three Level Implicit Time Integration (BDF2) - 2nd order. - ! + apotime = den(inp)*vol(inp)/timestep ! RHS vector contribution diff --git a/src/finiteVolume/fvEqnDiscretization/coupled_solver.f90 b/src/finiteVolume/fvEqnDiscretization/coupled_solver.f90 new file mode 100644 index 0000000..c658b64 --- /dev/null +++ b/src/finiteVolume/fvEqnDiscretization/coupled_solver.f90 @@ -0,0 +1,925 @@ +module coupled_solver +! +! Purpose: +! Coupled pressure based solver for all speeds. +! +! Description: +! Assemples and solves block-coupled system for pressure and velocity. +! +! Author: +! Nikola Mirkov 07/2020. +! +use types +use parameters +use geometry +use sparse_matrix +use variables +use gradients +use LIS_linear_solver_library + +implicit none + + real(prec), parameter :: RVOZD = 287.058 ! J/(kg K) + real(prec), parameter :: _33 = 1./3.0_dp + +! Ide u sparse_matrix: +real(dp), dimension(:), allocatable :: auu,avv,aww,aup,avp,awp,apu,apv,apw,app + + + +public + +contains + + +subroutine calcuvwp + + use types + use parameters + use geometry + use sparse_matrix + use variables + use hcoef + use gradients, only: grad + use faceflux_velocity + use mhd ! maybe later we do calcuvwpEp, we could add Electric potential to large system? + + implicit none + + +! Local variables + integer :: i, k, inp, ijp, ijn, iface, if + ! logical :: ScndOrderWallBC_Model + integer :: ib + integer :: iWall, iSym + integer :: ijb ! Boundary field value indexes + real(dp) :: urfrs, urfms, apotime, heat + real(dp) :: sup, svp, swp + real(dp) :: sum_off_diagonal_terms + real(dp) :: const_11_6 + real(dp) :: cp, cb ! Temp. for eq. coeficients + real(dp) :: cap, can ! Temp. for eq. coeficients + real(dp) :: vsi ! Interpolated dynamic viscosity + real(dp) :: cf ! Diffusion coefficient + real(dp) :: nxf, nyf, nzf ! Boundary face normals + real(dp) :: Are ! Face area + real(dp) :: dpb ! distance cell center to face center + real(dp) :: vsol ! Diffusion coefficient (II) + real(dp) :: fdne ! Diffusive flux auxiliary + real(dp) :: Upb, Vpb, Wpb ! Velocity difference + real(dp) :: viss + real(prec) :: C_rho + ! real(dp) :: FdUi,FdVi,FdWi! Diffusive flux auxiliary + ! real(dp) :: Utp, Vtp, Wtp + ! real(dp) :: Vnp + + real(dp) :: fxn, fxp + real(dp) :: are + real(dp) :: xpn,ypn,zpn,dene + real(dp) :: nxx,nyy,nzz + real(dp) :: smdpn,sfdpnr + real(dp) :: xpp,ypp,zpp,xep,yep,zep + real(dp) :: dpe + real(dp) :: dpex,dpey,dpez + real(dp) :: dpxi,dpyi,dpzi + real(dp) :: Dpu,Dpv,Dpw,dpecorr + + ! ScndOrderWallBC_Model = .true. + + ! Initialize sources - note: sp is rhs vector here in coupled solver. + su = 0.0_dp + sv = 0.0_dp + sw = 0.0_dp + sp = 0.0_dp + + +!@# Odmah ubacujemo na glavnu dijagonalu, nece nam trebati ovo. + + ! ! For u sp => spu; for v sp => spv; for w sp => sp + ! spu = 0.0_dp + ! spv = 0.0_dp + + +!@# Extrapolacija, ne teba nam sada? + + ! if ( piso .and. bdf ) then + + ! ! If you want to use midpoint timestepping method to improve piso to 2nd order, + ! ! extrapolate using Adams-Abshfort method extrapolation to time interval midpoint, t^n+1/2 + ! ! flmass = 1.5_dp*flmasso - 0.5_dp*flmassoo + ! ! p = 1.5_dp*po - 0.5_dp*poo + ! ! u = 1.5_dp*uo - 0.5_dp*uoo + ! ! v = 1.5_dp*vo - 0.5_dp*voo + ! ! w = 1.5_dp*wo - 0.5_dp*woo + + ! ! For consistent 2nd order PISO algorithm. + ! ! Estimate mass flux, velocity components and pressure for the current timestep + ! ! using 2nd order Adams-Bashfort extrapolation from previous two time steps. + ! elseif ( piso .and. bdf2 ) then + + ! flmass = 2*flmasso - flmassoo + ! p = 2*po - poo + ! u = 2*uo - uoo + ! v = 2*vo - voo + ! w = 2*wo - woo + + ! elseif ( piso .and. bdf3 ) then + + ! ! Extrapolation from three time levels to n+1 time level + ! flmass = 3*flmasso - 8*flmassoo + 6*flmassooo + ! p = 3*po - 8*poo + 6*pooo + ! u = 3*uo - 8*uoo + 6*uooo + ! v = 3*vo - 8*voo + 6*vooo + ! w = 3*wo - 8*woo + 6*wooo + + ! endif + + ! Update velocity at boudary and update velocity gradients: + call updateVelocityAtBoundary + + call grad(U,dUdxi) + call grad(V,dVdxi) + call grad(W,dWdxi) + +!@# Maybe Lorentz force in next iteration? Extended coupled MHD solver. + ! Update values of Lorentz force vector components in MHD case. + if(lcal(iep)) call calculate_Lorentz_force + + + ! + ! > Volume sources + ! + + do inp=1,numCells + + + ! Unsteady term + + if(ltransient) then + + if( bdf .or. cn ) then + ! + ! Backward differentiation formula of 1st order. + ! + apotime = deno(inp)*vol(inp)/timestep + + ! RHS vector contribution + su(inp) = su(inp) + apotime*uo(inp) + sv(inp) = sv(inp) + apotime*vo(inp) + sw(inp) = sw(inp) + apotime*wo(inp) + + ! NAPOMENA - NIJE DEN CONST!, PROMENI GORE ISTO, NEMOZE BITI APOTIME ISTO ZA SVE TIMESTEPOVE + sp(inp) = deno(inp)*vol(inp)/timestep + +!@# Ispravi da idu na dijagonalu matrice! + + ! Matrix diagonal element contribution + ! spu(inp) = spu(inp) + apotime + ! spv(inp) = spv(inp) + apotime + ! sp(inp) = sp(inp) + apotime + + apotime = den(inp)*vol(inp)/timestep + + k = diag( inp ) + + auu(k) = auu(k) + apotime + avv(k) = avv(k) + apotime + aww(k) = aww(k) + apotime + + C_rho = 1./(RVOZD*T(inp)) + app(k) = C_rho*vol(inp)/timestep + + elseif( bdf2 ) then + ! + ! Three Level Implicit Time Integration (BDF2) - 2nd order. + ! + apot = deno(inp)*vol(inp)/timestep + apoot = denoo(inp)*vol(inp)/timestep + + ! RHS vector contribution + su(inp) = su(inp) + apot*2*uo(inp) - apoot*0.5_dp*uoo(inp) + sv(inp) = sv(inp) + apot*2*vo(inp) - apoot*0.5_dp*voo(inp) + sw(inp) = sw(inp) + apot*2*wo(inp) - apoot*0.5_dp*woo(inp) + + ! NAPOMENA - NIJE DEN CONST!, PROMENI GORE ISTO, NEMOZE BITI APOTIME ISTO ZA SVE TIMESTEPOVE + sp(inp) = ( 2*deno(inp) - 0.5_dp*denoo(inp) )*vol(inp)/timestep + + ! Matrix diagonal element contribution + ! spu(inp) = spu(inp) + 1.5_dp*apotime + ! spv(inp) = spv(inp) + 1.5_dp*apotime + ! sp(inp) = sp(inp) + 1.5_dp*apotime + + apotime = den(inp)*vol(inp)/timestep + + k = diag( inp ) + + auu(k) = auu(k) + 1.5_dp*apotime + avv(k) = avv(k) + 1.5_dp*apotime + aww(k) = aww(k) + 1.5_dp*apotime + + C_rho = 1./(RVOZD*T(inp)) + app(inp) = C_rho*1.5_dp*vol(inp)/timestep + + elseif( bdf3 ) then + + apot = deno(inp)*vol(inp)/timestep + apoot = denoo(inp)*vol(inp)/timestep + apooot = denooo(inp)*vol(inp)/timestep + + ! RHS vector contribution + su(inp) = su(inp) + apot*3*uo(inp) - apoot*1.5_dp*uoo(inp) + apooot*_33*uooo(inp) + sv(inp) = sv(inp) + apot*3*vo(inp) - apoot*1.5_dp*voo(inp) + apooot*_33*vooo(inp) + sw(inp) = sw(inp) + apot*3*wo(inp) - apoot*1.5_dp*woo(inp) + apooot*_33*wooo(inp) + sp(inp) = sp(inp) ( 3*deno(inp) - 1.5_dp*denoo(inp) + _33*denooo(inp) )*vol(inp)/timestep + + ! Matrix diagonal element contribution + ! spu(inp) = spu(inp) + 11./6.0_dp*apotime + ! spv(inp) = spv(inp) + 11./6.0_dp*apotime + ! sp(inp) = sp(inp) + 11./6.0_dp*apotime + + + k = diag( inp ) + + const_11_6 = 11./6.0_dp + apotime = den(inp)*vol(inp)/timestep + auu(k) = auu(k) + const_11_6*apotime + avv(k) = avv(k) + const_11_6*apotime + aww(k) = aww(k) + const_11_6*apotime + + C_rho = 1./(RVOZD*T(inp)) + app(inp) = C_rho*const_11_6*vol(inp)/timestep + + endif + + endif ! unsteady term + + + ! Buoyancy source terms for momentum eqns. + if(lcal(ien).and.lbuoy) then + + if(boussinesq) then ! Boussinesq-ova aproximacija + heat = beta*densit*(t(inp)-tref)*vol(inp) + else + heat = (densit-den(inp))*vol(inp) + endif + + su(inp) = su(inp) - gravx*heat + sv(inp) = sv(inp) - gravy*heat + sw(inp) = sw(inp) - gravz*heat + + endif + + + ! MHD: Lorentz force source terms for momentum eqns. + if(lcal(iep)) then + + ! Add Lorentz force volume source terms. + su(inp) = su(inp) + sigma*florx(inp)*vol(inp) + sv(inp) = sv(inp) + sigma*flory(inp)*vol(inp) + sw(inp) = sw(inp) + sigma*florz(inp)*vol(inp) + + endif + + end do + + + ! Calculate Reynols stresses explicitly and additional asm terms: + ! + ! if(lturb .and. lasm) then + ! call calcstress + ! call Additional_algebraic_stress_terms + ! end if + + + +! __ __ +! | | +! | auu auv auw aup | +! | | +! | avu avv avw avp | +! | | +! | awu awv aww awp | +! | | +! | apu apv apw app | +! - - +! +! auu, etc. are numCells x numCells sparse matrix each! +! __ __ +! | | +! | auu o o aup | +! | | +! | o avv o avp | +! | | +! | o o aww awp | +! | | +! | apu apv apw app | +! - - +! + + ! + ! > Fluxes trough faces: + ! + + ! Inner faces + do i = 1,numInnerFaces + + ijp = owner(i) + ijn = neighbour(i) + + fxn=facint(i) + fxp=1.0_dp-facint(i) + + call facefluxuvw( ijp, ijn, xf(i), yf(i), zf(i), arx(i), ary(i), arz(i), flmass(i), facint(i), gds(iu), & + cap, can, sup, svp, swp ) + + + ! Where is (icell,jcell) matrix element in long 'aval' CSR format array, of size [1,nnz]? + ! Answer: icell_jcell_csr_index(iface) + + ! > (Icell,Jcell) matrix element: + k = icell_jcell_csr_index(i) + + auu(k) = auu(k) + can + avv(k) = avv(k) + can + aww(k) = aww(k) + can + + aup(k) = aup(k) + fxn*arx(i) + avp(k) = avp(k) + fxn*ary(i) + awp(k) = awp(k) + fxn*arz(i) + + ! > (Icell,Icell) matrix element: + k = diag(ijp) + + auu(k) = auu(k) - can + avv(k) = avv(k) - can + aww(k) = aww(k) - can + + aup(k) = aup(k) + fxp*arx(i) + avp(k) = avp(k) + fxp*ary(i) + awp(k) = awp(k) + fxp*arz(i) + + ! > (Jcell,Icell) matrix element: + k = jcell_icell_csr_index(i) + + ! a(k) = cap + auu(k) = auu(k) + cap + avv(k) = avv(k) + cap + aww(k) = aww(k) + cap + + aup(k) = fxn*arx(i) + avp(k) = fxn*ary(i) + awp(k) = fxn*arz(i) + + ! > (Jcell,Jcell) matrix element: + k = diag(ijn) + + auu(k) = auu(k) - cap + avv(k) = avv(k) - cap + aww(k) = aww(k) - cap + + aup(k) = aup(k) + fxp*arx(i) + avp(k) = avp(k) + fxp*ary(i) + awp(k) = awp(k) + fxp*arz(i) + + ! + ! > Sources (deffered correction, diffrerence to complete difffusion term,etc.): + ! + + su(ijp) = su(ijp) + sup + sv(ijp) = sv(ijp) + svp + sw(ijp) = sw(ijp) + swp + + su(ijn) = su(ijn) - sup + sv(ijn) = sv(ijn) - svp + sw(ijn) = sw(ijn) - swp + +!@# Kad obilazimo unutrasnje fejsove mpzemo odmah da damo doprinos za pritisak + + + ! call facefluxmass(ijp, ijn, xf(i), yf(i), zf(i), arx(i), ary(i), arz(i), facint(i), capd, cand, flmass(i)) + + + ! > Geometry: + + ! Face interpolation factor + fxn = lambda + fxp = 1.0_dp-lambda + ! Distance vector between cell centers + xpn = xc(ijn)-xc(ijp) + ypn = yc(ijn)-yc(ijp) + zpn = zc(ijn)-zc(ijp) + ! Distance between cell centers + ! dpn = sqrt(xpn**2+ypn**2+zpn**2) + ! cell face area + are = sqrt(arx**2+ary**2+arz**2) + ! Unit vectors of the normal + nxx = arx/are + nyy = ary/are + nzz = arz/are + ! ______ + ! (Vol/Ap)f + Dpu = (fxn*Vol(ijn)*Apu(ijn)+fxp*Vol(ijp)*Apu(ijp)) + Dpv = (fxn*Vol(ijn)*Apv(ijn)+fxp*Vol(ijp)*Apv(ijp)) + Dpw = (fxn*Vol(ijn)*Apw(ijn)+fxp*Vol(ijp)*Apw(ijp)) + ! Density at the cell face + dene = den(ijp)*fxp+den(ijn)*fxn + ! + ! COEFFICIENTS OF PRESSURE-CORRECTION EQUATION + sfdpnr = 1.0d0/(arx*xpn*nxx+ary*ypn*nyy+arz*zpn*nzz+small) + ! sfdpnr = 1.0d0/(arx*xpn+ary*ypn+arz*zpn) + ! + ! (Sf.Sf) / (dpn.Sf) + smdpn = (arx*arx+ary*ary+arz*arz)*sfdpnr + ! smdpn = (arx*arx+ary*ary+arz*arz)/(arx*xpn+ary*ypn+arz*zpn) + ! + capd = -dene*Dpu*smdpn + cand = cap + + +!//////////////////////////////////////////////////////////// +! RHIE-CHOW velocity interolation at face +! __ ______________ ______ +! Uf = (U)f + (dPdxi*(vol/ap))f - (vol/ap)f*(Pn'-Pp')/dp'n' +! +! Fluxmass = Densit*dot(Uf,Sf) +!//////////////////////////////////////////////////////////// + + ! ______ _____ + ! (vol/ap)f *(dPdxi)f + dpxi = Dpu*(fxn*dPdxi(1,ijn)+fxp*dPdxi(1,ijp)) + dpyi = Dpv*(fxn*dPdxi(2,ijn)+fxp*dPdxi(2,ijp)) + dpzi = Dpw*(fxn*dPdxi(3,ijn)+fxp*dPdxi(3,ijp)) + + !.....Values at points p' and e' due to non-orthogonality. + xpp = xf-(xf-xc(ijp))*nxx + ypp = yf-(yf-yc(ijp))*nyy + zpp = zf-(zf-zc(ijp))*nzz + xep = xf-(xf-xc(ijn))*nxx + yep = yf-(yf-yc(ijn))*nyy + zep = zf-(zf-zc(ijn))*nzz + !.....Distances |P'P| and |E'E| projected ionto x,y,z-axis + xpp = xpp-xc(ijp) + ypp = ypp-yc(ijp) + zpp = zpp-zc(ijp) + xep = xep-xc(ijn) + yep = yep-yc(ijn) + zep = zep-zc(ijn) + + dpe = dPdxi(1,ijn)*xep+dPdxi(2,ijn)*yep+dPdxi(3,ijn)*zep - & + dPdxi(1,ijp)*xpp+dPdxi(2,ijp)*ypp+dPdxi(3,ijp)*zpp + + ! Pressure gradient along normal between N' and P' point which are on face normal direction. + dpn = dpe/(xpn*nxx+ypn*nyy+zpn*nzz) + + ! Rhie-Chow Interpolation + ue = -Dpu * (dpn - dpxi) + ve = -Dpv * (dpn - dpyi) + we = -Dpw * (dpn - dpzi) + + ! rhs term + bpc = dene*(ue*arx+ve*ary+we*arz) + + + ! call facefluxsc( ijp, ijn, & + ! xf(i), yf(i), zf(i), arx(i), ary(i), arz(i), & + ! flmass(i), facint(i), gam, & + ! fi, dFidxi, prtr, capc, canc, suadd ) + + + + ! Convection fluxes - uds + Crhof = 1./(RVOZD*T(inp)*den(inp))*fxp + 1./(RVOZD*T(ine)*den(ine))*fxe + + canc = min( flmass(i)*Crhof, zero ) + capc = -max( flmass(i)*Crhof, zero ) + + ! > Off-diagonal elements: + + ! (icell,jcell) matrix element: + k = icell_jcell_csr_index(i) + app(k) = cand + canc + + ! (jcell,icell) matrix element: + k = jcell_icell_csr_index(i) + app(k) = capd + capc + + ! > Elements on main diagonal: + + ! (icell,icell) main diagonal element + k = diag(ijp) + app(k) = app(k) - cand - canc + + ! (jcell,jcell) main diagonal element + k = diag(ijn) + app(k) = app(k) - capd - capc + + ! > Sources: + + sp(ijp) = sp(ijp) - bpc - flmass(i) + suadd + sp(ijn) = sp(ijn) + bpc + flmass(i) - suadd + + end do ! end - flux terms + + + ! Implement boundary conditions + + iSym = 0 + iWall = 0 + + do ib=1,numBoundaries + + if ( bctype(ib) == 'inlet' ) then + + do i=1,nfaces(ib) + + if = startFace(ib) + i + ijp = owner(if) + ijb = iBndValueStart(ib) + i + + call facefluxuvw(ijp, ijb, xf(if), yf(if), zf(if), arx(if), ary(if), arz(if), flmass(if), cp, cb, sup, svp, swp) + + spu(ijp) = spu(ijp) - cb + spv(ijp) = spv(ijp) - cb + sp(ijp) = sp(ijp) - cb + + su(ijp) = su(ijp) - cb*u(ijb) + sup + sv(ijp) = sv(ijp) - cb*v(ijb) + svp + sw(ijp) = sw(ijp) - cb*w(ijb) + swp + + end do + + elseif ( bctype(ib) == 'outlet' ) then + + do i=1,nfaces(ib) + + if = startFace(ib) + i + ijp = owner(if) + ijb = iBndValueStart(ib) + i + + call facefluxuvw(ijp, ijb, xf(if), yf(if), zf(if), arx(if), ary(if), arz(if), flmass(if), cp, cb, sup, svp, swp) + + spu(ijp) = spu(ijp) - cb + spv(ijp) = spv(ijp) - cb + sp(ijp) = sp(ijp) - cb + + su(ijp) = su(ijp) - cb*u(ijb) + sup + sv(ijp) = sv(ijp) - cb*v(ijb) + svp + sw(ijp) = sw(ijp) - cb*w(ijb) + swp + + enddo + + elseif ( bctype(ib) == 'symmetry') then + + ! Symmetry + do i=1,nfaces(ib) + + iface = startFace(ib) + i + ijp = owner(iface) + ijb = iBndValueStart(ib) + i + iSym = iSym + 1 + + ! Diffusion coef. + vsi = vis(ijb) + cf = vsi*srds(iSym) ! cf v.s. vsol -> cf is calculated using normal distance in srds! + + ! Face area + are = sqrt(arx(iface)**2+ary(iface)**2+arz(iface)**2) + + ! Face normals + nxf = arx(iface)/are + nyf = ary(iface)/are + nzf = arz(iface)/are + + ! Dist from cc of owner cell to cf @boundary, cannot expect dpb to be normal to boundary face in general + dpb = sqrt( (xc(ijp)-xf(iface))**2 + (yc(ijp)-yf(iface))**2 + (zc(ijp)-zf(iface))**2 ) + + ! Diffusion coef. + vsol = vsi*are/dpb + + ! Velocity difference vector components + upb = u(ijp)-u(ijb) + vpb = v(ijp)-v(ijb) + wpb = w(ijp)-w(ijb) + + fdne = 2*cf*( upb*nxf + vpb*nyf + wpb*nzf ) + + spu(ijp) = spu(ijp) + vsol + spv(ijp) = spv(ijp) + vsol + sp(ijp) = sp(ijp) + vsol + + su(ijp) = su(ijp)+vsol*u(ijp)-fdne*nxf + sv(ijp) = sv(ijp)+vsol*v(ijp)-fdne*nyf + sw(ijp) = sw(ijp)+vsol*w(ijp)-fdne*nzf + + end do + + elseif ( bctype(ib) == 'wall') then + + do i=1,nfaces(ib) + + iface = startFace(ib) + i + ijp = owner(iface) + ijb = iBndValueStart(ib) + i + iWall = iWall + 1 + + ! viss = viscos ! viskoznost interpolirana na boundary face + ! if(lturb.and.ypl(iWall).gt.ctrans) viss=visw(iWall) + viss=max(viscos,visw(iWall)) + + ! Face area + are = sqrt(arx(iface)**2+ary(iface)**2+arz(iface)**2) + + ! Face normals + nxf = arx(iface)/are + nyf = ary(iface)/are + nzf = arz(iface)/are + + ! dpb - Dist from cc of owner cell to cf @boundary, + ! cannot expect dpb to be normal to boundary face in general... + ! -> -> + ! dpb . nf + dpb = (xf(iface)-xc(ijp))*nxf + (yf(iface)-yc(ijp))*nyf + (zf(iface)-zc(ijp))*nzf + + ! Diffusion coef. + vsol = viss*are/dpb + + ! Velocity difference vector components + upb = u(ijp)-u(ijb) + vpb = v(ijp)-v(ijb) + wpb = w(ijp)-w(ijb) + + ! Explicit contribution to main diagonal + spu(ijp) = spu(ijp) + vsol*(1.-nxf**2) + spv(ijp) = spv(ijp) + vsol*(1.-nyf**2) + sp(ijp) = sp(ijp) + vsol*(1.-nzf**2) + + su(ijp) = su(ijp) + vsol*( u(ijb)*(1.-nxf**2) + vpb*nyf*nxf + wpb*nzf*nxf ) + sv(ijp) = sv(ijp) + vsol*( upb*nxf*nyf + v(ijb)*(1.-nyf**2) + wpb*nzf*nyf ) + sw(ijp) = sw(ijp) + vsol*( upb*nxf*nzf + vpb*nyf*nzf + w(ijb)*(1.-nzf**2) ) + + enddo + + ! *** Another way to implement wall bc + + ! do i=1,nfaces(ib) + + ! iface = startFace(ib) + i + ! ijp = owner(iface) + ! ijb = iBndValueStart(ib) + i + + ! viss = viscos ! viskoznost interolirana na boundary face + ! if(lturb.and.ypl(i).gt.ctrans) viss=visw(i) + + ! cf=viss*srdw(i) ! cf v.s. vsol -> cf is calculated using normal distance in srdw! + + ! ! Face area + ! are = sqrt(arx(iface)**2+ary(iface)**2+arz(iface)**2) + + ! ! Face normals + ! nxf = arx(iface)/are + ! nyf = ary(iface)/are + ! nzf = arz(iface)/are + + ! ! Dist from cc of owner cell to cf @boundary, cannot expect dpb to be normal to boundary face in general + ! dpb = sqrt( (xc(ijp)-xf(iface))**2 + (yc(ijp)-yf(iface))**2 + (zc(ijp)-zf(iface))**2 ) + + ! ! Diffusion coef. + ! vsol = viss*are/dpb + + ! ! Velocity difference vector components + ! upb = u(ijp)-u(ijb) + ! vpb = v(ijp)-v(ijb) + ! wpb = w(ijp)-w(ijb) + + ! ! Velocity difference vector projected to wall face normal. + ! vnp = upb*nxf+vpb*nyf+wpb*nzf + + ! ! Velocity difference in tangential direction. + ! utp = upb-vnp*nxf + ! vtp = vpb-vnp*nyf + ! wtp = wpb-vnp*nzf + + ! if (ScndOrderWallBC_Model) then + + ! ! Eksplicitna difuzija + ! FdUi=viss*((dUdxi(1,ijp)+dUdxi(1,ijp))*nxf+(dUdxi(2,ijp)+dVdxi(1,ijp))*nyf+(dUdxi(3,ijp)+dWdxi(1,ijp))*nzf) + ! FdVi=viss*((dVdxi(1,ijp)+dUdxi(2,ijp))*nxf+(dVdxi(2,ijp)+dVdxi(2,ijp))*nyf+(dVdxi(3,ijp)+dWdxi(2,ijp))*nzf) + ! FdWi=viss*((dWdxi(1,ijp)+dUdxi(3,ijp))*nxf+(dWdxi(2,ijp)+dVdxi(3,ijp))*nyf+(dWdxi(3,ijp)+dWdxi(3,ijp))*nzf) + ! ! Projektujes eksplicitnu difuziju na nomalu + ! FdNe = FdUi*nxf + FdVi*nyf + FdWi*nzf + ! ! oduzmes od eksplicitne difuzije onu komponentu duz normale + ! FdUi = FdUi-FdNe*nxf + ! FdVi = FdVi-FdNe*nyf + ! FdWi = FdWi-FdNe*nzf + + ! spu(ijp) = spu(ijp) + vsol + ! spv(ijp) = spv(ijp) + vsol + ! sp(ijp) = sp(ijp) + vsol + + ! Su(ijp) = Su(ijp)+Vsol*U(ijp)-(2*cf*Utp+FdUi*Are) + ! Sv(ijp) = Sv(ijp)+Vsol*V(ijp)-(2*cf*Vtp+FdVi*Are) + ! Sw(ijp) = Sw(ijp)+Vsol*W(ijp)-(2*cf*Wtp+FdWi*Are) + + ! else + + ! spu(ijp) = spu(ijp) + vsol + ! spv(ijp) = spv(ijp) + vsol + ! sp(ijp) = sp(ijp) + vsol + + ! su(ijp) = su(ijp) + vsol*u(ijp) - cf*utp + ! sv(ijp) = sv(ijp) + vsol*v(ijp) - cf*vtp + ! sw(ijp) = sw(ijp) + vsol*w(ijp) - cf*wtp + + ! endif + + ! enddo + + endif + + enddo + + + ! Modify coefficients for Crank-Nicolson + if (cn) then + a = 0.5_dp*a ! Doesn't affect the main diagonal because it's still zero. + endif + + +! +! Assembling and Under-relaxation +! + + ! Crank-Nicolson time stepping source terms + if (cn) then + + do i = 1,numInnerFaces + ijp = owner(i) + ijn = neighbour(i) + + k = icell_jcell_csr_index(i) + su(ijp) = su(ijp) - a(k)*uo(ijn) + + k = jcell_icell_csr_index(i) + su(ijn) = su(ijn) - a(k)*uo(ijp) + enddo + + do ijp=1,numCells + apotime = den(ijp)*vol(ijp)/timestep + sum_off_diagonal_terms = sum( a(ioffset(ijp) : ioffset(ijp+1)-1) ) - a(diag(ijp)) + su(ijp) = su(ijp) + (apotime + sum_off_diagonal_terms)*uo(ijp) + spu(ijp) = spu(ijp) + apotime + enddo + + endif + + urfrs=urfr(iu) + urfms=urfm(iu) + + do inp = 1,numCells + + ! Main diagonal term assembly: + ! Sum all coefs in a row of a sparse matrix, but since we also included diagonal element + ! we substract it from the sum, to eliminate it from the sum. + ! We could also write sum( a(ioffset(inp)) : a(ioffset(inp+1)-1) ) because all diagonal terms are zero. + sum_off_diagonal_terms = sum( a(ioffset(inp) : ioffset(inp+1)-1) ) - a(diag(inp)) + a(diag(inp)) = spu(inp) - sum_off_diagonal_terms + + ! a(diag(inp)) = spu(inp) + ! do k = ioffset(inp),ioffset(inp+1)-1 + ! if (k.eq.diag(inp)) cycle + ! a(diag(inp)) = a(diag(inp)) - a(k) + ! enddo + + ! Underelaxation: + a(diag(inp)) = a(diag(inp))*urfrs + su(inp) = su(inp) + urfms*a(diag(inp))*u(inp) + + apu(inp) = 1.0/(a(diag(inp))+small) + + enddo + + ! ! Solve fvm equations + ! call bicgstab(u,iu) + +! +! Assemble and underrelax system for V component of velocity +! + + ! Crank-Nicolson time stepping source terms + if(cn) then + + do i = 1,numInnerFaces + ijp = owner(i) + ijn = neighbour(i) + + k = icell_jcell_csr_index(i) + sv(ijp) = sv(ijp) - a(k)*vo(ijn) + + k = jcell_icell_csr_index(i) + sv(ijn) = sv(ijn) - a(k)*vo(ijp) + enddo + + do ijp=1,numCells + apotime=den(ijp)*vol(ijp)/timestep + sum_off_diagonal_terms = sum( a(ioffset(ijp) : ioffset(ijp+1)-1) ) - a(diag(ijp)) + sv(ijp) = sv(ijp) + (apotime + sum_off_diagonal_terms)*vo(ijp) + spv(ijp) = spv(ijp)+apotime + enddo + + endif + + urfrs=urfr(iv) + urfms=urfm(iv) + +!@# Ovo je trebalod a se resetuje dijagonala matrice A i rhs vektor Su + ! do inp=1,numCells + ! a(diag(inp)) = 0.0_dp + ! su(inp) = 0.0_dp + ! enddo + + do inp = 1,numCells + + ! Main diagonal term assembly: + sum_off_diagonal_terms = sum( a(ioffset(inp) : ioffset(inp+1)-1) ) - a(diag(inp)) + a(diag(inp)) = spv(inp) - sum_off_diagonal_terms + + ! a(diag(inp)) = spv(inp) + ! do k = ioffset(inp),ioffset(inp+1)-1 + ! if (k.eq.diag(inp)) cycle + ! a(diag(inp)) = a(diag(inp)) - a(k) + ! enddo + + ! Underelaxation: + a(diag(inp)) = a(diag(inp))*urfrs + su(inp) = sv(inp) + urfms*a(diag(inp))*v(inp) + + apv(inp) = 1.0/(a(diag(inp))+small) + + enddo + + ! ! Solve fvm equations + ! call bicgstab(v,iv) + +! +! Assemble and underrelax system for W component of velocity +! + + ! Crank-Nicolson time stepping source terms + if(cn) then + + do i = 1,numInnerFaces + ijp = owner(i) + ijn = neighbour(i) + + k = icell_jcell_csr_index(i) + sw(ijp) = sw(ijp) - a(k)*wo(ijn) + + k = jcell_icell_csr_index(i) + sw(ijn) = sw(ijn) - a(k)*wo(ijp) + enddo + + do ijp=1,numCells + apotime = den(ijp)*vol(ijp)/timestep + sum_off_diagonal_terms = sum( a(ioffset(ijp) : ioffset(ijp+1)-1) ) - a(diag(ijp)) + sw(ijp) = sw(ijp) + (apotime + sum_off_diagonal_terms)*wo(ijp) + sp(ijp) = sp(ijp) + apotime + enddo + + endif + + urfrs=urfr(iw) + urfms=urfm(iw) + +!@# Ovo je trebalod a se resetuje dijagonala matrice A i rhs vektor Su + ! do inp=1,numCells + ! a(diag(inp)) = 0.0_dp + ! su(inp) = 0.0_dp + ! enddo + + do inp = 1,numCells + + ! Main diagonal term assembly: + sum_off_diagonal_terms = sum( a(ioffset(inp) : ioffset(inp+1)-1) ) - a(diag(inp)) + a(diag(inp)) = sp(inp) - sum_off_diagonal_terms + + ! a(diag(inp)) = sp(inp) + ! do k = ioffset(inp),ioffset(inp+1)-1 + ! if (k.eq.diag(inp)) cycle + ! a(diag(inp)) = a(diag(inp)) - a(k) + ! enddo + + ! Underelaxation: + a(diag(inp)) = a(diag(inp))*urfrs + su(inp) = sw(inp) + urfms*a(diag(inp))*w(inp) + + apw(inp) = 1./(a(diag(inp))+small) + + + enddo + + ! ! Solve fvm equations + ! call bicgstab(w,iw) + +end subroutine + +end module \ No newline at end of file diff --git a/src/finiteVolume/fvExplicit/calc_strain_and_vorticity.f90 b/src/finiteVolume/fvExplicit/calc_strain_and_vorticity.f90 old mode 100644 new mode 100755 diff --git a/src/finiteVolume/fvExplicit/calcheatflux.f90 b/src/finiteVolume/fvExplicit/calcheatflux.f90 old mode 100644 new mode 100755 diff --git a/src/finiteVolume/fvExplicit/calcstress.f90 b/src/finiteVolume/fvExplicit/calcstress.f90 old mode 100644 new mode 100755 diff --git a/src/finiteVolume/fvExplicit/fieldManipulation.f90 b/src/finiteVolume/fvExplicit/fieldManipulation.f90 old mode 100644 new mode 100755 index 4a059c9..06c22f7 --- a/src/finiteVolume/fvExplicit/fieldManipulation.f90 +++ b/src/finiteVolume/fvExplicit/fieldManipulation.f90 @@ -8,10 +8,19 @@ module fieldManipulation implicit none - ! The inerpolations that we do for e.g. divergence is hardcoded here - ! I think it is the best thing to choose the best working thing. + !**************************************************** + ! The inerpolations that we do for e.g. divergence is hardcoded here. ! Recommended are: 'central', 'cds', 'cdscorr' - character(len=10), parameter :: scheme = 'cdscorr' + ! NOTE: + ! . scheme = 'cdscorr' or scheme = 'central' are good if we have specified ( interpolation_coeff_variant == 1 ) + ! in the "geometry" module. + ! . scheme = 'cds' or scheme = 'central' are good if we have specified ( interpolation_coeff_variant == 2 ) + ! in the "geometry" module. + ! The "interpolation_coeff_variant" is set as parameter in the header of the "geometry" module and determines + ! how we calculate interpolation factor. Option "2" is typical for CFD codes, while "1" is something specific + ! for freeCappuccino. + !**************************************************** + character(len=10), parameter :: scheme = 'cds' interface explDiv module procedure explDiv @@ -76,20 +85,23 @@ subroutine calcPressDiv !*********************************************************************** ! use geometry + use parameters, only: small use variables, only: p,dPdxi - use sparse_matrix, only: su,sv,sw + use sparse_matrix, only: su,sv,sw,apu implicit none + + ! Local + integer, parameter :: nipgrad = 2 + integer :: i,ijp,ijn,ijb,iface,istage + real(dp) :: dfxe,dfye,dfze + real(dp) :: pf + ! !*********************************************************************** ! -!...Local - integer, parameter :: nipgrad = 2 - integer :: i,ijp,ijn,ijb,iface,istage - real(dp) :: dfxe,dfye,dfze - ! Pressure gradient do istage=1,nipgrad ! Pressure at boundaries (for correct calculation of press. gradient) @@ -104,8 +116,21 @@ subroutine calcPressDiv do i=1,numInnerFaces ijp = owner(i) ijn = neighbour(i) - call presFaceDivInner(ijp, ijn, xf(i), yf(i), zf(i), arx(i), ary(i), arz(i), facint(i), & - p, dPdxi,dfxe,dfye,dfze) + + ! ! Linear interpolation of rpessure to face + ! call presFaceDivInner(ijp, ijn, xf(i), yf(i), zf(i), arx(i), ary(i), arz(i), facint(i), & + ! p, dPdxi,dfxe,dfye,dfze) + + + ! Pressure on face based on "Standard" interpolation in Fluent. + ! This is weighted interpolation where weights are mass flows estimated at respective cell center + pf = ( p(ijp)*Apu(ijp)+p(ijn)*Apu(ijn) ) / ( Apu(ijp) + Apu(ijn) + small ) + + ! Contribution =(interpolated mid-face value)x(area) + dfxe = pf*arx(i) + dfye = pf*ary(i) + dfze = pf*arz(i) + ! Accumulate contribution at cell center and neighbour. ! ***NOTE, we calculate negative Divergence, therefore opposite sign (minus in front of e.g. dfxe, etc.) @@ -126,6 +151,11 @@ subroutine calcPressDiv ijp = owner(iface) ijb = numCells + i call presFaceDivBoundary(arx(iface), ary(iface), arz(iface), p(ijb), su(ijp), sv(ijp), sw(ijp)) + + ! su(ijp) = su(ijp) - p(ijb)*arx(iface) + ! sv(ijp) = sv(ijp) - p(ijb)*ary(iface) + ! sw(ijp) = sw(ijp) - p(ijb)*arz(iface) + enddo return @@ -182,11 +212,7 @@ function explDiv(u,v,w) result(div) iface = numInnerFaces + i ijp = owner(iface) ijb = numCells + i - call faceDivBoundary(arx(iface), ary(iface), arz(iface), u(ijb),v(ijb),w(ijb), dfxe) - ! I'm putting minus here, because the face normal is allways facing out - ! and if we get positive alignement with that vector we will have a positive contribution - ! to divergence, but the thing is in fact opposite since divergence - ! grows if something goes into the volume + call faceDivBoundary(arx(iface), ary(iface), arz(iface), u(ijb),v(ijb),w(ijb), dfxe) div(ijp) = div(ijp) + dfxe enddo @@ -248,10 +274,6 @@ function explDivMdot(flmass,u,v,w) result(div) ijp = owner(iface) ijb = numCells + i call faceDivBoundary(arx(iface), ary(iface), arz(iface), u(ijb),v(ijb),w(ijb), dfxe) - ! I'm putting minus here, because the face normal is allways facing out - ! and if we get positive alignement with that vector we will have a positive contribution - ! to divergence, but the thing is in fact opposite since divergence - ! grows if something goes into the volume div(ijp) = div(ijp) + flmass(iface) * dfxe enddo diff --git a/src/finiteVolume/fvExplicit/fvx.f90 b/src/finiteVolume/fvExplicit/fvx.f90 old mode 100644 new mode 100755 diff --git a/src/finiteVolume/fvExplicit/fvxDdt.f90 b/src/finiteVolume/fvExplicit/fvxDdt.f90 old mode 100644 new mode 100755 diff --git a/src/finiteVolume/fvExplicit/fvxDivergence.f90 b/src/finiteVolume/fvExplicit/fvxDivergence.f90 old mode 100644 new mode 100755 diff --git a/src/finiteVolume/fvExplicit/fvxGradient.f90 b/src/finiteVolume/fvExplicit/fvxGradient.f90 old mode 100644 new mode 100755 diff --git a/src/finiteVolume/fvExplicit/fvxInterpolation.f90 b/src/finiteVolume/fvExplicit/fvxInterpolation.f90 old mode 100644 new mode 100755 diff --git a/src/finiteVolume/fvExplicit/fvxLaplacian.f90 b/src/finiteVolume/fvExplicit/fvxLaplacian.f90 old mode 100644 new mode 100755 diff --git a/src/finiteVolume/fvExplicit/gradients-old.f90 b/src/finiteVolume/fvExplicit/gradients-old.f90 old mode 100644 new mode 100755 diff --git a/src/finiteVolume/fvExplicit/gradients.f90 b/src/finiteVolume/fvExplicit/gradients.f90 old mode 100644 new mode 100755 diff --git a/src/finiteVolume/fvExplicit/vortexIdentification.f90 b/src/finiteVolume/fvExplicit/vortexIdentification.f90 old mode 100644 new mode 100755 diff --git a/src/finiteVolume/fvExplicit/wallSurfaceFields.f90 b/src/finiteVolume/fvExplicit/wallSurfaceFields.f90 old mode 100644 new mode 100755 diff --git a/src/finiteVolume/fvImplicit/fvEquation.f90 b/src/finiteVolume/fvImplicit/fvEquation.f90 old mode 100644 new mode 100755 diff --git a/src/finiteVolume/fvImplicit/fvField.f90 b/src/finiteVolume/fvImplicit/fvField.f90 old mode 100644 new mode 100755 diff --git a/src/finiteVolume/fvImplicit/fviDdt.f90 b/src/finiteVolume/fvImplicit/fviDdt.f90 old mode 100644 new mode 100755 diff --git a/src/finiteVolume/fvImplicit/fviDivergence.f90 b/src/finiteVolume/fvImplicit/fviDivergence.f90 old mode 100644 new mode 100755 diff --git a/src/finiteVolume/fvImplicit/fviLaplacian.f90 b/src/finiteVolume/fvImplicit/fviLaplacian.f90 old mode 100644 new mode 100755 diff --git a/src/finiteVolume/fvImplicit/fviSuSp.f90 b/src/finiteVolume/fvImplicit/fviSuSp.f90 old mode 100644 new mode 100755 diff --git a/src/finiteVolume/fvImplicit/laplacian.f90 b/src/finiteVolume/fvImplicit/laplacian.f90 old mode 100644 new mode 100755 diff --git a/src/finiteVolume/initialization/field_initialization.f90 b/src/finiteVolume/initialization/field_initialization.f90 old mode 100644 new mode 100755 index e678fde..1cd5d74 --- a/src/finiteVolume/initialization/field_initialization.f90 +++ b/src/finiteVolume/initialization/field_initialization.f90 @@ -9,7 +9,7 @@ module field_initialization use types use geometry -use utils, only: get_unit +use utils, only: get_unit implicit none @@ -25,14 +25,16 @@ module field_initialization contains -subroutine initialize_vector_field(u,v,w, dUdxi, field_name) +subroutine initialize_vector_field(u,v,w, dUdxi, iphi, field_name) ! ! Reads 'field_name' file form 0/ folder ! + implicit none real(dp), dimension(numTotal) :: u,v,w real(dp), dimension(3,numTotal) :: dUdxi + integer, intent(in) :: iphi character(len=*) :: field_name ! @@ -106,54 +108,57 @@ subroutine initialize_vector_field(u,v,w, dUdxi, field_name) write(*,'(4x,a)') type if ( type == 'Dirichlet' ) then + + bcDFraction(iphi,ib) = 1.0_dp !!! Set Dirichlet fraction for value update to one. + read(input_unit,*) distribution - if ( distribution == 'uniform' ) then - read(input_unit,*) u0,v0,w0 - write(*,'(8x,a,3e15.7)') 'uniform',u0,v0,w0 - do i=1,nfaces(ib) - ijb = iBndValueStart(ib) + i - u(ijb) = u0 - v(ijb) = v0 - w(ijb) = w0 - end do - else ! nonuniform - write(*,'(8x,a)') 'nonuniform' - do i=1,nfaces(ib) - ijb = iBndValueStart(ib) + i - read(input_unit,*) u(ijb),v(ijb),w(ijb) - ! write(*,'(8x,3e15.7)') u(ijb),v(ijb),w(ijb) - end do - endif + if ( distribution == 'uniform' ) then + read(input_unit,*) u0,v0,w0 + write(*,'(8x,a,3e15.7)') 'uniform',u0,v0,w0 + do i=1,nfaces(ib) + ijb = iBndValueStart(ib) + i + u(ijb) = u0 + v(ijb) = v0 + w(ijb) = w0 + end do + else ! nonuniform + write(*,'(8x,a)') 'nonuniform' + do i=1,nfaces(ib) + ijb = iBndValueStart(ib) + i + read(input_unit,*) u(ijb),v(ijb),w(ijb) + ! write(*,'(8x,3e15.7)') u(ijb),v(ijb),w(ijb) + end do + endif endif if ( type == 'Neumann' ) then read(input_unit,*) distribution - write(*,'(6x,a)') distribution - if ( distribution == 'uniform' ) then - read(input_unit,*) u0,v0,w0 - write(*,'(8x,3e15.7)') u0,v0,w0 - do i=1,nfaces(ib) - ijb = iBndValueStart(ib) + i - dUdxi(1,ijb) = u0 - dUdxi(2,ijb) = v0 - dUdxi(3,ijb) = w0 - end do - elseif ( distribution == 'zeroGradient' ) then - do i=1,nfaces(ib) - iface = startFace(ib) + i - ijp = owner(iface) - ijb = iBndValueStart(ib) + i - u(ijb) = u(ijp) - v(ijb) = v(ijp) - w(ijb) = w(ijp) - end do - else ! nonuniform - write(*,'(8x,a,3e15.7)') 'nonuniform' - do i=1,nfaces(ib) - ijb = iBndValueStart(ib) + i - read(input_unit,*) dUdxi(1,ijb),dUdxi(2,ijb),dUdxi(3,ijb) - end do - endif + write(*,'(6x,a)') distribution + if ( distribution == 'uniform' ) then + read(input_unit,*) u0,v0,w0 + write(*,'(8x,3e15.7)') u0,v0,w0 + do i=1,nfaces(ib) + ijb = iBndValueStart(ib) + i + dUdxi(1,ijb) = u0 + dUdxi(2,ijb) = v0 + dUdxi(3,ijb) = w0 + end do + elseif ( distribution == 'zeroGradient' ) then + do i=1,nfaces(ib) + iface = startFace(ib) + i + ijp = owner(iface) + ijb = iBndValueStart(ib) + i + u(ijb) = u(ijp) + v(ijb) = v(ijp) + w(ijb) = w(ijp) + end do + else ! nonuniform + write(*,'(8x,a,3e15.7)') 'nonuniform' + do i=1,nfaces(ib) + ijb = iBndValueStart(ib) + i + read(input_unit,*) dUdxi(1,ijb),dUdxi(2,ijb),dUdxi(3,ijb) + end do + endif endif enddo @@ -166,14 +171,17 @@ subroutine initialize_vector_field(u,v,w, dUdxi, field_name) end subroutine -subroutine initialize_scalar_field(T, dTdxi, field_name) +subroutine initialize_scalar_field(T, dTdxi, iphi, field_name) ! ! Reads 'field_name' file form 0/ folder ! +use geometry, only: bcDFraction + implicit none real(dp), dimension(numTotal), intent(inout) :: T real(dp), dimension(numTotal), intent(inout):: dTdxi + integer, intent(in) :: iphi character(len=*) :: field_name ! @@ -245,49 +253,53 @@ subroutine initialize_scalar_field(T, dTdxi, field_name) write(*,'(4x,a)') type if ( type == 'Dirichlet' ) then + + bcDFraction(iphi,ib) = 1.0_dp !!! Set Dirichlet fraction for value update to one. + read(input_unit,*) distribution - write(*,'(6x,a)') distribution - if ( distribution == 'uniform' ) then - read(input_unit,*) t0 - write(*,'(8x,a,3e15.7)') 'uniform',t0 - do i=1,nfaces(ib) - ijb = iBndValueStart(ib) + i - T(ijb) = t0 - end do - else ! nonuniform - write(*,'(8x,a,3e15.7)') 'nonuniform' - do i=1,nfaces(ib) - ijb = iBndValueStart(ib) + i - read(input_unit,*) T(ijb) - ! write(*,'(8x,e15.7)') T(ijb) - end do - endif + write(*,'(6x,a)') distribution + + if ( distribution == 'uniform' ) then + read(input_unit,*) t0 + write(*,'(8x,a,3e15.7)') 'uniform',t0 + do i=1,nfaces(ib) + ijb = iBndValueStart(ib) + i + T(ijb) = t0 + end do + else ! nonuniform + write(*,'(8x,a,3e15.7)') 'nonuniform' + do i=1,nfaces(ib) + ijb = iBndValueStart(ib) + i + read(input_unit,*) T(ijb) + ! write(*,'(8x,e15.7)') T(ijb) + end do + endif endif if ( type == 'Neumann' ) then read(input_unit,*) distribution - write(*,'(6x,a)') distribution - if ( distribution == 'uniform' ) then - read(input_unit,*) t0 - write(*,'(8x,a,3e15.7)') 'uniform',t0 - do i=1,nfaces(ib) - ijb = iBndValueStart(ib) + i - dTdxi(ijb) = t0 - end do - elseif ( distribution == 'zeroGradient' ) then - do i=1,nfaces(ib) - iface = startFace(ib) + i - ijp = owner(iface) - ijb = iBndValueStart(ib) + i - T(ijb) = T(ijp) - end do - else ! nonuniform - write(*,'(8x,a,3e15.7)') 'nonuniform' - do i=1,nfaces(ib) - ijb = iBndValueStart(ib) + i - read(input_unit,*) dTdxi(ijb) - end do - endif + write(*,'(6x,a)') distribution + if ( distribution == 'uniform' ) then + read(input_unit,*) t0 + write(*,'(8x,a,3e15.7)') 'uniform',t0 + do i=1,nfaces(ib) + ijb = iBndValueStart(ib) + i + dTdxi(ijb) = t0 + end do + elseif ( distribution == 'zeroGradient' ) then + do i=1,nfaces(ib) + iface = startFace(ib) + i + ijp = owner(iface) + ijb = iBndValueStart(ib) + i + T(ijb) = T(ijp) + end do + else ! nonuniform + write(*,'(8x,a,3e15.7)') 'nonuniform' + do i=1,nfaces(ib) + ijb = iBndValueStart(ib) + i + read(input_unit,*) dTdxi(ijb) + end do + endif endif enddo diff --git a/src/finiteVolume/interpolation/interpolation.f90 b/src/finiteVolume/interpolation/interpolation.f90 old mode 100644 new mode 100755 diff --git a/src/finiteVolume/tensorFields/tensorFields.f90 b/src/finiteVolume/tensorFields/tensorFields.f90 old mode 100644 new mode 100755 diff --git a/src/io/experimental_read_input.f90 b/src/io/experimental_read_input.f90 new file mode 100644 index 0000000..3202a8b --- /dev/null +++ b/src/io/experimental_read_input.f90 @@ -0,0 +1,35 @@ +module simulation_control + + implicit none + + +subroutine read_input_file +! +! Open & Read and Process Input File +! + + implicit none + + + + open( unit=inpt, file=input_file ) + rewind inpt + + do ! until EOF + + read (inpt, *) key + if (key == '#' .or. key == ' ' ) cycle ! # for a comment in input file or empty string + + if (key == 'Temperature') then + read (inpt,*) lcal(7) + + if (key == 'limiter') then + read (inpt,*) limiter + + + + enddo + +end subroutine + +end module \ No newline at end of file diff --git a/src/io/output.f90 b/src/io/output.f90 old mode 100644 new mode 100755 diff --git a/src/io/read_input.f90 b/src/io/read_input.f90 old mode 100644 new mode 100755 diff --git a/src/io/readfiles.f90 b/src/io/readfiles.f90 old mode 100644 new mode 100755 diff --git a/src/io/write_restart_files.f90 b/src/io/write_restart_files.f90 old mode 100644 new mode 100755 diff --git a/src/io/writefiles.f90 b/src/io/writefiles.f90 old mode 100644 new mode 100755 diff --git a/src/io/writehistory.f90 b/src/io/writehistory.f90 old mode 100644 new mode 100755 diff --git a/src/linearSolvers/LIS_linear_solver_library.f95 b/src/linearSolvers/LIS_linear_solver_library.f95 old mode 100644 new mode 100755 diff --git a/src/linearSolvers/bicgstab.f90 b/src/linearSolvers/bicgstab.f90 old mode 100644 new mode 100755 diff --git a/src/linearSolvers/dpcg.f90 b/src/linearSolvers/dpcg.f90 old mode 100644 new mode 100755 diff --git a/src/linearSolvers/gauss-seidel.f90 b/src/linearSolvers/gauss-seidel.f90 old mode 100644 new mode 100755 diff --git a/src/linearSolvers/iccg.f90 b/src/linearSolvers/iccg.f90 old mode 100644 new mode 100755 diff --git a/src/linearSolvers/linear_solvers.f90 b/src/linearSolvers/linear_solvers.f90 old mode 100644 new mode 100755 diff --git a/src/linearSolvers/mgmres.f90 b/src/linearSolvers/mgmres.f90 old mode 100644 new mode 100755 diff --git a/src/materialProperties/constitutiveRelations.f90 b/src/materialProperties/constitutiveRelations.f90 old mode 100644 new mode 100755 diff --git a/src/mesh/geometry-dev.f90 b/src/mesh/geometry-dev.f90 old mode 100644 new mode 100755 diff --git a/src/mesh/geometry.f90 b/src/mesh/geometry.f90 old mode 100644 new mode 100755 index 306022c..1d786c2 --- a/src/mesh/geometry.f90 +++ b/src/mesh/geometry.f90 @@ -26,6 +26,7 @@ module geometry integer :: numBoundaries integer, dimension(:), allocatable :: nfaces,startFace,iBndValueStart character(len=15), dimension(:), allocatable :: bcname, bctype +real(dp), dimension(:,:), allocatable :: bcDFraction integer :: nwal ! Total no. of boundary faces of type 'wall' integer :: nsym ! Total no. of boundary faces of type 'symmetry' @@ -180,6 +181,14 @@ subroutine read_mesh_native allocate ( startFace(numBoundaries) ) allocate ( iBndValueStart(numBoundaries)) + ! Control how we update fields on boundaries using Dirichlet Fraction; equals one for Dirichlet boundary + allocate ( bcDFraction(12,numBoundaries)) ! lets say for 12 fields and for every boundary + + ! Initialize all boundaries to Neumann, therefore Dirichlet fraction is zero. + ! This is changed to one if we stumble upon "Dirichlet" keyword when reading initial fields in 0/ folder. + ! checkout field_initialization module. + bcDFraction = 0.0_dp + nwal = 0 nsym = 0 ninl = 0 @@ -511,7 +520,7 @@ subroutine read_mesh_native enddo - else + else ! ( interpolation_coeff_variant == 2 ) ! ! > Interpolation factor > inner faces - Variant 2. @@ -763,6 +772,14 @@ subroutine read_mesh allocate ( startFace(numBoundaries) ) allocate ( iBndValueStart(numBoundaries)) + ! Control how we update fields on boundaries using Dirichlet Fraction; equals one for Dirichlet boundary + allocate ( bcDFraction(12,numBoundaries)) ! lets say for 12 fields and for every boundary + + ! Initialize all boundaries to Neumann, therefore Dirichlet fraction is zero. + ! This is changed to one if we stumble upon "Dirichlet" keyword when reading initial fields in 0/ folder. + ! checkout field_initialization module. + bcDFraction = 0.0_dp + nwal = 0 nsym = 0 ninl = 0 diff --git a/src/misc/matrix.f90 b/src/misc/matrix.f90 old mode 100644 new mode 100755 diff --git a/src/misc/precision.f90 b/src/misc/precision.f90 old mode 100644 new mode 100755 diff --git a/src/misc/utils.f90 b/src/misc/utils.f90 old mode 100644 new mode 100755 index 9aed89e..8449f5b --- a/src/misc/utils.f90 +++ b/src/misc/utils.f90 @@ -82,6 +82,17 @@ subroutine say_goodbye end subroutine +subroutine print_log(line) +! +! Prints line into log file, separated by blank lines. +! + character (len=*), intent(in) :: line + + write(*,'(a)') ' ' + write(*,'(a)') line + write(*,'(a)') ' ' + +end subroutine function csr_to_k(icell,jcell,ioffset,ja) result(k) ! diff --git a/src/module_template.f90 b/src/module_template.f90 old mode 100644 new mode 100755 diff --git a/src/sparseMatrix/sparse_matrix.f90 b/src/sparseMatrix/sparse_matrix.f90 old mode 100644 new mode 100755 diff --git a/test/polyMesh/boundary b/test/polyMesh/boundary old mode 100644 new mode 100755 diff --git a/test/polyMesh/cellgroup-1 b/test/polyMesh/cellgroup-1 old mode 100644 new mode 100755 diff --git a/test/polyMesh/cellgroup-2 b/test/polyMesh/cellgroup-2 old mode 100644 new mode 100755 diff --git a/test/polyMesh/cells b/test/polyMesh/cells old mode 100644 new mode 100755 diff --git a/test/polyMesh/faces b/test/polyMesh/faces old mode 100644 new mode 100755 diff --git a/test/polyMesh/neighbour b/test/polyMesh/neighbour old mode 100644 new mode 100755 diff --git a/test/polyMesh/owner b/test/polyMesh/owner old mode 100644 new mode 100755 diff --git a/test/polyMesh/points b/test/polyMesh/points old mode 100644 new mode 100755 diff --git a/test/testFieldOperations/directories b/test/testFieldOperations/directories new file mode 100755 index 0000000..34dd4b3 --- /dev/null +++ b/test/testFieldOperations/directories @@ -0,0 +1,10 @@ +src/cappuccino +src/misc +src/mesh +src/sparseMatrix +misc/ +src/finiteVolume/tensorFields +src/finiteVolume/fvExplicit + + + diff --git a/test/testFieldOperations/files b/test/testFieldOperations/files new file mode 100755 index 0000000..ba8a9eb --- /dev/null +++ b/test/testFieldOperations/files @@ -0,0 +1,10 @@ +modules_allocatable.f90 +utils.f90 +geometry.f90 +matrix.f90 +sparse_matrix.f90 +tensorFields.f90 +fvxGradient.f90 +fvxInterpolation.f90 +fvxDivergence.f90 +testFieldOperations.f90 \ No newline at end of file diff --git a/test/testFieldOperations/polyMesh/boundary b/test/testFieldOperations/polyMesh/boundary new file mode 100755 index 0000000..a1ad726 --- /dev/null +++ b/test/testFieldOperations/polyMesh/boundary @@ -0,0 +1,4 @@ +#type nFaces startFace +movingTop wall 20 760 +fixedWalls wall 60 780 +backForth symmetry 800 840 diff --git a/test/testFieldOperations/polyMesh/boundary~ b/test/testFieldOperations/polyMesh/boundary~ new file mode 100755 index 0000000..1a7cbcf --- /dev/null +++ b/test/testFieldOperations/polyMesh/boundary~ @@ -0,0 +1,4 @@ +#type nFaces startFace +movingTop wall 20 760 +fixedWalls wall 60 780 +backForth 800 840 diff --git a/test/testFieldOperations/polyMesh/faces b/test/testFieldOperations/polyMesh/faces new file mode 100755 index 0000000..6f46604 --- /dev/null +++ b/test/testFieldOperations/polyMesh/faces @@ -0,0 +1,1664 @@ +/*--------------------------------*- 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 faceList; + location "constant/polyMesh"; + object faces; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + + +1640 +( +4(1 22 463 442) +4(21 462 463 22) +4(2 23 464 443) +4(22 463 464 23) +4(3 24 465 444) +4(23 464 465 24) +4(4 25 466 445) +4(24 465 466 25) +4(5 26 467 446) +4(25 466 467 26) +4(6 27 468 447) +4(26 467 468 27) +4(7 28 469 448) +4(27 468 469 28) +4(8 29 470 449) +4(28 469 470 29) +4(9 30 471 450) +4(29 470 471 30) +4(10 31 472 451) +4(30 471 472 31) +4(11 32 473 452) +4(31 472 473 32) +4(12 33 474 453) +4(32 473 474 33) +4(13 34 475 454) +4(33 474 475 34) +4(14 35 476 455) +4(34 475 476 35) +4(15 36 477 456) +4(35 476 477 36) +4(16 37 478 457) +4(36 477 478 37) +4(17 38 479 458) +4(37 478 479 38) +4(18 39 480 459) +4(38 479 480 39) +4(19 40 481 460) +4(39 480 481 40) +4(40 481 482 41) +4(22 43 484 463) +4(42 483 484 43) +4(23 44 485 464) +4(43 484 485 44) +4(24 45 486 465) +4(44 485 486 45) +4(25 46 487 466) +4(45 486 487 46) +4(26 47 488 467) +4(46 487 488 47) +4(27 48 489 468) +4(47 488 489 48) +4(28 49 490 469) +4(48 489 490 49) +4(29 50 491 470) +4(49 490 491 50) +4(30 51 492 471) +4(50 491 492 51) +4(31 52 493 472) +4(51 492 493 52) +4(32 53 494 473) +4(52 493 494 53) +4(33 54 495 474) +4(53 494 495 54) +4(34 55 496 475) +4(54 495 496 55) +4(35 56 497 476) +4(55 496 497 56) +4(36 57 498 477) +4(56 497 498 57) +4(37 58 499 478) +4(57 498 499 58) +4(38 59 500 479) +4(58 499 500 59) +4(39 60 501 480) +4(59 500 501 60) +4(40 61 502 481) +4(60 501 502 61) +4(61 502 503 62) +4(43 64 505 484) +4(63 504 505 64) +4(44 65 506 485) +4(64 505 506 65) +4(45 66 507 486) +4(65 506 507 66) +4(46 67 508 487) +4(66 507 508 67) +4(47 68 509 488) +4(67 508 509 68) +4(48 69 510 489) +4(68 509 510 69) +4(49 70 511 490) +4(69 510 511 70) +4(50 71 512 491) +4(70 511 512 71) +4(51 72 513 492) +4(71 512 513 72) +4(52 73 514 493) +4(72 513 514 73) +4(53 74 515 494) +4(73 514 515 74) +4(54 75 516 495) +4(74 515 516 75) +4(55 76 517 496) +4(75 516 517 76) +4(56 77 518 497) +4(76 517 518 77) +4(57 78 519 498) +4(77 518 519 78) +4(58 79 520 499) +4(78 519 520 79) +4(59 80 521 500) +4(79 520 521 80) +4(60 81 522 501) +4(80 521 522 81) +4(61 82 523 502) +4(81 522 523 82) +4(82 523 524 83) +4(64 85 526 505) +4(84 525 526 85) +4(65 86 527 506) +4(85 526 527 86) +4(66 87 528 507) +4(86 527 528 87) +4(67 88 529 508) +4(87 528 529 88) +4(68 89 530 509) +4(88 529 530 89) +4(69 90 531 510) +4(89 530 531 90) +4(70 91 532 511) +4(90 531 532 91) +4(71 92 533 512) +4(91 532 533 92) +4(72 93 534 513) +4(92 533 534 93) +4(73 94 535 514) +4(93 534 535 94) +4(74 95 536 515) +4(94 535 536 95) +4(75 96 537 516) +4(95 536 537 96) +4(76 97 538 517) +4(96 537 538 97) +4(77 98 539 518) +4(97 538 539 98) +4(78 99 540 519) +4(98 539 540 99) +4(79 100 541 520) +4(99 540 541 100) +4(80 101 542 521) +4(100 541 542 101) +4(81 102 543 522) +4(101 542 543 102) +4(82 103 544 523) +4(102 543 544 103) +4(103 544 545 104) +4(85 106 547 526) +4(105 546 547 106) +4(86 107 548 527) +4(106 547 548 107) +4(87 108 549 528) +4(107 548 549 108) +4(88 109 550 529) +4(108 549 550 109) +4(89 110 551 530) +4(109 550 551 110) +4(90 111 552 531) +4(110 551 552 111) +4(91 112 553 532) +4(111 552 553 112) +4(92 113 554 533) +4(112 553 554 113) +4(93 114 555 534) +4(113 554 555 114) +4(94 115 556 535) +4(114 555 556 115) +4(95 116 557 536) +4(115 556 557 116) +4(96 117 558 537) +4(116 557 558 117) +4(97 118 559 538) +4(117 558 559 118) +4(98 119 560 539) +4(118 559 560 119) +4(99 120 561 540) +4(119 560 561 120) +4(100 121 562 541) +4(120 561 562 121) +4(101 122 563 542) +4(121 562 563 122) +4(102 123 564 543) +4(122 563 564 123) +4(103 124 565 544) +4(123 564 565 124) +4(124 565 566 125) +4(106 127 568 547) +4(126 567 568 127) +4(107 128 569 548) +4(127 568 569 128) +4(108 129 570 549) +4(128 569 570 129) +4(109 130 571 550) +4(129 570 571 130) +4(110 131 572 551) +4(130 571 572 131) +4(111 132 573 552) +4(131 572 573 132) +4(112 133 574 553) +4(132 573 574 133) +4(113 134 575 554) +4(133 574 575 134) +4(114 135 576 555) +4(134 575 576 135) +4(115 136 577 556) +4(135 576 577 136) +4(116 137 578 557) +4(136 577 578 137) +4(117 138 579 558) +4(137 578 579 138) +4(118 139 580 559) +4(138 579 580 139) +4(119 140 581 560) +4(139 580 581 140) +4(120 141 582 561) +4(140 581 582 141) +4(121 142 583 562) +4(141 582 583 142) +4(122 143 584 563) +4(142 583 584 143) +4(123 144 585 564) +4(143 584 585 144) +4(124 145 586 565) +4(144 585 586 145) +4(145 586 587 146) +4(127 148 589 568) +4(147 588 589 148) +4(128 149 590 569) +4(148 589 590 149) +4(129 150 591 570) +4(149 590 591 150) +4(130 151 592 571) +4(150 591 592 151) +4(131 152 593 572) +4(151 592 593 152) +4(132 153 594 573) +4(152 593 594 153) +4(133 154 595 574) +4(153 594 595 154) +4(134 155 596 575) +4(154 595 596 155) +4(135 156 597 576) +4(155 596 597 156) +4(136 157 598 577) +4(156 597 598 157) +4(137 158 599 578) +4(157 598 599 158) +4(138 159 600 579) +4(158 599 600 159) +4(139 160 601 580) +4(159 600 601 160) +4(140 161 602 581) +4(160 601 602 161) +4(141 162 603 582) +4(161 602 603 162) +4(142 163 604 583) +4(162 603 604 163) +4(143 164 605 584) +4(163 604 605 164) +4(144 165 606 585) +4(164 605 606 165) +4(145 166 607 586) +4(165 606 607 166) +4(166 607 608 167) +4(148 169 610 589) +4(168 609 610 169) +4(149 170 611 590) +4(169 610 611 170) +4(150 171 612 591) +4(170 611 612 171) +4(151 172 613 592) +4(171 612 613 172) +4(152 173 614 593) +4(172 613 614 173) +4(153 174 615 594) +4(173 614 615 174) +4(154 175 616 595) +4(174 615 616 175) +4(155 176 617 596) +4(175 616 617 176) +4(156 177 618 597) +4(176 617 618 177) +4(157 178 619 598) +4(177 618 619 178) +4(158 179 620 599) +4(178 619 620 179) +4(159 180 621 600) +4(179 620 621 180) +4(160 181 622 601) +4(180 621 622 181) +4(161 182 623 602) +4(181 622 623 182) +4(162 183 624 603) +4(182 623 624 183) +4(163 184 625 604) +4(183 624 625 184) +4(164 185 626 605) +4(184 625 626 185) +4(165 186 627 606) +4(185 626 627 186) +4(166 187 628 607) +4(186 627 628 187) +4(187 628 629 188) +4(169 190 631 610) +4(189 630 631 190) +4(170 191 632 611) +4(190 631 632 191) +4(171 192 633 612) +4(191 632 633 192) +4(172 193 634 613) +4(192 633 634 193) +4(173 194 635 614) +4(193 634 635 194) +4(174 195 636 615) +4(194 635 636 195) +4(175 196 637 616) +4(195 636 637 196) +4(176 197 638 617) +4(196 637 638 197) +4(177 198 639 618) +4(197 638 639 198) +4(178 199 640 619) +4(198 639 640 199) +4(179 200 641 620) +4(199 640 641 200) +4(180 201 642 621) +4(200 641 642 201) +4(181 202 643 622) +4(201 642 643 202) +4(182 203 644 623) +4(202 643 644 203) +4(183 204 645 624) +4(203 644 645 204) +4(184 205 646 625) +4(204 645 646 205) +4(185 206 647 626) +4(205 646 647 206) +4(186 207 648 627) +4(206 647 648 207) +4(187 208 649 628) +4(207 648 649 208) +4(208 649 650 209) +4(190 211 652 631) +4(210 651 652 211) +4(191 212 653 632) +4(211 652 653 212) +4(192 213 654 633) +4(212 653 654 213) +4(193 214 655 634) +4(213 654 655 214) +4(194 215 656 635) +4(214 655 656 215) +4(195 216 657 636) +4(215 656 657 216) +4(196 217 658 637) +4(216 657 658 217) +4(197 218 659 638) +4(217 658 659 218) +4(198 219 660 639) +4(218 659 660 219) +4(199 220 661 640) +4(219 660 661 220) +4(200 221 662 641) +4(220 661 662 221) +4(201 222 663 642) +4(221 662 663 222) +4(202 223 664 643) +4(222 663 664 223) +4(203 224 665 644) +4(223 664 665 224) +4(204 225 666 645) +4(224 665 666 225) +4(205 226 667 646) +4(225 666 667 226) +4(206 227 668 647) +4(226 667 668 227) +4(207 228 669 648) +4(227 668 669 228) +4(208 229 670 649) +4(228 669 670 229) +4(229 670 671 230) +4(211 232 673 652) +4(231 672 673 232) +4(212 233 674 653) +4(232 673 674 233) +4(213 234 675 654) +4(233 674 675 234) +4(214 235 676 655) +4(234 675 676 235) +4(215 236 677 656) +4(235 676 677 236) +4(216 237 678 657) +4(236 677 678 237) +4(217 238 679 658) +4(237 678 679 238) +4(218 239 680 659) +4(238 679 680 239) +4(219 240 681 660) +4(239 680 681 240) +4(220 241 682 661) +4(240 681 682 241) +4(221 242 683 662) +4(241 682 683 242) +4(222 243 684 663) +4(242 683 684 243) +4(223 244 685 664) +4(243 684 685 244) +4(224 245 686 665) +4(244 685 686 245) +4(225 246 687 666) +4(245 686 687 246) +4(226 247 688 667) +4(246 687 688 247) +4(227 248 689 668) +4(247 688 689 248) +4(228 249 690 669) +4(248 689 690 249) +4(229 250 691 670) +4(249 690 691 250) +4(250 691 692 251) +4(232 253 694 673) +4(252 693 694 253) +4(233 254 695 674) +4(253 694 695 254) +4(234 255 696 675) +4(254 695 696 255) +4(235 256 697 676) +4(255 696 697 256) +4(236 257 698 677) +4(256 697 698 257) +4(237 258 699 678) +4(257 698 699 258) +4(238 259 700 679) +4(258 699 700 259) +4(239 260 701 680) +4(259 700 701 260) +4(240 261 702 681) +4(260 701 702 261) +4(241 262 703 682) +4(261 702 703 262) +4(242 263 704 683) +4(262 703 704 263) +4(243 264 705 684) +4(263 704 705 264) +4(244 265 706 685) +4(264 705 706 265) +4(245 266 707 686) +4(265 706 707 266) +4(246 267 708 687) +4(266 707 708 267) +4(247 268 709 688) +4(267 708 709 268) +4(248 269 710 689) +4(268 709 710 269) +4(249 270 711 690) +4(269 710 711 270) +4(250 271 712 691) +4(270 711 712 271) +4(271 712 713 272) +4(253 274 715 694) +4(273 714 715 274) +4(254 275 716 695) +4(274 715 716 275) +4(255 276 717 696) +4(275 716 717 276) +4(256 277 718 697) +4(276 717 718 277) +4(257 278 719 698) +4(277 718 719 278) +4(258 279 720 699) +4(278 719 720 279) +4(259 280 721 700) +4(279 720 721 280) +4(260 281 722 701) +4(280 721 722 281) +4(261 282 723 702) +4(281 722 723 282) +4(262 283 724 703) +4(282 723 724 283) +4(263 284 725 704) +4(283 724 725 284) +4(264 285 726 705) +4(284 725 726 285) +4(265 286 727 706) +4(285 726 727 286) +4(266 287 728 707) +4(286 727 728 287) +4(267 288 729 708) +4(287 728 729 288) +4(268 289 730 709) +4(288 729 730 289) +4(269 290 731 710) +4(289 730 731 290) +4(270 291 732 711) +4(290 731 732 291) +4(271 292 733 712) +4(291 732 733 292) +4(292 733 734 293) +4(274 295 736 715) +4(294 735 736 295) +4(275 296 737 716) +4(295 736 737 296) +4(276 297 738 717) +4(296 737 738 297) +4(277 298 739 718) +4(297 738 739 298) +4(278 299 740 719) +4(298 739 740 299) +4(279 300 741 720) +4(299 740 741 300) +4(280 301 742 721) +4(300 741 742 301) +4(281 302 743 722) +4(301 742 743 302) +4(282 303 744 723) +4(302 743 744 303) +4(283 304 745 724) +4(303 744 745 304) +4(284 305 746 725) +4(304 745 746 305) +4(285 306 747 726) +4(305 746 747 306) +4(286 307 748 727) +4(306 747 748 307) +4(287 308 749 728) +4(307 748 749 308) +4(288 309 750 729) +4(308 749 750 309) +4(289 310 751 730) +4(309 750 751 310) +4(290 311 752 731) +4(310 751 752 311) +4(291 312 753 732) +4(311 752 753 312) +4(292 313 754 733) +4(312 753 754 313) +4(313 754 755 314) +4(295 316 757 736) +4(315 756 757 316) +4(296 317 758 737) +4(316 757 758 317) +4(297 318 759 738) +4(317 758 759 318) +4(298 319 760 739) +4(318 759 760 319) +4(299 320 761 740) +4(319 760 761 320) +4(300 321 762 741) +4(320 761 762 321) +4(301 322 763 742) +4(321 762 763 322) +4(302 323 764 743) +4(322 763 764 323) +4(303 324 765 744) +4(323 764 765 324) +4(304 325 766 745) +4(324 765 766 325) +4(305 326 767 746) +4(325 766 767 326) +4(306 327 768 747) +4(326 767 768 327) +4(307 328 769 748) +4(327 768 769 328) +4(308 329 770 749) +4(328 769 770 329) +4(309 330 771 750) +4(329 770 771 330) +4(310 331 772 751) +4(330 771 772 331) +4(311 332 773 752) +4(331 772 773 332) +4(312 333 774 753) +4(332 773 774 333) +4(313 334 775 754) +4(333 774 775 334) +4(334 775 776 335) +4(316 337 778 757) +4(336 777 778 337) +4(317 338 779 758) +4(337 778 779 338) +4(318 339 780 759) +4(338 779 780 339) +4(319 340 781 760) +4(339 780 781 340) +4(320 341 782 761) +4(340 781 782 341) +4(321 342 783 762) +4(341 782 783 342) +4(322 343 784 763) +4(342 783 784 343) +4(323 344 785 764) +4(343 784 785 344) +4(324 345 786 765) +4(344 785 786 345) +4(325 346 787 766) +4(345 786 787 346) +4(326 347 788 767) +4(346 787 788 347) +4(327 348 789 768) +4(347 788 789 348) +4(328 349 790 769) +4(348 789 790 349) +4(329 350 791 770) +4(349 790 791 350) +4(330 351 792 771) +4(350 791 792 351) +4(331 352 793 772) +4(351 792 793 352) +4(332 353 794 773) +4(352 793 794 353) +4(333 354 795 774) +4(353 794 795 354) +4(334 355 796 775) +4(354 795 796 355) +4(355 796 797 356) +4(337 358 799 778) +4(357 798 799 358) +4(338 359 800 779) +4(358 799 800 359) +4(339 360 801 780) +4(359 800 801 360) +4(340 361 802 781) +4(360 801 802 361) +4(341 362 803 782) +4(361 802 803 362) +4(342 363 804 783) +4(362 803 804 363) +4(343 364 805 784) +4(363 804 805 364) +4(344 365 806 785) +4(364 805 806 365) +4(345 366 807 786) +4(365 806 807 366) +4(346 367 808 787) +4(366 807 808 367) +4(347 368 809 788) +4(367 808 809 368) +4(348 369 810 789) +4(368 809 810 369) +4(349 370 811 790) +4(369 810 811 370) +4(350 371 812 791) +4(370 811 812 371) +4(351 372 813 792) +4(371 812 813 372) +4(352 373 814 793) +4(372 813 814 373) +4(353 374 815 794) +4(373 814 815 374) +4(354 375 816 795) +4(374 815 816 375) +4(355 376 817 796) +4(375 816 817 376) +4(376 817 818 377) +4(358 379 820 799) +4(378 819 820 379) +4(359 380 821 800) +4(379 820 821 380) +4(360 381 822 801) +4(380 821 822 381) +4(361 382 823 802) +4(381 822 823 382) +4(362 383 824 803) +4(382 823 824 383) +4(363 384 825 804) +4(383 824 825 384) +4(364 385 826 805) +4(384 825 826 385) +4(365 386 827 806) +4(385 826 827 386) +4(366 387 828 807) +4(386 827 828 387) +4(367 388 829 808) +4(387 828 829 388) +4(368 389 830 809) +4(388 829 830 389) +4(369 390 831 810) +4(389 830 831 390) +4(370 391 832 811) +4(390 831 832 391) +4(371 392 833 812) +4(391 832 833 392) +4(372 393 834 813) +4(392 833 834 393) +4(373 394 835 814) +4(393 834 835 394) +4(374 395 836 815) +4(394 835 836 395) +4(375 396 837 816) +4(395 836 837 396) +4(376 397 838 817) +4(396 837 838 397) +4(397 838 839 398) +4(379 400 841 820) +4(399 840 841 400) +4(380 401 842 821) +4(400 841 842 401) +4(381 402 843 822) +4(401 842 843 402) +4(382 403 844 823) +4(402 843 844 403) +4(383 404 845 824) +4(403 844 845 404) +4(384 405 846 825) +4(404 845 846 405) +4(385 406 847 826) +4(405 846 847 406) +4(386 407 848 827) +4(406 847 848 407) +4(387 408 849 828) +4(407 848 849 408) +4(388 409 850 829) +4(408 849 850 409) +4(389 410 851 830) +4(409 850 851 410) +4(390 411 852 831) +4(410 851 852 411) +4(391 412 853 832) +4(411 852 853 412) +4(392 413 854 833) +4(412 853 854 413) +4(393 414 855 834) +4(413 854 855 414) +4(394 415 856 835) +4(414 855 856 415) +4(395 416 857 836) +4(415 856 857 416) +4(396 417 858 837) +4(416 857 858 417) +4(397 418 859 838) +4(417 858 859 418) +4(418 859 860 419) +4(400 421 862 841) +4(401 422 863 842) +4(402 423 864 843) +4(403 424 865 844) +4(404 425 866 845) +4(405 426 867 846) +4(406 427 868 847) +4(407 428 869 848) +4(408 429 870 849) +4(409 430 871 850) +4(410 431 872 851) +4(411 432 873 852) +4(412 433 874 853) +4(413 434 875 854) +4(414 435 876 855) +4(415 436 877 856) +4(416 437 878 857) +4(417 438 879 858) +4(418 439 880 859) +4(420 861 862 421) +4(421 862 863 422) +4(422 863 864 423) +4(423 864 865 424) +4(424 865 866 425) +4(425 866 867 426) +4(426 867 868 427) +4(427 868 869 428) +4(428 869 870 429) +4(429 870 871 430) +4(430 871 872 431) +4(431 872 873 432) +4(432 873 874 433) +4(433 874 875 434) +4(434 875 876 435) +4(435 876 877 436) +4(436 877 878 437) +4(437 878 879 438) +4(438 879 880 439) +4(439 880 881 440) +4(0 441 462 21) +4(21 462 483 42) +4(42 483 504 63) +4(63 504 525 84) +4(84 525 546 105) +4(105 546 567 126) +4(126 567 588 147) +4(147 588 609 168) +4(168 609 630 189) +4(189 630 651 210) +4(210 651 672 231) +4(231 672 693 252) +4(252 693 714 273) +4(273 714 735 294) +4(294 735 756 315) +4(315 756 777 336) +4(336 777 798 357) +4(357 798 819 378) +4(378 819 840 399) +4(399 840 861 420) +4(20 41 482 461) +4(41 62 503 482) +4(62 83 524 503) +4(83 104 545 524) +4(104 125 566 545) +4(125 146 587 566) +4(146 167 608 587) +4(167 188 629 608) +4(188 209 650 629) +4(209 230 671 650) +4(230 251 692 671) +4(251 272 713 692) +4(272 293 734 713) +4(293 314 755 734) +4(314 335 776 755) +4(335 356 797 776) +4(356 377 818 797) +4(377 398 839 818) +4(398 419 860 839) +4(419 440 881 860) +4(0 1 442 441) +4(1 2 443 442) +4(2 3 444 443) +4(3 4 445 444) +4(4 5 446 445) +4(5 6 447 446) +4(6 7 448 447) +4(7 8 449 448) +4(8 9 450 449) +4(9 10 451 450) +4(10 11 452 451) +4(11 12 453 452) +4(12 13 454 453) +4(13 14 455 454) +4(14 15 456 455) +4(15 16 457 456) +4(16 17 458 457) +4(17 18 459 458) +4(18 19 460 459) +4(19 20 461 460) +4(0 21 22 1) +4(21 42 43 22) +4(42 63 64 43) +4(63 84 85 64) +4(84 105 106 85) +4(105 126 127 106) +4(126 147 148 127) +4(147 168 169 148) +4(168 189 190 169) +4(189 210 211 190) +4(210 231 232 211) +4(231 252 253 232) +4(252 273 274 253) +4(273 294 295 274) +4(294 315 316 295) +4(315 336 337 316) +4(336 357 358 337) +4(357 378 379 358) +4(378 399 400 379) +4(399 420 421 400) +4(1 22 23 2) +4(22 43 44 23) +4(43 64 65 44) +4(64 85 86 65) +4(85 106 107 86) +4(106 127 128 107) +4(127 148 149 128) +4(148 169 170 149) +4(169 190 191 170) +4(190 211 212 191) +4(211 232 233 212) +4(232 253 254 233) +4(253 274 275 254) +4(274 295 296 275) +4(295 316 317 296) +4(316 337 338 317) +4(337 358 359 338) +4(358 379 380 359) +4(379 400 401 380) +4(400 421 422 401) +4(2 23 24 3) +4(23 44 45 24) +4(44 65 66 45) +4(65 86 87 66) +4(86 107 108 87) +4(107 128 129 108) +4(128 149 150 129) +4(149 170 171 150) +4(170 191 192 171) +4(191 212 213 192) +4(212 233 234 213) +4(233 254 255 234) +4(254 275 276 255) +4(275 296 297 276) +4(296 317 318 297) +4(317 338 339 318) +4(338 359 360 339) +4(359 380 381 360) +4(380 401 402 381) +4(401 422 423 402) +4(3 24 25 4) +4(24 45 46 25) +4(45 66 67 46) +4(66 87 88 67) +4(87 108 109 88) +4(108 129 130 109) +4(129 150 151 130) +4(150 171 172 151) +4(171 192 193 172) +4(192 213 214 193) +4(213 234 235 214) +4(234 255 256 235) +4(255 276 277 256) +4(276 297 298 277) +4(297 318 319 298) +4(318 339 340 319) +4(339 360 361 340) +4(360 381 382 361) +4(381 402 403 382) +4(402 423 424 403) +4(4 25 26 5) +4(25 46 47 26) +4(46 67 68 47) +4(67 88 89 68) +4(88 109 110 89) +4(109 130 131 110) +4(130 151 152 131) +4(151 172 173 152) +4(172 193 194 173) +4(193 214 215 194) +4(214 235 236 215) +4(235 256 257 236) +4(256 277 278 257) +4(277 298 299 278) +4(298 319 320 299) +4(319 340 341 320) +4(340 361 362 341) +4(361 382 383 362) +4(382 403 404 383) +4(403 424 425 404) +4(5 26 27 6) +4(26 47 48 27) +4(47 68 69 48) +4(68 89 90 69) +4(89 110 111 90) +4(110 131 132 111) +4(131 152 153 132) +4(152 173 174 153) +4(173 194 195 174) +4(194 215 216 195) +4(215 236 237 216) +4(236 257 258 237) +4(257 278 279 258) +4(278 299 300 279) +4(299 320 321 300) +4(320 341 342 321) +4(341 362 363 342) +4(362 383 384 363) +4(383 404 405 384) +4(404 425 426 405) +4(6 27 28 7) +4(27 48 49 28) +4(48 69 70 49) +4(69 90 91 70) +4(90 111 112 91) +4(111 132 133 112) +4(132 153 154 133) +4(153 174 175 154) +4(174 195 196 175) +4(195 216 217 196) +4(216 237 238 217) +4(237 258 259 238) +4(258 279 280 259) +4(279 300 301 280) +4(300 321 322 301) +4(321 342 343 322) +4(342 363 364 343) +4(363 384 385 364) +4(384 405 406 385) +4(405 426 427 406) +4(7 28 29 8) +4(28 49 50 29) +4(49 70 71 50) +4(70 91 92 71) +4(91 112 113 92) +4(112 133 134 113) +4(133 154 155 134) +4(154 175 176 155) +4(175 196 197 176) +4(196 217 218 197) +4(217 238 239 218) +4(238 259 260 239) +4(259 280 281 260) +4(280 301 302 281) +4(301 322 323 302) +4(322 343 344 323) +4(343 364 365 344) +4(364 385 386 365) +4(385 406 407 386) +4(406 427 428 407) +4(8 29 30 9) +4(29 50 51 30) +4(50 71 72 51) +4(71 92 93 72) +4(92 113 114 93) +4(113 134 135 114) +4(134 155 156 135) +4(155 176 177 156) +4(176 197 198 177) +4(197 218 219 198) +4(218 239 240 219) +4(239 260 261 240) +4(260 281 282 261) +4(281 302 303 282) +4(302 323 324 303) +4(323 344 345 324) +4(344 365 366 345) +4(365 386 387 366) +4(386 407 408 387) +4(407 428 429 408) +4(9 30 31 10) +4(30 51 52 31) +4(51 72 73 52) +4(72 93 94 73) +4(93 114 115 94) +4(114 135 136 115) +4(135 156 157 136) +4(156 177 178 157) +4(177 198 199 178) +4(198 219 220 199) +4(219 240 241 220) +4(240 261 262 241) +4(261 282 283 262) +4(282 303 304 283) +4(303 324 325 304) +4(324 345 346 325) +4(345 366 367 346) +4(366 387 388 367) +4(387 408 409 388) +4(408 429 430 409) +4(10 31 32 11) +4(31 52 53 32) +4(52 73 74 53) +4(73 94 95 74) +4(94 115 116 95) +4(115 136 137 116) +4(136 157 158 137) +4(157 178 179 158) +4(178 199 200 179) +4(199 220 221 200) +4(220 241 242 221) +4(241 262 263 242) +4(262 283 284 263) +4(283 304 305 284) +4(304 325 326 305) +4(325 346 347 326) +4(346 367 368 347) +4(367 388 389 368) +4(388 409 410 389) +4(409 430 431 410) +4(11 32 33 12) +4(32 53 54 33) +4(53 74 75 54) +4(74 95 96 75) +4(95 116 117 96) +4(116 137 138 117) +4(137 158 159 138) +4(158 179 180 159) +4(179 200 201 180) +4(200 221 222 201) +4(221 242 243 222) +4(242 263 264 243) +4(263 284 285 264) +4(284 305 306 285) +4(305 326 327 306) +4(326 347 348 327) +4(347 368 369 348) +4(368 389 390 369) +4(389 410 411 390) +4(410 431 432 411) +4(12 33 34 13) +4(33 54 55 34) +4(54 75 76 55) +4(75 96 97 76) +4(96 117 118 97) +4(117 138 139 118) +4(138 159 160 139) +4(159 180 181 160) +4(180 201 202 181) +4(201 222 223 202) +4(222 243 244 223) +4(243 264 265 244) +4(264 285 286 265) +4(285 306 307 286) +4(306 327 328 307) +4(327 348 349 328) +4(348 369 370 349) +4(369 390 391 370) +4(390 411 412 391) +4(411 432 433 412) +4(13 34 35 14) +4(34 55 56 35) +4(55 76 77 56) +4(76 97 98 77) +4(97 118 119 98) +4(118 139 140 119) +4(139 160 161 140) +4(160 181 182 161) +4(181 202 203 182) +4(202 223 224 203) +4(223 244 245 224) +4(244 265 266 245) +4(265 286 287 266) +4(286 307 308 287) +4(307 328 329 308) +4(328 349 350 329) +4(349 370 371 350) +4(370 391 392 371) +4(391 412 413 392) +4(412 433 434 413) +4(14 35 36 15) +4(35 56 57 36) +4(56 77 78 57) +4(77 98 99 78) +4(98 119 120 99) +4(119 140 141 120) +4(140 161 162 141) +4(161 182 183 162) +4(182 203 204 183) +4(203 224 225 204) +4(224 245 246 225) +4(245 266 267 246) +4(266 287 288 267) +4(287 308 309 288) +4(308 329 330 309) +4(329 350 351 330) +4(350 371 372 351) +4(371 392 393 372) +4(392 413 414 393) +4(413 434 435 414) +4(15 36 37 16) +4(36 57 58 37) +4(57 78 79 58) +4(78 99 100 79) +4(99 120 121 100) +4(120 141 142 121) +4(141 162 163 142) +4(162 183 184 163) +4(183 204 205 184) +4(204 225 226 205) +4(225 246 247 226) +4(246 267 268 247) +4(267 288 289 268) +4(288 309 310 289) +4(309 330 331 310) +4(330 351 352 331) +4(351 372 373 352) +4(372 393 394 373) +4(393 414 415 394) +4(414 435 436 415) +4(16 37 38 17) +4(37 58 59 38) +4(58 79 80 59) +4(79 100 101 80) +4(100 121 122 101) +4(121 142 143 122) +4(142 163 164 143) +4(163 184 185 164) +4(184 205 206 185) +4(205 226 227 206) +4(226 247 248 227) +4(247 268 269 248) +4(268 289 290 269) +4(289 310 311 290) +4(310 331 332 311) +4(331 352 353 332) +4(352 373 374 353) +4(373 394 395 374) +4(394 415 416 395) +4(415 436 437 416) +4(17 38 39 18) +4(38 59 60 39) +4(59 80 81 60) +4(80 101 102 81) +4(101 122 123 102) +4(122 143 144 123) +4(143 164 165 144) +4(164 185 186 165) +4(185 206 207 186) +4(206 227 228 207) +4(227 248 249 228) +4(248 269 270 249) +4(269 290 291 270) +4(290 311 312 291) +4(311 332 333 312) +4(332 353 354 333) +4(353 374 375 354) +4(374 395 396 375) +4(395 416 417 396) +4(416 437 438 417) +4(18 39 40 19) +4(39 60 61 40) +4(60 81 82 61) +4(81 102 103 82) +4(102 123 124 103) +4(123 144 145 124) +4(144 165 166 145) +4(165 186 187 166) +4(186 207 208 187) +4(207 228 229 208) +4(228 249 250 229) +4(249 270 271 250) +4(270 291 292 271) +4(291 312 313 292) +4(312 333 334 313) +4(333 354 355 334) +4(354 375 376 355) +4(375 396 397 376) +4(396 417 418 397) +4(417 438 439 418) +4(19 40 41 20) +4(40 61 62 41) +4(61 82 83 62) +4(82 103 104 83) +4(103 124 125 104) +4(124 145 146 125) +4(145 166 167 146) +4(166 187 188 167) +4(187 208 209 188) +4(208 229 230 209) +4(229 250 251 230) +4(250 271 272 251) +4(271 292 293 272) +4(292 313 314 293) +4(313 334 335 314) +4(334 355 356 335) +4(355 376 377 356) +4(376 397 398 377) +4(397 418 419 398) +4(418 439 440 419) +4(441 442 463 462) +4(462 463 484 483) +4(483 484 505 504) +4(504 505 526 525) +4(525 526 547 546) +4(546 547 568 567) +4(567 568 589 588) +4(588 589 610 609) +4(609 610 631 630) +4(630 631 652 651) +4(651 652 673 672) +4(672 673 694 693) +4(693 694 715 714) +4(714 715 736 735) +4(735 736 757 756) +4(756 757 778 777) +4(777 778 799 798) +4(798 799 820 819) +4(819 820 841 840) +4(840 841 862 861) +4(442 443 464 463) +4(463 464 485 484) +4(484 485 506 505) +4(505 506 527 526) +4(526 527 548 547) +4(547 548 569 568) +4(568 569 590 589) +4(589 590 611 610) +4(610 611 632 631) +4(631 632 653 652) +4(652 653 674 673) +4(673 674 695 694) +4(694 695 716 715) +4(715 716 737 736) +4(736 737 758 757) +4(757 758 779 778) +4(778 779 800 799) +4(799 800 821 820) +4(820 821 842 841) +4(841 842 863 862) +4(443 444 465 464) +4(464 465 486 485) +4(485 486 507 506) +4(506 507 528 527) +4(527 528 549 548) +4(548 549 570 569) +4(569 570 591 590) +4(590 591 612 611) +4(611 612 633 632) +4(632 633 654 653) +4(653 654 675 674) +4(674 675 696 695) +4(695 696 717 716) +4(716 717 738 737) +4(737 738 759 758) +4(758 759 780 779) +4(779 780 801 800) +4(800 801 822 821) +4(821 822 843 842) +4(842 843 864 863) +4(444 445 466 465) +4(465 466 487 486) +4(486 487 508 507) +4(507 508 529 528) +4(528 529 550 549) +4(549 550 571 570) +4(570 571 592 591) +4(591 592 613 612) +4(612 613 634 633) +4(633 634 655 654) +4(654 655 676 675) +4(675 676 697 696) +4(696 697 718 717) +4(717 718 739 738) +4(738 739 760 759) +4(759 760 781 780) +4(780 781 802 801) +4(801 802 823 822) +4(822 823 844 843) +4(843 844 865 864) +4(445 446 467 466) +4(466 467 488 487) +4(487 488 509 508) +4(508 509 530 529) +4(529 530 551 550) +4(550 551 572 571) +4(571 572 593 592) +4(592 593 614 613) +4(613 614 635 634) +4(634 635 656 655) +4(655 656 677 676) +4(676 677 698 697) +4(697 698 719 718) +4(718 719 740 739) +4(739 740 761 760) +4(760 761 782 781) +4(781 782 803 802) +4(802 803 824 823) +4(823 824 845 844) +4(844 845 866 865) +4(446 447 468 467) +4(467 468 489 488) +4(488 489 510 509) +4(509 510 531 530) +4(530 531 552 551) +4(551 552 573 572) +4(572 573 594 593) +4(593 594 615 614) +4(614 615 636 635) +4(635 636 657 656) +4(656 657 678 677) +4(677 678 699 698) +4(698 699 720 719) +4(719 720 741 740) +4(740 741 762 761) +4(761 762 783 782) +4(782 783 804 803) +4(803 804 825 824) +4(824 825 846 845) +4(845 846 867 866) +4(447 448 469 468) +4(468 469 490 489) +4(489 490 511 510) +4(510 511 532 531) +4(531 532 553 552) +4(552 553 574 573) +4(573 574 595 594) +4(594 595 616 615) +4(615 616 637 636) +4(636 637 658 657) +4(657 658 679 678) +4(678 679 700 699) +4(699 700 721 720) +4(720 721 742 741) +4(741 742 763 762) +4(762 763 784 783) +4(783 784 805 804) +4(804 805 826 825) +4(825 826 847 846) +4(846 847 868 867) +4(448 449 470 469) +4(469 470 491 490) +4(490 491 512 511) +4(511 512 533 532) +4(532 533 554 553) +4(553 554 575 574) +4(574 575 596 595) +4(595 596 617 616) +4(616 617 638 637) +4(637 638 659 658) +4(658 659 680 679) +4(679 680 701 700) +4(700 701 722 721) +4(721 722 743 742) +4(742 743 764 763) +4(763 764 785 784) +4(784 785 806 805) +4(805 806 827 826) +4(826 827 848 847) +4(847 848 869 868) +4(449 450 471 470) +4(470 471 492 491) +4(491 492 513 512) +4(512 513 534 533) +4(533 534 555 554) +4(554 555 576 575) +4(575 576 597 596) +4(596 597 618 617) +4(617 618 639 638) +4(638 639 660 659) +4(659 660 681 680) +4(680 681 702 701) +4(701 702 723 722) +4(722 723 744 743) +4(743 744 765 764) +4(764 765 786 785) +4(785 786 807 806) +4(806 807 828 827) +4(827 828 849 848) +4(848 849 870 869) +4(450 451 472 471) +4(471 472 493 492) +4(492 493 514 513) +4(513 514 535 534) +4(534 535 556 555) +4(555 556 577 576) +4(576 577 598 597) +4(597 598 619 618) +4(618 619 640 639) +4(639 640 661 660) +4(660 661 682 681) +4(681 682 703 702) +4(702 703 724 723) +4(723 724 745 744) +4(744 745 766 765) +4(765 766 787 786) +4(786 787 808 807) +4(807 808 829 828) +4(828 829 850 849) +4(849 850 871 870) +4(451 452 473 472) +4(472 473 494 493) +4(493 494 515 514) +4(514 515 536 535) +4(535 536 557 556) +4(556 557 578 577) +4(577 578 599 598) +4(598 599 620 619) +4(619 620 641 640) +4(640 641 662 661) +4(661 662 683 682) +4(682 683 704 703) +4(703 704 725 724) +4(724 725 746 745) +4(745 746 767 766) +4(766 767 788 787) +4(787 788 809 808) +4(808 809 830 829) +4(829 830 851 850) +4(850 851 872 871) +4(452 453 474 473) +4(473 474 495 494) +4(494 495 516 515) +4(515 516 537 536) +4(536 537 558 557) +4(557 558 579 578) +4(578 579 600 599) +4(599 600 621 620) +4(620 621 642 641) +4(641 642 663 662) +4(662 663 684 683) +4(683 684 705 704) +4(704 705 726 725) +4(725 726 747 746) +4(746 747 768 767) +4(767 768 789 788) +4(788 789 810 809) +4(809 810 831 830) +4(830 831 852 851) +4(851 852 873 872) +4(453 454 475 474) +4(474 475 496 495) +4(495 496 517 516) +4(516 517 538 537) +4(537 538 559 558) +4(558 559 580 579) +4(579 580 601 600) +4(600 601 622 621) +4(621 622 643 642) +4(642 643 664 663) +4(663 664 685 684) +4(684 685 706 705) +4(705 706 727 726) +4(726 727 748 747) +4(747 748 769 768) +4(768 769 790 789) +4(789 790 811 810) +4(810 811 832 831) +4(831 832 853 852) +4(852 853 874 873) +4(454 455 476 475) +4(475 476 497 496) +4(496 497 518 517) +4(517 518 539 538) +4(538 539 560 559) +4(559 560 581 580) +4(580 581 602 601) +4(601 602 623 622) +4(622 623 644 643) +4(643 644 665 664) +4(664 665 686 685) +4(685 686 707 706) +4(706 707 728 727) +4(727 728 749 748) +4(748 749 770 769) +4(769 770 791 790) +4(790 791 812 811) +4(811 812 833 832) +4(832 833 854 853) +4(853 854 875 874) +4(455 456 477 476) +4(476 477 498 497) +4(497 498 519 518) +4(518 519 540 539) +4(539 540 561 560) +4(560 561 582 581) +4(581 582 603 602) +4(602 603 624 623) +4(623 624 645 644) +4(644 645 666 665) +4(665 666 687 686) +4(686 687 708 707) +4(707 708 729 728) +4(728 729 750 749) +4(749 750 771 770) +4(770 771 792 791) +4(791 792 813 812) +4(812 813 834 833) +4(833 834 855 854) +4(854 855 876 875) +4(456 457 478 477) +4(477 478 499 498) +4(498 499 520 519) +4(519 520 541 540) +4(540 541 562 561) +4(561 562 583 582) +4(582 583 604 603) +4(603 604 625 624) +4(624 625 646 645) +4(645 646 667 666) +4(666 667 688 687) +4(687 688 709 708) +4(708 709 730 729) +4(729 730 751 750) +4(750 751 772 771) +4(771 772 793 792) +4(792 793 814 813) +4(813 814 835 834) +4(834 835 856 855) +4(855 856 877 876) +4(457 458 479 478) +4(478 479 500 499) +4(499 500 521 520) +4(520 521 542 541) +4(541 542 563 562) +4(562 563 584 583) +4(583 584 605 604) +4(604 605 626 625) +4(625 626 647 646) +4(646 647 668 667) +4(667 668 689 688) +4(688 689 710 709) +4(709 710 731 730) +4(730 731 752 751) +4(751 752 773 772) +4(772 773 794 793) +4(793 794 815 814) +4(814 815 836 835) +4(835 836 857 856) +4(856 857 878 877) +4(458 459 480 479) +4(479 480 501 500) +4(500 501 522 521) +4(521 522 543 542) +4(542 543 564 563) +4(563 564 585 584) +4(584 585 606 605) +4(605 606 627 626) +4(626 627 648 647) +4(647 648 669 668) +4(668 669 690 689) +4(689 690 711 710) +4(710 711 732 731) +4(731 732 753 752) +4(752 753 774 773) +4(773 774 795 794) +4(794 795 816 815) +4(815 816 837 836) +4(836 837 858 857) +4(857 858 879 878) +4(459 460 481 480) +4(480 481 502 501) +4(501 502 523 522) +4(522 523 544 543) +4(543 544 565 564) +4(564 565 586 585) +4(585 586 607 606) +4(606 607 628 627) +4(627 628 649 648) +4(648 649 670 669) +4(669 670 691 690) +4(690 691 712 711) +4(711 712 733 732) +4(732 733 754 753) +4(753 754 775 774) +4(774 775 796 795) +4(795 796 817 816) +4(816 817 838 837) +4(837 838 859 858) +4(858 859 880 879) +4(460 461 482 481) +4(481 482 503 502) +4(502 503 524 523) +4(523 524 545 544) +4(544 545 566 565) +4(565 566 587 586) +4(586 587 608 607) +4(607 608 629 628) +4(628 629 650 649) +4(649 650 671 670) +4(670 671 692 691) +4(691 692 713 712) +4(712 713 734 733) +4(733 734 755 754) +4(754 755 776 775) +4(775 776 797 796) +4(796 797 818 817) +4(817 818 839 838) +4(838 839 860 859) +4(859 860 881 880) +) + + +// ************************************************************************* // diff --git a/test/testFieldOperations/polyMesh/neighbour b/test/testFieldOperations/polyMesh/neighbour new file mode 100755 index 0000000..2a7a3cf --- /dev/null +++ b/test/testFieldOperations/polyMesh/neighbour @@ -0,0 +1,785 @@ +/*--------------------------------*- 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 labelList; + note "nPoints: 882 nCells: 400 nFaces: 1640 nInternalFaces: 760"; + location "constant/polyMesh"; + object neighbour; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + + +760 +( +1 +20 +2 +21 +3 +22 +4 +23 +5 +24 +6 +25 +7 +26 +8 +27 +9 +28 +10 +29 +11 +30 +12 +31 +13 +32 +14 +33 +15 +34 +16 +35 +17 +36 +18 +37 +19 +38 +39 +21 +40 +22 +41 +23 +42 +24 +43 +25 +44 +26 +45 +27 +46 +28 +47 +29 +48 +30 +49 +31 +50 +32 +51 +33 +52 +34 +53 +35 +54 +36 +55 +37 +56 +38 +57 +39 +58 +59 +41 +60 +42 +61 +43 +62 +44 +63 +45 +64 +46 +65 +47 +66 +48 +67 +49 +68 +50 +69 +51 +70 +52 +71 +53 +72 +54 +73 +55 +74 +56 +75 +57 +76 +58 +77 +59 +78 +79 +61 +80 +62 +81 +63 +82 +64 +83 +65 +84 +66 +85 +67 +86 +68 +87 +69 +88 +70 +89 +71 +90 +72 +91 +73 +92 +74 +93 +75 +94 +76 +95 +77 +96 +78 +97 +79 +98 +99 +81 +100 +82 +101 +83 +102 +84 +103 +85 +104 +86 +105 +87 +106 +88 +107 +89 +108 +90 +109 +91 +110 +92 +111 +93 +112 +94 +113 +95 +114 +96 +115 +97 +116 +98 +117 +99 +118 +119 +101 +120 +102 +121 +103 +122 +104 +123 +105 +124 +106 +125 +107 +126 +108 +127 +109 +128 +110 +129 +111 +130 +112 +131 +113 +132 +114 +133 +115 +134 +116 +135 +117 +136 +118 +137 +119 +138 +139 +121 +140 +122 +141 +123 +142 +124 +143 +125 +144 +126 +145 +127 +146 +128 +147 +129 +148 +130 +149 +131 +150 +132 +151 +133 +152 +134 +153 +135 +154 +136 +155 +137 +156 +138 +157 +139 +158 +159 +141 +160 +142 +161 +143 +162 +144 +163 +145 +164 +146 +165 +147 +166 +148 +167 +149 +168 +150 +169 +151 +170 +152 +171 +153 +172 +154 +173 +155 +174 +156 +175 +157 +176 +158 +177 +159 +178 +179 +161 +180 +162 +181 +163 +182 +164 +183 +165 +184 +166 +185 +167 +186 +168 +187 +169 +188 +170 +189 +171 +190 +172 +191 +173 +192 +174 +193 +175 +194 +176 +195 +177 +196 +178 +197 +179 +198 +199 +181 +200 +182 +201 +183 +202 +184 +203 +185 +204 +186 +205 +187 +206 +188 +207 +189 +208 +190 +209 +191 +210 +192 +211 +193 +212 +194 +213 +195 +214 +196 +215 +197 +216 +198 +217 +199 +218 +219 +201 +220 +202 +221 +203 +222 +204 +223 +205 +224 +206 +225 +207 +226 +208 +227 +209 +228 +210 +229 +211 +230 +212 +231 +213 +232 +214 +233 +215 +234 +216 +235 +217 +236 +218 +237 +219 +238 +239 +221 +240 +222 +241 +223 +242 +224 +243 +225 +244 +226 +245 +227 +246 +228 +247 +229 +248 +230 +249 +231 +250 +232 +251 +233 +252 +234 +253 +235 +254 +236 +255 +237 +256 +238 +257 +239 +258 +259 +241 +260 +242 +261 +243 +262 +244 +263 +245 +264 +246 +265 +247 +266 +248 +267 +249 +268 +250 +269 +251 +270 +252 +271 +253 +272 +254 +273 +255 +274 +256 +275 +257 +276 +258 +277 +259 +278 +279 +261 +280 +262 +281 +263 +282 +264 +283 +265 +284 +266 +285 +267 +286 +268 +287 +269 +288 +270 +289 +271 +290 +272 +291 +273 +292 +274 +293 +275 +294 +276 +295 +277 +296 +278 +297 +279 +298 +299 +281 +300 +282 +301 +283 +302 +284 +303 +285 +304 +286 +305 +287 +306 +288 +307 +289 +308 +290 +309 +291 +310 +292 +311 +293 +312 +294 +313 +295 +314 +296 +315 +297 +316 +298 +317 +299 +318 +319 +301 +320 +302 +321 +303 +322 +304 +323 +305 +324 +306 +325 +307 +326 +308 +327 +309 +328 +310 +329 +311 +330 +312 +331 +313 +332 +314 +333 +315 +334 +316 +335 +317 +336 +318 +337 +319 +338 +339 +321 +340 +322 +341 +323 +342 +324 +343 +325 +344 +326 +345 +327 +346 +328 +347 +329 +348 +330 +349 +331 +350 +332 +351 +333 +352 +334 +353 +335 +354 +336 +355 +337 +356 +338 +357 +339 +358 +359 +341 +360 +342 +361 +343 +362 +344 +363 +345 +364 +346 +365 +347 +366 +348 +367 +349 +368 +350 +369 +351 +370 +352 +371 +353 +372 +354 +373 +355 +374 +356 +375 +357 +376 +358 +377 +359 +378 +379 +361 +380 +362 +381 +363 +382 +364 +383 +365 +384 +366 +385 +367 +386 +368 +387 +369 +388 +370 +389 +371 +390 +372 +391 +373 +392 +374 +393 +375 +394 +376 +395 +377 +396 +378 +397 +379 +398 +399 +381 +382 +383 +384 +385 +386 +387 +388 +389 +390 +391 +392 +393 +394 +395 +396 +397 +398 +399 +) + + +// ************************************************************************* // diff --git a/test/testFieldOperations/polyMesh/owner b/test/testFieldOperations/polyMesh/owner new file mode 100755 index 0000000..569f019 --- /dev/null +++ b/test/testFieldOperations/polyMesh/owner @@ -0,0 +1,1665 @@ +/*--------------------------------*- 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 labelList; + note "nPoints: 882 nCells: 400 nFaces: 1640 nInternalFaces: 760"; + location "constant/polyMesh"; + object owner; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + + +1640 +( +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 +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 +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 +60 +60 +61 +61 +62 +62 +63 +63 +64 +64 +65 +65 +66 +66 +67 +67 +68 +68 +69 +69 +70 +70 +71 +71 +72 +72 +73 +73 +74 +74 +75 +75 +76 +76 +77 +77 +78 +78 +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 +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 +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 +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 +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 +200 +200 +201 +201 +202 +202 +203 +203 +204 +204 +205 +205 +206 +206 +207 +207 +208 +208 +209 +209 +210 +210 +211 +211 +212 +212 +213 +213 +214 +214 +215 +215 +216 +216 +217 +217 +218 +218 +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 +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 +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 +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 +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 +340 +340 +341 +341 +342 +342 +343 +343 +344 +344 +345 +345 +346 +346 +347 +347 +348 +348 +349 +349 +350 +350 +351 +351 +352 +352 +353 +353 +354 +354 +355 +355 +356 +356 +357 +357 +358 +358 +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 +380 +381 +382 +383 +384 +385 +386 +387 +388 +389 +390 +391 +392 +393 +394 +395 +396 +397 +398 +380 +381 +382 +383 +384 +385 +386 +387 +388 +389 +390 +391 +392 +393 +394 +395 +396 +397 +398 +399 +0 +20 +40 +60 +80 +100 +120 +140 +160 +180 +200 +220 +240 +260 +280 +300 +320 +340 +360 +380 +19 +39 +59 +79 +99 +119 +139 +159 +179 +199 +219 +239 +259 +279 +299 +319 +339 +359 +379 +399 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +0 +20 +40 +60 +80 +100 +120 +140 +160 +180 +200 +220 +240 +260 +280 +300 +320 +340 +360 +380 +1 +21 +41 +61 +81 +101 +121 +141 +161 +181 +201 +221 +241 +261 +281 +301 +321 +341 +361 +381 +2 +22 +42 +62 +82 +102 +122 +142 +162 +182 +202 +222 +242 +262 +282 +302 +322 +342 +362 +382 +3 +23 +43 +63 +83 +103 +123 +143 +163 +183 +203 +223 +243 +263 +283 +303 +323 +343 +363 +383 +4 +24 +44 +64 +84 +104 +124 +144 +164 +184 +204 +224 +244 +264 +284 +304 +324 +344 +364 +384 +5 +25 +45 +65 +85 +105 +125 +145 +165 +185 +205 +225 +245 +265 +285 +305 +325 +345 +365 +385 +6 +26 +46 +66 +86 +106 +126 +146 +166 +186 +206 +226 +246 +266 +286 +306 +326 +346 +366 +386 +7 +27 +47 +67 +87 +107 +127 +147 +167 +187 +207 +227 +247 +267 +287 +307 +327 +347 +367 +387 +8 +28 +48 +68 +88 +108 +128 +148 +168 +188 +208 +228 +248 +268 +288 +308 +328 +348 +368 +388 +9 +29 +49 +69 +89 +109 +129 +149 +169 +189 +209 +229 +249 +269 +289 +309 +329 +349 +369 +389 +10 +30 +50 +70 +90 +110 +130 +150 +170 +190 +210 +230 +250 +270 +290 +310 +330 +350 +370 +390 +11 +31 +51 +71 +91 +111 +131 +151 +171 +191 +211 +231 +251 +271 +291 +311 +331 +351 +371 +391 +12 +32 +52 +72 +92 +112 +132 +152 +172 +192 +212 +232 +252 +272 +292 +312 +332 +352 +372 +392 +13 +33 +53 +73 +93 +113 +133 +153 +173 +193 +213 +233 +253 +273 +293 +313 +333 +353 +373 +393 +14 +34 +54 +74 +94 +114 +134 +154 +174 +194 +214 +234 +254 +274 +294 +314 +334 +354 +374 +394 +15 +35 +55 +75 +95 +115 +135 +155 +175 +195 +215 +235 +255 +275 +295 +315 +335 +355 +375 +395 +16 +36 +56 +76 +96 +116 +136 +156 +176 +196 +216 +236 +256 +276 +296 +316 +336 +356 +376 +396 +17 +37 +57 +77 +97 +117 +137 +157 +177 +197 +217 +237 +257 +277 +297 +317 +337 +357 +377 +397 +18 +38 +58 +78 +98 +118 +138 +158 +178 +198 +218 +238 +258 +278 +298 +318 +338 +358 +378 +398 +19 +39 +59 +79 +99 +119 +139 +159 +179 +199 +219 +239 +259 +279 +299 +319 +339 +359 +379 +399 +0 +20 +40 +60 +80 +100 +120 +140 +160 +180 +200 +220 +240 +260 +280 +300 +320 +340 +360 +380 +1 +21 +41 +61 +81 +101 +121 +141 +161 +181 +201 +221 +241 +261 +281 +301 +321 +341 +361 +381 +2 +22 +42 +62 +82 +102 +122 +142 +162 +182 +202 +222 +242 +262 +282 +302 +322 +342 +362 +382 +3 +23 +43 +63 +83 +103 +123 +143 +163 +183 +203 +223 +243 +263 +283 +303 +323 +343 +363 +383 +4 +24 +44 +64 +84 +104 +124 +144 +164 +184 +204 +224 +244 +264 +284 +304 +324 +344 +364 +384 +5 +25 +45 +65 +85 +105 +125 +145 +165 +185 +205 +225 +245 +265 +285 +305 +325 +345 +365 +385 +6 +26 +46 +66 +86 +106 +126 +146 +166 +186 +206 +226 +246 +266 +286 +306 +326 +346 +366 +386 +7 +27 +47 +67 +87 +107 +127 +147 +167 +187 +207 +227 +247 +267 +287 +307 +327 +347 +367 +387 +8 +28 +48 +68 +88 +108 +128 +148 +168 +188 +208 +228 +248 +268 +288 +308 +328 +348 +368 +388 +9 +29 +49 +69 +89 +109 +129 +149 +169 +189 +209 +229 +249 +269 +289 +309 +329 +349 +369 +389 +10 +30 +50 +70 +90 +110 +130 +150 +170 +190 +210 +230 +250 +270 +290 +310 +330 +350 +370 +390 +11 +31 +51 +71 +91 +111 +131 +151 +171 +191 +211 +231 +251 +271 +291 +311 +331 +351 +371 +391 +12 +32 +52 +72 +92 +112 +132 +152 +172 +192 +212 +232 +252 +272 +292 +312 +332 +352 +372 +392 +13 +33 +53 +73 +93 +113 +133 +153 +173 +193 +213 +233 +253 +273 +293 +313 +333 +353 +373 +393 +14 +34 +54 +74 +94 +114 +134 +154 +174 +194 +214 +234 +254 +274 +294 +314 +334 +354 +374 +394 +15 +35 +55 +75 +95 +115 +135 +155 +175 +195 +215 +235 +255 +275 +295 +315 +335 +355 +375 +395 +16 +36 +56 +76 +96 +116 +136 +156 +176 +196 +216 +236 +256 +276 +296 +316 +336 +356 +376 +396 +17 +37 +57 +77 +97 +117 +137 +157 +177 +197 +217 +237 +257 +277 +297 +317 +337 +357 +377 +397 +18 +38 +58 +78 +98 +118 +138 +158 +178 +198 +218 +238 +258 +278 +298 +318 +338 +358 +378 +398 +19 +39 +59 +79 +99 +119 +139 +159 +179 +199 +219 +239 +259 +279 +299 +319 +339 +359 +379 +399 +) + + +// ************************************************************************* // diff --git a/test/testFieldOperations/polyMesh/points b/test/testFieldOperations/polyMesh/points new file mode 100755 index 0000000..fcafdb6 --- /dev/null +++ b/test/testFieldOperations/polyMesh/points @@ -0,0 +1,906 @@ +/*--------------------------------*- 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 vectorField; + location "constant/polyMesh"; + object points; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + + +882 +( +(0 0 0) +(0.005 0 0) +(0.01 0 0) +(0.015 0 0) +(0.02 0 0) +(0.025 0 0) +(0.03 0 0) +(0.035 0 0) +(0.04 0 0) +(0.045 0 0) +(0.05 0 0) +(0.055 0 0) +(0.06 0 0) +(0.065 0 0) +(0.07 0 0) +(0.075 0 0) +(0.08 0 0) +(0.085 0 0) +(0.09 0 0) +(0.095 0 0) +(0.1 0 0) +(0 0.005 0) +(0.005 0.005 0) +(0.01 0.005 0) +(0.015 0.005 0) +(0.02 0.005 0) +(0.025 0.005 0) +(0.03 0.005 0) +(0.035 0.005 0) +(0.04 0.005 0) +(0.045 0.005 0) +(0.05 0.005 0) +(0.055 0.005 0) +(0.06 0.005 0) +(0.065 0.005 0) +(0.07 0.005 0) +(0.075 0.005 0) +(0.08 0.005 0) +(0.085 0.005 0) +(0.09 0.005 0) +(0.095 0.005 0) +(0.1 0.005 0) +(0 0.01 0) +(0.005 0.01 0) +(0.01 0.01 0) +(0.015 0.01 0) +(0.02 0.01 0) +(0.025 0.01 0) +(0.03 0.01 0) +(0.035 0.01 0) +(0.04 0.01 0) +(0.045 0.01 0) +(0.05 0.01 0) +(0.055 0.01 0) +(0.06 0.01 0) +(0.065 0.01 0) +(0.07 0.01 0) +(0.075 0.01 0) +(0.08 0.01 0) +(0.085 0.01 0) +(0.09 0.01 0) +(0.095 0.01 0) +(0.1 0.01 0) +(0 0.015 0) +(0.005 0.015 0) +(0.01 0.015 0) +(0.015 0.015 0) +(0.02 0.015 0) +(0.025 0.015 0) +(0.03 0.015 0) +(0.035 0.015 0) +(0.04 0.015 0) +(0.045 0.015 0) +(0.05 0.015 0) +(0.055 0.015 0) +(0.06 0.015 0) +(0.065 0.015 0) +(0.07 0.015 0) +(0.075 0.015 0) +(0.08 0.015 0) +(0.085 0.015 0) +(0.09 0.015 0) +(0.095 0.015 0) +(0.1 0.015 0) +(0 0.02 0) +(0.005 0.02 0) +(0.01 0.02 0) +(0.015 0.02 0) +(0.02 0.02 0) +(0.025 0.02 0) +(0.03 0.02 0) +(0.035 0.02 0) +(0.04 0.02 0) +(0.045 0.02 0) +(0.05 0.02 0) +(0.055 0.02 0) +(0.06 0.02 0) +(0.065 0.02 0) +(0.07 0.02 0) +(0.075 0.02 0) +(0.08 0.02 0) +(0.085 0.02 0) +(0.09 0.02 0) +(0.095 0.02 0) +(0.1 0.02 0) +(0 0.025 0) +(0.005 0.025 0) +(0.01 0.025 0) +(0.015 0.025 0) +(0.02 0.025 0) +(0.025 0.025 0) +(0.03 0.025 0) +(0.035 0.025 0) +(0.04 0.025 0) +(0.045 0.025 0) +(0.05 0.025 0) +(0.055 0.025 0) +(0.06 0.025 0) +(0.065 0.025 0) +(0.07 0.025 0) +(0.075 0.025 0) +(0.08 0.025 0) +(0.085 0.025 0) +(0.09 0.025 0) +(0.095 0.025 0) +(0.1 0.025 0) +(0 0.03 0) +(0.005 0.03 0) +(0.01 0.03 0) +(0.015 0.03 0) +(0.02 0.03 0) +(0.025 0.03 0) +(0.03 0.03 0) +(0.035 0.03 0) +(0.04 0.03 0) +(0.045 0.03 0) +(0.05 0.03 0) +(0.055 0.03 0) +(0.06 0.03 0) +(0.065 0.03 0) +(0.07 0.03 0) +(0.075 0.03 0) +(0.08 0.03 0) +(0.085 0.03 0) +(0.09 0.03 0) +(0.095 0.03 0) +(0.1 0.03 0) +(0 0.035 0) +(0.005 0.035 0) +(0.01 0.035 0) +(0.015 0.035 0) +(0.02 0.035 0) +(0.025 0.035 0) +(0.03 0.035 0) +(0.035 0.035 0) +(0.04 0.035 0) +(0.045 0.035 0) +(0.05 0.035 0) +(0.055 0.035 0) +(0.06 0.035 0) +(0.065 0.035 0) +(0.07 0.035 0) +(0.075 0.035 0) +(0.08 0.035 0) +(0.085 0.035 0) +(0.09 0.035 0) +(0.095 0.035 0) +(0.1 0.035 0) +(0 0.04 0) +(0.005 0.04 0) +(0.01 0.04 0) +(0.015 0.04 0) +(0.02 0.04 0) +(0.025 0.04 0) +(0.03 0.04 0) +(0.035 0.04 0) +(0.04 0.04 0) +(0.045 0.04 0) +(0.05 0.04 0) +(0.055 0.04 0) +(0.06 0.04 0) +(0.065 0.04 0) +(0.07 0.04 0) +(0.075 0.04 0) +(0.08 0.04 0) +(0.085 0.04 0) +(0.09 0.04 0) +(0.095 0.04 0) +(0.1 0.04 0) +(0 0.045 0) +(0.005 0.045 0) +(0.01 0.045 0) +(0.015 0.045 0) +(0.02 0.045 0) +(0.025 0.045 0) +(0.03 0.045 0) +(0.035 0.045 0) +(0.04 0.045 0) +(0.045 0.045 0) +(0.05 0.045 0) +(0.055 0.045 0) +(0.06 0.045 0) +(0.065 0.045 0) +(0.07 0.045 0) +(0.075 0.045 0) +(0.08 0.045 0) +(0.085 0.045 0) +(0.09 0.045 0) +(0.095 0.045 0) +(0.1 0.045 0) +(0 0.05 0) +(0.005 0.05 0) +(0.01 0.05 0) +(0.015 0.05 0) +(0.02 0.05 0) +(0.025 0.05 0) +(0.03 0.05 0) +(0.035 0.05 0) +(0.04 0.05 0) +(0.045 0.05 0) +(0.05 0.05 0) +(0.055 0.05 0) +(0.06 0.05 0) +(0.065 0.05 0) +(0.07 0.05 0) +(0.075 0.05 0) +(0.08 0.05 0) +(0.085 0.05 0) +(0.09 0.05 0) +(0.095 0.05 0) +(0.1 0.05 0) +(0 0.055 0) +(0.005 0.055 0) +(0.01 0.055 0) +(0.015 0.055 0) +(0.02 0.055 0) +(0.025 0.055 0) +(0.03 0.055 0) +(0.035 0.055 0) +(0.04 0.055 0) +(0.045 0.055 0) +(0.05 0.055 0) +(0.055 0.055 0) +(0.06 0.055 0) +(0.065 0.055 0) +(0.07 0.055 0) +(0.075 0.055 0) +(0.08 0.055 0) +(0.085 0.055 0) +(0.09 0.055 0) +(0.095 0.055 0) +(0.1 0.055 0) +(0 0.06 0) +(0.005 0.06 0) +(0.01 0.06 0) +(0.015 0.06 0) +(0.02 0.06 0) +(0.025 0.06 0) +(0.03 0.06 0) +(0.035 0.06 0) +(0.04 0.06 0) +(0.045 0.06 0) +(0.05 0.06 0) +(0.055 0.06 0) +(0.06 0.06 0) +(0.065 0.06 0) +(0.07 0.06 0) +(0.075 0.06 0) +(0.08 0.06 0) +(0.085 0.06 0) +(0.09 0.06 0) +(0.095 0.06 0) +(0.1 0.06 0) +(0 0.065 0) +(0.005 0.065 0) +(0.01 0.065 0) +(0.015 0.065 0) +(0.02 0.065 0) +(0.025 0.065 0) +(0.03 0.065 0) +(0.035 0.065 0) +(0.04 0.065 0) +(0.045 0.065 0) +(0.05 0.065 0) +(0.055 0.065 0) +(0.06 0.065 0) +(0.065 0.065 0) +(0.07 0.065 0) +(0.075 0.065 0) +(0.08 0.065 0) +(0.085 0.065 0) +(0.09 0.065 0) +(0.095 0.065 0) +(0.1 0.065 0) +(0 0.07 0) +(0.005 0.07 0) +(0.01 0.07 0) +(0.015 0.07 0) +(0.02 0.07 0) +(0.025 0.07 0) +(0.03 0.07 0) +(0.035 0.07 0) +(0.04 0.07 0) +(0.045 0.07 0) +(0.05 0.07 0) +(0.055 0.07 0) +(0.06 0.07 0) +(0.065 0.07 0) +(0.07 0.07 0) +(0.075 0.07 0) +(0.08 0.07 0) +(0.085 0.07 0) +(0.09 0.07 0) +(0.095 0.07 0) +(0.1 0.07 0) +(0 0.075 0) +(0.005 0.075 0) +(0.01 0.075 0) +(0.015 0.075 0) +(0.02 0.075 0) +(0.025 0.075 0) +(0.03 0.075 0) +(0.035 0.075 0) +(0.04 0.075 0) +(0.045 0.075 0) +(0.05 0.075 0) +(0.055 0.075 0) +(0.06 0.075 0) +(0.065 0.075 0) +(0.07 0.075 0) +(0.075 0.075 0) +(0.08 0.075 0) +(0.085 0.075 0) +(0.09 0.075 0) +(0.095 0.075 0) +(0.1 0.075 0) +(0 0.08 0) +(0.005 0.08 0) +(0.01 0.08 0) +(0.015 0.08 0) +(0.02 0.08 0) +(0.025 0.08 0) +(0.03 0.08 0) +(0.035 0.08 0) +(0.04 0.08 0) +(0.045 0.08 0) +(0.05 0.08 0) +(0.055 0.08 0) +(0.06 0.08 0) +(0.065 0.08 0) +(0.07 0.08 0) +(0.075 0.08 0) +(0.08 0.08 0) +(0.085 0.08 0) +(0.09 0.08 0) +(0.095 0.08 0) +(0.1 0.08 0) +(0 0.085 0) +(0.005 0.085 0) +(0.01 0.085 0) +(0.015 0.085 0) +(0.02 0.085 0) +(0.025 0.085 0) +(0.03 0.085 0) +(0.035 0.085 0) +(0.04 0.085 0) +(0.045 0.085 0) +(0.05 0.085 0) +(0.055 0.085 0) +(0.06 0.085 0) +(0.065 0.085 0) +(0.07 0.085 0) +(0.075 0.085 0) +(0.08 0.085 0) +(0.085 0.085 0) +(0.09 0.085 0) +(0.095 0.085 0) +(0.1 0.085 0) +(0 0.09 0) +(0.005 0.09 0) +(0.01 0.09 0) +(0.015 0.09 0) +(0.02 0.09 0) +(0.025 0.09 0) +(0.03 0.09 0) +(0.035 0.09 0) +(0.04 0.09 0) +(0.045 0.09 0) +(0.05 0.09 0) +(0.055 0.09 0) +(0.06 0.09 0) +(0.065 0.09 0) +(0.07 0.09 0) +(0.075 0.09 0) +(0.08 0.09 0) +(0.085 0.09 0) +(0.09 0.09 0) +(0.095 0.09 0) +(0.1 0.09 0) +(0 0.095 0) +(0.005 0.095 0) +(0.01 0.095 0) +(0.015 0.095 0) +(0.02 0.095 0) +(0.025 0.095 0) +(0.03 0.095 0) +(0.035 0.095 0) +(0.04 0.095 0) +(0.045 0.095 0) +(0.05 0.095 0) +(0.055 0.095 0) +(0.06 0.095 0) +(0.065 0.095 0) +(0.07 0.095 0) +(0.075 0.095 0) +(0.08 0.095 0) +(0.085 0.095 0) +(0.09 0.095 0) +(0.095 0.095 0) +(0.1 0.095 0) +(0 0.1 0) +(0.005 0.1 0) +(0.01 0.1 0) +(0.015 0.1 0) +(0.02 0.1 0) +(0.025 0.1 0) +(0.03 0.1 0) +(0.035 0.1 0) +(0.04 0.1 0) +(0.045 0.1 0) +(0.05 0.1 0) +(0.055 0.1 0) +(0.06 0.1 0) +(0.065 0.1 0) +(0.07 0.1 0) +(0.075 0.1 0) +(0.08 0.1 0) +(0.085 0.1 0) +(0.09 0.1 0) +(0.095 0.1 0) +(0.1 0.1 0) +(0 0 0.01) +(0.005 0 0.01) +(0.01 0 0.01) +(0.015 0 0.01) +(0.02 0 0.01) +(0.025 0 0.01) +(0.03 0 0.01) +(0.035 0 0.01) +(0.04 0 0.01) +(0.045 0 0.01) +(0.05 0 0.01) +(0.055 0 0.01) +(0.06 0 0.01) +(0.065 0 0.01) +(0.07 0 0.01) +(0.075 0 0.01) +(0.08 0 0.01) +(0.085 0 0.01) +(0.09 0 0.01) +(0.095 0 0.01) +(0.1 0 0.01) +(0 0.005 0.01) +(0.005 0.005 0.01) +(0.01 0.005 0.01) +(0.015 0.005 0.01) +(0.02 0.005 0.01) +(0.025 0.005 0.01) +(0.03 0.005 0.01) +(0.035 0.005 0.01) +(0.04 0.005 0.01) +(0.045 0.005 0.01) +(0.05 0.005 0.01) +(0.055 0.005 0.01) +(0.06 0.005 0.01) +(0.065 0.005 0.01) +(0.07 0.005 0.01) +(0.075 0.005 0.01) +(0.08 0.005 0.01) +(0.085 0.005 0.01) +(0.09 0.005 0.01) +(0.095 0.005 0.01) +(0.1 0.005 0.01) +(0 0.01 0.01) +(0.005 0.01 0.01) +(0.01 0.01 0.01) +(0.015 0.01 0.01) +(0.02 0.01 0.01) +(0.025 0.01 0.01) +(0.03 0.01 0.01) +(0.035 0.01 0.01) +(0.04 0.01 0.01) +(0.045 0.01 0.01) +(0.05 0.01 0.01) +(0.055 0.01 0.01) +(0.06 0.01 0.01) +(0.065 0.01 0.01) +(0.07 0.01 0.01) +(0.075 0.01 0.01) +(0.08 0.01 0.01) +(0.085 0.01 0.01) +(0.09 0.01 0.01) +(0.095 0.01 0.01) +(0.1 0.01 0.01) +(0 0.015 0.01) +(0.005 0.015 0.01) +(0.01 0.015 0.01) +(0.015 0.015 0.01) +(0.02 0.015 0.01) +(0.025 0.015 0.01) +(0.03 0.015 0.01) +(0.035 0.015 0.01) +(0.04 0.015 0.01) +(0.045 0.015 0.01) +(0.05 0.015 0.01) +(0.055 0.015 0.01) +(0.06 0.015 0.01) +(0.065 0.015 0.01) +(0.07 0.015 0.01) +(0.075 0.015 0.01) +(0.08 0.015 0.01) +(0.085 0.015 0.01) +(0.09 0.015 0.01) +(0.095 0.015 0.01) +(0.1 0.015 0.01) +(0 0.02 0.01) +(0.005 0.02 0.01) +(0.01 0.02 0.01) +(0.015 0.02 0.01) +(0.02 0.02 0.01) +(0.025 0.02 0.01) +(0.03 0.02 0.01) +(0.035 0.02 0.01) +(0.04 0.02 0.01) +(0.045 0.02 0.01) +(0.05 0.02 0.01) +(0.055 0.02 0.01) +(0.06 0.02 0.01) +(0.065 0.02 0.01) +(0.07 0.02 0.01) +(0.075 0.02 0.01) +(0.08 0.02 0.01) +(0.085 0.02 0.01) +(0.09 0.02 0.01) +(0.095 0.02 0.01) +(0.1 0.02 0.01) +(0 0.025 0.01) +(0.005 0.025 0.01) +(0.01 0.025 0.01) +(0.015 0.025 0.01) +(0.02 0.025 0.01) +(0.025 0.025 0.01) +(0.03 0.025 0.01) +(0.035 0.025 0.01) +(0.04 0.025 0.01) +(0.045 0.025 0.01) +(0.05 0.025 0.01) +(0.055 0.025 0.01) +(0.06 0.025 0.01) +(0.065 0.025 0.01) +(0.07 0.025 0.01) +(0.075 0.025 0.01) +(0.08 0.025 0.01) +(0.085 0.025 0.01) +(0.09 0.025 0.01) +(0.095 0.025 0.01) +(0.1 0.025 0.01) +(0 0.03 0.01) +(0.005 0.03 0.01) +(0.01 0.03 0.01) +(0.015 0.03 0.01) +(0.02 0.03 0.01) +(0.025 0.03 0.01) +(0.03 0.03 0.01) +(0.035 0.03 0.01) +(0.04 0.03 0.01) +(0.045 0.03 0.01) +(0.05 0.03 0.01) +(0.055 0.03 0.01) +(0.06 0.03 0.01) +(0.065 0.03 0.01) +(0.07 0.03 0.01) +(0.075 0.03 0.01) +(0.08 0.03 0.01) +(0.085 0.03 0.01) +(0.09 0.03 0.01) +(0.095 0.03 0.01) +(0.1 0.03 0.01) +(0 0.035 0.01) +(0.005 0.035 0.01) +(0.01 0.035 0.01) +(0.015 0.035 0.01) +(0.02 0.035 0.01) +(0.025 0.035 0.01) +(0.03 0.035 0.01) +(0.035 0.035 0.01) +(0.04 0.035 0.01) +(0.045 0.035 0.01) +(0.05 0.035 0.01) +(0.055 0.035 0.01) +(0.06 0.035 0.01) +(0.065 0.035 0.01) +(0.07 0.035 0.01) +(0.075 0.035 0.01) +(0.08 0.035 0.01) +(0.085 0.035 0.01) +(0.09 0.035 0.01) +(0.095 0.035 0.01) +(0.1 0.035 0.01) +(0 0.04 0.01) +(0.005 0.04 0.01) +(0.01 0.04 0.01) +(0.015 0.04 0.01) +(0.02 0.04 0.01) +(0.025 0.04 0.01) +(0.03 0.04 0.01) +(0.035 0.04 0.01) +(0.04 0.04 0.01) +(0.045 0.04 0.01) +(0.05 0.04 0.01) +(0.055 0.04 0.01) +(0.06 0.04 0.01) +(0.065 0.04 0.01) +(0.07 0.04 0.01) +(0.075 0.04 0.01) +(0.08 0.04 0.01) +(0.085 0.04 0.01) +(0.09 0.04 0.01) +(0.095 0.04 0.01) +(0.1 0.04 0.01) +(0 0.045 0.01) +(0.005 0.045 0.01) +(0.01 0.045 0.01) +(0.015 0.045 0.01) +(0.02 0.045 0.01) +(0.025 0.045 0.01) +(0.03 0.045 0.01) +(0.035 0.045 0.01) +(0.04 0.045 0.01) +(0.045 0.045 0.01) +(0.05 0.045 0.01) +(0.055 0.045 0.01) +(0.06 0.045 0.01) +(0.065 0.045 0.01) +(0.07 0.045 0.01) +(0.075 0.045 0.01) +(0.08 0.045 0.01) +(0.085 0.045 0.01) +(0.09 0.045 0.01) +(0.095 0.045 0.01) +(0.1 0.045 0.01) +(0 0.05 0.01) +(0.005 0.05 0.01) +(0.01 0.05 0.01) +(0.015 0.05 0.01) +(0.02 0.05 0.01) +(0.025 0.05 0.01) +(0.03 0.05 0.01) +(0.035 0.05 0.01) +(0.04 0.05 0.01) +(0.045 0.05 0.01) +(0.05 0.05 0.01) +(0.055 0.05 0.01) +(0.06 0.05 0.01) +(0.065 0.05 0.01) +(0.07 0.05 0.01) +(0.075 0.05 0.01) +(0.08 0.05 0.01) +(0.085 0.05 0.01) +(0.09 0.05 0.01) +(0.095 0.05 0.01) +(0.1 0.05 0.01) +(0 0.055 0.01) +(0.005 0.055 0.01) +(0.01 0.055 0.01) +(0.015 0.055 0.01) +(0.02 0.055 0.01) +(0.025 0.055 0.01) +(0.03 0.055 0.01) +(0.035 0.055 0.01) +(0.04 0.055 0.01) +(0.045 0.055 0.01) +(0.05 0.055 0.01) +(0.055 0.055 0.01) +(0.06 0.055 0.01) +(0.065 0.055 0.01) +(0.07 0.055 0.01) +(0.075 0.055 0.01) +(0.08 0.055 0.01) +(0.085 0.055 0.01) +(0.09 0.055 0.01) +(0.095 0.055 0.01) +(0.1 0.055 0.01) +(0 0.06 0.01) +(0.005 0.06 0.01) +(0.01 0.06 0.01) +(0.015 0.06 0.01) +(0.02 0.06 0.01) +(0.025 0.06 0.01) +(0.03 0.06 0.01) +(0.035 0.06 0.01) +(0.04 0.06 0.01) +(0.045 0.06 0.01) +(0.05 0.06 0.01) +(0.055 0.06 0.01) +(0.06 0.06 0.01) +(0.065 0.06 0.01) +(0.07 0.06 0.01) +(0.075 0.06 0.01) +(0.08 0.06 0.01) +(0.085 0.06 0.01) +(0.09 0.06 0.01) +(0.095 0.06 0.01) +(0.1 0.06 0.01) +(0 0.065 0.01) +(0.005 0.065 0.01) +(0.01 0.065 0.01) +(0.015 0.065 0.01) +(0.02 0.065 0.01) +(0.025 0.065 0.01) +(0.03 0.065 0.01) +(0.035 0.065 0.01) +(0.04 0.065 0.01) +(0.045 0.065 0.01) +(0.05 0.065 0.01) +(0.055 0.065 0.01) +(0.06 0.065 0.01) +(0.065 0.065 0.01) +(0.07 0.065 0.01) +(0.075 0.065 0.01) +(0.08 0.065 0.01) +(0.085 0.065 0.01) +(0.09 0.065 0.01) +(0.095 0.065 0.01) +(0.1 0.065 0.01) +(0 0.07 0.01) +(0.005 0.07 0.01) +(0.01 0.07 0.01) +(0.015 0.07 0.01) +(0.02 0.07 0.01) +(0.025 0.07 0.01) +(0.03 0.07 0.01) +(0.035 0.07 0.01) +(0.04 0.07 0.01) +(0.045 0.07 0.01) +(0.05 0.07 0.01) +(0.055 0.07 0.01) +(0.06 0.07 0.01) +(0.065 0.07 0.01) +(0.07 0.07 0.01) +(0.075 0.07 0.01) +(0.08 0.07 0.01) +(0.085 0.07 0.01) +(0.09 0.07 0.01) +(0.095 0.07 0.01) +(0.1 0.07 0.01) +(0 0.075 0.01) +(0.005 0.075 0.01) +(0.01 0.075 0.01) +(0.015 0.075 0.01) +(0.02 0.075 0.01) +(0.025 0.075 0.01) +(0.03 0.075 0.01) +(0.035 0.075 0.01) +(0.04 0.075 0.01) +(0.045 0.075 0.01) +(0.05 0.075 0.01) +(0.055 0.075 0.01) +(0.06 0.075 0.01) +(0.065 0.075 0.01) +(0.07 0.075 0.01) +(0.075 0.075 0.01) +(0.08 0.075 0.01) +(0.085 0.075 0.01) +(0.09 0.075 0.01) +(0.095 0.075 0.01) +(0.1 0.075 0.01) +(0 0.08 0.01) +(0.005 0.08 0.01) +(0.01 0.08 0.01) +(0.015 0.08 0.01) +(0.02 0.08 0.01) +(0.025 0.08 0.01) +(0.03 0.08 0.01) +(0.035 0.08 0.01) +(0.04 0.08 0.01) +(0.045 0.08 0.01) +(0.05 0.08 0.01) +(0.055 0.08 0.01) +(0.06 0.08 0.01) +(0.065 0.08 0.01) +(0.07 0.08 0.01) +(0.075 0.08 0.01) +(0.08 0.08 0.01) +(0.085 0.08 0.01) +(0.09 0.08 0.01) +(0.095 0.08 0.01) +(0.1 0.08 0.01) +(0 0.085 0.01) +(0.005 0.085 0.01) +(0.01 0.085 0.01) +(0.015 0.085 0.01) +(0.02 0.085 0.01) +(0.025 0.085 0.01) +(0.03 0.085 0.01) +(0.035 0.085 0.01) +(0.04 0.085 0.01) +(0.045 0.085 0.01) +(0.05 0.085 0.01) +(0.055 0.085 0.01) +(0.06 0.085 0.01) +(0.065 0.085 0.01) +(0.07 0.085 0.01) +(0.075 0.085 0.01) +(0.08 0.085 0.01) +(0.085 0.085 0.01) +(0.09 0.085 0.01) +(0.095 0.085 0.01) +(0.1 0.085 0.01) +(0 0.09 0.01) +(0.005 0.09 0.01) +(0.01 0.09 0.01) +(0.015 0.09 0.01) +(0.02 0.09 0.01) +(0.025 0.09 0.01) +(0.03 0.09 0.01) +(0.035 0.09 0.01) +(0.04 0.09 0.01) +(0.045 0.09 0.01) +(0.05 0.09 0.01) +(0.055 0.09 0.01) +(0.06 0.09 0.01) +(0.065 0.09 0.01) +(0.07 0.09 0.01) +(0.075 0.09 0.01) +(0.08 0.09 0.01) +(0.085 0.09 0.01) +(0.09 0.09 0.01) +(0.095 0.09 0.01) +(0.1 0.09 0.01) +(0 0.095 0.01) +(0.005 0.095 0.01) +(0.01 0.095 0.01) +(0.015 0.095 0.01) +(0.02 0.095 0.01) +(0.025 0.095 0.01) +(0.03 0.095 0.01) +(0.035 0.095 0.01) +(0.04 0.095 0.01) +(0.045 0.095 0.01) +(0.05 0.095 0.01) +(0.055 0.095 0.01) +(0.06 0.095 0.01) +(0.065 0.095 0.01) +(0.07 0.095 0.01) +(0.075 0.095 0.01) +(0.08 0.095 0.01) +(0.085 0.095 0.01) +(0.09 0.095 0.01) +(0.095 0.095 0.01) +(0.1 0.095 0.01) +(0 0.1 0.01) +(0.005 0.1 0.01) +(0.01 0.1 0.01) +(0.015 0.1 0.01) +(0.02 0.1 0.01) +(0.025 0.1 0.01) +(0.03 0.1 0.01) +(0.035 0.1 0.01) +(0.04 0.1 0.01) +(0.045 0.1 0.01) +(0.05 0.1 0.01) +(0.055 0.1 0.01) +(0.06 0.1 0.01) +(0.065 0.1 0.01) +(0.07 0.1 0.01) +(0.075 0.1 0.01) +(0.08 0.1 0.01) +(0.085 0.1 0.01) +(0.09 0.1 0.01) +(0.095 0.1 0.01) +(0.1 0.1 0.01) +) + + +// ************************************************************************* // diff --git a/test/testFieldOperations/testFieldOperations.f90 b/test/testFieldOperations/testFieldOperations.f90 new file mode 100755 index 0000000..c64417d --- /dev/null +++ b/test/testFieldOperations/testFieldOperations.f90 @@ -0,0 +1,177 @@ + program testFieldOperation + use utils + use geometry + use tensorFields + use fvxGradient + use fvxInterpolation + use fvxDivergence + + implicit none + + integer :: i + +! Locals + !integer :: ierr + + type(volVectorField) :: vec1, vec2, vec3 + type(volScalarField) :: phi,psi + type(volVectorField) :: resVec + type(volTensorField) :: T + type(surfaceScalarField) :: sf + + + ! Intro +!+-----------------------------------------------------------------------------+ + + call show_logo( ) + + + ! Read mesh files and calculate mesh geometrical quantities +!+-----------------------------------------------------------------------------+ + + call read_mesh + + ! Creation and manipulation fo tensor fields +!+-----------------------------------------------------------------------------+ + + +! +! > Initialize vector fields +! + +!vec1 = volVectorField("Vector1", xc**2+yc+zc, xc+yc**2+zc, xc+yc+zc**2 ) + +vec1 = volVectorField( & + "Vector1", & + xc**2+yc+zc, & + xc+yc**2+zc, & + xc+yc+zc**2 & + ) + +vec2 = volVectorField("Vector2", & + xc+yc+zc, & + xc+yc+zc, & + xc+yc+zc) + +! +! Test dot product of two vector field +! + phi = vec1*vec2 + + write(*,'(a)') ' Dot product of two vectors:' + write(*,'(e13.6)') phi%mag(1:5) + write(*,'(a)') ' ' + +! +! Test cross product of two vector fields +! + resVec = vec1.x.vec2 + + write(*,'(a)') ' Cross product of two vectrors ' + write(*,'(3(e13.6,1x))') resVec%x(1:3),resVec%y(1:3),resVec%z(1:3) + write(*,'(a)') ' ' + +! +! Tensor product of two vector fields +! + T = vec1.o.vec2 + + write(*,'(a)') ' Tensor product of two vectors: ' + write(*,'(3(e13.6,1x))') T%xx(5),T%xy(5),T%xz(5) + write(*,'(3(e13.6,1x))') T%yx(5),T%yy(5),T%yz(5) + write(*,'(3(e13.6,1x))') T%zx(5),T%zy(5),T%zz(5) + write(*,'(a)') ' ' + +! +! Deviatoric part of a tensor +! + T = .dev.T + + write(*,'(a)') ' Deviatoric part of that tensor (at one point): ' + write(*,'(3(e13.6,1x))') T%xx(5),T%xy(5),T%xz(5) + write(*,'(3(e13.6,1x))') T%yx(5),T%yy(5),T%yz(5) + write(*,'(3(e13.6,1x))') T%zx(5),T%zy(5),T%zz(5) + write(*,'(a)') ' ' + + !...curl of a derived tensor field + + resVec = .curl.(3.14_dp*T+T) + + ! ...set field name for vtk output file name: + resVec % field_name = 'CurlField' + + write(*,'(a)') ' ...curl of a derived tensor field ' + write(*,'(1x,a)') resVec%field_name + write(*,'(3(e15.8,1x))') resVec%x(1:3),resVec%y(1:3),resVec%z(1:3) + write(*,'(a)') ' ' +! +! Magnitude squared of a tensor field +! + phi = .magSq.T + + write(*,'(a)') ' Magnitude squared of the same tensor field' + write(*,'(e15.8)') phi%mag(1:5) + write(*,'(a)') ' ' + + +! +! Test gradient of a scalar field +! + + ! First set up the linear field + ! psi = volScalarField("linear_field", xc + yc + zc ) + psi = new_volScalarField( numTotal ) + ! psi%mag = 1.0 + psi%mag(1:numCells) = xc(1:numCells) + yc(1:numCells) + zc(1:numCells) + psi%mag(numCells+1:) = xf(numInnerFaces+1:)+yf(numInnerFaces+1:)+zf(numInnerFaces+1:) + + + ! Now call the explicit gradient operation + gauss = .true. + resVec = Grad( psi ) + + ! This is useful for book-keeping, lets give it a name: + ! resVec%field_name = 'gradient_field' + + ! call grad_gauss(psi%mag, resVec%x, resVec%y, resVec%z) + + write(*,'(a)') ' Magnitude of a linear field' + write(*,'(e15.8)') psi%mag(1:440) + write(*,'(a)') ' ' + write(*,'(a)') ' Gradient of a scalar field - fvx operation: ' + write(*,'(1x,a)') resVec%field_name + do i=1,440 + write(*,'(i0,1x,3(e15.8,1x))') i,resVec%x(i),resVec%y(i),resVec%z(i) + enddo + write(*,'(a)') ' ' + +! +! Interpolation of a scalar field +! + sf = fvxInterpolate( psi ) + + write(*,'(a)') ' Interpolated scalar field to cell faces' + write(*,'(e15.8)') sf%mag(1:40) + write(*,'(a)') ' ' + +! +! Now test vector identities: divergence of the curl is zero +! + + ! Vec3 = new_volVectorField( numTotal ) + ! Vec3%x = 1.0; Vec3%y = 1.0; Vec3%z = 1.0 + ! phi = fvxDiv( Vec3 ) + + ! write(*,'(a)') ' Divergence of a curl is zero' + ! do i=1,1280 + ! write(*,'(i0,1x,e15.8)') i,phi%mag(i) + ! enddo + ! write(*,'(a)') ' ' + +! +! > Terminate. +! + call say_goodbye( ) + + end program + diff --git a/test/test_linear_solvers_spsolve.f90 b/test/test_linear_solvers_spsolve.f90 old mode 100644 new mode 100755 diff --git a/test/testfvEquations/directories b/test/testfvEquations/directories new file mode 100755 index 0000000..34dd4b3 --- /dev/null +++ b/test/testfvEquations/directories @@ -0,0 +1,10 @@ +src/cappuccino +src/misc +src/mesh +src/sparseMatrix +misc/ +src/finiteVolume/tensorFields +src/finiteVolume/fvExplicit + + + diff --git a/test/testfvEquations/files b/test/testfvEquations/files new file mode 100755 index 0000000..6005564 --- /dev/null +++ b/test/testfvEquations/files @@ -0,0 +1,11 @@ +modules_allocatable.f90 +utils.f90 +geometry.f90 +gradients.f90 +matrix.f90 +sparse_matrix.f90 +tensorFields.f90 +fvxGradient.f90 +fvxInterpolation.f90 +fvxDivergence.f90 +testfvEquations.f90 diff --git a/test/testfvEquations/polyMesh/boundary b/test/testfvEquations/polyMesh/boundary new file mode 100755 index 0000000..a1ad726 --- /dev/null +++ b/test/testfvEquations/polyMesh/boundary @@ -0,0 +1,4 @@ +#type nFaces startFace +movingTop wall 20 760 +fixedWalls wall 60 780 +backForth symmetry 800 840 diff --git a/test/testfvEquations/polyMesh/boundary~ b/test/testfvEquations/polyMesh/boundary~ new file mode 100755 index 0000000..1a7cbcf --- /dev/null +++ b/test/testfvEquations/polyMesh/boundary~ @@ -0,0 +1,4 @@ +#type nFaces startFace +movingTop wall 20 760 +fixedWalls wall 60 780 +backForth 800 840 diff --git a/test/testfvEquations/polyMesh/faces b/test/testfvEquations/polyMesh/faces new file mode 100755 index 0000000..6f46604 --- /dev/null +++ b/test/testfvEquations/polyMesh/faces @@ -0,0 +1,1664 @@ +/*--------------------------------*- 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 faceList; + location "constant/polyMesh"; + object faces; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + + +1640 +( +4(1 22 463 442) +4(21 462 463 22) +4(2 23 464 443) +4(22 463 464 23) +4(3 24 465 444) +4(23 464 465 24) +4(4 25 466 445) +4(24 465 466 25) +4(5 26 467 446) +4(25 466 467 26) +4(6 27 468 447) +4(26 467 468 27) +4(7 28 469 448) +4(27 468 469 28) +4(8 29 470 449) +4(28 469 470 29) +4(9 30 471 450) +4(29 470 471 30) +4(10 31 472 451) +4(30 471 472 31) +4(11 32 473 452) +4(31 472 473 32) +4(12 33 474 453) +4(32 473 474 33) +4(13 34 475 454) +4(33 474 475 34) +4(14 35 476 455) +4(34 475 476 35) +4(15 36 477 456) +4(35 476 477 36) +4(16 37 478 457) +4(36 477 478 37) +4(17 38 479 458) +4(37 478 479 38) +4(18 39 480 459) +4(38 479 480 39) +4(19 40 481 460) +4(39 480 481 40) +4(40 481 482 41) +4(22 43 484 463) +4(42 483 484 43) +4(23 44 485 464) +4(43 484 485 44) +4(24 45 486 465) +4(44 485 486 45) +4(25 46 487 466) +4(45 486 487 46) +4(26 47 488 467) +4(46 487 488 47) +4(27 48 489 468) +4(47 488 489 48) +4(28 49 490 469) +4(48 489 490 49) +4(29 50 491 470) +4(49 490 491 50) +4(30 51 492 471) +4(50 491 492 51) +4(31 52 493 472) +4(51 492 493 52) +4(32 53 494 473) +4(52 493 494 53) +4(33 54 495 474) +4(53 494 495 54) +4(34 55 496 475) +4(54 495 496 55) +4(35 56 497 476) +4(55 496 497 56) +4(36 57 498 477) +4(56 497 498 57) +4(37 58 499 478) +4(57 498 499 58) +4(38 59 500 479) +4(58 499 500 59) +4(39 60 501 480) +4(59 500 501 60) +4(40 61 502 481) +4(60 501 502 61) +4(61 502 503 62) +4(43 64 505 484) +4(63 504 505 64) +4(44 65 506 485) +4(64 505 506 65) +4(45 66 507 486) +4(65 506 507 66) +4(46 67 508 487) +4(66 507 508 67) +4(47 68 509 488) +4(67 508 509 68) +4(48 69 510 489) +4(68 509 510 69) +4(49 70 511 490) +4(69 510 511 70) +4(50 71 512 491) +4(70 511 512 71) +4(51 72 513 492) +4(71 512 513 72) +4(52 73 514 493) +4(72 513 514 73) +4(53 74 515 494) +4(73 514 515 74) +4(54 75 516 495) +4(74 515 516 75) +4(55 76 517 496) +4(75 516 517 76) +4(56 77 518 497) +4(76 517 518 77) +4(57 78 519 498) +4(77 518 519 78) +4(58 79 520 499) +4(78 519 520 79) +4(59 80 521 500) +4(79 520 521 80) +4(60 81 522 501) +4(80 521 522 81) +4(61 82 523 502) +4(81 522 523 82) +4(82 523 524 83) +4(64 85 526 505) +4(84 525 526 85) +4(65 86 527 506) +4(85 526 527 86) +4(66 87 528 507) +4(86 527 528 87) +4(67 88 529 508) +4(87 528 529 88) +4(68 89 530 509) +4(88 529 530 89) +4(69 90 531 510) +4(89 530 531 90) +4(70 91 532 511) +4(90 531 532 91) +4(71 92 533 512) +4(91 532 533 92) +4(72 93 534 513) +4(92 533 534 93) +4(73 94 535 514) +4(93 534 535 94) +4(74 95 536 515) +4(94 535 536 95) +4(75 96 537 516) +4(95 536 537 96) +4(76 97 538 517) +4(96 537 538 97) +4(77 98 539 518) +4(97 538 539 98) +4(78 99 540 519) +4(98 539 540 99) +4(79 100 541 520) +4(99 540 541 100) +4(80 101 542 521) +4(100 541 542 101) +4(81 102 543 522) +4(101 542 543 102) +4(82 103 544 523) +4(102 543 544 103) +4(103 544 545 104) +4(85 106 547 526) +4(105 546 547 106) +4(86 107 548 527) +4(106 547 548 107) +4(87 108 549 528) +4(107 548 549 108) +4(88 109 550 529) +4(108 549 550 109) +4(89 110 551 530) +4(109 550 551 110) +4(90 111 552 531) +4(110 551 552 111) +4(91 112 553 532) +4(111 552 553 112) +4(92 113 554 533) +4(112 553 554 113) +4(93 114 555 534) +4(113 554 555 114) +4(94 115 556 535) +4(114 555 556 115) +4(95 116 557 536) +4(115 556 557 116) +4(96 117 558 537) +4(116 557 558 117) +4(97 118 559 538) +4(117 558 559 118) +4(98 119 560 539) +4(118 559 560 119) +4(99 120 561 540) +4(119 560 561 120) +4(100 121 562 541) +4(120 561 562 121) +4(101 122 563 542) +4(121 562 563 122) +4(102 123 564 543) +4(122 563 564 123) +4(103 124 565 544) +4(123 564 565 124) +4(124 565 566 125) +4(106 127 568 547) +4(126 567 568 127) +4(107 128 569 548) +4(127 568 569 128) +4(108 129 570 549) +4(128 569 570 129) +4(109 130 571 550) +4(129 570 571 130) +4(110 131 572 551) +4(130 571 572 131) +4(111 132 573 552) +4(131 572 573 132) +4(112 133 574 553) +4(132 573 574 133) +4(113 134 575 554) +4(133 574 575 134) +4(114 135 576 555) +4(134 575 576 135) +4(115 136 577 556) +4(135 576 577 136) +4(116 137 578 557) +4(136 577 578 137) +4(117 138 579 558) +4(137 578 579 138) +4(118 139 580 559) +4(138 579 580 139) +4(119 140 581 560) +4(139 580 581 140) +4(120 141 582 561) +4(140 581 582 141) +4(121 142 583 562) +4(141 582 583 142) +4(122 143 584 563) +4(142 583 584 143) +4(123 144 585 564) +4(143 584 585 144) +4(124 145 586 565) +4(144 585 586 145) +4(145 586 587 146) +4(127 148 589 568) +4(147 588 589 148) +4(128 149 590 569) +4(148 589 590 149) +4(129 150 591 570) +4(149 590 591 150) +4(130 151 592 571) +4(150 591 592 151) +4(131 152 593 572) +4(151 592 593 152) +4(132 153 594 573) +4(152 593 594 153) +4(133 154 595 574) +4(153 594 595 154) +4(134 155 596 575) +4(154 595 596 155) +4(135 156 597 576) +4(155 596 597 156) +4(136 157 598 577) +4(156 597 598 157) +4(137 158 599 578) +4(157 598 599 158) +4(138 159 600 579) +4(158 599 600 159) +4(139 160 601 580) +4(159 600 601 160) +4(140 161 602 581) +4(160 601 602 161) +4(141 162 603 582) +4(161 602 603 162) +4(142 163 604 583) +4(162 603 604 163) +4(143 164 605 584) +4(163 604 605 164) +4(144 165 606 585) +4(164 605 606 165) +4(145 166 607 586) +4(165 606 607 166) +4(166 607 608 167) +4(148 169 610 589) +4(168 609 610 169) +4(149 170 611 590) +4(169 610 611 170) +4(150 171 612 591) +4(170 611 612 171) +4(151 172 613 592) +4(171 612 613 172) +4(152 173 614 593) +4(172 613 614 173) +4(153 174 615 594) +4(173 614 615 174) +4(154 175 616 595) +4(174 615 616 175) +4(155 176 617 596) +4(175 616 617 176) +4(156 177 618 597) +4(176 617 618 177) +4(157 178 619 598) +4(177 618 619 178) +4(158 179 620 599) +4(178 619 620 179) +4(159 180 621 600) +4(179 620 621 180) +4(160 181 622 601) +4(180 621 622 181) +4(161 182 623 602) +4(181 622 623 182) +4(162 183 624 603) +4(182 623 624 183) +4(163 184 625 604) +4(183 624 625 184) +4(164 185 626 605) +4(184 625 626 185) +4(165 186 627 606) +4(185 626 627 186) +4(166 187 628 607) +4(186 627 628 187) +4(187 628 629 188) +4(169 190 631 610) +4(189 630 631 190) +4(170 191 632 611) +4(190 631 632 191) +4(171 192 633 612) +4(191 632 633 192) +4(172 193 634 613) +4(192 633 634 193) +4(173 194 635 614) +4(193 634 635 194) +4(174 195 636 615) +4(194 635 636 195) +4(175 196 637 616) +4(195 636 637 196) +4(176 197 638 617) +4(196 637 638 197) +4(177 198 639 618) +4(197 638 639 198) +4(178 199 640 619) +4(198 639 640 199) +4(179 200 641 620) +4(199 640 641 200) +4(180 201 642 621) +4(200 641 642 201) +4(181 202 643 622) +4(201 642 643 202) +4(182 203 644 623) +4(202 643 644 203) +4(183 204 645 624) +4(203 644 645 204) +4(184 205 646 625) +4(204 645 646 205) +4(185 206 647 626) +4(205 646 647 206) +4(186 207 648 627) +4(206 647 648 207) +4(187 208 649 628) +4(207 648 649 208) +4(208 649 650 209) +4(190 211 652 631) +4(210 651 652 211) +4(191 212 653 632) +4(211 652 653 212) +4(192 213 654 633) +4(212 653 654 213) +4(193 214 655 634) +4(213 654 655 214) +4(194 215 656 635) +4(214 655 656 215) +4(195 216 657 636) +4(215 656 657 216) +4(196 217 658 637) +4(216 657 658 217) +4(197 218 659 638) +4(217 658 659 218) +4(198 219 660 639) +4(218 659 660 219) +4(199 220 661 640) +4(219 660 661 220) +4(200 221 662 641) +4(220 661 662 221) +4(201 222 663 642) +4(221 662 663 222) +4(202 223 664 643) +4(222 663 664 223) +4(203 224 665 644) +4(223 664 665 224) +4(204 225 666 645) +4(224 665 666 225) +4(205 226 667 646) +4(225 666 667 226) +4(206 227 668 647) +4(226 667 668 227) +4(207 228 669 648) +4(227 668 669 228) +4(208 229 670 649) +4(228 669 670 229) +4(229 670 671 230) +4(211 232 673 652) +4(231 672 673 232) +4(212 233 674 653) +4(232 673 674 233) +4(213 234 675 654) +4(233 674 675 234) +4(214 235 676 655) +4(234 675 676 235) +4(215 236 677 656) +4(235 676 677 236) +4(216 237 678 657) +4(236 677 678 237) +4(217 238 679 658) +4(237 678 679 238) +4(218 239 680 659) +4(238 679 680 239) +4(219 240 681 660) +4(239 680 681 240) +4(220 241 682 661) +4(240 681 682 241) +4(221 242 683 662) +4(241 682 683 242) +4(222 243 684 663) +4(242 683 684 243) +4(223 244 685 664) +4(243 684 685 244) +4(224 245 686 665) +4(244 685 686 245) +4(225 246 687 666) +4(245 686 687 246) +4(226 247 688 667) +4(246 687 688 247) +4(227 248 689 668) +4(247 688 689 248) +4(228 249 690 669) +4(248 689 690 249) +4(229 250 691 670) +4(249 690 691 250) +4(250 691 692 251) +4(232 253 694 673) +4(252 693 694 253) +4(233 254 695 674) +4(253 694 695 254) +4(234 255 696 675) +4(254 695 696 255) +4(235 256 697 676) +4(255 696 697 256) +4(236 257 698 677) +4(256 697 698 257) +4(237 258 699 678) +4(257 698 699 258) +4(238 259 700 679) +4(258 699 700 259) +4(239 260 701 680) +4(259 700 701 260) +4(240 261 702 681) +4(260 701 702 261) +4(241 262 703 682) +4(261 702 703 262) +4(242 263 704 683) +4(262 703 704 263) +4(243 264 705 684) +4(263 704 705 264) +4(244 265 706 685) +4(264 705 706 265) +4(245 266 707 686) +4(265 706 707 266) +4(246 267 708 687) +4(266 707 708 267) +4(247 268 709 688) +4(267 708 709 268) +4(248 269 710 689) +4(268 709 710 269) +4(249 270 711 690) +4(269 710 711 270) +4(250 271 712 691) +4(270 711 712 271) +4(271 712 713 272) +4(253 274 715 694) +4(273 714 715 274) +4(254 275 716 695) +4(274 715 716 275) +4(255 276 717 696) +4(275 716 717 276) +4(256 277 718 697) +4(276 717 718 277) +4(257 278 719 698) +4(277 718 719 278) +4(258 279 720 699) +4(278 719 720 279) +4(259 280 721 700) +4(279 720 721 280) +4(260 281 722 701) +4(280 721 722 281) +4(261 282 723 702) +4(281 722 723 282) +4(262 283 724 703) +4(282 723 724 283) +4(263 284 725 704) +4(283 724 725 284) +4(264 285 726 705) +4(284 725 726 285) +4(265 286 727 706) +4(285 726 727 286) +4(266 287 728 707) +4(286 727 728 287) +4(267 288 729 708) +4(287 728 729 288) +4(268 289 730 709) +4(288 729 730 289) +4(269 290 731 710) +4(289 730 731 290) +4(270 291 732 711) +4(290 731 732 291) +4(271 292 733 712) +4(291 732 733 292) +4(292 733 734 293) +4(274 295 736 715) +4(294 735 736 295) +4(275 296 737 716) +4(295 736 737 296) +4(276 297 738 717) +4(296 737 738 297) +4(277 298 739 718) +4(297 738 739 298) +4(278 299 740 719) +4(298 739 740 299) +4(279 300 741 720) +4(299 740 741 300) +4(280 301 742 721) +4(300 741 742 301) +4(281 302 743 722) +4(301 742 743 302) +4(282 303 744 723) +4(302 743 744 303) +4(283 304 745 724) +4(303 744 745 304) +4(284 305 746 725) +4(304 745 746 305) +4(285 306 747 726) +4(305 746 747 306) +4(286 307 748 727) +4(306 747 748 307) +4(287 308 749 728) +4(307 748 749 308) +4(288 309 750 729) +4(308 749 750 309) +4(289 310 751 730) +4(309 750 751 310) +4(290 311 752 731) +4(310 751 752 311) +4(291 312 753 732) +4(311 752 753 312) +4(292 313 754 733) +4(312 753 754 313) +4(313 754 755 314) +4(295 316 757 736) +4(315 756 757 316) +4(296 317 758 737) +4(316 757 758 317) +4(297 318 759 738) +4(317 758 759 318) +4(298 319 760 739) +4(318 759 760 319) +4(299 320 761 740) +4(319 760 761 320) +4(300 321 762 741) +4(320 761 762 321) +4(301 322 763 742) +4(321 762 763 322) +4(302 323 764 743) +4(322 763 764 323) +4(303 324 765 744) +4(323 764 765 324) +4(304 325 766 745) +4(324 765 766 325) +4(305 326 767 746) +4(325 766 767 326) +4(306 327 768 747) +4(326 767 768 327) +4(307 328 769 748) +4(327 768 769 328) +4(308 329 770 749) +4(328 769 770 329) +4(309 330 771 750) +4(329 770 771 330) +4(310 331 772 751) +4(330 771 772 331) +4(311 332 773 752) +4(331 772 773 332) +4(312 333 774 753) +4(332 773 774 333) +4(313 334 775 754) +4(333 774 775 334) +4(334 775 776 335) +4(316 337 778 757) +4(336 777 778 337) +4(317 338 779 758) +4(337 778 779 338) +4(318 339 780 759) +4(338 779 780 339) +4(319 340 781 760) +4(339 780 781 340) +4(320 341 782 761) +4(340 781 782 341) +4(321 342 783 762) +4(341 782 783 342) +4(322 343 784 763) +4(342 783 784 343) +4(323 344 785 764) +4(343 784 785 344) +4(324 345 786 765) +4(344 785 786 345) +4(325 346 787 766) +4(345 786 787 346) +4(326 347 788 767) +4(346 787 788 347) +4(327 348 789 768) +4(347 788 789 348) +4(328 349 790 769) +4(348 789 790 349) +4(329 350 791 770) +4(349 790 791 350) +4(330 351 792 771) +4(350 791 792 351) +4(331 352 793 772) +4(351 792 793 352) +4(332 353 794 773) +4(352 793 794 353) +4(333 354 795 774) +4(353 794 795 354) +4(334 355 796 775) +4(354 795 796 355) +4(355 796 797 356) +4(337 358 799 778) +4(357 798 799 358) +4(338 359 800 779) +4(358 799 800 359) +4(339 360 801 780) +4(359 800 801 360) +4(340 361 802 781) +4(360 801 802 361) +4(341 362 803 782) +4(361 802 803 362) +4(342 363 804 783) +4(362 803 804 363) +4(343 364 805 784) +4(363 804 805 364) +4(344 365 806 785) +4(364 805 806 365) +4(345 366 807 786) +4(365 806 807 366) +4(346 367 808 787) +4(366 807 808 367) +4(347 368 809 788) +4(367 808 809 368) +4(348 369 810 789) +4(368 809 810 369) +4(349 370 811 790) +4(369 810 811 370) +4(350 371 812 791) +4(370 811 812 371) +4(351 372 813 792) +4(371 812 813 372) +4(352 373 814 793) +4(372 813 814 373) +4(353 374 815 794) +4(373 814 815 374) +4(354 375 816 795) +4(374 815 816 375) +4(355 376 817 796) +4(375 816 817 376) +4(376 817 818 377) +4(358 379 820 799) +4(378 819 820 379) +4(359 380 821 800) +4(379 820 821 380) +4(360 381 822 801) +4(380 821 822 381) +4(361 382 823 802) +4(381 822 823 382) +4(362 383 824 803) +4(382 823 824 383) +4(363 384 825 804) +4(383 824 825 384) +4(364 385 826 805) +4(384 825 826 385) +4(365 386 827 806) +4(385 826 827 386) +4(366 387 828 807) +4(386 827 828 387) +4(367 388 829 808) +4(387 828 829 388) +4(368 389 830 809) +4(388 829 830 389) +4(369 390 831 810) +4(389 830 831 390) +4(370 391 832 811) +4(390 831 832 391) +4(371 392 833 812) +4(391 832 833 392) +4(372 393 834 813) +4(392 833 834 393) +4(373 394 835 814) +4(393 834 835 394) +4(374 395 836 815) +4(394 835 836 395) +4(375 396 837 816) +4(395 836 837 396) +4(376 397 838 817) +4(396 837 838 397) +4(397 838 839 398) +4(379 400 841 820) +4(399 840 841 400) +4(380 401 842 821) +4(400 841 842 401) +4(381 402 843 822) +4(401 842 843 402) +4(382 403 844 823) +4(402 843 844 403) +4(383 404 845 824) +4(403 844 845 404) +4(384 405 846 825) +4(404 845 846 405) +4(385 406 847 826) +4(405 846 847 406) +4(386 407 848 827) +4(406 847 848 407) +4(387 408 849 828) +4(407 848 849 408) +4(388 409 850 829) +4(408 849 850 409) +4(389 410 851 830) +4(409 850 851 410) +4(390 411 852 831) +4(410 851 852 411) +4(391 412 853 832) +4(411 852 853 412) +4(392 413 854 833) +4(412 853 854 413) +4(393 414 855 834) +4(413 854 855 414) +4(394 415 856 835) +4(414 855 856 415) +4(395 416 857 836) +4(415 856 857 416) +4(396 417 858 837) +4(416 857 858 417) +4(397 418 859 838) +4(417 858 859 418) +4(418 859 860 419) +4(400 421 862 841) +4(401 422 863 842) +4(402 423 864 843) +4(403 424 865 844) +4(404 425 866 845) +4(405 426 867 846) +4(406 427 868 847) +4(407 428 869 848) +4(408 429 870 849) +4(409 430 871 850) +4(410 431 872 851) +4(411 432 873 852) +4(412 433 874 853) +4(413 434 875 854) +4(414 435 876 855) +4(415 436 877 856) +4(416 437 878 857) +4(417 438 879 858) +4(418 439 880 859) +4(420 861 862 421) +4(421 862 863 422) +4(422 863 864 423) +4(423 864 865 424) +4(424 865 866 425) +4(425 866 867 426) +4(426 867 868 427) +4(427 868 869 428) +4(428 869 870 429) +4(429 870 871 430) +4(430 871 872 431) +4(431 872 873 432) +4(432 873 874 433) +4(433 874 875 434) +4(434 875 876 435) +4(435 876 877 436) +4(436 877 878 437) +4(437 878 879 438) +4(438 879 880 439) +4(439 880 881 440) +4(0 441 462 21) +4(21 462 483 42) +4(42 483 504 63) +4(63 504 525 84) +4(84 525 546 105) +4(105 546 567 126) +4(126 567 588 147) +4(147 588 609 168) +4(168 609 630 189) +4(189 630 651 210) +4(210 651 672 231) +4(231 672 693 252) +4(252 693 714 273) +4(273 714 735 294) +4(294 735 756 315) +4(315 756 777 336) +4(336 777 798 357) +4(357 798 819 378) +4(378 819 840 399) +4(399 840 861 420) +4(20 41 482 461) +4(41 62 503 482) +4(62 83 524 503) +4(83 104 545 524) +4(104 125 566 545) +4(125 146 587 566) +4(146 167 608 587) +4(167 188 629 608) +4(188 209 650 629) +4(209 230 671 650) +4(230 251 692 671) +4(251 272 713 692) +4(272 293 734 713) +4(293 314 755 734) +4(314 335 776 755) +4(335 356 797 776) +4(356 377 818 797) +4(377 398 839 818) +4(398 419 860 839) +4(419 440 881 860) +4(0 1 442 441) +4(1 2 443 442) +4(2 3 444 443) +4(3 4 445 444) +4(4 5 446 445) +4(5 6 447 446) +4(6 7 448 447) +4(7 8 449 448) +4(8 9 450 449) +4(9 10 451 450) +4(10 11 452 451) +4(11 12 453 452) +4(12 13 454 453) +4(13 14 455 454) +4(14 15 456 455) +4(15 16 457 456) +4(16 17 458 457) +4(17 18 459 458) +4(18 19 460 459) +4(19 20 461 460) +4(0 21 22 1) +4(21 42 43 22) +4(42 63 64 43) +4(63 84 85 64) +4(84 105 106 85) +4(105 126 127 106) +4(126 147 148 127) +4(147 168 169 148) +4(168 189 190 169) +4(189 210 211 190) +4(210 231 232 211) +4(231 252 253 232) +4(252 273 274 253) +4(273 294 295 274) +4(294 315 316 295) +4(315 336 337 316) +4(336 357 358 337) +4(357 378 379 358) +4(378 399 400 379) +4(399 420 421 400) +4(1 22 23 2) +4(22 43 44 23) +4(43 64 65 44) +4(64 85 86 65) +4(85 106 107 86) +4(106 127 128 107) +4(127 148 149 128) +4(148 169 170 149) +4(169 190 191 170) +4(190 211 212 191) +4(211 232 233 212) +4(232 253 254 233) +4(253 274 275 254) +4(274 295 296 275) +4(295 316 317 296) +4(316 337 338 317) +4(337 358 359 338) +4(358 379 380 359) +4(379 400 401 380) +4(400 421 422 401) +4(2 23 24 3) +4(23 44 45 24) +4(44 65 66 45) +4(65 86 87 66) +4(86 107 108 87) +4(107 128 129 108) +4(128 149 150 129) +4(149 170 171 150) +4(170 191 192 171) +4(191 212 213 192) +4(212 233 234 213) +4(233 254 255 234) +4(254 275 276 255) +4(275 296 297 276) +4(296 317 318 297) +4(317 338 339 318) +4(338 359 360 339) +4(359 380 381 360) +4(380 401 402 381) +4(401 422 423 402) +4(3 24 25 4) +4(24 45 46 25) +4(45 66 67 46) +4(66 87 88 67) +4(87 108 109 88) +4(108 129 130 109) +4(129 150 151 130) +4(150 171 172 151) +4(171 192 193 172) +4(192 213 214 193) +4(213 234 235 214) +4(234 255 256 235) +4(255 276 277 256) +4(276 297 298 277) +4(297 318 319 298) +4(318 339 340 319) +4(339 360 361 340) +4(360 381 382 361) +4(381 402 403 382) +4(402 423 424 403) +4(4 25 26 5) +4(25 46 47 26) +4(46 67 68 47) +4(67 88 89 68) +4(88 109 110 89) +4(109 130 131 110) +4(130 151 152 131) +4(151 172 173 152) +4(172 193 194 173) +4(193 214 215 194) +4(214 235 236 215) +4(235 256 257 236) +4(256 277 278 257) +4(277 298 299 278) +4(298 319 320 299) +4(319 340 341 320) +4(340 361 362 341) +4(361 382 383 362) +4(382 403 404 383) +4(403 424 425 404) +4(5 26 27 6) +4(26 47 48 27) +4(47 68 69 48) +4(68 89 90 69) +4(89 110 111 90) +4(110 131 132 111) +4(131 152 153 132) +4(152 173 174 153) +4(173 194 195 174) +4(194 215 216 195) +4(215 236 237 216) +4(236 257 258 237) +4(257 278 279 258) +4(278 299 300 279) +4(299 320 321 300) +4(320 341 342 321) +4(341 362 363 342) +4(362 383 384 363) +4(383 404 405 384) +4(404 425 426 405) +4(6 27 28 7) +4(27 48 49 28) +4(48 69 70 49) +4(69 90 91 70) +4(90 111 112 91) +4(111 132 133 112) +4(132 153 154 133) +4(153 174 175 154) +4(174 195 196 175) +4(195 216 217 196) +4(216 237 238 217) +4(237 258 259 238) +4(258 279 280 259) +4(279 300 301 280) +4(300 321 322 301) +4(321 342 343 322) +4(342 363 364 343) +4(363 384 385 364) +4(384 405 406 385) +4(405 426 427 406) +4(7 28 29 8) +4(28 49 50 29) +4(49 70 71 50) +4(70 91 92 71) +4(91 112 113 92) +4(112 133 134 113) +4(133 154 155 134) +4(154 175 176 155) +4(175 196 197 176) +4(196 217 218 197) +4(217 238 239 218) +4(238 259 260 239) +4(259 280 281 260) +4(280 301 302 281) +4(301 322 323 302) +4(322 343 344 323) +4(343 364 365 344) +4(364 385 386 365) +4(385 406 407 386) +4(406 427 428 407) +4(8 29 30 9) +4(29 50 51 30) +4(50 71 72 51) +4(71 92 93 72) +4(92 113 114 93) +4(113 134 135 114) +4(134 155 156 135) +4(155 176 177 156) +4(176 197 198 177) +4(197 218 219 198) +4(218 239 240 219) +4(239 260 261 240) +4(260 281 282 261) +4(281 302 303 282) +4(302 323 324 303) +4(323 344 345 324) +4(344 365 366 345) +4(365 386 387 366) +4(386 407 408 387) +4(407 428 429 408) +4(9 30 31 10) +4(30 51 52 31) +4(51 72 73 52) +4(72 93 94 73) +4(93 114 115 94) +4(114 135 136 115) +4(135 156 157 136) +4(156 177 178 157) +4(177 198 199 178) +4(198 219 220 199) +4(219 240 241 220) +4(240 261 262 241) +4(261 282 283 262) +4(282 303 304 283) +4(303 324 325 304) +4(324 345 346 325) +4(345 366 367 346) +4(366 387 388 367) +4(387 408 409 388) +4(408 429 430 409) +4(10 31 32 11) +4(31 52 53 32) +4(52 73 74 53) +4(73 94 95 74) +4(94 115 116 95) +4(115 136 137 116) +4(136 157 158 137) +4(157 178 179 158) +4(178 199 200 179) +4(199 220 221 200) +4(220 241 242 221) +4(241 262 263 242) +4(262 283 284 263) +4(283 304 305 284) +4(304 325 326 305) +4(325 346 347 326) +4(346 367 368 347) +4(367 388 389 368) +4(388 409 410 389) +4(409 430 431 410) +4(11 32 33 12) +4(32 53 54 33) +4(53 74 75 54) +4(74 95 96 75) +4(95 116 117 96) +4(116 137 138 117) +4(137 158 159 138) +4(158 179 180 159) +4(179 200 201 180) +4(200 221 222 201) +4(221 242 243 222) +4(242 263 264 243) +4(263 284 285 264) +4(284 305 306 285) +4(305 326 327 306) +4(326 347 348 327) +4(347 368 369 348) +4(368 389 390 369) +4(389 410 411 390) +4(410 431 432 411) +4(12 33 34 13) +4(33 54 55 34) +4(54 75 76 55) +4(75 96 97 76) +4(96 117 118 97) +4(117 138 139 118) +4(138 159 160 139) +4(159 180 181 160) +4(180 201 202 181) +4(201 222 223 202) +4(222 243 244 223) +4(243 264 265 244) +4(264 285 286 265) +4(285 306 307 286) +4(306 327 328 307) +4(327 348 349 328) +4(348 369 370 349) +4(369 390 391 370) +4(390 411 412 391) +4(411 432 433 412) +4(13 34 35 14) +4(34 55 56 35) +4(55 76 77 56) +4(76 97 98 77) +4(97 118 119 98) +4(118 139 140 119) +4(139 160 161 140) +4(160 181 182 161) +4(181 202 203 182) +4(202 223 224 203) +4(223 244 245 224) +4(244 265 266 245) +4(265 286 287 266) +4(286 307 308 287) +4(307 328 329 308) +4(328 349 350 329) +4(349 370 371 350) +4(370 391 392 371) +4(391 412 413 392) +4(412 433 434 413) +4(14 35 36 15) +4(35 56 57 36) +4(56 77 78 57) +4(77 98 99 78) +4(98 119 120 99) +4(119 140 141 120) +4(140 161 162 141) +4(161 182 183 162) +4(182 203 204 183) +4(203 224 225 204) +4(224 245 246 225) +4(245 266 267 246) +4(266 287 288 267) +4(287 308 309 288) +4(308 329 330 309) +4(329 350 351 330) +4(350 371 372 351) +4(371 392 393 372) +4(392 413 414 393) +4(413 434 435 414) +4(15 36 37 16) +4(36 57 58 37) +4(57 78 79 58) +4(78 99 100 79) +4(99 120 121 100) +4(120 141 142 121) +4(141 162 163 142) +4(162 183 184 163) +4(183 204 205 184) +4(204 225 226 205) +4(225 246 247 226) +4(246 267 268 247) +4(267 288 289 268) +4(288 309 310 289) +4(309 330 331 310) +4(330 351 352 331) +4(351 372 373 352) +4(372 393 394 373) +4(393 414 415 394) +4(414 435 436 415) +4(16 37 38 17) +4(37 58 59 38) +4(58 79 80 59) +4(79 100 101 80) +4(100 121 122 101) +4(121 142 143 122) +4(142 163 164 143) +4(163 184 185 164) +4(184 205 206 185) +4(205 226 227 206) +4(226 247 248 227) +4(247 268 269 248) +4(268 289 290 269) +4(289 310 311 290) +4(310 331 332 311) +4(331 352 353 332) +4(352 373 374 353) +4(373 394 395 374) +4(394 415 416 395) +4(415 436 437 416) +4(17 38 39 18) +4(38 59 60 39) +4(59 80 81 60) +4(80 101 102 81) +4(101 122 123 102) +4(122 143 144 123) +4(143 164 165 144) +4(164 185 186 165) +4(185 206 207 186) +4(206 227 228 207) +4(227 248 249 228) +4(248 269 270 249) +4(269 290 291 270) +4(290 311 312 291) +4(311 332 333 312) +4(332 353 354 333) +4(353 374 375 354) +4(374 395 396 375) +4(395 416 417 396) +4(416 437 438 417) +4(18 39 40 19) +4(39 60 61 40) +4(60 81 82 61) +4(81 102 103 82) +4(102 123 124 103) +4(123 144 145 124) +4(144 165 166 145) +4(165 186 187 166) +4(186 207 208 187) +4(207 228 229 208) +4(228 249 250 229) +4(249 270 271 250) +4(270 291 292 271) +4(291 312 313 292) +4(312 333 334 313) +4(333 354 355 334) +4(354 375 376 355) +4(375 396 397 376) +4(396 417 418 397) +4(417 438 439 418) +4(19 40 41 20) +4(40 61 62 41) +4(61 82 83 62) +4(82 103 104 83) +4(103 124 125 104) +4(124 145 146 125) +4(145 166 167 146) +4(166 187 188 167) +4(187 208 209 188) +4(208 229 230 209) +4(229 250 251 230) +4(250 271 272 251) +4(271 292 293 272) +4(292 313 314 293) +4(313 334 335 314) +4(334 355 356 335) +4(355 376 377 356) +4(376 397 398 377) +4(397 418 419 398) +4(418 439 440 419) +4(441 442 463 462) +4(462 463 484 483) +4(483 484 505 504) +4(504 505 526 525) +4(525 526 547 546) +4(546 547 568 567) +4(567 568 589 588) +4(588 589 610 609) +4(609 610 631 630) +4(630 631 652 651) +4(651 652 673 672) +4(672 673 694 693) +4(693 694 715 714) +4(714 715 736 735) +4(735 736 757 756) +4(756 757 778 777) +4(777 778 799 798) +4(798 799 820 819) +4(819 820 841 840) +4(840 841 862 861) +4(442 443 464 463) +4(463 464 485 484) +4(484 485 506 505) +4(505 506 527 526) +4(526 527 548 547) +4(547 548 569 568) +4(568 569 590 589) +4(589 590 611 610) +4(610 611 632 631) +4(631 632 653 652) +4(652 653 674 673) +4(673 674 695 694) +4(694 695 716 715) +4(715 716 737 736) +4(736 737 758 757) +4(757 758 779 778) +4(778 779 800 799) +4(799 800 821 820) +4(820 821 842 841) +4(841 842 863 862) +4(443 444 465 464) +4(464 465 486 485) +4(485 486 507 506) +4(506 507 528 527) +4(527 528 549 548) +4(548 549 570 569) +4(569 570 591 590) +4(590 591 612 611) +4(611 612 633 632) +4(632 633 654 653) +4(653 654 675 674) +4(674 675 696 695) +4(695 696 717 716) +4(716 717 738 737) +4(737 738 759 758) +4(758 759 780 779) +4(779 780 801 800) +4(800 801 822 821) +4(821 822 843 842) +4(842 843 864 863) +4(444 445 466 465) +4(465 466 487 486) +4(486 487 508 507) +4(507 508 529 528) +4(528 529 550 549) +4(549 550 571 570) +4(570 571 592 591) +4(591 592 613 612) +4(612 613 634 633) +4(633 634 655 654) +4(654 655 676 675) +4(675 676 697 696) +4(696 697 718 717) +4(717 718 739 738) +4(738 739 760 759) +4(759 760 781 780) +4(780 781 802 801) +4(801 802 823 822) +4(822 823 844 843) +4(843 844 865 864) +4(445 446 467 466) +4(466 467 488 487) +4(487 488 509 508) +4(508 509 530 529) +4(529 530 551 550) +4(550 551 572 571) +4(571 572 593 592) +4(592 593 614 613) +4(613 614 635 634) +4(634 635 656 655) +4(655 656 677 676) +4(676 677 698 697) +4(697 698 719 718) +4(718 719 740 739) +4(739 740 761 760) +4(760 761 782 781) +4(781 782 803 802) +4(802 803 824 823) +4(823 824 845 844) +4(844 845 866 865) +4(446 447 468 467) +4(467 468 489 488) +4(488 489 510 509) +4(509 510 531 530) +4(530 531 552 551) +4(551 552 573 572) +4(572 573 594 593) +4(593 594 615 614) +4(614 615 636 635) +4(635 636 657 656) +4(656 657 678 677) +4(677 678 699 698) +4(698 699 720 719) +4(719 720 741 740) +4(740 741 762 761) +4(761 762 783 782) +4(782 783 804 803) +4(803 804 825 824) +4(824 825 846 845) +4(845 846 867 866) +4(447 448 469 468) +4(468 469 490 489) +4(489 490 511 510) +4(510 511 532 531) +4(531 532 553 552) +4(552 553 574 573) +4(573 574 595 594) +4(594 595 616 615) +4(615 616 637 636) +4(636 637 658 657) +4(657 658 679 678) +4(678 679 700 699) +4(699 700 721 720) +4(720 721 742 741) +4(741 742 763 762) +4(762 763 784 783) +4(783 784 805 804) +4(804 805 826 825) +4(825 826 847 846) +4(846 847 868 867) +4(448 449 470 469) +4(469 470 491 490) +4(490 491 512 511) +4(511 512 533 532) +4(532 533 554 553) +4(553 554 575 574) +4(574 575 596 595) +4(595 596 617 616) +4(616 617 638 637) +4(637 638 659 658) +4(658 659 680 679) +4(679 680 701 700) +4(700 701 722 721) +4(721 722 743 742) +4(742 743 764 763) +4(763 764 785 784) +4(784 785 806 805) +4(805 806 827 826) +4(826 827 848 847) +4(847 848 869 868) +4(449 450 471 470) +4(470 471 492 491) +4(491 492 513 512) +4(512 513 534 533) +4(533 534 555 554) +4(554 555 576 575) +4(575 576 597 596) +4(596 597 618 617) +4(617 618 639 638) +4(638 639 660 659) +4(659 660 681 680) +4(680 681 702 701) +4(701 702 723 722) +4(722 723 744 743) +4(743 744 765 764) +4(764 765 786 785) +4(785 786 807 806) +4(806 807 828 827) +4(827 828 849 848) +4(848 849 870 869) +4(450 451 472 471) +4(471 472 493 492) +4(492 493 514 513) +4(513 514 535 534) +4(534 535 556 555) +4(555 556 577 576) +4(576 577 598 597) +4(597 598 619 618) +4(618 619 640 639) +4(639 640 661 660) +4(660 661 682 681) +4(681 682 703 702) +4(702 703 724 723) +4(723 724 745 744) +4(744 745 766 765) +4(765 766 787 786) +4(786 787 808 807) +4(807 808 829 828) +4(828 829 850 849) +4(849 850 871 870) +4(451 452 473 472) +4(472 473 494 493) +4(493 494 515 514) +4(514 515 536 535) +4(535 536 557 556) +4(556 557 578 577) +4(577 578 599 598) +4(598 599 620 619) +4(619 620 641 640) +4(640 641 662 661) +4(661 662 683 682) +4(682 683 704 703) +4(703 704 725 724) +4(724 725 746 745) +4(745 746 767 766) +4(766 767 788 787) +4(787 788 809 808) +4(808 809 830 829) +4(829 830 851 850) +4(850 851 872 871) +4(452 453 474 473) +4(473 474 495 494) +4(494 495 516 515) +4(515 516 537 536) +4(536 537 558 557) +4(557 558 579 578) +4(578 579 600 599) +4(599 600 621 620) +4(620 621 642 641) +4(641 642 663 662) +4(662 663 684 683) +4(683 684 705 704) +4(704 705 726 725) +4(725 726 747 746) +4(746 747 768 767) +4(767 768 789 788) +4(788 789 810 809) +4(809 810 831 830) +4(830 831 852 851) +4(851 852 873 872) +4(453 454 475 474) +4(474 475 496 495) +4(495 496 517 516) +4(516 517 538 537) +4(537 538 559 558) +4(558 559 580 579) +4(579 580 601 600) +4(600 601 622 621) +4(621 622 643 642) +4(642 643 664 663) +4(663 664 685 684) +4(684 685 706 705) +4(705 706 727 726) +4(726 727 748 747) +4(747 748 769 768) +4(768 769 790 789) +4(789 790 811 810) +4(810 811 832 831) +4(831 832 853 852) +4(852 853 874 873) +4(454 455 476 475) +4(475 476 497 496) +4(496 497 518 517) +4(517 518 539 538) +4(538 539 560 559) +4(559 560 581 580) +4(580 581 602 601) +4(601 602 623 622) +4(622 623 644 643) +4(643 644 665 664) +4(664 665 686 685) +4(685 686 707 706) +4(706 707 728 727) +4(727 728 749 748) +4(748 749 770 769) +4(769 770 791 790) +4(790 791 812 811) +4(811 812 833 832) +4(832 833 854 853) +4(853 854 875 874) +4(455 456 477 476) +4(476 477 498 497) +4(497 498 519 518) +4(518 519 540 539) +4(539 540 561 560) +4(560 561 582 581) +4(581 582 603 602) +4(602 603 624 623) +4(623 624 645 644) +4(644 645 666 665) +4(665 666 687 686) +4(686 687 708 707) +4(707 708 729 728) +4(728 729 750 749) +4(749 750 771 770) +4(770 771 792 791) +4(791 792 813 812) +4(812 813 834 833) +4(833 834 855 854) +4(854 855 876 875) +4(456 457 478 477) +4(477 478 499 498) +4(498 499 520 519) +4(519 520 541 540) +4(540 541 562 561) +4(561 562 583 582) +4(582 583 604 603) +4(603 604 625 624) +4(624 625 646 645) +4(645 646 667 666) +4(666 667 688 687) +4(687 688 709 708) +4(708 709 730 729) +4(729 730 751 750) +4(750 751 772 771) +4(771 772 793 792) +4(792 793 814 813) +4(813 814 835 834) +4(834 835 856 855) +4(855 856 877 876) +4(457 458 479 478) +4(478 479 500 499) +4(499 500 521 520) +4(520 521 542 541) +4(541 542 563 562) +4(562 563 584 583) +4(583 584 605 604) +4(604 605 626 625) +4(625 626 647 646) +4(646 647 668 667) +4(667 668 689 688) +4(688 689 710 709) +4(709 710 731 730) +4(730 731 752 751) +4(751 752 773 772) +4(772 773 794 793) +4(793 794 815 814) +4(814 815 836 835) +4(835 836 857 856) +4(856 857 878 877) +4(458 459 480 479) +4(479 480 501 500) +4(500 501 522 521) +4(521 522 543 542) +4(542 543 564 563) +4(563 564 585 584) +4(584 585 606 605) +4(605 606 627 626) +4(626 627 648 647) +4(647 648 669 668) +4(668 669 690 689) +4(689 690 711 710) +4(710 711 732 731) +4(731 732 753 752) +4(752 753 774 773) +4(773 774 795 794) +4(794 795 816 815) +4(815 816 837 836) +4(836 837 858 857) +4(857 858 879 878) +4(459 460 481 480) +4(480 481 502 501) +4(501 502 523 522) +4(522 523 544 543) +4(543 544 565 564) +4(564 565 586 585) +4(585 586 607 606) +4(606 607 628 627) +4(627 628 649 648) +4(648 649 670 669) +4(669 670 691 690) +4(690 691 712 711) +4(711 712 733 732) +4(732 733 754 753) +4(753 754 775 774) +4(774 775 796 795) +4(795 796 817 816) +4(816 817 838 837) +4(837 838 859 858) +4(858 859 880 879) +4(460 461 482 481) +4(481 482 503 502) +4(502 503 524 523) +4(523 524 545 544) +4(544 545 566 565) +4(565 566 587 586) +4(586 587 608 607) +4(607 608 629 628) +4(628 629 650 649) +4(649 650 671 670) +4(670 671 692 691) +4(691 692 713 712) +4(712 713 734 733) +4(733 734 755 754) +4(754 755 776 775) +4(775 776 797 796) +4(796 797 818 817) +4(817 818 839 838) +4(838 839 860 859) +4(859 860 881 880) +) + + +// ************************************************************************* // diff --git a/test/testfvEquations/polyMesh/neighbour b/test/testfvEquations/polyMesh/neighbour new file mode 100755 index 0000000..2a7a3cf --- /dev/null +++ b/test/testfvEquations/polyMesh/neighbour @@ -0,0 +1,785 @@ +/*--------------------------------*- 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 labelList; + note "nPoints: 882 nCells: 400 nFaces: 1640 nInternalFaces: 760"; + location "constant/polyMesh"; + object neighbour; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + + +760 +( +1 +20 +2 +21 +3 +22 +4 +23 +5 +24 +6 +25 +7 +26 +8 +27 +9 +28 +10 +29 +11 +30 +12 +31 +13 +32 +14 +33 +15 +34 +16 +35 +17 +36 +18 +37 +19 +38 +39 +21 +40 +22 +41 +23 +42 +24 +43 +25 +44 +26 +45 +27 +46 +28 +47 +29 +48 +30 +49 +31 +50 +32 +51 +33 +52 +34 +53 +35 +54 +36 +55 +37 +56 +38 +57 +39 +58 +59 +41 +60 +42 +61 +43 +62 +44 +63 +45 +64 +46 +65 +47 +66 +48 +67 +49 +68 +50 +69 +51 +70 +52 +71 +53 +72 +54 +73 +55 +74 +56 +75 +57 +76 +58 +77 +59 +78 +79 +61 +80 +62 +81 +63 +82 +64 +83 +65 +84 +66 +85 +67 +86 +68 +87 +69 +88 +70 +89 +71 +90 +72 +91 +73 +92 +74 +93 +75 +94 +76 +95 +77 +96 +78 +97 +79 +98 +99 +81 +100 +82 +101 +83 +102 +84 +103 +85 +104 +86 +105 +87 +106 +88 +107 +89 +108 +90 +109 +91 +110 +92 +111 +93 +112 +94 +113 +95 +114 +96 +115 +97 +116 +98 +117 +99 +118 +119 +101 +120 +102 +121 +103 +122 +104 +123 +105 +124 +106 +125 +107 +126 +108 +127 +109 +128 +110 +129 +111 +130 +112 +131 +113 +132 +114 +133 +115 +134 +116 +135 +117 +136 +118 +137 +119 +138 +139 +121 +140 +122 +141 +123 +142 +124 +143 +125 +144 +126 +145 +127 +146 +128 +147 +129 +148 +130 +149 +131 +150 +132 +151 +133 +152 +134 +153 +135 +154 +136 +155 +137 +156 +138 +157 +139 +158 +159 +141 +160 +142 +161 +143 +162 +144 +163 +145 +164 +146 +165 +147 +166 +148 +167 +149 +168 +150 +169 +151 +170 +152 +171 +153 +172 +154 +173 +155 +174 +156 +175 +157 +176 +158 +177 +159 +178 +179 +161 +180 +162 +181 +163 +182 +164 +183 +165 +184 +166 +185 +167 +186 +168 +187 +169 +188 +170 +189 +171 +190 +172 +191 +173 +192 +174 +193 +175 +194 +176 +195 +177 +196 +178 +197 +179 +198 +199 +181 +200 +182 +201 +183 +202 +184 +203 +185 +204 +186 +205 +187 +206 +188 +207 +189 +208 +190 +209 +191 +210 +192 +211 +193 +212 +194 +213 +195 +214 +196 +215 +197 +216 +198 +217 +199 +218 +219 +201 +220 +202 +221 +203 +222 +204 +223 +205 +224 +206 +225 +207 +226 +208 +227 +209 +228 +210 +229 +211 +230 +212 +231 +213 +232 +214 +233 +215 +234 +216 +235 +217 +236 +218 +237 +219 +238 +239 +221 +240 +222 +241 +223 +242 +224 +243 +225 +244 +226 +245 +227 +246 +228 +247 +229 +248 +230 +249 +231 +250 +232 +251 +233 +252 +234 +253 +235 +254 +236 +255 +237 +256 +238 +257 +239 +258 +259 +241 +260 +242 +261 +243 +262 +244 +263 +245 +264 +246 +265 +247 +266 +248 +267 +249 +268 +250 +269 +251 +270 +252 +271 +253 +272 +254 +273 +255 +274 +256 +275 +257 +276 +258 +277 +259 +278 +279 +261 +280 +262 +281 +263 +282 +264 +283 +265 +284 +266 +285 +267 +286 +268 +287 +269 +288 +270 +289 +271 +290 +272 +291 +273 +292 +274 +293 +275 +294 +276 +295 +277 +296 +278 +297 +279 +298 +299 +281 +300 +282 +301 +283 +302 +284 +303 +285 +304 +286 +305 +287 +306 +288 +307 +289 +308 +290 +309 +291 +310 +292 +311 +293 +312 +294 +313 +295 +314 +296 +315 +297 +316 +298 +317 +299 +318 +319 +301 +320 +302 +321 +303 +322 +304 +323 +305 +324 +306 +325 +307 +326 +308 +327 +309 +328 +310 +329 +311 +330 +312 +331 +313 +332 +314 +333 +315 +334 +316 +335 +317 +336 +318 +337 +319 +338 +339 +321 +340 +322 +341 +323 +342 +324 +343 +325 +344 +326 +345 +327 +346 +328 +347 +329 +348 +330 +349 +331 +350 +332 +351 +333 +352 +334 +353 +335 +354 +336 +355 +337 +356 +338 +357 +339 +358 +359 +341 +360 +342 +361 +343 +362 +344 +363 +345 +364 +346 +365 +347 +366 +348 +367 +349 +368 +350 +369 +351 +370 +352 +371 +353 +372 +354 +373 +355 +374 +356 +375 +357 +376 +358 +377 +359 +378 +379 +361 +380 +362 +381 +363 +382 +364 +383 +365 +384 +366 +385 +367 +386 +368 +387 +369 +388 +370 +389 +371 +390 +372 +391 +373 +392 +374 +393 +375 +394 +376 +395 +377 +396 +378 +397 +379 +398 +399 +381 +382 +383 +384 +385 +386 +387 +388 +389 +390 +391 +392 +393 +394 +395 +396 +397 +398 +399 +) + + +// ************************************************************************* // diff --git a/test/testfvEquations/polyMesh/owner b/test/testfvEquations/polyMesh/owner new file mode 100755 index 0000000..569f019 --- /dev/null +++ b/test/testfvEquations/polyMesh/owner @@ -0,0 +1,1665 @@ +/*--------------------------------*- 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 labelList; + note "nPoints: 882 nCells: 400 nFaces: 1640 nInternalFaces: 760"; + location "constant/polyMesh"; + object owner; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + + +1640 +( +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 +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 +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 +60 +60 +61 +61 +62 +62 +63 +63 +64 +64 +65 +65 +66 +66 +67 +67 +68 +68 +69 +69 +70 +70 +71 +71 +72 +72 +73 +73 +74 +74 +75 +75 +76 +76 +77 +77 +78 +78 +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 +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 +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 +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 +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 +200 +200 +201 +201 +202 +202 +203 +203 +204 +204 +205 +205 +206 +206 +207 +207 +208 +208 +209 +209 +210 +210 +211 +211 +212 +212 +213 +213 +214 +214 +215 +215 +216 +216 +217 +217 +218 +218 +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 +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 +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 +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 +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 +340 +340 +341 +341 +342 +342 +343 +343 +344 +344 +345 +345 +346 +346 +347 +347 +348 +348 +349 +349 +350 +350 +351 +351 +352 +352 +353 +353 +354 +354 +355 +355 +356 +356 +357 +357 +358 +358 +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 +380 +381 +382 +383 +384 +385 +386 +387 +388 +389 +390 +391 +392 +393 +394 +395 +396 +397 +398 +380 +381 +382 +383 +384 +385 +386 +387 +388 +389 +390 +391 +392 +393 +394 +395 +396 +397 +398 +399 +0 +20 +40 +60 +80 +100 +120 +140 +160 +180 +200 +220 +240 +260 +280 +300 +320 +340 +360 +380 +19 +39 +59 +79 +99 +119 +139 +159 +179 +199 +219 +239 +259 +279 +299 +319 +339 +359 +379 +399 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +0 +20 +40 +60 +80 +100 +120 +140 +160 +180 +200 +220 +240 +260 +280 +300 +320 +340 +360 +380 +1 +21 +41 +61 +81 +101 +121 +141 +161 +181 +201 +221 +241 +261 +281 +301 +321 +341 +361 +381 +2 +22 +42 +62 +82 +102 +122 +142 +162 +182 +202 +222 +242 +262 +282 +302 +322 +342 +362 +382 +3 +23 +43 +63 +83 +103 +123 +143 +163 +183 +203 +223 +243 +263 +283 +303 +323 +343 +363 +383 +4 +24 +44 +64 +84 +104 +124 +144 +164 +184 +204 +224 +244 +264 +284 +304 +324 +344 +364 +384 +5 +25 +45 +65 +85 +105 +125 +145 +165 +185 +205 +225 +245 +265 +285 +305 +325 +345 +365 +385 +6 +26 +46 +66 +86 +106 +126 +146 +166 +186 +206 +226 +246 +266 +286 +306 +326 +346 +366 +386 +7 +27 +47 +67 +87 +107 +127 +147 +167 +187 +207 +227 +247 +267 +287 +307 +327 +347 +367 +387 +8 +28 +48 +68 +88 +108 +128 +148 +168 +188 +208 +228 +248 +268 +288 +308 +328 +348 +368 +388 +9 +29 +49 +69 +89 +109 +129 +149 +169 +189 +209 +229 +249 +269 +289 +309 +329 +349 +369 +389 +10 +30 +50 +70 +90 +110 +130 +150 +170 +190 +210 +230 +250 +270 +290 +310 +330 +350 +370 +390 +11 +31 +51 +71 +91 +111 +131 +151 +171 +191 +211 +231 +251 +271 +291 +311 +331 +351 +371 +391 +12 +32 +52 +72 +92 +112 +132 +152 +172 +192 +212 +232 +252 +272 +292 +312 +332 +352 +372 +392 +13 +33 +53 +73 +93 +113 +133 +153 +173 +193 +213 +233 +253 +273 +293 +313 +333 +353 +373 +393 +14 +34 +54 +74 +94 +114 +134 +154 +174 +194 +214 +234 +254 +274 +294 +314 +334 +354 +374 +394 +15 +35 +55 +75 +95 +115 +135 +155 +175 +195 +215 +235 +255 +275 +295 +315 +335 +355 +375 +395 +16 +36 +56 +76 +96 +116 +136 +156 +176 +196 +216 +236 +256 +276 +296 +316 +336 +356 +376 +396 +17 +37 +57 +77 +97 +117 +137 +157 +177 +197 +217 +237 +257 +277 +297 +317 +337 +357 +377 +397 +18 +38 +58 +78 +98 +118 +138 +158 +178 +198 +218 +238 +258 +278 +298 +318 +338 +358 +378 +398 +19 +39 +59 +79 +99 +119 +139 +159 +179 +199 +219 +239 +259 +279 +299 +319 +339 +359 +379 +399 +0 +20 +40 +60 +80 +100 +120 +140 +160 +180 +200 +220 +240 +260 +280 +300 +320 +340 +360 +380 +1 +21 +41 +61 +81 +101 +121 +141 +161 +181 +201 +221 +241 +261 +281 +301 +321 +341 +361 +381 +2 +22 +42 +62 +82 +102 +122 +142 +162 +182 +202 +222 +242 +262 +282 +302 +322 +342 +362 +382 +3 +23 +43 +63 +83 +103 +123 +143 +163 +183 +203 +223 +243 +263 +283 +303 +323 +343 +363 +383 +4 +24 +44 +64 +84 +104 +124 +144 +164 +184 +204 +224 +244 +264 +284 +304 +324 +344 +364 +384 +5 +25 +45 +65 +85 +105 +125 +145 +165 +185 +205 +225 +245 +265 +285 +305 +325 +345 +365 +385 +6 +26 +46 +66 +86 +106 +126 +146 +166 +186 +206 +226 +246 +266 +286 +306 +326 +346 +366 +386 +7 +27 +47 +67 +87 +107 +127 +147 +167 +187 +207 +227 +247 +267 +287 +307 +327 +347 +367 +387 +8 +28 +48 +68 +88 +108 +128 +148 +168 +188 +208 +228 +248 +268 +288 +308 +328 +348 +368 +388 +9 +29 +49 +69 +89 +109 +129 +149 +169 +189 +209 +229 +249 +269 +289 +309 +329 +349 +369 +389 +10 +30 +50 +70 +90 +110 +130 +150 +170 +190 +210 +230 +250 +270 +290 +310 +330 +350 +370 +390 +11 +31 +51 +71 +91 +111 +131 +151 +171 +191 +211 +231 +251 +271 +291 +311 +331 +351 +371 +391 +12 +32 +52 +72 +92 +112 +132 +152 +172 +192 +212 +232 +252 +272 +292 +312 +332 +352 +372 +392 +13 +33 +53 +73 +93 +113 +133 +153 +173 +193 +213 +233 +253 +273 +293 +313 +333 +353 +373 +393 +14 +34 +54 +74 +94 +114 +134 +154 +174 +194 +214 +234 +254 +274 +294 +314 +334 +354 +374 +394 +15 +35 +55 +75 +95 +115 +135 +155 +175 +195 +215 +235 +255 +275 +295 +315 +335 +355 +375 +395 +16 +36 +56 +76 +96 +116 +136 +156 +176 +196 +216 +236 +256 +276 +296 +316 +336 +356 +376 +396 +17 +37 +57 +77 +97 +117 +137 +157 +177 +197 +217 +237 +257 +277 +297 +317 +337 +357 +377 +397 +18 +38 +58 +78 +98 +118 +138 +158 +178 +198 +218 +238 +258 +278 +298 +318 +338 +358 +378 +398 +19 +39 +59 +79 +99 +119 +139 +159 +179 +199 +219 +239 +259 +279 +299 +319 +339 +359 +379 +399 +) + + +// ************************************************************************* // diff --git a/test/testfvEquations/polyMesh/points b/test/testfvEquations/polyMesh/points new file mode 100755 index 0000000..fcafdb6 --- /dev/null +++ b/test/testfvEquations/polyMesh/points @@ -0,0 +1,906 @@ +/*--------------------------------*- 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 vectorField; + location "constant/polyMesh"; + object points; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + + +882 +( +(0 0 0) +(0.005 0 0) +(0.01 0 0) +(0.015 0 0) +(0.02 0 0) +(0.025 0 0) +(0.03 0 0) +(0.035 0 0) +(0.04 0 0) +(0.045 0 0) +(0.05 0 0) +(0.055 0 0) +(0.06 0 0) +(0.065 0 0) +(0.07 0 0) +(0.075 0 0) +(0.08 0 0) +(0.085 0 0) +(0.09 0 0) +(0.095 0 0) +(0.1 0 0) +(0 0.005 0) +(0.005 0.005 0) +(0.01 0.005 0) +(0.015 0.005 0) +(0.02 0.005 0) +(0.025 0.005 0) +(0.03 0.005 0) +(0.035 0.005 0) +(0.04 0.005 0) +(0.045 0.005 0) +(0.05 0.005 0) +(0.055 0.005 0) +(0.06 0.005 0) +(0.065 0.005 0) +(0.07 0.005 0) +(0.075 0.005 0) +(0.08 0.005 0) +(0.085 0.005 0) +(0.09 0.005 0) +(0.095 0.005 0) +(0.1 0.005 0) +(0 0.01 0) +(0.005 0.01 0) +(0.01 0.01 0) +(0.015 0.01 0) +(0.02 0.01 0) +(0.025 0.01 0) +(0.03 0.01 0) +(0.035 0.01 0) +(0.04 0.01 0) +(0.045 0.01 0) +(0.05 0.01 0) +(0.055 0.01 0) +(0.06 0.01 0) +(0.065 0.01 0) +(0.07 0.01 0) +(0.075 0.01 0) +(0.08 0.01 0) +(0.085 0.01 0) +(0.09 0.01 0) +(0.095 0.01 0) +(0.1 0.01 0) +(0 0.015 0) +(0.005 0.015 0) +(0.01 0.015 0) +(0.015 0.015 0) +(0.02 0.015 0) +(0.025 0.015 0) +(0.03 0.015 0) +(0.035 0.015 0) +(0.04 0.015 0) +(0.045 0.015 0) +(0.05 0.015 0) +(0.055 0.015 0) +(0.06 0.015 0) +(0.065 0.015 0) +(0.07 0.015 0) +(0.075 0.015 0) +(0.08 0.015 0) +(0.085 0.015 0) +(0.09 0.015 0) +(0.095 0.015 0) +(0.1 0.015 0) +(0 0.02 0) +(0.005 0.02 0) +(0.01 0.02 0) +(0.015 0.02 0) +(0.02 0.02 0) +(0.025 0.02 0) +(0.03 0.02 0) +(0.035 0.02 0) +(0.04 0.02 0) +(0.045 0.02 0) +(0.05 0.02 0) +(0.055 0.02 0) +(0.06 0.02 0) +(0.065 0.02 0) +(0.07 0.02 0) +(0.075 0.02 0) +(0.08 0.02 0) +(0.085 0.02 0) +(0.09 0.02 0) +(0.095 0.02 0) +(0.1 0.02 0) +(0 0.025 0) +(0.005 0.025 0) +(0.01 0.025 0) +(0.015 0.025 0) +(0.02 0.025 0) +(0.025 0.025 0) +(0.03 0.025 0) +(0.035 0.025 0) +(0.04 0.025 0) +(0.045 0.025 0) +(0.05 0.025 0) +(0.055 0.025 0) +(0.06 0.025 0) +(0.065 0.025 0) +(0.07 0.025 0) +(0.075 0.025 0) +(0.08 0.025 0) +(0.085 0.025 0) +(0.09 0.025 0) +(0.095 0.025 0) +(0.1 0.025 0) +(0 0.03 0) +(0.005 0.03 0) +(0.01 0.03 0) +(0.015 0.03 0) +(0.02 0.03 0) +(0.025 0.03 0) +(0.03 0.03 0) +(0.035 0.03 0) +(0.04 0.03 0) +(0.045 0.03 0) +(0.05 0.03 0) +(0.055 0.03 0) +(0.06 0.03 0) +(0.065 0.03 0) +(0.07 0.03 0) +(0.075 0.03 0) +(0.08 0.03 0) +(0.085 0.03 0) +(0.09 0.03 0) +(0.095 0.03 0) +(0.1 0.03 0) +(0 0.035 0) +(0.005 0.035 0) +(0.01 0.035 0) +(0.015 0.035 0) +(0.02 0.035 0) +(0.025 0.035 0) +(0.03 0.035 0) +(0.035 0.035 0) +(0.04 0.035 0) +(0.045 0.035 0) +(0.05 0.035 0) +(0.055 0.035 0) +(0.06 0.035 0) +(0.065 0.035 0) +(0.07 0.035 0) +(0.075 0.035 0) +(0.08 0.035 0) +(0.085 0.035 0) +(0.09 0.035 0) +(0.095 0.035 0) +(0.1 0.035 0) +(0 0.04 0) +(0.005 0.04 0) +(0.01 0.04 0) +(0.015 0.04 0) +(0.02 0.04 0) +(0.025 0.04 0) +(0.03 0.04 0) +(0.035 0.04 0) +(0.04 0.04 0) +(0.045 0.04 0) +(0.05 0.04 0) +(0.055 0.04 0) +(0.06 0.04 0) +(0.065 0.04 0) +(0.07 0.04 0) +(0.075 0.04 0) +(0.08 0.04 0) +(0.085 0.04 0) +(0.09 0.04 0) +(0.095 0.04 0) +(0.1 0.04 0) +(0 0.045 0) +(0.005 0.045 0) +(0.01 0.045 0) +(0.015 0.045 0) +(0.02 0.045 0) +(0.025 0.045 0) +(0.03 0.045 0) +(0.035 0.045 0) +(0.04 0.045 0) +(0.045 0.045 0) +(0.05 0.045 0) +(0.055 0.045 0) +(0.06 0.045 0) +(0.065 0.045 0) +(0.07 0.045 0) +(0.075 0.045 0) +(0.08 0.045 0) +(0.085 0.045 0) +(0.09 0.045 0) +(0.095 0.045 0) +(0.1 0.045 0) +(0 0.05 0) +(0.005 0.05 0) +(0.01 0.05 0) +(0.015 0.05 0) +(0.02 0.05 0) +(0.025 0.05 0) +(0.03 0.05 0) +(0.035 0.05 0) +(0.04 0.05 0) +(0.045 0.05 0) +(0.05 0.05 0) +(0.055 0.05 0) +(0.06 0.05 0) +(0.065 0.05 0) +(0.07 0.05 0) +(0.075 0.05 0) +(0.08 0.05 0) +(0.085 0.05 0) +(0.09 0.05 0) +(0.095 0.05 0) +(0.1 0.05 0) +(0 0.055 0) +(0.005 0.055 0) +(0.01 0.055 0) +(0.015 0.055 0) +(0.02 0.055 0) +(0.025 0.055 0) +(0.03 0.055 0) +(0.035 0.055 0) +(0.04 0.055 0) +(0.045 0.055 0) +(0.05 0.055 0) +(0.055 0.055 0) +(0.06 0.055 0) +(0.065 0.055 0) +(0.07 0.055 0) +(0.075 0.055 0) +(0.08 0.055 0) +(0.085 0.055 0) +(0.09 0.055 0) +(0.095 0.055 0) +(0.1 0.055 0) +(0 0.06 0) +(0.005 0.06 0) +(0.01 0.06 0) +(0.015 0.06 0) +(0.02 0.06 0) +(0.025 0.06 0) +(0.03 0.06 0) +(0.035 0.06 0) +(0.04 0.06 0) +(0.045 0.06 0) +(0.05 0.06 0) +(0.055 0.06 0) +(0.06 0.06 0) +(0.065 0.06 0) +(0.07 0.06 0) +(0.075 0.06 0) +(0.08 0.06 0) +(0.085 0.06 0) +(0.09 0.06 0) +(0.095 0.06 0) +(0.1 0.06 0) +(0 0.065 0) +(0.005 0.065 0) +(0.01 0.065 0) +(0.015 0.065 0) +(0.02 0.065 0) +(0.025 0.065 0) +(0.03 0.065 0) +(0.035 0.065 0) +(0.04 0.065 0) +(0.045 0.065 0) +(0.05 0.065 0) +(0.055 0.065 0) +(0.06 0.065 0) +(0.065 0.065 0) +(0.07 0.065 0) +(0.075 0.065 0) +(0.08 0.065 0) +(0.085 0.065 0) +(0.09 0.065 0) +(0.095 0.065 0) +(0.1 0.065 0) +(0 0.07 0) +(0.005 0.07 0) +(0.01 0.07 0) +(0.015 0.07 0) +(0.02 0.07 0) +(0.025 0.07 0) +(0.03 0.07 0) +(0.035 0.07 0) +(0.04 0.07 0) +(0.045 0.07 0) +(0.05 0.07 0) +(0.055 0.07 0) +(0.06 0.07 0) +(0.065 0.07 0) +(0.07 0.07 0) +(0.075 0.07 0) +(0.08 0.07 0) +(0.085 0.07 0) +(0.09 0.07 0) +(0.095 0.07 0) +(0.1 0.07 0) +(0 0.075 0) +(0.005 0.075 0) +(0.01 0.075 0) +(0.015 0.075 0) +(0.02 0.075 0) +(0.025 0.075 0) +(0.03 0.075 0) +(0.035 0.075 0) +(0.04 0.075 0) +(0.045 0.075 0) +(0.05 0.075 0) +(0.055 0.075 0) +(0.06 0.075 0) +(0.065 0.075 0) +(0.07 0.075 0) +(0.075 0.075 0) +(0.08 0.075 0) +(0.085 0.075 0) +(0.09 0.075 0) +(0.095 0.075 0) +(0.1 0.075 0) +(0 0.08 0) +(0.005 0.08 0) +(0.01 0.08 0) +(0.015 0.08 0) +(0.02 0.08 0) +(0.025 0.08 0) +(0.03 0.08 0) +(0.035 0.08 0) +(0.04 0.08 0) +(0.045 0.08 0) +(0.05 0.08 0) +(0.055 0.08 0) +(0.06 0.08 0) +(0.065 0.08 0) +(0.07 0.08 0) +(0.075 0.08 0) +(0.08 0.08 0) +(0.085 0.08 0) +(0.09 0.08 0) +(0.095 0.08 0) +(0.1 0.08 0) +(0 0.085 0) +(0.005 0.085 0) +(0.01 0.085 0) +(0.015 0.085 0) +(0.02 0.085 0) +(0.025 0.085 0) +(0.03 0.085 0) +(0.035 0.085 0) +(0.04 0.085 0) +(0.045 0.085 0) +(0.05 0.085 0) +(0.055 0.085 0) +(0.06 0.085 0) +(0.065 0.085 0) +(0.07 0.085 0) +(0.075 0.085 0) +(0.08 0.085 0) +(0.085 0.085 0) +(0.09 0.085 0) +(0.095 0.085 0) +(0.1 0.085 0) +(0 0.09 0) +(0.005 0.09 0) +(0.01 0.09 0) +(0.015 0.09 0) +(0.02 0.09 0) +(0.025 0.09 0) +(0.03 0.09 0) +(0.035 0.09 0) +(0.04 0.09 0) +(0.045 0.09 0) +(0.05 0.09 0) +(0.055 0.09 0) +(0.06 0.09 0) +(0.065 0.09 0) +(0.07 0.09 0) +(0.075 0.09 0) +(0.08 0.09 0) +(0.085 0.09 0) +(0.09 0.09 0) +(0.095 0.09 0) +(0.1 0.09 0) +(0 0.095 0) +(0.005 0.095 0) +(0.01 0.095 0) +(0.015 0.095 0) +(0.02 0.095 0) +(0.025 0.095 0) +(0.03 0.095 0) +(0.035 0.095 0) +(0.04 0.095 0) +(0.045 0.095 0) +(0.05 0.095 0) +(0.055 0.095 0) +(0.06 0.095 0) +(0.065 0.095 0) +(0.07 0.095 0) +(0.075 0.095 0) +(0.08 0.095 0) +(0.085 0.095 0) +(0.09 0.095 0) +(0.095 0.095 0) +(0.1 0.095 0) +(0 0.1 0) +(0.005 0.1 0) +(0.01 0.1 0) +(0.015 0.1 0) +(0.02 0.1 0) +(0.025 0.1 0) +(0.03 0.1 0) +(0.035 0.1 0) +(0.04 0.1 0) +(0.045 0.1 0) +(0.05 0.1 0) +(0.055 0.1 0) +(0.06 0.1 0) +(0.065 0.1 0) +(0.07 0.1 0) +(0.075 0.1 0) +(0.08 0.1 0) +(0.085 0.1 0) +(0.09 0.1 0) +(0.095 0.1 0) +(0.1 0.1 0) +(0 0 0.01) +(0.005 0 0.01) +(0.01 0 0.01) +(0.015 0 0.01) +(0.02 0 0.01) +(0.025 0 0.01) +(0.03 0 0.01) +(0.035 0 0.01) +(0.04 0 0.01) +(0.045 0 0.01) +(0.05 0 0.01) +(0.055 0 0.01) +(0.06 0 0.01) +(0.065 0 0.01) +(0.07 0 0.01) +(0.075 0 0.01) +(0.08 0 0.01) +(0.085 0 0.01) +(0.09 0 0.01) +(0.095 0 0.01) +(0.1 0 0.01) +(0 0.005 0.01) +(0.005 0.005 0.01) +(0.01 0.005 0.01) +(0.015 0.005 0.01) +(0.02 0.005 0.01) +(0.025 0.005 0.01) +(0.03 0.005 0.01) +(0.035 0.005 0.01) +(0.04 0.005 0.01) +(0.045 0.005 0.01) +(0.05 0.005 0.01) +(0.055 0.005 0.01) +(0.06 0.005 0.01) +(0.065 0.005 0.01) +(0.07 0.005 0.01) +(0.075 0.005 0.01) +(0.08 0.005 0.01) +(0.085 0.005 0.01) +(0.09 0.005 0.01) +(0.095 0.005 0.01) +(0.1 0.005 0.01) +(0 0.01 0.01) +(0.005 0.01 0.01) +(0.01 0.01 0.01) +(0.015 0.01 0.01) +(0.02 0.01 0.01) +(0.025 0.01 0.01) +(0.03 0.01 0.01) +(0.035 0.01 0.01) +(0.04 0.01 0.01) +(0.045 0.01 0.01) +(0.05 0.01 0.01) +(0.055 0.01 0.01) +(0.06 0.01 0.01) +(0.065 0.01 0.01) +(0.07 0.01 0.01) +(0.075 0.01 0.01) +(0.08 0.01 0.01) +(0.085 0.01 0.01) +(0.09 0.01 0.01) +(0.095 0.01 0.01) +(0.1 0.01 0.01) +(0 0.015 0.01) +(0.005 0.015 0.01) +(0.01 0.015 0.01) +(0.015 0.015 0.01) +(0.02 0.015 0.01) +(0.025 0.015 0.01) +(0.03 0.015 0.01) +(0.035 0.015 0.01) +(0.04 0.015 0.01) +(0.045 0.015 0.01) +(0.05 0.015 0.01) +(0.055 0.015 0.01) +(0.06 0.015 0.01) +(0.065 0.015 0.01) +(0.07 0.015 0.01) +(0.075 0.015 0.01) +(0.08 0.015 0.01) +(0.085 0.015 0.01) +(0.09 0.015 0.01) +(0.095 0.015 0.01) +(0.1 0.015 0.01) +(0 0.02 0.01) +(0.005 0.02 0.01) +(0.01 0.02 0.01) +(0.015 0.02 0.01) +(0.02 0.02 0.01) +(0.025 0.02 0.01) +(0.03 0.02 0.01) +(0.035 0.02 0.01) +(0.04 0.02 0.01) +(0.045 0.02 0.01) +(0.05 0.02 0.01) +(0.055 0.02 0.01) +(0.06 0.02 0.01) +(0.065 0.02 0.01) +(0.07 0.02 0.01) +(0.075 0.02 0.01) +(0.08 0.02 0.01) +(0.085 0.02 0.01) +(0.09 0.02 0.01) +(0.095 0.02 0.01) +(0.1 0.02 0.01) +(0 0.025 0.01) +(0.005 0.025 0.01) +(0.01 0.025 0.01) +(0.015 0.025 0.01) +(0.02 0.025 0.01) +(0.025 0.025 0.01) +(0.03 0.025 0.01) +(0.035 0.025 0.01) +(0.04 0.025 0.01) +(0.045 0.025 0.01) +(0.05 0.025 0.01) +(0.055 0.025 0.01) +(0.06 0.025 0.01) +(0.065 0.025 0.01) +(0.07 0.025 0.01) +(0.075 0.025 0.01) +(0.08 0.025 0.01) +(0.085 0.025 0.01) +(0.09 0.025 0.01) +(0.095 0.025 0.01) +(0.1 0.025 0.01) +(0 0.03 0.01) +(0.005 0.03 0.01) +(0.01 0.03 0.01) +(0.015 0.03 0.01) +(0.02 0.03 0.01) +(0.025 0.03 0.01) +(0.03 0.03 0.01) +(0.035 0.03 0.01) +(0.04 0.03 0.01) +(0.045 0.03 0.01) +(0.05 0.03 0.01) +(0.055 0.03 0.01) +(0.06 0.03 0.01) +(0.065 0.03 0.01) +(0.07 0.03 0.01) +(0.075 0.03 0.01) +(0.08 0.03 0.01) +(0.085 0.03 0.01) +(0.09 0.03 0.01) +(0.095 0.03 0.01) +(0.1 0.03 0.01) +(0 0.035 0.01) +(0.005 0.035 0.01) +(0.01 0.035 0.01) +(0.015 0.035 0.01) +(0.02 0.035 0.01) +(0.025 0.035 0.01) +(0.03 0.035 0.01) +(0.035 0.035 0.01) +(0.04 0.035 0.01) +(0.045 0.035 0.01) +(0.05 0.035 0.01) +(0.055 0.035 0.01) +(0.06 0.035 0.01) +(0.065 0.035 0.01) +(0.07 0.035 0.01) +(0.075 0.035 0.01) +(0.08 0.035 0.01) +(0.085 0.035 0.01) +(0.09 0.035 0.01) +(0.095 0.035 0.01) +(0.1 0.035 0.01) +(0 0.04 0.01) +(0.005 0.04 0.01) +(0.01 0.04 0.01) +(0.015 0.04 0.01) +(0.02 0.04 0.01) +(0.025 0.04 0.01) +(0.03 0.04 0.01) +(0.035 0.04 0.01) +(0.04 0.04 0.01) +(0.045 0.04 0.01) +(0.05 0.04 0.01) +(0.055 0.04 0.01) +(0.06 0.04 0.01) +(0.065 0.04 0.01) +(0.07 0.04 0.01) +(0.075 0.04 0.01) +(0.08 0.04 0.01) +(0.085 0.04 0.01) +(0.09 0.04 0.01) +(0.095 0.04 0.01) +(0.1 0.04 0.01) +(0 0.045 0.01) +(0.005 0.045 0.01) +(0.01 0.045 0.01) +(0.015 0.045 0.01) +(0.02 0.045 0.01) +(0.025 0.045 0.01) +(0.03 0.045 0.01) +(0.035 0.045 0.01) +(0.04 0.045 0.01) +(0.045 0.045 0.01) +(0.05 0.045 0.01) +(0.055 0.045 0.01) +(0.06 0.045 0.01) +(0.065 0.045 0.01) +(0.07 0.045 0.01) +(0.075 0.045 0.01) +(0.08 0.045 0.01) +(0.085 0.045 0.01) +(0.09 0.045 0.01) +(0.095 0.045 0.01) +(0.1 0.045 0.01) +(0 0.05 0.01) +(0.005 0.05 0.01) +(0.01 0.05 0.01) +(0.015 0.05 0.01) +(0.02 0.05 0.01) +(0.025 0.05 0.01) +(0.03 0.05 0.01) +(0.035 0.05 0.01) +(0.04 0.05 0.01) +(0.045 0.05 0.01) +(0.05 0.05 0.01) +(0.055 0.05 0.01) +(0.06 0.05 0.01) +(0.065 0.05 0.01) +(0.07 0.05 0.01) +(0.075 0.05 0.01) +(0.08 0.05 0.01) +(0.085 0.05 0.01) +(0.09 0.05 0.01) +(0.095 0.05 0.01) +(0.1 0.05 0.01) +(0 0.055 0.01) +(0.005 0.055 0.01) +(0.01 0.055 0.01) +(0.015 0.055 0.01) +(0.02 0.055 0.01) +(0.025 0.055 0.01) +(0.03 0.055 0.01) +(0.035 0.055 0.01) +(0.04 0.055 0.01) +(0.045 0.055 0.01) +(0.05 0.055 0.01) +(0.055 0.055 0.01) +(0.06 0.055 0.01) +(0.065 0.055 0.01) +(0.07 0.055 0.01) +(0.075 0.055 0.01) +(0.08 0.055 0.01) +(0.085 0.055 0.01) +(0.09 0.055 0.01) +(0.095 0.055 0.01) +(0.1 0.055 0.01) +(0 0.06 0.01) +(0.005 0.06 0.01) +(0.01 0.06 0.01) +(0.015 0.06 0.01) +(0.02 0.06 0.01) +(0.025 0.06 0.01) +(0.03 0.06 0.01) +(0.035 0.06 0.01) +(0.04 0.06 0.01) +(0.045 0.06 0.01) +(0.05 0.06 0.01) +(0.055 0.06 0.01) +(0.06 0.06 0.01) +(0.065 0.06 0.01) +(0.07 0.06 0.01) +(0.075 0.06 0.01) +(0.08 0.06 0.01) +(0.085 0.06 0.01) +(0.09 0.06 0.01) +(0.095 0.06 0.01) +(0.1 0.06 0.01) +(0 0.065 0.01) +(0.005 0.065 0.01) +(0.01 0.065 0.01) +(0.015 0.065 0.01) +(0.02 0.065 0.01) +(0.025 0.065 0.01) +(0.03 0.065 0.01) +(0.035 0.065 0.01) +(0.04 0.065 0.01) +(0.045 0.065 0.01) +(0.05 0.065 0.01) +(0.055 0.065 0.01) +(0.06 0.065 0.01) +(0.065 0.065 0.01) +(0.07 0.065 0.01) +(0.075 0.065 0.01) +(0.08 0.065 0.01) +(0.085 0.065 0.01) +(0.09 0.065 0.01) +(0.095 0.065 0.01) +(0.1 0.065 0.01) +(0 0.07 0.01) +(0.005 0.07 0.01) +(0.01 0.07 0.01) +(0.015 0.07 0.01) +(0.02 0.07 0.01) +(0.025 0.07 0.01) +(0.03 0.07 0.01) +(0.035 0.07 0.01) +(0.04 0.07 0.01) +(0.045 0.07 0.01) +(0.05 0.07 0.01) +(0.055 0.07 0.01) +(0.06 0.07 0.01) +(0.065 0.07 0.01) +(0.07 0.07 0.01) +(0.075 0.07 0.01) +(0.08 0.07 0.01) +(0.085 0.07 0.01) +(0.09 0.07 0.01) +(0.095 0.07 0.01) +(0.1 0.07 0.01) +(0 0.075 0.01) +(0.005 0.075 0.01) +(0.01 0.075 0.01) +(0.015 0.075 0.01) +(0.02 0.075 0.01) +(0.025 0.075 0.01) +(0.03 0.075 0.01) +(0.035 0.075 0.01) +(0.04 0.075 0.01) +(0.045 0.075 0.01) +(0.05 0.075 0.01) +(0.055 0.075 0.01) +(0.06 0.075 0.01) +(0.065 0.075 0.01) +(0.07 0.075 0.01) +(0.075 0.075 0.01) +(0.08 0.075 0.01) +(0.085 0.075 0.01) +(0.09 0.075 0.01) +(0.095 0.075 0.01) +(0.1 0.075 0.01) +(0 0.08 0.01) +(0.005 0.08 0.01) +(0.01 0.08 0.01) +(0.015 0.08 0.01) +(0.02 0.08 0.01) +(0.025 0.08 0.01) +(0.03 0.08 0.01) +(0.035 0.08 0.01) +(0.04 0.08 0.01) +(0.045 0.08 0.01) +(0.05 0.08 0.01) +(0.055 0.08 0.01) +(0.06 0.08 0.01) +(0.065 0.08 0.01) +(0.07 0.08 0.01) +(0.075 0.08 0.01) +(0.08 0.08 0.01) +(0.085 0.08 0.01) +(0.09 0.08 0.01) +(0.095 0.08 0.01) +(0.1 0.08 0.01) +(0 0.085 0.01) +(0.005 0.085 0.01) +(0.01 0.085 0.01) +(0.015 0.085 0.01) +(0.02 0.085 0.01) +(0.025 0.085 0.01) +(0.03 0.085 0.01) +(0.035 0.085 0.01) +(0.04 0.085 0.01) +(0.045 0.085 0.01) +(0.05 0.085 0.01) +(0.055 0.085 0.01) +(0.06 0.085 0.01) +(0.065 0.085 0.01) +(0.07 0.085 0.01) +(0.075 0.085 0.01) +(0.08 0.085 0.01) +(0.085 0.085 0.01) +(0.09 0.085 0.01) +(0.095 0.085 0.01) +(0.1 0.085 0.01) +(0 0.09 0.01) +(0.005 0.09 0.01) +(0.01 0.09 0.01) +(0.015 0.09 0.01) +(0.02 0.09 0.01) +(0.025 0.09 0.01) +(0.03 0.09 0.01) +(0.035 0.09 0.01) +(0.04 0.09 0.01) +(0.045 0.09 0.01) +(0.05 0.09 0.01) +(0.055 0.09 0.01) +(0.06 0.09 0.01) +(0.065 0.09 0.01) +(0.07 0.09 0.01) +(0.075 0.09 0.01) +(0.08 0.09 0.01) +(0.085 0.09 0.01) +(0.09 0.09 0.01) +(0.095 0.09 0.01) +(0.1 0.09 0.01) +(0 0.095 0.01) +(0.005 0.095 0.01) +(0.01 0.095 0.01) +(0.015 0.095 0.01) +(0.02 0.095 0.01) +(0.025 0.095 0.01) +(0.03 0.095 0.01) +(0.035 0.095 0.01) +(0.04 0.095 0.01) +(0.045 0.095 0.01) +(0.05 0.095 0.01) +(0.055 0.095 0.01) +(0.06 0.095 0.01) +(0.065 0.095 0.01) +(0.07 0.095 0.01) +(0.075 0.095 0.01) +(0.08 0.095 0.01) +(0.085 0.095 0.01) +(0.09 0.095 0.01) +(0.095 0.095 0.01) +(0.1 0.095 0.01) +(0 0.1 0.01) +(0.005 0.1 0.01) +(0.01 0.1 0.01) +(0.015 0.1 0.01) +(0.02 0.1 0.01) +(0.025 0.1 0.01) +(0.03 0.1 0.01) +(0.035 0.1 0.01) +(0.04 0.1 0.01) +(0.045 0.1 0.01) +(0.05 0.1 0.01) +(0.055 0.1 0.01) +(0.06 0.1 0.01) +(0.065 0.1 0.01) +(0.07 0.1 0.01) +(0.075 0.1 0.01) +(0.08 0.1 0.01) +(0.085 0.1 0.01) +(0.09 0.1 0.01) +(0.095 0.1 0.01) +(0.1 0.1 0.01) +) + + +// ************************************************************************* // diff --git a/test/testfvEquations/testfvEquations.f90 b/test/testfvEquations/testfvEquations.f90 new file mode 100755 index 0000000..3b32eb3 --- /dev/null +++ b/test/testfvEquations/testfvEquations.f90 @@ -0,0 +1,184 @@ + program testFieldOperation + use utils + use geometry + use tensorFields + use gradients + use fvxGradient + use fvxInterpolation + use fvxDivergence + + implicit none + + integer :: i + +! Locals + !integer :: ierr + + type(volVectorField) :: vec1, vec2 + type(volScalarField) :: phi,psi + type(volVectorField) :: resVec + type(volTensorField) :: T + type(surfaceScalarField) :: sf + + + ! Intro +!+-----------------------------------------------------------------------------+ + + call show_logo( ) + + + ! Read mesh files and calculate mesh geometrical quantities +!+-----------------------------------------------------------------------------+ + + call read_mesh + + ! Creation and manipulation fo tensor fields +!+-----------------------------------------------------------------------------+ + + +! +! > Initialize vector fields +! + +!vec1 = volVectorField("Vector1", xc**2+yc+zc, xc+yc**2+zc, xc+yc+zc**2 ) + +vec1 = volVectorField( & + "Vector1", & + xc**2+yc+zc, & + xc+yc**2+zc, & + xc+yc+zc**2 & + ) + +vec2 = volVectorField("Vector2", & + xc+yc+zc, & + xc+yc+zc, & + xc+yc+zc) + +! +! Test dot product of two vector field +! + phi = vec1*vec2 + + write(*,'(a)') ' Dot product of two vectors:' + write(*,'(e13.6)') phi%mag(1:5) + write(*,'(a)') ' ' + +! +! Test cross product of two vector fields +! + resVec = vec1.x.vec2 + + write(*,'(a)') ' Cross product of two vectrors ' + write(*,'(3(e13.6,1x))') resVec%x(1:3),resVec%y(1:3),resVec%z(1:3) + write(*,'(a)') ' ' + +! +! Tensor product of two vector fields +! + T = vec1.o.vec2 + + write(*,'(a)') ' Tensor product of two vectors: ' + write(*,'(3(e13.6,1x))') T%xx(5),T%xy(5),T%xz(5) + write(*,'(3(e13.6,1x))') T%yx(5),T%yy(5),T%yz(5) + write(*,'(3(e13.6,1x))') T%zx(5),T%zy(5),T%zz(5) + write(*,'(a)') ' ' + +! +! Deviatoric part of a tensor +! + T = .dev.T + + write(*,'(a)') ' Deviatoric part of that tensor (at one point): ' + write(*,'(3(e13.6,1x))') T%xx(5),T%xy(5),T%xz(5) + write(*,'(3(e13.6,1x))') T%yx(5),T%yy(5),T%yz(5) + write(*,'(3(e13.6,1x))') T%zx(5),T%zy(5),T%zz(5) + write(*,'(a)') ' ' + + !...curl of a derived tensor field + + resVec = .curl.(3.14_dp*T+T) + + ! ...set field name for vtk output file name: + resVec % field_name = 'CurlField' + + write(*,'(a)') ' ...curl of a derived tensor field ' + write(*,'(1x,a)') resVec%field_name + write(*,'(3(e15.8,1x))') resVec%x(1:3),resVec%y(1:3),resVec%z(1:3) + write(*,'(a)') ' ' +! +! Magnitude squared of a tensor field +! + phi = .magSq.T + + write(*,'(a)') ' Magnitude squared of the same tensor field' + write(*,'(e15.8)') phi%mag(1:5) + write(*,'(a)') ' ' + + +! +! Test gradient of a scalar field +! + + ! First set up the linear field + ! psi = volScalarField("linear_field", xc + yc + zc ) + psi = new_volScalarField( numTotal ) + ! psi%mag = 1.0 + psi%mag(1:numCells) = xc(1:numCells) + yc(1:numCells) + zc(1:numCells) + psi%mag(numCells+1:) = xf(numInnerFaces+1:)+yf(numInnerFaces+1:)+zf(numInnerFaces+1:) + + + ! Now call the explicit gradient operation + resVec = fvxGrad( psi ) + + ! This is useful for book-keeping, lets give it a name: + ! resVec%field_name = 'gradient_field' + + ! call grad_gauss(psi%mag, resVec%x, resVec%y, resVec%z) + + write(*,'(a)') ' Magnitude of a linear field' + write(*,'(e15.8)') psi%mag(1:440) + write(*,'(a)') ' ' + write(*,'(a)') ' Gradient of a scalar field - fvx operation: ' + write(*,'(1x,a)') resVec%field_name + do i=1,440 + write(*,'(i0,1x,3(e15.8,1x))') i,resVec%x(i),resVec%y(i),resVec%z(i) + enddo + write(*,'(a)') ' ' + +! +! Interpolation of a scalar field +! + sf = fvxInterpolate( psi ) + + write(*,'(a)') ' Interpolated scalar field to cell faces' + write(*,'(e15.8)') sf%mag(1:1280) + write(*,'(a)') ' ' + +! +! Now test vector identities: divergence of the curl is zero +! + + Vec2%x = 1.0; Vec2%y = 1.0; Vec2%z = 1.0 + phi = fvxDiv( Vec2 ) + + write(*,'(a)') ' Divergence of a curl is zero' + do i=1,1280 + write(*,'(i0,1x,e15.8)') i,phi%mag(i) + enddo + write(*,'(a)') ' ' + + ! 6) Write output files in Paraview .vtu format +!+-----------------------------------------------------------------------------+ + +! ierr = write_volScalarField_field( phi ) + +! ierr = write_volVectorField_field( resVec ) + + +! +! > Terminate. +! + call say_goodbye( ) + + end program + diff --git a/utilities/cappuccinoDual/cappuccinoDual.f90 b/utilities/cappuccinoDual/cappuccinoDual.f90 new file mode 100644 index 0000000..0716548 --- /dev/null +++ b/utilities/cappuccinoDual/cappuccinoDual.f90 @@ -0,0 +1,694 @@ + program cappuccinoDual +! +! +! Description: +! +! Reads Gambit .neu file and prepares geometry data for Mean-Meadian Dual mesh +! discretization with freeCappuccino library. +! +! Author: +! Nikola Mirkov (largeddysimulation@gmail.com) +! +! Date: +! July 2020 +! + + use utils + use qsort_c_module + + implicit none + + integer, parameter :: dp = kind(1.0d0) + integer :: nonome ! no. of nodes in mesh + integer, parameter :: nonoel = 8 ! no. of nodes in element-here Hex + integer, parameter :: nonofa = 4 ! no, of nodes in element face-here Hex + ! integer, parameter :: nofael_NTYPE4 = 6 ! no. of faces in element-here Hex + ! integer, parameter :: nofael_NTYPE5 = 5 ! no. of faces in element-here Hex + ! integer, parameter :: nofael_NTYPE6 = 4 ! no. of faces in element-here Tetrahedron + ! integer, parameter :: nofael_NTYPE7 = 5 ! no. of faces in element-here Pyramid + integer :: nel ! no. of elements in mesh + integer :: ndim ! dimension of the problem. 3 for 3D. + + real(dp), parameter :: 1./3. + real(dp), dimension(:,:), allocatable :: XCOO ! node coordinates + real(dp), dimension(3) :: cc,e1,e2,e3,e4,e5,e6,f1,f2,f3,f4 + + ! integer, dimension(:), allocatable :: cface_indx_start ! Where faces list start for each element + ! integer, dimension(:,:), allocatable :: fVert ! size[6,value_of(cface(6,nel))] or [6, 6*nel] + ! integer, dimension(:,:), allocatable :: fVUnsrt ! faces list that will not we sorted, see code below. + ! integer, dimension(:,:), allocatable :: fV ! faces list that will be sorted, see code below. + ! character(len=32), dimension(:), allocatable :: bcName + ! integer, dimension(:), allocatable :: bcType + ! integer, dimension(:), allocatable :: bcSize + ! integer, dimension(:), allocatable :: owner + ! integer, dimension(:), allocatable :: neighbour + +! Locals + integer :: i,k + integer :: iel, jel + integer :: indx + integer :: iface, jface, imatch, ifound + integer :: numhex ! No. of Hex elements + integer :: numpri ! No. of Prism elements + integer :: numtet ! No. of Tet elements + integer :: numpyr ! No. of Pyr elements + integer :: numCells + + integer :: iarg + integer :: iargc + integer :: ios + integer :: num_arg + character ( len = 255 ) prefix + character ( len = 255 ) input_filename + + +! Gambit related + integer :: NUMNP, NELEM, NGRPS, NBSETS, NDFCD, NDFVL + integer :: NP + integer :: NE, NTYPE, NDP, NODE(8), elem(4) + integer :: ITYPE, NENTRY, NVALUES, IBCODE1 + integer :: NGP, NELGP, MTYP, NFLAGS + character( len = 82 ) :: inLine + character (len = 32) :: string(4) + + + +! 1) Intro +!+-----------------------------------------------------------------------------+ + call timestamp ( ) + + write ( *, '(a)' ) ' ' + write ( *, '(a)' ) ' _ ______ _ ' + write ( *, '(a)' ) ' (_) | _ \ | | ' + write ( *, '(a)' ) ' ___ __ _ _ __ _ __ _ _ ___ ___ _ _ __ ___ | | | |_ _ __ _| | ' + write ( *, '(a)' ) " / __/ _` | '_ \| '_ \| | | |/ __/ __| | '_ \ / _ \| | | | | | |/ _` | | " + write ( *, '(a)' ) '| (_| (_| | |_) | |_) | |_| | (_| (__| | | | | (_) | |/ /| |_| | (_| | | ' + write ( *, '(a)' ) ' \___\__,_| .__/| .__/ \__,_|\___\___|_|_| |_|\___/|___/ \__,_|\__,_|_| ' + write ( *, '(a)' ) ' | | | | ' + write ( *, '(a)' ) ' |_| |_| ' + write ( *, '(a)' ) ' ' + write ( *, '(a)' ) '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%' + write ( *, '(a)' ) 'cappuccinoDual' + write ( *, '(a)' ) ' A preprocessor program for the Cappuccino code.' + write ( *, '(a)' ) ' ' + write ( *, '(a)' ) ' Reads mesh in Gambit .neu format and produces ' + write ( *, '(a)' ) ' mean median dual mesh files for freeCappuccino ' + write ( *, '(a)' ) ' solver.' + write ( *, '(a)' ) '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%' +! +! Get the number of command line arguments. +! + num_arg = iargc ( ) + + if ( num_arg < 1 ) then + + write ( *, '(a)' ) ' ' + write ( *, '(a)' ) 'Enter the filename prefix:' + read ( *, '(a)', iostat = ios ) prefix + + if ( ios /= 0 ) then + write ( *, '(a)' ) ' ' + write ( *, '(a)' ) ' Fatal error!' + write ( *, '(a)' ) ' Unexpected read error!' + stop + end if + + else + + iarg = 1 + + call getarg ( iarg, prefix ) + + end if +! +! Create the filenames. +! + input_filename = trim ( prefix ) // '.neu' + + write ( *, '(a)' ) ' ' + write ( *, '(a)' ) ' Input file is "' // trim ( input_filename ) // '".' + write ( *, '(a)' ) ' ' +!+-----------------------------------------------------------------------------+ + + + +! > Read input from Gambit mesh file (.neu) +!+-----------------------------------------------------------------------------+ + open(unit=4,file=input_filename,status='old') + rewind 4 + +! Skip header + do i=1,6 + read(4,*) + enddo + +! First thing we read is below line: +! NUMNP NELEM NGRPS NBSETS NDFCD NDFVL + read(4,'(6(1X,I9))') NUMNP, NELEM, NGRPS, NBSETS, NDFCD, NDFVL + + write( *, '(a)') ' NUMNP NELEM NGRPS NBSETS NDFCD NDFVL' + write( *, '(6(1X,I9))') NUMNP, NELEM, NGRPS, NBSETS, NDFCD, NDFVL + write( *, '(a)' ) ' ' + + nonome = NUMNP + nel = NELEM + ndim = NDFCD + if( ndim .ne. 3 ) then + write(*,*) 'Fatal error: Only 3D meshes are accepted!' + stop + end if + + + +! Skip rows: +! ENDOFSECTION +! NODAL COORDINATES + do i=1,2 + read(4,*) + enddo + +! OPEN text file: 'points' + open(unit=7,file='points') + rewind 7 + + ! Write size of cells arrays + write(7, '(i8,a)') nonome, ' numPoints' + + ! Allocate arrays for nodal coordinates + call allocate( xcoo(nonome, 3) ) + +! Read nodal coordinates + do i=1,nonome + + read(4,'(I10,3E20.11)') NP,(XCOO(i,k),k=1,ndim) + + ! Write to file: 'points' + write(7,'(3E20.11)') (XCOO(i,k), k=1,ndim) + + enddo + +! CLOSE file: 'points' + close (7) + +! Skip rows +! ENDOFSECTION +! ELEMENTS/CELLS + do i=1,2 + read(4,*) + enddo + + ! Initialize total number of hex cells, prism cells, etc. + numhex = 0 + numpri = 0 + numtet = 0 + numpyr = 0 + + ! ! Initialize number of faces. + ! nfacesTotal = 0 + ! nBoundFaces = 0 + ! nInnerFaces = 0 + +! OPEN file: 'cells', + open(unit=12,file='cells') + rewind 12 + + ! Write size of cells arrays + write(12, '(i0,a)') nel, ' numCells' + +! Read elements + element_loop: do i=1,nel + +!ELEMENTS/CELLS +!Variable Description +!NE Global element number (not required to be sequential or continuous) +!NTYPE Element geometry type: +! 1 = Edge +! 2 = Quadrilateral +! 3 = Triangle +! 4 = Brick +! 5 = Wedge (Prism) +! 6 = Tetrahedron +! 7 = Pyramid +!NDP Number of nodes that define the element +!NODE List of nodes that define the element + + read(4,'(I8,1X,I2,1X,I2,1X,7I8:/(15X,7I8:))') NE, NTYPE, NDP, (NODE(k), k=1,NDP) + + ! nfacesTotal = nfacesTotal + nofael(NTYPE) + +! +! > Write into 'cells' polyMesh file; +! + +! ! +! ! NOTE: We write this for Paraview which starts counting from 0, therefore we substract 1 from a node number +! ! + +! !write(12,'(7I8:(7I8:))') (NODE(k), k=1,NDP) + +! if (NTYPE.eq.4) then + +! write(12,'(I2,1X,8I8)') paraview_ntype(NTYPE), NODE(5)-1,NODE(6)-1,NODE(2)-1,NODE(1)-1,NODE(7)-1,NODE(8)-1,NODE(4)-1,NODE(3)-1 ! Order of nodes is important! + +! elseif (NTYPE.eq.7) then + +! write(12,'(I2,1X,5I8)') paraview_ntype(NTYPE),NODE(1)-1,NODE(2)-1,NODE(4)-1,NODE(3)-1,NODE(5)-1 ! Order of nodes is important! + +! else + +! write(12,'(I2,1X,4I8:(4I8:))') paraview_ntype(NTYPE),(NODE(k)-1, k=1,NDP) + +! endif + + + + if (NTYPE.eq.4) then +! NTYPE4 is 8-node HEX + +!Element Type and Node-Numbering Conventions +! 2----------------3 +! /| /| +! / | / | +! 6----------------7 | +! | | | | +! | | | | +! | | | | +! | 0----------------1 +! | / | / +! |/ |/ +! 4----------------5 +! +!Brick, 8-Node +!Edge Nodes Face Nodes +!1 0,4 1 0,1,5,4 +!2 0,1 2 1,3,7,5 +!3 1,5 3 3,2,6,7 +!4 4,5 4 2,0,4,6 +!5 1,3 5 1,0,2,3 +!6 3,7 6 4,5,7,6 +!7 5,7 +!8 2,3 +!9 2,6 +!10 6,7 +!11 0,2 +!12 4,6 + +! All this is packed in function: + + ! ! How many faces before + ! jface = numhex*nofael_NTYPE4 + numpri*nofael_NTYPE5 + numtet*nofael_NTYPE6 + numpyr*nofael_NTYPE7 + + ! do iface = 1,nofael_NTYPE4 + ! fVert(:, jface+iface ) = get_face_vertices_NTYPE4(iface,NODE,NDP) + ! fVert(5,jface+iface) = i ! = element number + ! enddo + + numhex = numhex + 1 + +elseif (NTYPE.eq.5) then +! NTYPE6 is 6-node PRISM + + ! ! How many faces before + ! jface = numhex*nofael_NTYPE4 + numpri*nofael_NTYPE5 + numtet*nofael_NTYPE6 + numpyr*nofael_NTYPE7 + + ! do iface = 1,nofael_NTYPE5 + ! fVert(:, jface+iface ) = get_face_vertices_NTYPE5(iface,NODE,NDP) + ! fVert(5,jface+iface) = i ! = element number + ! enddo + + numpri = numpri + 1 + + + elseif (NTYPE.eq.6) then +! +! NTYPE6 is 4-node TETRAHEDRON +! Tetrahedron: +! +! v +! . +! ,/ +! / +! 1 +! ,/|`\ +! ,/ | `\ +! e1 'e2 `e5 +! ,/ f1 | `\ +! ,/ f2 f3 `\ +! 0-------e4--'.--------3 --> u +! `\. | ,/ +! `\. f4 | ,e6 +! e3 '. ,/ +! `\. |/ +! `2 +! `\. +! ` w +! Ede Nodes Face Nodes +! 1 0,1 1 1,0,2 +! 2 1,2 2 0,1,3 +! 3 2,0 3 1,2,3 +! 4 0,3 4 2,0,3 +! 5 1,3 +! 6 2,3 + + + subcelvol = hexvolume( v1, e4, e1, f2, e3, f4, ) + + ! How many faces before + ! jface = numhex*nofael_NTYPE4 + numpri*nofael_NTYPE5 + numtet*nofael_NTYPE6 + numpyr*nofael_NTYPE7 + + ! do iface = 1,nofael_NTYPE6 + ! fVert(:, jface+iface ) = get_face_vertices_NTYPE6(iface,NODE,NDP) + + ! ! prikupi sve vertexe po njihovom redosledu, npr u vrtx nizu... + ! ! xcoo(1:3,fVert(1:4)) = > + + ! enddo + + ! Primary cell centroid + cc(1:3) = 0.25*sum( XCOO( NODE(1:4), 1:3), 1 ) + + ! Edge centers + e12(1:3) = 0.5*( XCOO( NODE(1), 1:3) + XCOO( NODE(2), 1:3) ) !(0,1) + e23(1:3) = 0.5*( XCOO( NODE(2), 1:3) + XCOO( NODE(3), 1:3) ) !(1,2) + e31(1:3) = 0.5*( XCOO( NODE(3), 1:3) + XCOO( NODE(1), 1:3) ) !(2,0) + e14(1:3) = 0.5*( XCOO( NODE(1), 1:3) + XCOO( NODE(4), 1:3) ) !(0,3) + e24(1:3) = 0.5*( XCOO( NODE(2), 1:3) + XCOO( NODE(4), 1:3) ) !(1,3) + e34(1:3) = 0.5*( XCOO( NODE(3), 1:3) + XCOO( NODE(4), 1:3) ) !(2,3) + + ! Face centers + f213(1:3) = third*( XCOO( NODE(2), 1:3) + XCOO( NODE(1), 1:3) + XCOO( NODE(3), 1:3) ) !1,0,2 + f124(1:3) = third*( XCOO( NODE(1), 1:3) + XCOO( NODE(2), 1:3) + XCOO( NODE(4), 1:3) ) !0,1,3 + f234(1:3) = third*( XCOO( NODE(2), 1:3) + XCOO( NODE(3), 1:3) + XCOO( NODE(4), 1:3) ) !1,2,3 + f314(1:3) = third*( XCOO( NODE(3), 1:3) + XCOO( NODE(1), 1:3) + XCOO( NODE(4), 1:3) ) !2,0,3 + + ! Zatim subface center (sfc) na osnovu cc, edge centers i adjecent face centers - subface je quad i moras imati + ! rutinu za centroid quada sa datim vertexima. + + ! Sa istim vertexima pravis is sfn - sub-face normal vektor, Ima ih 6 - za svaki edge koji spaja + ! da temena. Subface se sastoji id edge centra, cc, i da susjedna face centra koje si sve vec nasao + + ! Imas i 4 sektorska cc, za doprinose zapr integralu za svaki vertex + ! scelcc(1:3) (sector cell centre x,y and z coodinates) + scelcc(1:3) = 17/96*(45/17*ax+bx+cx+dx, ... ) + + ! Volume of hexaheral subcel - subcvol(1:4) + ! Njih radis preko formule centroida za hex. + v0= XCOO( NODE(1), 1:3) + + subcelvol = hexvolume( v0, ) + + + ! rezime + ! imas niz duzine broj elemenata + ! tu ima sest subfejsova + ! svaki subfejs ima svoj sub-face center sfc(1:3) koordinate i ima sub-face-normal sfn(1:3) koponente povrsine izrazene preko normale + + ! na kraju mi trebaju sledeci podaci + ! sfn(1:6,1:3) - vezan za edge koji spaja dva noda + ! sfc(1:6,1:3) - vezan za edge koji spaja dva noda + ! scelcc(1:4, 1:3) - vezan za cell node iliti vertex + ! scelvol(1:4) - vezan za svaki vertex + + numtet = numtet + 1 + + elseif (NTYPE.eq.7) then +! NTYPE7 is 5-node PYRAMID + + ! How many faces before + jface = numhex*nofael_NTYPE4 + numpri*nofael_NTYPE5 + numtet*nofael_NTYPE6 + numpyr*nofael_NTYPE7 + + do iface = 1,nofael_NTYPE7 + fVert(:, jface+iface ) = get_face_vertices_NTYPE7(iface,NODE,NDP) + fVert(5,jface+iface) = i ! = element number + enddo + + numpyr = numpyr + 1 + + else + write(*,*) 'Fatal error: Non-existing cell type!' + stop + endif + + + +end do element_loop + +! +! > CLOSE polyMesh format file: 'cells', +! + close(12) + +! +! Report +! + + numCells = numhex+numtet+numpyr+numpri + + write ( *, '(a)' ) ' ' + write ( *, '(2x,a)' ) ' Gambit file:' + write ( *, '(4x,a,I7)' ) 'Total no. of HEX cells: ', numhex + write ( *, '(4x,a,I7)' ) 'Total no. of TET cells: ', numtet + write ( *, '(4x,a,I7)' ) 'Total no. of PYR cells: ', numpyr + write ( *, '(4x,a,I7)' ) 'Total no. of PRI cells: ', numpri + write ( *, '(3x,a)' ) '+--------------------------------=' + write ( *, '(4x,a,I7)' ) 'Total no. of cells: ', numCells + write ( *, '(a)' ) ' ' + write ( *, '(2x,a)' ) 'Normal end of reading .neu file.' + write ( *, '(a)' ) ' ' + +! +! > OPEN polyMesh format file: 'boundary','faces', 'owner', 'neighbour'. +! + ! open(unit=8,file='boundary') + ! open(unit=9,file='faces') + ! open(unit=10,file='owner') + ! open(unit=11,file='neighbour') + + ! rewind 8 + ! rewind 9 + ! rewind 10 + ! rewind 11 + +! +! Element groupds and Boundary conditions +! + + ! ! Aproach the line where BOUNDARY CONDITIONS and ELEMENT GROUP sections are. + ! bc_loop: do + + ! read(4,'(a)', iostat = ios ) inLine + ! if(ios /= 0) then + ! exit bc_loop + ! endif + + ! if ( adjustl(inLine(1:26)) == 'BOUNDARY CONDITIONS') then + + + ! ! Now read the info to enter bc_loop + ! read(4,'(A32, 4I10)') inLine, ITYPE, NENTRY, NVALUES, IBCODE1 + ! write(8,'(A32,4I10)') inLine, ITYPE, NENTRY, NVALUES, IBCODE1 + + ! ! bc_read_loop: do + + ! ! add to total number of boundary faces + ! nBoundFaces = nBoundFaces + NENTRY + + ! ! if(ibcode1.eq.6) then + ! ! ELEMENT_SIDE + ! do i=1,NENTRY + ! read(4,*) iel, NTYPE, iface + ! indx = cface_indx_start(iel) + iface + + ! ! Write to boundary file + ! if(fVert(4,indx) == 0) then ! triangle face + ! write(8,'(i0,1x,a,1x,3(i0,1x))') iel,' 3',fVert(1:3,indx) + ! else ! quad face + ! write(8,'(i0,1x,a,1x,4(i0,1x))') iel,' 4', fVert(1:4,indx) + ! endif + + ! ! Mark face as boundary face: on position 6 put 1. + ! fVert(6,indx) = 1 + + ! enddo + + ! read(4,'(a)') inLine ! ENDOFSECTION string + + ! cycle bc_loop + + ! elseif ( adjustl(inLine(1:20)) == 'ELEMENT GROUP') then ! We cut last characters which hold the file version... + + ! ! Read element group data + ! read(4, '(a)' ) inLine + ! read( inLine(8:17), * ) NGP + ! read( inLine(29:38), * ) NELGP + ! read( inLine(50:50), * ) MTYP + ! read( inLine(60:69), * ) NFLAGS + + ! write(string(1),*) NGP + ! open(unit=13,file='cellgroup-'//adjustl(string(1)) ) + ! rewind 13 + + ! write(13,'(2I8,a)') NELGP,MTYP,' NELGP,MTYP' + + ! ! For next two lines I cannot still find use. + ! read(4,'(a)') inLine + ! read(4,'(a)') inLine + + ! ! NELGP/10 lines with 10 numbers + ! do i=1, NELGP/10 + ! read(4,'(10I8)') (elem(k), k=1,10) + ! do k=1,10 + ! write(13,'(I8)') elem(k) + ! enddo + ! enddo + + ! ! One last line with less then 10 elements + ! indx = NELGP - 10*(NELGP/10) + ! if (indx /= 0) then + ! read(4,'(10I8)') (elem(k), k=1,indx) + ! do k=1,indx + ! write(13,'(I8)') elem(k) + ! enddo + ! endif + + ! read(4,'(a)') inLine ! ENDOFSECTION string + + ! close(13) + + ! cycle bc_loop + + ! else + + ! cycle bc_loop + + ! endif + + ! enddo bc_loop + + +!+-----------------------------------------------------------------------------+ +! > END: Read input from Gambit mesh file. + + +! +! Terminate. +! + write ( *, '(a)' ) ' ' + write ( *, '(a)' ) 'cappuccinoDual:' + write ( *, '(a)' ) ' Normal end of execution.' + write ( *, '(a)' ) ' ' + call timestamp ( ) + + end program + + +contains + +function volpart(a1,a2,a3,b1,b2,b3,q1,q2,q3) result(volpart) + + implicit none + + real(dp), intent(in) :: a1,a2,a3,b1,b2,b3,q1,q2,q3 + real(dp) :: volpart + + volpart = 1./6.*(a2*b3-b2*a3)*q1+(b1*a3-a1*b3)*q2+(a1*b2-a2*b1)*q3 + +end function + +function hexvolume() result (volum) +! +! Cell subvolumes are hex cell, therefoe we use a function which +! calculates the volume of a hex. +! +! v2----------------v3 +! /| /| +! / | / | +!v6----------------v7 | +! | | | | +! | | | | +! | | | | +! | v0----------------v1 +! | / | / +! |/ |/ +!v4----------------v5 +! +! imjk-------------ijk +! /| /| +! / | / | +!imjmk-------------ijmk +! | | | | +! | | | | +! | | | | +! | ijkm-nj----------ijkm +! | / | / +! |/ |/ +!ijka--------------ijkm-1 +! +! +! IJK=LIK+J +! IMJK=IJK-NJ +! IMJMK=IMJK-1 +! IJMK=IJK-1 +! IJKM=IJK-NIJ +! IJKA=IJKM-NJ-1 +! + + ! XA=X(IJKA) ! v4 + ! YA=Y(IJKA) + ! ZA=Z(IJKA) + ! DXAD=X(IJMK)-XA ! v7-v4 + ! DYAD=Y(IJMK)-YA + ! DZAD=Z(IJMK)-ZA + ! DXAB=X(IJKM-1)-XA ! v5-v4 + ! DYAB=Y(IJKM-1)-YA + ! DZAB=Z(IJKM-1)-ZA + ! DXAC=X(IMJMK)-XA ! v6-v4 + ! DYAC=Y(IMJMK)-YA + ! DZAC=Z(IMJMK)-ZA + ! DXAE=X(IJKM-NJ)-XA ! v0 - v4 + ! DYAE=Y(IJKM-NJ)-YA + ! DZAE=Z(IJKM-NJ)-ZA + ! DXAF=X(IJKM)-XA ! v1-v4 + ! DYAF=Y(IJKM)-YA + ! DZAF=Z(IJKM)-ZA + ! DXAG=X(IMJK)-XA !v2-v4 + ! DYAG=Y(IMJK)-YA + ! DZAG=Z(IMJK)-ZA + ! DXAH=X(IJK)-XA ! v3-v4 + ! DYAH=Y(IJK)-YA + ! DZAH=Z(IJK)-ZA + + + XA=X(IJKA) ! v4 + YA=Y(IJKA) + ZA=Z(IJKA) + DXAD=X(IJMK)-XA ! v7-v4 + DYAD=Y(IJMK)-YA + DZAD=Z(IJMK)-ZA + DXAB=X(IJKM-1)-XA ! v5-v4 + DYAB=Y(IJKM-1)-YA + DZAB=Z(IJKM-1)-ZA + DXAC=X(IMJMK)-XA ! v6-v4 + DYAC=Y(IMJMK)-YA + DZAC=Z(IMJMK)-ZA + DXAE=X(IJKM-NJ)-XA ! v0 - v4 + DYAE=Y(IJKM-NJ)-YA + DZAE=Z(IJKM-NJ)-ZA + DXAF=X(IJKM)-XA ! v1-v4 + DYAF=Y(IJKM)-YA + DZAF=Z(IJKM)-ZA + DXAG=X(IMJK)-XA !v2-v4 + DYAG=Y(IMJK)-YA + DZAG=Z(IMJK)-ZA + DXAH=X(IJK)-XA ! v3-v4 + DYAH=Y(IJK)-YA + DZAH=Z(IJK)-ZA + VOLUM=volpart(DXAD,DYAD,DZAD,DXAB,DYAB,DZAB,DXAH,DYAH,DZAH)+ & + volpart(DXAC,DYAC,DZAC,DXAD,DYAD,DZAD,DXAH,DYAH,DZAH)+ & + volpart(DXAG,DYAG,DZAG,DXAC,DYAC,DZAC,DXAH,DYAH,DZAH)+ & + volpart(DXAB,DYAB,DZAB,DXAF,DYAF,DZAF,DXAH,DYAH,DZAH)+ & + volpart(DXAF,DYAF,DZAF,DXAE,DYAE,DZAE,DXAH,DYAH,DZAH)+ & + volpart(DXAE,DYAE,DZAE,DXAG,DYAG,DZAG,DXAH,DYAH,DZAH) + + end function + diff --git a/utilities/cellConnectivity/Makefile b/utilities/cellConnectivity/Makefile old mode 100644 new mode 100755 diff --git a/utilities/cellConnectivity/cellConnectivity.f90 b/utilities/cellConnectivity/cellConnectivity.f90 old mode 100644 new mode 100755 diff --git a/utilities/cellConnectivity/utils.f90 b/utilities/cellConnectivity/utils.f90 old mode 100644 new mode 100755 diff --git a/utilities/foamToCappuccino/Makefile b/utilities/foamToCappuccino/Makefile old mode 100644 new mode 100755 diff --git a/utilities/foamToCappuccino/Makefile~ b/utilities/foamToCappuccino/Makefile~ old mode 100644 new mode 100755 diff --git a/utilities/foamToCappuccino/foamToCappuccino.f90 b/utilities/foamToCappuccino/foamToCappuccino.f90 old mode 100644 new mode 100755 diff --git a/utilities/foamToCappuccino/utils.f90 b/utilities/foamToCappuccino/utils.f90 old mode 100644 new mode 100755 diff --git a/utilities/gambitToCappuccino/2cylinder.neu b/utilities/gambitToCappuccino/2cylinder.neu old mode 100644 new mode 100755 diff --git a/utilities/gambitToCappuccino/Contributors b/utilities/gambitToCappuccino/Contributors new file mode 100644 index 0000000..29c79aa --- /dev/null +++ b/utilities/gambitToCappuccino/Contributors @@ -0,0 +1 @@ +Xie TianCi (debugging) \ No newline at end of file diff --git a/utilities/gambitToCappuccino/Makefile b/utilities/gambitToCappuccino/Makefile old mode 100644 new mode 100755 diff --git a/utilities/gambitToCappuccino/Makefile~ b/utilities/gambitToCappuccino/Makefile~ old mode 100644 new mode 100755 diff --git a/utilities/gambitToCappuccino/README.md b/utilities/gambitToCappuccino/README.md old mode 100644 new mode 100755 diff --git a/utilities/gambitToCappuccino/gambitToCappuccino.f90 b/utilities/gambitToCappuccino/gambitToCappuccino.f90 old mode 100644 new mode 100755 index c19c210..1542be6 --- a/utilities/gambitToCappuccino/gambitToCappuccino.f90 +++ b/utilities/gambitToCappuccino/gambitToCappuccino.f90 @@ -21,6 +21,8 @@ program gambitToCappuccino ! Modification: ! 23. November 2019. (November is coding time!) ! +! September 27th - Bug found in array indexing and looping by Xie TianCi. +! use utils use qsort_c_module @@ -76,7 +78,7 @@ program gambitToCappuccino ! Gambit related integer :: NUMNP, NELEM, NGRPS, NBSETS, NDFCD, NDFVL integer :: NP - integer :: NE, NTYPE, NDP, NODE(8), elem(4) + integer :: NE, NTYPE, NDP, NODE(8), elem(10) integer :: ITYPE, NENTRY, NVALUES, IBCODE1 integer :: NGP, NELGP, MTYP, NFLAGS character( len = 82 ) :: inLine diff --git a/utilities/gambitToCappuccino/output b/utilities/gambitToCappuccino/output old mode 100644 new mode 100755 diff --git a/utilities/gambitToCappuccino/qsort_c_module.f90 b/utilities/gambitToCappuccino/qsort_c_module.f90 old mode 100644 new mode 100755 diff --git a/utilities/gambitToCappuccino/utils.f90 b/utilities/gambitToCappuccino/utils.f90 old mode 100644 new mode 100755 diff --git a/utilities/readBoundary/Makefile b/utilities/readBoundary/Makefile old mode 100644 new mode 100755 diff --git a/utilities/readBoundary/boundary_module.f90 b/utilities/readBoundary/boundary_module.f90 old mode 100644 new mode 100755 index 111406e..9d8b8e5 --- a/utilities/readBoundary/boundary_module.f90 +++ b/utilities/readBoundary/boundary_module.f90 @@ -4,14 +4,8 @@ module boundary_module character(len=20) :: key(10), value(10) - interface process_boundary_file - module procedure process_boundary_file - module procedure process_boundary_file_par - end interface - private - - public :: process_boundary_file, get_unit, key, value + public contains @@ -57,6 +51,7 @@ subroutine process_boundary_file(boundary_of,boundary_file) read(boundary_of,*) ch ! This reads '{' again read(boundary_of,*) char_string, bc_type ! Read BC type call check_dict(bc_type) ! Check in Dictionary if there is a substitute word for this type + call check_dict(bc_name) ! Check in Dictionary if there is a substitute word for this name inner_loop: do read(boundary_of,*) char_string, line_string @@ -135,12 +130,15 @@ subroutine process_boundary_file_par(boundary_of,boundary_file, process_file) read(boundary_of,*) ch ! This reads '{' again read(boundary_of,*) char_string, bc_type ! Read BC type call check_dict(bc_type) ! Check in Dictionary if there is a substitute word for this type + call check_dict(bc_name) ! Check in Dictionary if there is a substitute word for this name inner_loop: do read(boundary_of,*) char_string, line_string if ( line_string(1:9) == 'processor' ) then processor_boundary = .true. + else + processor_boundary = .false. endif if (char_string == "nFaces") then @@ -157,8 +155,9 @@ subroutine process_boundary_file_par(boundary_of,boundary_file, process_file) read(line_string,*) startFace elseif (char_string == "neighbProcNo") then - read(line_string,*) neighbProcNo - write(process_file,'(2(i0,1x),i0)') neighbProcNo,nFaces,startFace + ! read(line_string,*) neighbProcNo + write(process_file,*) line_string !neighbProcNo + write(boundary_file,'(2a,2(1x,i0))') bc_name,bc_type,nFaces,startFace exit inner_loop endif diff --git a/utilities/readBoundary/readBoundaryFile.f90 b/utilities/readBoundary/readBoundaryFile.f90 old mode 100644 new mode 100755 index 0912ebc..a5b713e --- a/utilities/readBoundary/readBoundaryFile.f90 +++ b/utilities/readBoundary/readBoundaryFile.f90 @@ -40,7 +40,7 @@ program boundary i = i+1 call get_command_argument(i,argument) read(argument,*) np - write(*,'(a)') " Number of processes: ", np + write(*,'(a,i0)') " Number of processes: ", np i = i+1 case ('-d') @@ -74,9 +74,10 @@ program boundary rewind process_file write(process_file, '(a)') '# neighbProcNo nFaces startFace' !-------------------------------------------------------- - call process_boundary_file(boundary_of,boundary_file,process_file) + call process_boundary_file_par(boundary_of,boundary_file,process_file) !-------------------------------------------------------- close( boundary_file ) + close( process_file ) enddo else call execute_command_line("cp polyMesh/boundary polyMesh/boundary-OF") @@ -93,4 +94,4 @@ program boundary close( boundary_file ) endif -end program \ No newline at end of file +end program