diff --git a/.github/workflows/autotest.yml b/.github/workflows/autotest.yml new file mode 100644 index 0000000..afcad8c --- /dev/null +++ b/.github/workflows/autotest.yml @@ -0,0 +1,28 @@ +name: autotest +on: + push: + branches: + - main + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + # This workflow contains a single job called "build" + build: + # The type of runner that the job will run on + runs-on: ubuntu-latest + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - uses: actions/checkout@v4 + + - name: Install openmpi + run: | + sudo apt-get install -y openmpi-bin libopenmpi-dev + + - name: Build OpenCFD + run: | + cmake -S . -B build + cmake --build build -j 2 + cmake --install build + ctest --test-dir build diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..c91827a --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,128 @@ +cmake_minimum_required(VERSION 3.0.2) +cmake_policy(SET CMP0048 NEW) + +project(opencfd LANGUAGES Fortran) + +set(AUTHOR "Li Xinliang") +set(AUTHOR_DETAILS "lixl@imech.ac.cn") +set(DESCRIPTION "Building opencfd using cmake") + +message(STATUS "building ${PROJECT_NAME}") + +include(GNUInstallDirs) +set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}) +set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_BINDIR}) +if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) + set(CMAKE_INSTALL_PREFIX "${PROJECT_BINARY_DIR}/opt" CACHE PATH "..." FORCE) +endif() + +# Add support for CMAKE_DEPENDENT_OPTION +INCLUDE(CMakeDependentOption) +INCLUDE(CMakeParseArguments) + +# Find the modules included with opencfd +#SET(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH}) + +# make sure that the default is a RELEASE +if (NOT CMAKE_BUILD_TYPE) + set (CMAKE_BUILD_TYPE RELEASE CACHE STRING + "Choose the type of build, options are: None Debug Release." + FORCE) +endif (NOT CMAKE_BUILD_TYPE) + +set(Fortran_COMPILER_NAME ${CMAKE_Fortran_COMPILER_ID} ) +message(STATUS "COMP ID ${Fortran_COMPILER_NAME}") +message(STATUS "Fortran compiler name ${Fortran_COMPILER_NAME}") +message(STATUS "Fortran compiler version ${CMAKE_Fortran_COMPILER_VERSION}") +if (Fortran_COMPILER_NAME MATCHES "GNU") + # gfortran + message(STATUS "Setting gfortran flags") + set(CMAKE_Fortran_FLAGS "-cpp -funroll-loops -floop-optimize -g -fcray-pointer -fbacktrace -ffree-line-length-none") + if (CMAKE_Fortran_COMPILER_VERSION GREATER_EQUAL "10") + message(STATUS "Set New Fortran basic flags") + set(CMAKE_Fortran_FLAGS "-cpp -funroll-loops -floop-optimize -g -fcray-pointer -fbacktrace -ffree-line-length-none -fallow-argument-mismatch") + endif (CMAKE_Fortran_COMPILER_VERSION GREATER_EQUAL "10") + set(CMAKE_Fortran_FLAGS_RELEASE "-funroll-all-loops -fno-f2c -O3") + set(CMAKE_Fortran_FLAGS_DEBUG "-DDEBG -O0 -g") +elseif (Fortran_COMPILER_NAME MATCHES "Intel") + message(STATUS "Setting ifort flags") + set(CMAKE_Fortran_FLAGS "-fpp -xHost -heaparrays -safe-cray-ptr -g -traceback") + set (CMAKE_Fortran_FLAGS_RELEASE "-O3 -ipo") + set (CMAKE_Fortran_FLAGS_DEBUG "-O0 -g -DDEBG") + #set(CMAKE_Fortran_FLAGS "-cpp xSSE4.2 -axAVX,CORE-AVX-I,CORE-AVX2 -ipo -fp-model fast=2 -mcmodel=large -safe-cray-ptr") +elseif (Fortran_COMPILER_NAME MATCHES "NAG") + message(STATUS "Setting nagfor flags") + set(CMAKE_Fortran_FLAGS "-fpp") + set (CMAKE_Fortran_FLAGS_RELEASE "-O3") + set (CMAKE_Fortran_FLAGS_DEBUG "-O0 -g") +elseif (Fortran_COMPILER_NAME MATCHES "Cray") + message(STATUS "Setting cray fortran flags") + set(CMAKE_Fortran_FLAGS "-eF -g -N 1023") + set (CMAKE_Fortran_FLAGS_RELEASE "-O3") + set (CMAKE_Fortran_FLAGS_DEBUG "-O0 -g") +elseif (Fortran_COMPILER_NAME MATCHES "PGI") + message(STATUS "Setting PGI fortran flags") + set(CMAKE_Fortran_FLAGS "-cpp -acc -Mfree -Kieee -Minfo=accel -g") + set (CMAKE_Fortran_FLAGS_RELEASE "-O3") + set (CMAKE_Fortran_FLAGS_DEBUG "-O0 -DDEBG") +elseif (Fortran_COMPILER_NAME MATCHES "Fujitsu") + message(STATUS "Setting Fujitsu fortran flags") + set (CMAKE_Fortran_FLAGS "-Cpp") + set (CMAKE_Fortran_FLAGS_RELEASE "-O3") + set (CMAKE_Fortran_FLAGS_DEBUG "-O0") +else (Fortran_COMPILER_NAME MATCHES "GNU") + message ("CMAKE_Fortran_COMPILER full path: " ${CMAKE_Fortran_COMPILER}) + message ("Fortran compiler: " ${Fortran_COMPILER_NAME}) + message ("No optimized Fortran compiler flags are known, we just try -O2...") + set (CMAKE_Fortran_FLAGS_RELEASE "-O2") + set (CMAKE_Fortran_FLAGS_DEBUG "-O0 -g") +endif (Fortran_COMPILER_NAME MATCHES "GNU") + +if (CMAKE_BUILD_TYPE MATCHES "DEBUG") + add_definitions("-DDEBG") +endif (CMAKE_BUILD_TYPE MATCHES "DEBUG") + + +find_package(MPI REQUIRED) +# Stop if there is no MPI_Fortran_Compiler +if (MPI_Fortran_COMPILER) + message(STATUS "MPI_Fortran_COMPILER found: ${MPI_Fortran_COMPILER}") +else (MPI_Fortran_COMPILER) + message(SEND_ERROR "This application cannot compile without MPI") +endif(MPI_Fortran_COMPILER) +# Warning if Include are not found => can be fixed with more recent cmake version +if (MPI_FOUND) + message(STATUS "MPI FOUND: ${MPI_FOUND}") + include_directories(SYSTEM ${MPI_INCLUDE_PATH}) + message(STATUS "MPI INCL : ${MPI_INCLUDE_PATH}") +else (MPI_FOUND) + message(STATUS "NO MPI include have been found. The executable won't be targeted with MPI include") + message(STATUS "Code will compile but performaces can be compromised") + message(STATUS "Using a CMake vers > 3.10 should solve the problem") + message(STATUS "Alternatively use ccmake to manually set the include if available") +endif (MPI_FOUND) + + +set(OCFD_ROOT ${CMAKE_CURRENT_SOURCE_DIR}) +message(STATUS "OCFD directory: ${OCFD_ROOT}") +set(CMAKE_INSTALL_PREFIX ${OCFD_ROOT}) + +# Create the OCFD executable +add_subdirectory(src) + +# Create an example dir with all input.i3d example files +option(BUILD_TESTING "Build with tests" ON) +set(test_dir "${PROJECT_BINARY_DIR}/test") +add_subdirectory(examples) +message(STATUS "Before test main ${test_dir}") +set(osub "--oversubscribe") + + +if (${BUILD_TESTING}) + include(CTest) + message(STATUS "MPI INCL ALSO FOUND: ${MPI_INCLUDE_PATH}") + message(STATUS "MPI EXEC: ${MPIEXEC_EXECUTABLE}") + add_test(NAME blunt-cylinder COMMAND ${MPIEXEC_EXECUTABLE} -n 8 ${osub} ${CMAKE_INSTALL_PREFIX}/bin/opencfd WORKING_DIRECTORY ${test_dir}/blunt-cylinder) + add_test(NAME isotropic COMMAND ${MPIEXEC_EXECUTABLE} -n 8 ${osub} ${CMAKE_INSTALL_PREFIX}/bin/opencfd WORKING_DIRECTORY ${test_dir}/isotropic) + add_test(NAME TGV COMMAND ${MPIEXEC_EXECUTABLE} -n 8 ${osub} ${CMAKE_INSTALL_PREFIX}/bin/opencfd WORKING_DIRECTORY ${test_dir}/TGV) +endif() \ No newline at end of file diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 92db8b7..0000000 --- a/LICENSE +++ /dev/null @@ -1,28 +0,0 @@ -BSD 3-Clause License - -Copyright (c) 2023, OpenCFD team - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -3. Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/OCFD_ANA.f90 b/OCFD_ANA.f90 deleted file mode 100644 index 60eca25..0000000 --- a/OCFD_ANA.f90 +++ /dev/null @@ -1,360 +0,0 @@ -! Post-analysis codes -!----------------------------------------------------------------- - subroutine OCFD_analysis -!------------------------------------- - Use flow_data - implicit none - integer m,Kana,Kstep_ana - real(kind=OCFD_REAL_KIND):: ana_data(50) - do m=1, Para%ANA_Number - Kana=nint(Para%ANA_Para(1,m)) - Kstep_ana=nint(Para%ANA_Para(2,m)) - ana_data(:)=Para%ANA_Para(3:52,m) ! 50 elements in ana_data - - if(mod(Istep,Kstep_ana) .eq. 0) then - select case(Kana) - case (OCFD_ANA_time_average) - call ana_time_average(ana_data) - case (OCFD_ANA_Q) - call ana_getQ (ana_data) - case (OCFD_ANA_BOX) - call ana_box - case (OCFD_ANA_SAVEDATA) - call ana_savedata(ana_data) - case (OCFD_ANA_Corner) - call Ana_corner - case (OCFD_ANA_USER) - call ana_user(ana_data) ! user defined analysis code - case default - if(my_id .eq. 0) print*, "This analysis code is not supported!" - end select - endif - enddo - end -!--------------------------------------------------------------- - - -!----------------------------------------------------------------- -! code for Time averaging----------------------------------------------- - subroutine ana_time_average(ana_data) - Use flow_data - implicit none - integer i,j,k,ierr,Kstep_save_average - real(kind=OCFD_REAL_KIND):: ana_data(50) - real(kind=OCFD_REAL_KIND),save,allocatable,dimension(:,:,:):: dm,um,vm,wm,Tm - real(kind=OCFD_REAL_KIND),save:: t_average=0 - integer,save:: K_average,Iflag_average=0 - logical ex - character(len=50) filename -!---------------------------------------------------------------- - Kstep_save_average=nint(ana_data(1)) - - if(Iflag_average .eq. 0) then ! run only in the first time - Iflag_average=1 - allocate(dm(nx,ny,nz),um(nx,ny,nz),vm(nx,ny,nz),wm(nx,ny,nz),Tm(nx,ny,nz)) - if(my_id .eq. 0) inquire(file="opencfd.dat.average",exist=ex) - call MPI_bcast(ex,1,MPI_LOGICAL,0, MPI_COMM_WORLD,ierr) - if(ex) then - - if(my_id .eq. 0) then - print*, "opencfd.dat.average is found, read it ......" - open(88,file="opencfd.dat.average", form="unformatted") - read(88) K_average,t_average - print*, "K_average=", K_average, "t_average=",t_average - endif - call MPI_bcast(K_average,1,MPI_INTEGER,0, MPI_COMM_WORLD,ierr) - call MPI_bcast(t_average,1,OCFD_DATA_TYPE,0, MPI_COMM_WORLD,ierr) - call read_3d(88,dm,nx,ny,nz,nx_global,ny_global,nz_global) - call read_3d(88,um,nx,ny,nz,nx_global,ny_global,nz_global) - call read_3d(88,vm,nx,ny,nz,nx_global,ny_global,nz_global) - call read_3d(88,wm,nx,ny,nz,nx_global,ny_global,nz_global) - call read_3d(88,Tm,nx,ny,nz,nx_global,ny_global,nz_global) - if(my_id .eq.0) close(88) - - else - if(my_id.eq.0) print*, "can not find opencfd.dat.average, initial the average as zero......" - t_average=0.d0 - K_average=0 - dm=0.d0 - um=0.d0 - vm=0.d0 - wm=0.d0 - Tm=0.d0 - endif - endif -!------------------------------------------------------- - do k=1,nz - do j=1,ny - do i=1,nx - dm(i,j,k)=(K_average*dm(i,j,k)+d(i,j,k))/(K_average+1.d0) - um(i,j,k)=(K_average*um(i,j,k)+u(i,j,k))/(K_average+1.d0) - vm(i,j,k)=(K_average*vm(i,j,k)+v(i,j,k))/(K_average+1.d0) - wm(i,j,k)=(K_average*wm(i,j,k)+w(i,j,k))/(K_average+1.d0) - Tm(i,j,k)=(K_average*Tm(i,j,k)+T(i,j,k))/(K_average+1.d0) - enddo - enddo - enddo - - K_average=K_average+1 - t_average=t_average+Para%dt - if(my_id.eq.0) print*, "average flow ...",k_average - -!--------------------------------------------------------- - if(mod(Istep,Kstep_save_average) .eq. 0) then - if(my_id.eq.0) then - write(filename,"('OCFD'I8.8'.dat.average')") Istep - print*, "write average file ...",filename - open(99,file=filename,form='unformatted') - write(99) K_average,t_average - endif - - call write_3d(99,dm,nx,ny,nz,nx_global,ny_global,nz_global) - call write_3d(99,um,nx,ny,nz,nx_global,ny_global,nz_global) - call write_3d(99,vm,nx,ny,nz,nx_global,ny_global,nz_global) - call write_3d(99,wm,nx,ny,nz,nx_global,ny_global,nz_global) - call write_3d(99,Tm,nx,ny,nz,nx_global,ny_global,nz_global) - - if(my_id .eq. 0) then - close(99) - print*, 'write average data ok' - endif - endif - end - -! Compute Q (the second invarient of velocity grident) and Lamda2 (the medimum eigenvalue of Sij*Sij+Wij*Wij) - subroutine ana_getQ (ana_data) - use flow_data - use viscous_data ! work data uk,vk,wk,ui,vi,wi,us,vs,ws,TK - implicit none - integer i,j,k - real(kind=OCFD_REAL_KIND):: ana_data(50) - real(kind=OCFD_REAL_KIND):: ux,uy,uz,vx,vy,vz,wx,wy,wz - character(len=100) filename -!------------------------------------------------------------------------ - call exchange_boundary_xyz(u) - call exchange_boundary_xyz(v) - call exchange_boundary_xyz(w) - - call OCFD_dx0(u,uk,Scheme%Scheme_Vis) - call OCFD_dx0(v,vk,Scheme%Scheme_Vis) - call OCFD_dx0(w,wk,Scheme%Scheme_Vis) - call OCFD_dy0(u,ui,Scheme%Scheme_Vis) - call OCFD_dy0(v,vi,Scheme%Scheme_Vis) - call OCFD_dy0(w,wi,Scheme%Scheme_Vis) - call OCFD_dz0(u,us,Scheme%Scheme_Vis) - call OCFD_dz0(v,vs,Scheme%Scheme_Vis) - call OCFD_dz0(w,ws,Scheme%Scheme_Vis) -!c----------------------------------- - do k=1,nz - do j=1,ny - do i=1,nx - ux=uk(i,j,k)*Akx(i,j,k)+ui(i,j,k)*Aix(i,j,k)+us(i,j,k)*Asx(i,j,k) - vx=vk(i,j,k)*Akx(i,j,k)+vi(i,j,k)*Aix(i,j,k)+vs(i,j,k)*Asx(i,j,k) - wx=wk(i,j,k)*Akx(i,j,k)+wi(i,j,k)*Aix(i,j,k)+ws(i,j,k)*Asx(i,j,k) - uy=uk(i,j,k)*Aky(i,j,k)+ui(i,j,k)*Aiy(i,j,k)+us(i,j,k)*Asy(i,j,k) - vy=vk(i,j,k)*Aky(i,j,k)+vi(i,j,k)*Aiy(i,j,k)+vs(i,j,k)*Asy(i,j,k) - wy=wk(i,j,k)*Aky(i,j,k)+wi(i,j,k)*Aiy(i,j,k)+ws(i,j,k)*Asy(i,j,k) - uz=uk(i,j,k)*Akz(i,j,k)+ui(i,j,k)*Aiz(i,j,k)+us(i,j,k)*Asz(i,j,k) - vz=vk(i,j,k)*Akz(i,j,k)+vi(i,j,k)*Aiz(i,j,k)+vs(i,j,k)*Asz(i,j,k) - wz=wk(i,j,k)*Akz(i,j,k)+wi(i,j,k)*Aiz(i,j,k)+ws(i,j,k)*Asz(i,j,k) - TK(i,j,k)=ux*vy+ux*wz+vy*wz -uy*vx-uz*wx-vz*wy !! TK=Q=II(UX) - enddo - enddo - enddo -!-----save data--------------------------- - if(my_id.eq.0) then - write(filename,"('Q-'I7.7'.dat')") Istep - open(106,file=filename,form="unformatted") - endif - call write_3d(106,TK,nx,ny,nz,nx_global,ny_global,nz_global) - if(my_id .eq. 0) close(106) -!----------------------------------- - end - -!-------------------------------------------------------------------------------------------- -!------------------------------------------------ -! Copyright by Li Xinliang -! Compute the statistics data of isotropic turbulence, such as Re_lamda, Mt, Skewness and Flatness factors of u, ux ...... -! Ref: JCP 13(5):1415,2001 - subroutine ana_box - use flow_data - use viscous_data ! work data uk,vk,wk,ui,vi,wi,us,vs,ws,TK - implicit none - - integer i,j,k,ierr - real(kind=OCFD_REAL_KIND):: ux,amu_aver,c_aver,d_aver,T_aver,u_rms,v_rms,w_rms, & - VV_rms,Ux_rms,d_rms,E_kinetic,ux_skewness,ux_flatness, u_skewness, u_flatness, & - Alamda,Re_lamda,Alamdax,Re_lamdax,Amt, atmp1(100),atmp0(100) - -!--------------------------------------------------------- -! computing statistical data .... - c_aver=0.d0 ; d_aver=0.d0 ; Amu_aver=0.d0 ; T_aver=0.d0 ! Mean sound speed, density, viscous, Temperature - u_rms=0.d0 ; v_rms=0.d0 ; w_rms=0.d0 ; ux_rms=0.d0 ! RMS of velocity fluctuations - ux_skewness=0.d0 ; ux_flatness=0.d0 ; u_skewness=0.d0 ; u_flatness=0.d0 ! Skewness & Flatness factor of velocities - E_kinetic=0.d0 - - call exchange_boundary_xyz(u) - call OCFD_dx0(u,uk,Scheme%Scheme_Vis) - call OCFD_dy0(u,ui,Scheme%Scheme_Vis) - call OCFD_dz0(u,us,Scheme%Scheme_Vis) - call comput_Amu - -! Statistics - do k=1,nz - do j=1,ny - do i=1,nx - ux=uk(i,j,k)*Akx(i,j,k)+ui(i,j,k)*Aix(i,j,k)+us(i,j,k)*Asx(i,j,k) - c_aver=c_aver+sqrt(T(i,j,k))/Para%Ma - d_aver=d_aver+d(i,j,k) - Amu_aver=Amu_aver+Amu(i,j,k) - T_aver=T_aver+T(i,j,k) - u_rms=u_rms+u(i,j,k)*u(i,j,k) - v_rms=v_rms+v(i,j,k)*v(i,j,k) - w_rms=w_rms+w(i,j,k)*w(i,j,k) - - Ux_rms=Ux_rms+ux*ux - Ux_skewness=Ux_skewness+ux**3 - Ux_flatness=Ux_flatness+ux**4 - u_skewness=u_skewness+u(i,j,k)**3 - u_flatness=u_flatness+u(i,j,k)**4 - E_kinetic=E_kinetic+(u(i,j,k)*u(i,j,k)+v(i,j,k)*v(i,j,k)+w(i,j,k)*w(i,j,k))*d(i,j,k)*0.5d0 - enddo - enddo - enddo - - atmp1(1)=u_rms ; atmp1(2)=v_rms ; atmp1(3)=w_rms ; atmp1(4)=Ux_rms - atmp1(5)=Ux_skewness ; atmp1(6)=Ux_flatness - atmp1(7)=d_aver ; atmp1(8)=c_aver ; atmp1(9)=Amu_aver - atmp1(10)=E_kinetic ; atmp1(11)=T_aver ; atmp1(12)=u_skewness ; atmp1(13)=u_flatness - - - call MPI_ALLREDUCE(atmp1,atmp0,13,OCFD_DATA_TYPE,MPI_SUM,MPI_Comm_World,ierr) - - atmp0=atmp0/(nx_global*ny_global*nz_global) - u_rms=atmp0(1) ; v_rms=atmp0(2) ; w_rms=atmp0(3) ; Ux_rms=atmp0(4) - Ux_skewness=atmp0(5) ; Ux_flatness=atmp0(6) ; d_aver=atmp0(7) - c_aver=atmp0(8) ; Amu_aver=atmp0(9) ; E_kinetic=atmp0(10) - T_aver=atmp0(11); u_skewness=atmp0(12) ; u_flatness=atmp0(13) - -!----------------------------------------- - VV_rms=sqrt((u_rms+v_rms+w_rms)/3.d0) ! RMS of velocity fluctures - Amt=sqrt(u_rms+v_rms+w_rms)/c_aver ! Turbulent Mach number (see JCP 13(5):1416) (need not div by 3) - - u_rms=sqrt(u_rms) ; v_rms=sqrt(v_rms) ; w_rms=sqrt(w_rms) ; Ux_rms=sqrt(Ux_rms) - - Alamda=VV_rms/Ux_rms ! Taylor scale, the same as Samtaney et al. - Alamdax=u_rms/Ux_rms - - Re_lamda=VV_rms*Alamda*d_aver/Amu_aver - Re_lamdax=VV_rms*Alamdax*d_aver/Amu_aver - - Ux_skewness=Ux_skewness/Ux_rms**3 - Ux_flatness=Ux_flatness/Ux_rms**4 - U_skewness=U_skewness/U_rms**3 - U_flatness=u_flatness/U_rms**4 -!--------d_rms---------------------------------------------- - - d_rms=0.d0 - do k=1,nz - do j=1,ny - do i=1,nx - d_rms=d_rms+(d(i,j,k)-d_aver)**2 - enddo - enddo - enddo - call MPI_ALLREDUCE(d_rms,atmp1(1),1,OCFD_DATA_TYPE,MPI_SUM,MPI_Comm_World,ierr) - d_rms=sqrt(atmp1(1)/(nx_global*ny_global*nz_global)) -!--------------------------------------------------------- - if(my_id.eq.0) then - open(33,file='statistics.dat',position='append') - print*, "tt, Re_lamda,Re_lamdax,Amt,vv_rms,u_rms,v_rms,w_rms," // & - "u_skewness,u_flatness,ux_skewness,ux_flatness," // & - "E_kinetic,d_rms,T_aver,Amu_aver,d_aver,Ux_rms,Alamdax" - - print*, tt, Re_lamda,Re_lamdax,Amt,vv_rms,u_rms,v_rms,w_rms, & - u_skewness,u_flatness,ux_skewness,ux_flatness, & - E_kinetic,d_rms,T_aver,Amu_aver,d_aver,Ux_rms,Alamdax - - write(33,'(19f20.12)') tt, Re_lamda,Re_lamdax,Amt,vv_rms,u_rms,v_rms,w_rms, & - u_skewness,u_flatness,ux_skewness,ux_flatness, & - E_kinetic,d_rms,T_aver,Amu_aver,d_aver,Ux_rms,Alamdax - close(33) - endif - end - -!------------------------------------------------------------------------------- -! Post analysis code for Compression corner -! save pw; u, T at j=2 - subroutine Ana_corner - use flow_data - implicit none - - integer i,j,k,m,i1,ierr - real(kind=OCFD_REAL_KIND):: p00,tmp - real(kind=OCFD_REAL_KIND),dimension(:),allocatable:: sx1,sy1,us1,Ts1,ps1,us0,Ts0,ps0 - - p00=1.d0/(Para%gamma*Para%Ma*Para%Ma) - allocate(sx1(nx),sy1(nx),us1(nx_global),Ts1(nx_global),ps1(nx_global),us0(nx_global),Ts0(nx_global),ps0(nx_global)) - - us1=0.d0 - Ts1=0.d0 - ps1=0.d0 - us0=0.d0 - Ts0=0.d0 - ps0=0.d0 - - if(npy .eq. 0) then - - if(npx .ne. npx0-1) then - do i=1,nx - sx1(i)=Axx(i+1,1,1)-Axx(i,1,1) - sy1(i)=Ayy(i+1,1,1)-Ayy(i,1,1) - enddo - else - do i=1,nx-1 - sx1(i)=Axx(i+1,1,1)-Axx(i,1,1) - sy1(i)=Ayy(i+1,1,1)-Ayy(i,1,1) - enddo - sx1(nx)=Axx(nx,1,1)-Axx(nx-1,1,1) - sy1(nx)=Ayy(nx,1,1)-Ayy(nx-1,1,1) - endif - - do i=1,nx - tmp=1.d0/sqrt(sx1(i)**2+sy1(i)**2) - sx1(i)=sx1(i)*tmp - sy1(i)=sy1(i)*tmp - enddo -!----------------------- - do i=1,nx - i1=i_offset(npx)+i-1 - do k=1,nz - us1(i1)=us1(i1)+u(i,2,k)*sx1(i)+v(i,2,k)*sy1(i) - Ts1(i1)=Ts1(i1)+T(i,2,k) - ps1(i1)=ps1(i1)+p00*d(i,1,k)*T(i,1,k) - enddo - enddo - - endif - - call MPI_REDUCE(us1,us0,nx_global,OCFD_DATA_TYPE, MPI_SUM,0,MPI_COMM_WORLD,ierr) - call MPI_REDUCE(Ts1,Ts0,nx_global,OCFD_DATA_TYPE, MPI_SUM,0,MPI_COMM_WORLD,ierr) - call MPI_REDUCE(ps1,ps0,nx_global,OCFD_DATA_TYPE, MPI_SUM,0,MPI_COMM_WORLD,ierr) - tmp=1.d0/nz_global - us0=us0*tmp - Ts0=Ts0*tmp - ps0=ps0*tmp - - - if(my_id .eq. 0) then - open(101,file="WallUtp-log.dat",form="unformatted",position="append") - write(101) Istep, tt - write(101) us0, Ts0, ps0 - close(101) - endif - - deallocate(sx1,sy1,us1,Ts1,ps1,us0,Ts0,ps0) - - end -!-------------------------------------------------------- - - diff --git a/OCFD_ANA_savedata.f90 b/OCFD_ANA_savedata.f90 deleted file mode 100644 index 2e8039d..0000000 --- a/OCFD_ANA_savedata.f90 +++ /dev/null @@ -1,200 +0,0 @@ - -!------ code for saving data ----------------------------------------------- - subroutine ana_savedata(ana_data) - Use flow_data - implicit none - integer i,j,k,savetype - real(kind=OCFD_REAL_KIND):: ana_data(50) - integer,parameter:: Save_YZ=1,Save_XZ=2,Save_XY=3,Save_Point=4,Save_Block=5 - - savetype=nint(ana_data(1)) - select case(savetype) - case(Save_YZ) - call ana_saveplaneYZ(ana_data) - case(Save_XZ) - call ana_saveplaneXZ(ana_data) - case(Save_XY) - call ana_saveplaneXY(ana_data) - case(Save_Point) - call ana_savePoints(ana_data) - case(Save_Block) - call ana_saveblock(ana_data) - end select - end - - -!------------------------------------------------------------------------------ -! Save plane i_global=i0 to i0+bandwidth - subroutine ana_saveplaneYZ(ana_data) - Use flow_data - implicit none - integer i,j,k,ka,ia,ierr,points,bandwidth,i_point - real(kind=OCFD_REAL_KIND):: ana_data(50) - character(len=50) filename - -!------------------------------------------------------------ - points=nint(ana_data(2)) ! point number - bandwidth=nint(ana_data(3)) ! bandwidth of the saving i- location - - do ka=1,points - - if(my_id.eq.0) then - print*, 'save data ....',Istep,tt,ka - write(filename,'("savedata-YZ"I3.3".dat")') ka - open(66,file=filename,form='unformatted',position='append') - write(66) Istep,tt - endif - - i_point=nint(ana_data(3+ka)) ! i-location of the saving points - do ia=i_point,i_point+bandwidth-1 - call write_2d_YZa(66,ia,d) - call write_2d_YZa(66,ia,u) - call write_2d_YZa(66,ia,v) - call write_2d_YZa(66,ia,w) - call write_2d_YZa(66,ia,T) - enddo - if(my_id.eq.0) close(66) - enddo - end -!-------------------------------------------------------- - subroutine ana_saveplaneXZ(ana_data) - Use flow_data - implicit none - integer ja,ka,ierr,points,bandwidth,j_point - real(kind=OCFD_REAL_KIND):: ana_data(50) - character(len=50) filename - -!------------------------------------------------------------ - points=nint(ana_data(2)) - bandwidth=nint(ana_data(3)) - - do ka=1,points - if(my_id.eq.0) then - print*, 'save data ....',Istep,tt,ka - write(filename,'("savedata-XZ"I3.3".dat")') ka - open(66,file=filename,form='unformatted',position='append') - write(66) Istep,tt - endif - - j_point=nint(ana_data(3+ka)) - do ja=j_point,j_point+bandwidth-1 - call write_2d_XZa(66,ja,d) - call write_2d_XZa(66,ja,u) - call write_2d_XZa(66,ja,v) - call write_2d_XZa(66,ja,w) - call write_2d_XZa(66,ja,T) - enddo - - if(my_id.eq.0) close(66) - - enddo - - end - -!----------------------------------------------------------- - subroutine ana_saveplaneXY(ana_data) - Use flow_data - implicit none - integer i,j,k,ka,ia,ierr,points,bandwidth,k_point - real(kind=OCFD_REAL_KIND):: ana_data(50) - character(len=50) filename - -!------------------------------------------------------------ - points=nint(ana_data(2)) - bandwidth=nint(ana_data(3)) - - do ka=1,points - - if(my_id.eq.0) then - print*, 'save data ....',Istep,tt,ka - write(filename,'("savedata-XY"I3.3".dat")') ka - open(66,file=filename,form='unformatted',position='append') - write(66) Istep,tt - endif - k_point=nint(ana_data(3+ka)) - do ia=k_point,k_point+bandwidth-1 - call write_2d_XYa(66,ia,d) - call write_2d_XYa(66,ia,u) - call write_2d_XYa(66,ia,v) - call write_2d_XYa(66,ia,w) - call write_2d_XYa(66,ia,T) - enddo - if(my_id.eq.0) close(66) - enddo - end - -!-------------------------------------------------------- - subroutine ana_savePoints(ana_data) - Use flow_data - implicit none - integer k,ierr - integer,save:: Kflag1=0,mpoints - integer,save,dimension(10000)::ia,ja,ka - real(kind=OCFD_REAL_KIND):: ana_data(50) - -!------------------------------------------------------------ - if(Kflag1.eq.0) then - Kflag1=1 - if(my_id.eq.0) then - open(99,file="save_points_locations.dat") - read(99,*) mpoints - do k=1,mpoints - read(99,*) ia(k),ja(k),ka(k) - enddo - close(99) - endif - call MPI_bcast(mpoints,1,MPI_INTEGER,0, MPI_COMM_WORLD,ierr) - call MPI_bcast(ia,10000,MPI_INTEGER,0, MPI_COMM_WORLD,ierr) - call MPI_bcast(ja,10000,MPI_INTEGER,0, MPI_COMM_WORLD,ierr) - call MPI_bcast(ka,10000,MPI_INTEGER,0, MPI_COMM_WORLD,ierr) - endif - - if(my_id.eq.0) then - print*, 'save points ......',Istep,tt,mpoints - open(66,file="save_points.dat",form='unformatted',position='append') - write(66) tt - endif - - call write_points(66,d,mpoints,ia,ja,ka) - call write_points(66,u,mpoints,ia,ja,ka) - call write_points(66,v,mpoints,ia,ja,ka) - call write_points(66,w,mpoints,ia,ja,ka) - call write_points(66,T,mpoints,ia,ja,ka) - - if(my_id.eq.0) then - close(66) - endif - end -!-------------------------------------------------------- -! save block data -!----------------------------------------------------------- - subroutine ana_saveblock(ana_data) - Use flow_data - implicit none - integer ib,ie,jb,je,kb,ke,filenumber_K - character(len=50) filename - real(kind=OCFD_REAL_KIND):: ana_data(50) - - ib=nint(ana_data(2)) ; ie=nint(ana_data(3)) - jb=nint(ana_data(4)) ; je=nint(ana_data(5)) - kb=nint(ana_data(6)) ; ke=nint(ana_data(7)) - filenumber_K=nint(ana_data(8)) - - if(my_id.eq.0) then - write(filename,'("savedata-block"I3.3".dat")') filenumber_K - print*, 'save block data ....',filename, Istep,tt - open(66,file=filename,form='unformatted',position='append') - write(66) Istep,tt - endif - - call write_blockdata(66,d,ib,ie,jb,je,kb,ke) - call write_blockdata(66,u,ib,ie,jb,je,kb,ke) - call write_blockdata(66,v,ib,ie,jb,je,kb,ke) - call write_blockdata(66,w,ib,ie,jb,je,kb,ke) - call write_blockdata(66,T,ib,ie,jb,je,kb,ke) - if(my_id .eq. 0) close(66) -end - - - -!---------------- \ No newline at end of file diff --git a/OCFD_BC.f90 b/OCFD_BC.f90 deleted file mode 100644 index 9b6e587..0000000 --- a/OCFD_BC.f90 +++ /dev/null @@ -1,101 +0,0 @@ -! boundary condition - subroutine OCFD_bc - use flow_data - implicit none - integer i,j,k -! -------Set boundary condition ---------------------- - - select case (Para%IBC ) - case (BC_None) -! No boundary Condition (such as periodic boundary in both x- and y- ) - case (BC_BoundaryLayer) - call ocfd_bc_BoundaryLayer - case (BC_Blunt2d) ! Double Mach Reflaction flow - call ocfd_bc_blunt2d - - case (BC_SweptCorner) ! Swept Compression Corner - call ocfd_bc_swept_corner - case (BC_User_Def) - call ocfd_bc_User ! 用户自定义的边界条件 - case default - if(my_id .eq. 0) print*, "This boundary condition is not supported!!!" - stop - end select - - -!----------------------------------------------------------------------------------------- -!c----updata conversion values in boundary 更新守恒变量的边界值------------------------ - if(npx.eq.0) then - do k=1,nz - do j=1,ny - f(1,j,k,1)=d(1,j,k) - f(1,j,k,2)=d(1,j,k)*u(1,j,k) - f(1,j,k,3)=d(1,j,k)*v(1,j,k) - f(1,j,k,4)=d(1,j,k)*w(1,j,k) - f(1,j,k,5)=d(1,j,k)*(Cv*T(1,j,k)+(u(1,j,k)**2+v(1,j,k)**2+w(1,j,k)**2)*0.5d0) - enddo - enddo - endif - if(npx.eq.npx0-1) then - do k=1,nz - do j=1,ny - f(nx,j,k,1)=d(nx,j,k) - f(nx,j,k,2)=d(nx,j,k)*u(nx,j,k) - f(nx,j,k,3)=d(nx,j,k)*v(nx,j,k) - f(nx,j,k,4)=d(nx,j,k)*w(nx,j,k) - f(nx,j,k,5)=d(nx,j,k)*(Cv*T(nx,j,k)+(u(nx,j,k)**2+v(nx,j,k)**2+w(nx,j,k)**2)*0.5d0) - enddo - enddo - endif -!------------------------------ - if(npy.eq.0) then - do k=1,nz - do i=1,nx - f(i,1,k,1)=d(i,1,k) - f(i,1,k,2)=d(i,1,k)*u(i,1,k) - f(i,1,k,3)=d(i,1,k)*v(i,1,k) - f(i,1,k,4)=d(i,1,k)*w(i,1,k) - f(i,1,k,5)=d(i,1,k)*(Cv*T(i,1,k)+(u(i,1,k)**2+v(i,1,k)**2+w(i,1,k)**2)*0.5d0) - enddo - enddo - endif - - if(npy.eq.npy0-1) then - do k=1,nz - do i=1,nx - f(i,ny,k,1)=d(i,ny,k) - f(i,ny,k,2)=d(i,ny,k)*u(i,ny,k) - f(i,ny,k,3)=d(i,ny,k)*v(i,ny,k) - f(i,ny,k,4)=d(i,ny,k)*w(i,ny,k) - f(i,ny,k,5)=d(i,ny,k)*(Cv*T(i,ny,k)+(u(i,ny,k)**2+v(i,ny,k)**2+w(i,ny,k)**2)*0.5d0) - enddo - enddo - endif -!-------------------------- - if(npz.eq.0) then - do j=1,ny - do i=1,nx - f(i,j,1,1)=d(i,j,1) - f(i,j,1,2)=d(i,j,1)*u(i,j,1) - f(i,j,1,3)=d(i,j,1)*v(i,j,1) - f(i,j,1,4)=d(i,j,1)*w(i,j,1) - f(i,j,1,5)=d(i,j,1)*(Cv*T(i,j,1)+(u(i,j,1)**2+v(i,j,1)**2+w(i,j,1)**2)*0.5d0) - enddo - enddo - endif - if(npz.eq.npz0-1) then - do j=1,ny - do i=1,nx - f(i,j,nz,1)=d(i,j,nz) - f(i,j,nz,2)=d(i,j,nz)*u(i,j,nz) - f(i,j,nz,3)=d(i,j,nz)*v(i,j,nz) - f(i,j,nz,4)=d(i,j,nz)*w(i,j,nz) - f(i,j,nz,5)=d(i,j,nz)*(Cv*T(i,j,nz)+(u(i,j,nz)**2+v(i,j,nz)**2+w(i,j,nz)**2)*0.5d0) - enddo - enddo - endif - - call Flow_Ghost_boundary ! Ghost Cell for flow field (d, u, v, w, T) - - end - diff --git a/OCFD_BC_Boundarylayers.f90 b/OCFD_BC_Boundarylayers.f90 deleted file mode 100644 index 39b5435..0000000 --- a/OCFD_BC_Boundarylayers.f90 +++ /dev/null @@ -1,629 +0,0 @@ -! boundary conditions: boundary-layers (transition/ STBLI/ ...) -!--------------------------------------------------------------------- - module BC_data - use OCFD_precision - implicit none - TYPE bc_type - integer:: bc_init=0 - Real(kind=OCFD_REAL_KIND),allocatable:: flow_inlet1d(:,:), flow_upper1d(:,:), & - flow_inlet2d(:,:,:), flow_upper2d(:,:,:) - Real(kind=OCFD_REAL_KIND),allocatable:: wall_pertb(:,:) ! Wall blow-and-suction - integer,allocatable:: NonReflect_upper(:,:) - - end TYPE - TYPE (bc_type):: BC - end - - - subroutine ocfd_bc_BoundaryLayer - use flow_data - use BC_data - implicit none - integer i,j,k,m - integer:: BcData_inlet, BcData_upper,bc_upper_nonref,bc_outlet,bc_dis_type,bc_dis_mt,bc_dis_mz - Real(kind=OCFD_REAL_KIND):: Tw,Wall_Xinit,bc_dis_A,bc_dis_Xbegin,bc_dis_Xend,bc_dis_ZL,bc_dis_freq - Real(kind=OCFD_REAL_KIND):: u0,v0, ht, tmp,A0 - -!--------------------------------------------------- - BcData_inlet=nint(Para%BC_para(1)) ! inlet: (0 free-stream; 1 1d data; 2 2d data) - BcData_upper=nint(Para%Bc_para(2)) ! upper boundary: (0 free-stream, 1 1d data , 2 2d data) - - bc_upper_nonref=nint(Para%Bc_para(3)) ! upper boundary: 0 auto, 1 Non-Reflection, 2 Dirichlet - bc_outlet=nint(Para%Bc_para(4)) ! outlet: 0 Non-Reflection, 1 1st order extrapolation, 2 2nd order extrapolation - Tw=Para%Bc_para(5) ! wall temperature - Wall_Xinit=Para%Bc_para(6) ! x location of the wall leading - -! wall perturbation-------- - bc_dis_type=nint(Para%Bc_para(7)) ! wall disturbance type (0 none ; 1 multi-wave blow-and-suction, Ref: Rai MM, AIAA 95-0583) - bc_dis_A=Para%Bc_para(8) ! Amplitude of wall disturbance - bc_dis_Xbegin=Para%Bc_para(9) ! Initial location of wall disturbance - bc_dis_Xend=Para%Bc_para(10) ! End location of wall disturbance - bc_dis_mt=nint(Para%Bc_para(11)) ! multi-frequency - bc_dis_mz=nint(Para%Bc_para(12)) ! multi-wavenumber - bc_dis_ZL=Para%Bc_para(13) ! Spanwise Length - bc_dis_freq=Para%Bc_para(14) ! base frequancy of disturbance - - - !-------- j=1 wall ---------------- - if(BC%bc_init ==0 ) then - call init_bcdata_boundarylayer (BcData_inlet, BcData_upper) ! read inlet & upper data - call init_bc_nonRef (bc_upper_nonref) ! upper boundary: Non-Reflection or Dirichlet - call init_bc_wall_perturbation (bc_dis_type, bc_dis_A, bc_dis_Xbegin, bc_dis_Xend, bc_dis_mt, bc_dis_mz, bc_dis_ZL) - Bc%bc_init=1 ! Run only for initial time - endif - -!----------------Inlet boundary ------------------------------------- - u0=cos(Para%AoA) - v0=sin(Para%AoA) - - if(npx .eq. 0) then - if( BcData_inlet == 0) then - do k=1,nz - do j=1,ny - d(1,j,k)=1.d0 - u(1,j,k)=u0 - v(1,j,k)=v0 - w(1,j,k)=0.d0 - T(1,j,k)=0.d0 - enddo - enddo - else if(BcData_inlet == 1) then - do k=1,nz - do j=1,ny - d(1,j,k)=BC%flow_inlet1d(j,1) - u(1,j,k)=BC%flow_inlet1d(j,2) - v(1,j,k)=BC%flow_inlet1d(j,3) - w(1,j,k)=BC%flow_inlet1d(j,4) - T(1,j,k)=BC%flow_inlet1d(j,5) - enddo - enddo - else if (BcData_inlet == 2) then - do k=1,nz - do j=1,ny - d(1,j,k)=BC%flow_inlet2d(j,k,1) - u(1,j,k)=BC%flow_inlet2d(j,k,2) - v(1,j,k)=BC%flow_inlet2d(j,k,3) - w(1,j,k)=BC%flow_inlet2d(j,k,4) - T(1,j,k)=BC%flow_inlet2d(j,k,5) - enddo - enddo - else - print*, "The inlet data is not supported !" - endif - endif - -!----------------upper boundary ------------------------------------- - if(npy .eq. npy0-1) then - do k=1,nz - do i=1,nx - if(Bc%NonReflect_upper(i,k) .eq. 0) then ! Dirichlet BC - if(BcData_upper .eq. 0) then - d(i,ny,k)=1.d0 - u(i,ny,k)=u0 - v(i,ny,k)=v0 - w(i,ny,k)=0.d0 - T(i,ny,k)=1.d0 - else if (BcData_upper .eq. 1) then - d(i,ny,k)=BC%flow_upper1d(i,1) - u(i,ny,k)=BC%flow_upper1d(i,2) - v(i,ny,k)=BC%flow_upper1d(i,3) - w(i,ny,k)=BC%flow_upper1d(i,4) - T(i,ny,k)=BC%flow_upper1d(i,5) - else if(BcData_upper .eq. 2) then - d(i,ny,k)=BC%flow_upper2d(i,k,1) - u(i,ny,k)=BC%flow_upper2d(i,k,2) - v(i,ny,k)=BC%flow_upper2d(i,k,3) - w(i,ny,k)=BC%flow_upper2d(i,k,4) - T(i,ny,k)=BC%flow_upper2d(i,k,5) - endif - endif - enddo - enddo - endif -!----wall----------------------------------------------- - call get_ht_multifrequancy(ht,tt,bc_dis_mt, bc_dis_freq) - if(npy.eq.0) then - do k=1,nz - do i=1,nx - tmp=1.d0/(sqrt(Aix(i,1,k)**2+Aiy(i,1,k)**2+Aiz(i,1,k)**2)) - A0=bc_dis_A*ht* BC%wall_pertb(i,k) - u(i,1,k)=A0*Aix(i,1,k)*tmp ! Aix*tmp normal vector - v(i,1,k)=A0*Aiy(i,1,k)*tmp - w(i,1,k)=A0*Aiz(i,1,k)*tmp - if(Tw.gt.0) then - T(i,1,k)=Tw - d(i,1,k)=(4.d0*d(i,2,k)*T(i,2,k)-d(i,3,k)*T(i,3,k))/(3.d0*Tw) ! P1=(4.d0*P2-P3)/3.d0 2nd order - else - T(i,1,k)=(4.d0*T(i,2,k)-T(i,3,k))/3.d0 - d(i,1,k)=(4.d0*d(i,2,k)-d(i,3,k))/3.d0 - endif - enddo - enddo - - endif -!-------outlet bounary ------------------------------------------ - if(npx .eq. npx0-1) then - if(bc_outlet==1) then - do k=1,nz - do j=1,ny - d(nx,j,k)=d(nx-1,j,k) - u(nx,j,k)=u(nx-1,j,k) - v(nx,j,k)=v(nx-1,j,k) - w(nx,j,k)=w(nx-1,j,k) - T(nx,j,k)=T(nx-1,j,k) - enddo - enddo - else if (bc_outlet==2) then - do k=1,nz - do j=1,ny - d(nx,j,k)=2.d0*d(nx-1,j,k)-d(nx-2,j,k) - u(nx,j,k)=2.d0*u(nx-1,j,k)-u(nx-2,j,k) - v(nx,j,k)=2.d0*v(nx-1,j,k)-v(nx-2,j,k) - w(nx,j,k)=2.d0*w(nx-1,j,k)-w(nx-2,j,k) - T(nx,j,k)=2.d0*T(nx-1,j,k)-T(nx-2,j,k) - enddo - enddo - endif - endif - - end - -!--------------------------------------------------------------------- -! read boundary data (inlet & upper) - subroutine init_bcdata_boundarylayer (BcData_inlet, BcData_upper) - use flow_data - use BC_data - implicit none - integer:: BcData_inlet, BcData_upper - integer:: i,j,k,m,i1,j1,k1,ierr - Real(kind=OCFD_REAL_KIND):: tmp - Real(kind=OCFD_REAL_KIND),allocatable:: flow1d0(:,:),flow2d0(:,:) - - -! BcData_inlet=nint(Para%BC_para(1)) ! inlet type (1 free-stream; 2 1d data; 2 2d data) -! BcData_upper=nint(Para%Bc_para(2)) - - - -!----------------read inlet data file (1d formatted or 2d unformatted ) - if(BcData_inlet == 1) then ! 1d inlet data file - allocate(BC%flow_inlet1d(ny,5), flow1d0(ny_global,4)) - if(my_id .eq. 0) then - open(99,file="flow1d-inlet.dat") - read(99,*) - do j=1,ny_global - read(99,*) tmp, (flow1d0(j,k),k=1,4) ! d,u,v,T - enddo - close(99) - print*, "read 1d inlet data OK" - endif - - call MPI_bcast(flow1d0,ny_global*4,OCFD_DATA_TYPE,0, MPI_COMM_WORLD,ierr) - do j=1,ny - j1=j_offset(npy)+j-1 - BC%flow_inlet1d(j,1:3)=flow1d0(j1,1:3) - BC%flow_inlet1d(j,4)=0.d0 ! w - BC%flow_inlet1d(j,5)=flow1d0(j1,4) - enddo - deallocate(flow1d0) - - else if(BcData_inlet == 2) then !2d inlet data file - allocate(BC%flow_inlet2d(ny,nz,5), flow2d0(ny_global,nz_global)) - if(my_id .eq. 0) open(99,file="flow2d-inlet.dat",form="unformatted") - do m=1,5 - if(my_id .eq. 0) read(99) flow2d0 - - call MPI_bcast(flow2d0,ny_global*nz_global ,OCFD_DATA_TYPE,0, MPI_COMM_WORLD,ierr) - do k=1,nz - do j=1,ny - j1=j_offset(npy)+j-1 - k1=k_offset(npz)+k-1 - BC%flow_inlet2d(j,k,m)=flow2d0(j1,k1) - enddo - enddo - enddo - if(my_id .eq. 0) then - close(99) - print*, "read 2d inlet data OK" - endif - deallocate(flow2d0) - endif - - !----------------read upper-boundary data file (1d formatted or 2d unformatted ) - if(BcData_upper == 1) then ! 1d upper-boundary data file - allocate(BC%flow_upper1d(nx,5), flow1d0(nx_global,4)) - if(my_id .eq. 0) then - open(99,file="flow1d-upper.dat") - read(99,*) - do i=1,nx_global - read(99,*) tmp, (flow1d0(i,k),k=1,4) ! d,u,v,T - enddo - close(99) - print*, "read 1d upper boundary data OK" - endif - - call MPI_bcast(flow1d0,nx_global*4,OCFD_DATA_TYPE,0, MPI_COMM_WORLD,ierr) - do i=1,nx - i1=i_offset(npx)+i-1 - BC%flow_upper1d(i,1:3)=flow1d0(i1,1:3) - BC%flow_upper1d(i,4)=0.d0 ! w - BC%flow_upper1d(i,5)=flow1d0(i1,4) - enddo - deallocate(flow1d0) - - else if(BcData_upper == 2) then !2d boundary data file - allocate(BC%flow_upper2d(nx,nz,5), flow2d0(nx_global,nz_global)) - if(my_id .eq. 0) open(99,file="flow2d-upper.dat",form="unformatted") - do m=1,5 - if(my_id .eq. 0) read(99) flow2d0 - - call MPI_bcast(flow2d0,nx_global*nz_global ,OCFD_DATA_TYPE,0, MPI_COMM_WORLD,ierr) - do k=1,nz - do i=1,nx - i1=i_offset(npx)+i-1 - k1=k_offset(npz)+k-1 - BC%flow_upper2d(i,k,m)=flow2d0(i1,k1) - enddo - enddo - enddo - if(my_id .eq. 0) then - close(99) - print*, "read 2d upper boundary data OK" - endif - deallocate(flow2d0) - endif - end - - - !----------------------------------------------------- - subroutine init_bc_nonRef (Bc_NonReflect_upper) - use flow_data - use BC_data - implicit none - integer:: Bc_NonReflect_upper,i,j,k - Real(kind=OCFD_REAL_KIND):: sy ,sy0 - Real(kind=OCFD_REAL_KIND),parameter:: epsl=1.d-6 - -! Bc_NonReflect_upper=nint(Para%Bc_para(3)) ! 0 Auto, 1 Non-Reflection, 2 Dirichlet boudary - - sy0=tan(Para%AoA) - allocate(BC%NonReflect_upper(nx,nz)) - Bc%NonReflect_upper=0 - - -! if(npy .eq. 0) then ! Bug removed 2021-5-4 - if(npy .eq. npy0-1) then - if(Bc_NonReflect_upper == 1) then - BC%NonReflect_upper=1 ! Non-Reflection boundary - else if (Bc_NonReflect_upper == 2) then - BC%NonReflect_upper=0 ! Dirichlet boundary - else if (Bc_NonReflect_upper == 0) then ! Auto type (Non-Reflection /Dirichlet) - do k=1,nz - do i=1,nx - if(i==1 .and. npx .eq. 0) then - sy=(Ayy(i+1,ny,k)-Ayy(i,ny,k))/(Axx(i+1,ny,k)-Axx(i,ny,k)) - else - sy=(Ayy(i,ny,k)-Ayy(i-1,ny,k))/(Axx(i,ny,k)-Axx(i-1,ny,k)) - endif - if(sy >= sy0+ epsl) then - Bc%NonReflect_upper(i,k)=0 ! Dirichlet BC - else - Bc%NonReflect_upper(i,k)=1 ! Non-Reflection BC - endif - enddo - enddo - endif - endif - -end - - subroutine init_bc_wall_perturbation (bc_dis_type, bc_dis_A, bc_dis_Xbegin, bc_dis_Xend, bc_dis_mt, bc_dis_mz, bc_dis_ZL) -! TM(k), Amplitude; faiz,fait: phase (random); mzmax, mtmax: wavenumbers -! consider wall jet - use flow_data - use BC_data - implicit none - integer i,j,k,m,ierr - real(kind=OCFD_REAL_KIND),allocatable :: faiz(:),Zl(:) - real(kind=OCFD_REAL_KIND),parameter:: PI=3.14159265358979d0 - real(kind=OCFD_REAL_KIND):: ztmp,seta,fx,gz,rtmp - integer:: bc_dis_type,bc_dis_mt,bc_dis_mz - real(kind=OCFD_REAL_KIND):: bc_dis_A,bc_dis_Xbegin,bc_dis_Xend,bc_dis_ZL - - -! bc_dis_type=nint(Para%Bc_para(7)) ! wall disturbance type (0 none ; 1 multi-wave blow-and-suction, Ref: Rai MM, AIAA 95-0583) -! bc_dis_A=Para%Bc_para(8) ! Amplitude of wall disturbance -! bc_dis_Xbegin=Para%Bc_para(9) ! Initial location of wall disturbance -! bc_dis_Xend=Para%Bc_para(10) ! End location of wall disturbance -! bc_dis_mt=nint(Para%Bc_para(11)) ! multi-frequency -! bc_dis_mz=nint(Para%Bc_para(12)) ! multi-wavenumber -! bc_dis_ZL=Para%Bc_para(13) ! Spanwise Length - - allocate(BC%wall_pertb(nx,nz)) - BC%wall_pertb=0.d0 - - if(bc_dis_type == 0) then - BC%wall_pertb=0.d0 ! no disturbation - !----------------------------------------------- - else if ( bc_dis_type == 1) then ! multi-wavenumber perturbation (Rai MM AIAA 95-0583) - - if(bc_dis_mz >0) then - allocate(faiz(bc_dis_mz),Zl(bc_dis_mz)) - ztmp=0.d0 - do k=1,bc_dis_mz - call random_number(faiz(k)) - if(k.eq.1) then - Zl(k)=1.d0 - else - zl(k)=zl(k-1)/1.25d0 - endif - ztmp=ztmp+Zl(k) - enddo - do k=1,bc_dis_mz - zl(k)=zl(k)/ztmp - enddo - call MPI_bcast(faiz(1),bc_dis_mz,OCFD_DATA_TYPE,0,MPI_COMM_WORLD,ierr) - endif - - do k=1,nz - do i=1,nx - if(Axx(i,1,k) >=bc_dis_Xbegin .and. Axx(i,1,k) <= bc_dis_Xend) then - seta=2.d0*PI*(Axx(i,1,k)-bc_dis_Xbegin)/(bc_dis_Xend-bc_dis_Xbegin) - fx=4.d0/sqrt(27.d0)*sin(seta)*(1.d0-cos(seta)) - else - fx=0.d0 - endif - - gz=0.d0 - seta=Azz(i,1,k)/bc_dis_ZL - if(bc_dis_mz > 0) then - do m=1,bc_dis_mz - gz=gz+Zl(m)*sin(2.d0*PI*m* (seta+faiz(m)) ) - enddo - else if(bc_dis_mz == 0) then - gz=1.d0 - else if(bc_dis_mz < 0) then - gz=sin(-2.d0*PI*bc_dis_mz*seta) - endif - BC%wall_pertb(i,k)=fx*gz - enddo - enddo - if(bc_dis_mz >0) deallocate(faiz,Zl) -!----------------------------------------------- - else if ( bc_dis_type == 2) then ! random disturbance - do k=1,nz - do i=1,nx - if(Axx(i,1,k) >=bc_dis_Xbegin .and. Axx(i,1,k) <= bc_dis_Xend) then ! a Bug removed (2021-6-21) - call random_number(rtmp) - BC%wall_pertb(i,k)=2.d0*(rtmp-0.5d0) ! -1< wall_pertb < 1 - else - BC%wall_pertb(i,k)=0.d0 - endif - enddo - enddo - endif - end - - -!-------------------------------- -! perturbation of Rai, see: Rai MM, AIAA 95-0583 - subroutine get_ht_multifrequancy(ht,tt,mtmax,beta) - use OCFD_constants - use Para_mpi - implicit none - integer mtmax,k,m,ierr - integer,save:: Kflag=0 - real(kind=OCFD_REAL_KIND):: ht,tt,beta,Ttmp,rand_x - real(kind=OCFD_REAL_KIND),parameter:: PI=3.14159265358979d0 - real(kind=OCFD_REAL_KIND),allocatable,save:: TM(:),fait(:) ! Amplitute and random phase angle - - if(Kflag .eq. 0) then - Kflag=1 - allocate(TM(mtmax),fait(mtmax)) - - Ttmp=0.d0 - do k=1,mtmax - call random_number(rand_x) - fait(k)=rand_x - if(k.eq.1) then - TM(k)=1.d0 - else - TM(k)=TM(k-1)/1.25d0 - endif - Ttmp=Ttmp+TM(k) - enddo - do k=1,mtmax - TM(k)=TM(k)/Ttmp - enddo - call MPI_bcast(fait(1),mtmax,OCFD_DATA_TYPE,0,MPI_COMM_WORLD,ierr) - endif - - ht=0.d0 - if(beta .gt. 0.d0) then - do m=1,mtmax - ht=ht+TM(m)*sin(m*beta*tt+2.d0*PI*fait(m)) - enddo - else - ht=1.d0 - endif - end - -!------------modified 2021-5-10 --------------------- - subroutine ocfd_bc_swept_corner - use flow_data - use BC_data - implicit none - integer i,j,k,m - integer:: BcData_inlet, BcData_upper,bc_upper_nonref,bc_outlet,bc_dis_type,bc_dis_mt,bc_dis_mz, & - bc_Z1, bc_Z2, bc_Wallext - Real(kind=OCFD_REAL_KIND):: Tw,Wall_Xinit,bc_dis_A,bc_dis_Xbegin,bc_dis_Xend,bc_dis_ZL,bc_dis_freq, & - bc_Wall_ZL - Real(kind=OCFD_REAL_KIND):: u0,v0, ht, tmp,A0 - Real(kind=OCFD_REAL_KIND),parameter :: epsl=1.d-7 -!----------------------------------------------------------------- - BcData_inlet=1 ! inlet: (0 free-stream; 1 1d data; 2 2d data) - BcData_upper=0 ! upper boundary: (0 free-stream, 1 1d data , 2 2d data) - bc_upper_nonref=0 ! upper boundary: 0 auto, 1 Non-Reflection, 2 Dirichlet - - bc_outlet=nint(Para%Bc_para(1)) ! outlet: 0 Non-Reflection, 1 1st order extrapolation, 2 2nd order extrapolation - Tw=Para%Bc_para(2) ! wall temperature - bc_Wall_ZL=Para%Bc_para(3) ! Spanwise Length of wall - bc_dis_ZL=bc_Wall_ZL -! wall perturbation-------- - bc_dis_type=nint(Para%Bc_para(4)) ! wall disturbance type (0 none ; 1 multi-wave blow-and-suction, Ref: Rai MM, AIAA 95-0583) - bc_dis_A=Para%Bc_para(5) ! Amplitude of wall disturbance - bc_dis_Xbegin=Para%Bc_para(6) ! Initial location of wall disturbance - bc_dis_Xend=Para%Bc_para(7) ! End location of wall disturbance - bc_dis_mt=nint(Para%Bc_para(8)) ! multi-frequency - bc_dis_mz=nint(Para%Bc_para(9)) ! multi-wavenumber - bc_dis_freq=Para%Bc_para(10) ! base frequancy of disturbance - bc_Z1=nint(Para%Bc_para(11)) ! Lift side (Z-) boundary; (0 slide wall; 1 exterploation) - bc_Z2=nint(Para%Bc_para(12)) ! Right side (Z+) boundary -! bc_Wallext=nint(Para%Bc_para(13)) ! Wall extent region (j=1; z<0 or z> Zwall) - !-------- j=1 wall ---------------- - if(BC%bc_init ==0 ) then - call init_bcdata_boundarylayer (BcData_inlet, BcData_upper) ! read inlet & upper data - call init_bc_nonRef (bc_upper_nonref) ! upper boundary: Non-Reflection or Dirichlet - call init_bc_wall_perturbation (bc_dis_type, bc_dis_A, bc_dis_Xbegin, bc_dis_Xend, bc_dis_mt, bc_dis_mz, bc_dis_ZL) - Bc%bc_init=1 ! Run only for initial time - endif - -!----------------Inlet boundary ------------------------------------- - u0=cos(Para%AoA) - v0=sin(Para%AoA) - - if(npx .eq. 0) then - do k=1,nz - do j=1,ny - d(1,j,k)=BC%flow_inlet1d(j,1) - u(1,j,k)=BC%flow_inlet1d(j,2) - v(1,j,k)=BC%flow_inlet1d(j,3) - w(1,j,k)=BC%flow_inlet1d(j,4) - T(1,j,k)=BC%flow_inlet1d(j,5) - enddo - enddo - endif - -!----------------upper boundary ------------------------------------- - if(npy .eq. npy0-1) then - do k=1,nz - do i=1,nx - if(Bc%NonReflect_upper(i,k) .eq. 0) then ! Dirichlet BC - d(i,ny,k)=1.d0 - u(i,ny,k)=u0 - v(i,ny,k)=v0 - w(i,ny,k)=0.d0 - T(i,ny,k)=1.d0 - endif - enddo - enddo - endif -!----wall----------------------------------------------- - call get_ht_multifrequancy(ht,tt,bc_dis_mt, bc_dis_freq) - if(npy.eq.0) then - do k=1,nz - do i=1,nx - if( (Azz(i,1,k) >= -epsl .and. Azz(i,1,k) <= bc_Wall_ZL+epsl) .or. Ayy(i,1,k) <= epsl ) then ! non-slide wall , modifyied 2021-5-10 - tmp=1.d0/(sqrt(Aix(i,1,k)**2+Aiy(i,1,k)**2+Aiz(i,1,k)**2)) - A0=bc_dis_A*ht* BC%wall_pertb(i,k) - u(i,1,k)=A0*Aix(i,1,k)*tmp ! Aix*tmp normal vector - v(i,1,k)=A0*Aiy(i,1,k)*tmp - w(i,1,k)=A0*Aiz(i,1,k)*tmp - if(Tw.gt.0) then - T(i,1,k)=Tw - d(i,1,k)=(4.d0*d(i,2,k)*T(i,2,k)-d(i,3,k)*T(i,3,k))/(3.d0*Tw) ! P1=(4.d0*P2-P3)/3.d0 2nd order - else - T(i,1,k)=(4.d0*T(i,2,k)-T(i,3,k))/3.d0 - d(i,1,k)=(4.d0*d(i,2,k)-d(i,3,k))/3.d0 - endif - else - ! 1st order exterpolation - d(i,1,k)=d(i,2,k) - T(i,1,k)=T(i,2,k) - u(i,1,k)=u(i,2,k) - v(i,1,k)=v(i,2,k) ! modified 2021-4-26 - w(i,1,k)=w(i,2,k) - endif - enddo - enddo - endif - -!-------outlet bounary ------------------------------------------ - if(npx .eq. npx0-1) then - if(bc_outlet==1) then - do k=1,nz - do j=1,ny - d(nx,j,k)=d(nx-1,j,k) - u(nx,j,k)=u(nx-1,j,k) - v(nx,j,k)=v(nx-1,j,k) - w(nx,j,k)=w(nx-1,j,k) - T(nx,j,k)=T(nx-1,j,k) - enddo - enddo - else if (bc_outlet==2) then - do k=1,nz - do j=1,ny - d(nx,j,k)=2.d0*d(nx-1,j,k)-d(nx-2,j,k) - u(nx,j,k)=2.d0*u(nx-1,j,k)-u(nx-2,j,k) - v(nx,j,k)=2.d0*v(nx-1,j,k)-v(nx-2,j,k) - w(nx,j,k)=2.d0*w(nx-1,j,k)-w(nx-2,j,k) - T(nx,j,k)=2.d0*T(nx-1,j,k)-T(nx-2,j,k) - enddo - enddo - endif - endif - -!----------side boundary (slide (symmetry)/exterpolation )------------------------- - if(npz .eq. 0 ) then -! if(bc_Z1 .eq. 0) then ! not support 2021-6-14 (do not work well) -! do j=1,ny -! do i=1,nx -! d(i,j,1)=d(i,j,2) -! u(i,j,1)=u(i,j,2) -! v(i,j,1)=v(i,j,2) -! w(i,j,1)=0.d0 -! T(i,j,1)=T(i,j,2) -! enddo -! enddo -! else if (bc_Z1 .eq. 1) then - if (bc_Z1 .eq. 1) then - do j=1,ny - do i=1,nx - d(i,j,1)=d(i,j,2) - u(i,j,1)=u(i,j,2) - v(i,j,1)=v(i,j,2) - w(i,j,1)=w(i,j,2) - T(i,j,1)=T(i,j,2) - enddo - enddo - endif - endif - - if(npz .eq. npz0-1 ) then -! if(bc_Z2 .eq. 0) then -! do j=1,ny -! do i=1,nx -! d(i,j,nz)=d(i,j,nz-1) -! u(i,j,nz)=u(i,j,nz-1) -! v(i,j,nz)=v(i,j,nz-1) -! w(i,j,nz)=0.d0 -! T(i,j,nz)=T(i,j,nz-1) -! enddo -! enddo -! else if(bc_Z2 .eq. 1) then - if(bc_Z2 .eq. 1) then - do j=1,ny - do i=1,nx - d(i,j,nz)=d(i,j,nz-1) - u(i,j,nz)=u(i,j,nz-1) - v(i,j,nz)=v(i,j,nz-1) - w(i,j,nz)=w(i,j,nz-1) - T(i,j,nz)=T(i,j,nz-1) - enddo - enddo - endif - endif - end - - - \ No newline at end of file diff --git a/OCFD_BC_Def.f90 b/OCFD_BC_Def.f90 deleted file mode 100644 index 3e886db..0000000 --- a/OCFD_BC_Def.f90 +++ /dev/null @@ -1,33 +0,0 @@ -! boundary conditions defined 已预设的几种边界条件 - -!--------Blunt wedge (or half-cylinder )-------------- - subroutine ocfd_bc_blunt2d - use flow_data - implicit none - integer i,j,k -!-------- j=1 wall ---------------- - if(npy.eq.0) then - do k=1,nz - do i=1,nx - d(i,1,k)=d(i,2,k) - u(i,1,k)=0.d0 - v(i,1,k)=0.d0 - w(i,1,k)=0.d0 - T(i,1,k)=T(i,2,k) - enddo - enddo - endif -!-------j=ny free-stream ---------- - if(npy .eq. npy0-1) then - do k=1,nz - do i=1,nx - d(i,ny,k)=1.d0 - u(i,ny,k)=1.d0 - v(i,ny,k)=0.d0 - w(i,ny,k)=0.d0 - T(i,ny,k)=1.d0 - enddo - enddo - endif -!---------------------------------------- - end diff --git a/OCFD_GhostCell.f90 b/OCFD_GhostCell.f90 deleted file mode 100644 index f23089c..0000000 --- a/OCFD_GhostCell.f90 +++ /dev/null @@ -1,507 +0,0 @@ - subroutine Jac_Ghost_boundary - use flow_data - implicit none - call Jac_Ghost_Extent_1st ! 1st order exterpolation , in case Para%Ghost_Cell(1) .eq. 1 - call Jac_Ghost_Extent_2nd ! 2nd order exterpolation , in case Para%Ghost_Cell(1) .eq. 1 - call Jac_Ghost_Userdef ! User defined Ghost boundary , in case Para%Ghost_Cell(1) .eq. 1 - end - - subroutine Flow_Ghost_boundary - use flow_data - implicit none - call Flow_Ghost_Extent_2nd ! 2nd exterpolation, in case Scheme%Scheme_boundary(:) .eq. 1 or 2 - call Flow_Ghost_Userdef ! User defined Ghost boundary, in case Scheme%Scheme_boundary(:) .eq. -2 - end - -!-------------------------------------------------- -! Ghost Cell for Jacobian coefficients ; 1st order exterpolation - subroutine Jac_Ghost_Extent_1st - use flow_data - implicit none - integer:: i,j,k - if(npx .eq. 0 .and. Para%Ghost_Cell(1) .eq. 1) then !i- - do k=1,nz - do j=1,ny - do i=1-LAP, 0 - Akx(i,j,k)=Akx(1,j,k) - Aky(i,j,k)=Aky(1,j,k) - Akz(i,j,k)=Akz(1,j,k) - Aix(i,j,k)=Aix(1,j,k) - Aiy(i,j,k)=Aiy(1,j,k) - Aiz(i,j,k)=Aiz(1,j,k) - Asx(i,j,k)=Asx(1,j,k) - Asy(i,j,k)=Asy(1,j,k) - Asz(i,j,k)=Asz(1,j,k) - Ajac(i,j,k)=Ajac(1,j,k) ! A bug romoved, 2021-6-14 - - Axx(i,j,k)=Axx(1,j,k)+(1.d0-i)*(Axx(1,j,k)-Axx(2,j,k)) - Ayy(i,j,k)=Ayy(1,j,k)+(1.d0-i)*(Ayy(1,j,k)-Ayy(2,j,k)) - Azz(i,j,k)=Azz(1,j,k)+(1.d0-i)*(Azz(1,j,k)-Azz(2,j,k)) - enddo - enddo - enddo - endif - - if(npx .eq. npx0-1 .and. Para%Ghost_Cell(2) .eq. 1) then ! i+ - do k=1,nz - do j=1,ny - do i=nx+1, nx+LAP - Akx(i,j,k)=Akx(nx,j,k) - Aky(i,j,k)=Aky(nx,j,k) - Akz(i,j,k)=Akz(nx,j,k) - Aix(i,j,k)=Aix(nx,j,k) - Aiy(i,j,k)=Aiy(nx,j,k) - Aiz(i,j,k)=Aiz(nx,j,k) - Asx(i,j,k)=Asx(nx,j,k) - Asy(i,j,k)=Asy(nx,j,k) - Asz(i,j,k)=Asz(nx,j,k) - Ajac(i,j,k)=Ajac(nx,j,k) - - Axx(i,j,k)=Axx(nx,j,k)+(i-nx)*(Axx(nx,j,k)-Axx(nx-1,j,k)) - Ayy(i,j,k)=Ayy(nx,j,k)+(i-nx)*(Ayy(nx,j,k)-Ayy(nx-1,j,k)) - Azz(i,j,k)=Azz(nx,j,k)+(i-nx)*(Azz(nx,j,k)-Azz(nx-1,j,k)) - enddo - enddo - enddo - - endif - - if(npy .eq. 0 .and. Para%Ghost_Cell(3) .eq. 1) then ! j- - do k=1,nz - do j=1-LAP, 0 - do i=1,nx - Akx(i,j,k)=Akx(i,1,k) - Aky(i,j,k)=Aky(i,1,k) - Akz(i,j,k)=Akz(i,1,k) - Aix(i,j,k)=Aix(i,1,k) - Aiy(i,j,k)=Aiy(i,1,k) - Aiz(i,j,k)=Aiz(i,1,k) - Asx(i,j,k)=Asx(i,1,k) - Asy(i,j,k)=Asy(i,1,k) - Asz(i,j,k)=Asz(i,1,k) - Ajac(i,j,k)=Ajac(i,1,k) - - Axx(i,j,k)=Axx(i,1,k)+(1.d0-j)*(Axx(i,1,k)-Axx(i,2,k)) - Ayy(i,j,k)=Ayy(i,1,k)+(1.d0-j)*(Ayy(i,1,k)-Ayy(i,2,k)) - Azz(i,j,k)=Azz(i,1,k)+(1.d0-j)*(Azz(i,1,k)-Azz(i,2,k)) - enddo - enddo - enddo - endif - - if(npy .eq. npy0-1 .and. Para%Ghost_Cell(4) .eq. 1) then ! j+ - do k=1,nz - do j=ny+1,ny+LAP - do i=1,nx - Akx(i,j,k)=Akx(i,ny,k) - Aky(i,j,k)=Aky(i,ny,k) - Akz(i,j,k)=Akz(i,ny,k) - Aix(i,j,k)=Aix(i,ny,k) - Aiy(i,j,k)=Aiy(i,ny,k) - Aiz(i,j,k)=Aiz(i,ny,k) - Asx(i,j,k)=Asx(i,ny,k) - Asy(i,j,k)=Asy(i,ny,k) - Asz(i,j,k)=Asz(i,ny,k) - Ajac(i,j,k)=Ajac(i,ny,k) - - Axx(i,j,k)=Axx(i,ny,k)+(j-ny)*(Axx(i,ny,k)-Axx(i,ny-1,k)) - Ayy(i,j,k)=Ayy(i,ny,k)+(j-ny)*(Ayy(i,ny,k)-Ayy(i,ny-1,k)) - Azz(i,j,k)=Azz(i,ny,k)+(j-ny)*(Azz(i,ny,k)-Azz(i,ny-1,k)) - enddo - enddo - enddo - endif - - if(npz .eq. 0 .and. Para%Ghost_Cell(5) .eq. 1) then ! k- - do k=1-LAP,0 - do j=1,ny - do i=1,nx - Akx(i,j,k)=Akx(i,j,1) - Aky(i,j,k)=Aky(i,j,1) - Akz(i,j,k)=Akz(i,j,1) - Aix(i,j,k)=Aix(i,j,1) - Aiy(i,j,k)=Aiy(i,j,1) - Aiz(i,j,k)=Aiz(i,j,1) - Asx(i,j,k)=Asx(i,j,1) - Asy(i,j,k)=Asy(i,j,1) - Asz(i,j,k)=Asz(i,j,1) - Ajac(i,j,k)=Ajac(i,j,1) - - Axx(i,j,k)=Axx(i,j,1)+(1.d0-k)*(Axx(i,j,1)-Axx(i,j,2)) - Ayy(i,j,k)=Ayy(i,j,1)+(1.d0-k)*(Ayy(i,j,1)-Ayy(i,j,2)) - Azz(i,j,k)=Azz(i,j,1)+(1.d0-k)*(Azz(i,j,1)-Azz(i,j,2)) - enddo - enddo - enddo - endif - - if(npz .eq. npz0-1 .and. Para%Ghost_Cell(6) .eq. 1) then ! k+ - do k=nz+1,nz+LAP - do j=1,ny - do i=1,nx - Akx(i,j,k)=Akx(i,j,nz) - Aky(i,j,k)=Aky(i,j,nz) - Akz(i,j,k)=Akz(i,j,nz) - Aix(i,j,k)=Aix(i,j,nz) - Aiy(i,j,k)=Aiy(i,j,nz) - Aiz(i,j,k)=Aiz(i,j,nz) - Asx(i,j,k)=Asx(i,j,nz) - Asy(i,j,k)=Asy(i,j,nz) - Asz(i,j,k)=Asz(i,j,nz) - Ajac(i,j,k)=Ajac(i,j,nz) - - Axx(i,j,k)=Axx(i,j,nz)+(k-nz)*(Axx(i,j,nz)-Axx(i,j,nz-1)) - Ayy(i,j,k)=Ayy(i,j,nz)+(k-nz)*(Ayy(i,j,nz)-Ayy(i,j,nz-1)) - Azz(i,j,k)=Azz(i,j,nz)+(k-nz)*(Azz(i,j,nz)-Azz(i,j,nz-1)) - enddo - enddo - enddo - endif - end - - - -!----------------------------------------------- -! 2nd Exter-ploation Ghost Cell , in case Para%Ghost_Cell(:) ==1 or 2 - subroutine Flow_Ghost_Extent_2nd - use flow_data - implicit none - integer i,j,k - Real(kind=OCFD_REAL_KIND),parameter:: s1=0.8d0, s2=1.2d0 ! limter - - if(npx == 0 .and. (Para%Ghost_Cell(1) == 1 .or. Para%Ghost_Cell(1) == 2) ) then ! i- - do k=1,nz - do j=1,ny - do i=1-LAP,0 - u(i,j,k)=2.d0*u(1,j,k)-u(2-i,j,k) - v(i,j,k)=2.d0*v(1,j,k)-v(2-i,j,k) - w(i,j,k)=2.d0*w(1,j,k)-w(2-i,j,k) - - d(i,j,k)=2.d0*d(1,j,k)-d(2-i,j,k) - T(i,j,k)=2.d0*T(1,j,k)-T(2-i,j,k) - if(d(i,j,k) < s1*d(1,j,k)) d(i,j,k)=s1*d(1,j,k) - if(d(i,j,k) > s2*d(1,j,k)) d(i,j,k)=s2*d(1,j,k) - if(T(i,j,k) < s1*T(1,j,k)) T(i,j,k)=s1*T(1,j,k) - if(T(i,j,k) > s2*T(1,j,k)) T(i,j,k)=s2*T(1,j,k) - - - enddo - enddo - enddo - endif - - if(npx == npx0-1 .and. (Para%Ghost_Cell(2) == 1 .or. Para%Ghost_Cell(2) == 2) ) then ! i+ - do k=1,nz - do j=1,ny - do i=nx+1, nx+LAP - u(i,j,k)=2.d0*u(nx,j,k)-u(2*nx-i,j,k) - v(i,j,k)=2.d0*v(nx,j,k)-v(2*nx-i,j,k) - w(i,j,k)=2.d0*w(nx,j,k)-w(2*nx-i,j,k) - - d(i,j,k)=2.d0*d(nx,j,k)-d(2*nx-i,j,k) - T(i,j,k)=2.d0*T(nx,j,k)-T(2*nx-i,j,k) - - if(d(i,j,k) < s1*d(nx,j,k)) d(i,j,k)=s1*d(nx,j,k) - if(d(i,j,k) > s2*d(nx,j,k)) d(i,j,k)=s2*d(nx,j,k) - if(T(i,j,k) < s1*T(nx,j,k)) T(i,j,k)=s1*T(nx,j,k) - if(T(i,j,k) > s2*T(nx,j,k)) T(i,j,k)=s2*T(nx,j,k) - - enddo - enddo - enddo - endif - - if(npy==0 .and. (Para%Ghost_Cell(3) == 1 .or. Para%Ghost_Cell(3) == 2) ) then ! j- - do k=1,nz - do j=1-LAP,0 - do i=1,nx - u(i,j,k)=2.d0*u(i,1,k)-u(i,2-j,k) - v(i,j,k)=2.d0*v(i,1,k)-v(i,2-j,k) - w(i,j,k)=2.d0*w(i,1,k)-w(i,2-j,k) - - d(i,j,k)=2.d0*d(i,1,k)-d(i,2-j,k) - T(i,j,k)=2.d0*T(i,1,k)-T(i,2-j,k) - if(d(i,j,k) < s1*d(i,1,k)) d(i,j,k)=s1*d(i,1,k) - if(d(i,j,k) > s2*d(i,1,k)) d(i,j,k)=s2*d(i,1,k) - if(T(i,j,k) < s1*T(i,1,k)) T(i,j,k)=s1*T(i,1,k) - if(T(i,j,k) > s2*T(i,1,k)) T(i,j,k)=s2*T(i,1,k) - enddo - enddo - enddo - endif - - if(npy==npy0-1 .and. (Para%Ghost_Cell(4) == 1 .or. Para%Ghost_Cell(4) == 2) ) then ! j+ - do k=1,nz - do j=ny+1,ny+LAP - do i=1,nx - u(i,j,k)=2.d0*u(i,ny,k)-u(i,2*ny-j,k) - v(i,j,k)=2.d0*v(i,ny,k)-v(i,2*ny-j,k) - w(i,j,k)=2.d0*w(i,ny,k)-w(i,2*ny-j,k) - - d(i,j,k)=2.d0*d(i,ny,k)-d(i,2*ny-j,k) - T(i,j,k)=2.d0*T(i,ny,k)-T(i,2*ny-j,k) - if(d(i,j,k) < s1*d(i,ny,k)) d(i,j,k)=s1*d(i,ny,k) - if(d(i,j,k) > s2*d(i,ny,k)) d(i,j,k)=s2*d(i,ny,k) - if(T(i,j,k) < s1*T(i,ny,k)) T(i,j,k)=s1*T(i,ny,k) - if(T(i,j,k) > s2*T(i,ny,k)) T(i,j,k)=s2*T(i,ny,k) - enddo - enddo - enddo - endif - - if(npz==0 .and. (Para%Ghost_Cell(5) == 1 .or. Para%Ghost_Cell(5) == 2) ) then ! k- - do k=1-LAP,0 - do j=1,ny - do i=1,nx - u(i,j,k)=2.d0*u(i,j,1)-u(i,j,2-k) - v(i,j,k)=2.d0*v(i,j,1)-v(i,j,2-k) - w(i,j,k)=2.d0*w(i,j,1)-w(i,j,2-k) - d(i,j,k)=2.d0*d(i,j,1)-d(i,j,2-k) - T(i,j,k)=2.d0*T(i,j,1)-T(i,j,2-k) - if(d(i,j,k) < s1*d(i,j,1)) d(i,j,k)=s1*d(i,j,1) - if(d(i,j,k) > s2*d(i,j,1)) d(i,j,k)=s2*d(i,j,1) - if(T(i,j,k) < s1*T(i,j,1)) T(i,j,k)=s1*T(i,j,1) - if(T(i,j,k) > s2*T(i,j,1)) T(i,j,k)=s2*T(i,j,1) - - enddo - enddo - enddo - endif - - if(npz==npz0-1 .and. (Para%Ghost_Cell(6) == 1 .or. Para%Ghost_Cell(6) == 2) ) then ! k+ - do k=nz+1,nz+LAP - do j=1,ny - do i=1,nx - u(i,j,k)=2.d0*u(i,j,nz)-u(i,j,2*nz-k) - v(i,j,k)=2.d0*v(i,j,nz)-v(i,j,2*nz-k) - w(i,j,k)=2.d0*w(i,j,nz)-w(i,j,2*nz-k) - d(i,j,k)=2.d0*d(i,j,nz)-d(i,j,2*nz-k) - T(i,j,k)=2.d0*T(i,j,nz)-T(i,j,2*nz-k) - if(d(i,j,k) < s1*d(i,j,nz)) d(i,j,k)=s1*d(i,j,nz) - if(d(i,j,k) > s2*d(i,j,nz)) d(i,j,k)=s2*d(i,j,nz) - if(T(i,j,k) < s1*T(i,j,nz)) T(i,j,k)=s1*T(i,j,nz) - if(T(i,j,k) > s2*T(i,j,nz)) T(i,j,k)=s2*T(i,j,nz) - - enddo - enddo - enddo - endif - end - -!-------------------------------------------------- -! Ghost Cell for Jacobian coefficients ; 2nd order exterpolation - subroutine Jac_Ghost_Extent_2nd - use flow_data - implicit none - integer:: i,j,k, i1,j1,k1 - if(npx .eq. 0 .and. Para%Ghost_Cell(1) .eq. 2) then !i- - do k=1,nz - do j=1,ny - do i=1-LAP, 0 - i1= 2-i - Axx(i,j,k)=2.d0*Axx(1,j,k)-Axx(i1,j,k) - Ayy(i,j,k)=2.d0*Ayy(1,j,k)-Ayy(i1,j,k) - Azz(i,j,k)=2.d0*Azz(1,j,k)-Azz(i1,j,k) - enddo - enddo - enddo - - call comput_Jacobian3d_Ghost(1) ! Comput Jocabian coefficient of the Ghost Cells - - endif - - if(npx .eq. npx0-1 .and. Para%Ghost_Cell(2) .eq. 2) then ! i+ - do k=1,nz - do j=1,ny - do i=nx+1, nx+LAP - i1=2*nx-i - Axx(i,j,k)=2.d0*Axx(nx,j,k)-Axx(i1,j,k) - Ayy(i,j,k)=2.d0*Ayy(nx,j,k)-Ayy(i1,j,k) - Azz(i,j,k)=2.d0*Azz(nx,j,k)-Azz(i1,j,k) - enddo - enddo - enddo - - call comput_Jacobian3d_Ghost(2) ! Comput Jocabian coefficient of the Ghost Cells - endif - - if(npy .eq. 0 .and. Para%Ghost_Cell(3) .eq. 2) then ! j- - do k=1,nz - do j=1-LAP, 0 - do i=1,nx - j1=2-j - Axx(i,j,k)=2.d0*Axx(i,1,k)-Axx(i,j1,k) - Ayy(i,j,k)=2.d0*Ayy(i,1,k)-Ayy(i,j1,k) - Azz(i,j,k)=2.d0*Azz(i,1,k)-Azz(i,j1,k) - enddo - enddo - enddo - call comput_Jacobian3d_Ghost(3) ! Comput Jocabian coefficient of the Ghost Cells - endif - - if(npy .eq. npy0-1 .and. Para%Ghost_Cell(4) .eq. 2) then ! j+ - do k=1,nz - do j=ny+1,ny+LAP - do i=1,nx - j1=2*ny-j - Axx(i,j,k)=2.d0*Axx(i,ny,k)-Axx(i,j1,k) - Ayy(i,j,k)=2.d0*Ayy(i,ny,k)-Ayy(i,j1,k) - Azz(i,j,k)=2.d0*Azz(i,ny,k)-Azz(i,j1,k) - enddo - enddo - enddo - call comput_Jacobian3d_Ghost(4) ! Comput Jocabian coefficient of the Ghost Cells - endif - - if(npz .eq. 0 .and. Para%Ghost_Cell(5) .eq. 2) then ! k- - do k=1-LAP,0 - do j=1,ny - do i=1,nx - k1=2-k - Axx(i,j,k)=2.d0*Axx(i,j,1)-Axx(i,j,k1) - Ayy(i,j,k)=2.d0*Ayy(i,j,1)-Ayy(i,j,k1) - Azz(i,j,k)=2.d0*Azz(i,j,1)-Azz(i,j,k1) - enddo - enddo - enddo - call comput_Jacobian3d_Ghost(5) ! Comput Jocabian coefficient of the Ghost Cells - endif - - if(npz .eq. npz0-1 .and. Para%Ghost_Cell(6) .eq. 2) then ! k+ - do k=nz+1,nz+LAP - do j=1,ny - do i=1,nx - k1=2*nz-k - Axx(i,j,k)=2.d0*Axx(i,j,nz)-Axx(i,j,k1) - Ayy(i,j,k)=2.d0*Ayy(i,j,nz)-Ayy(i,j,k1) - Azz(i,j,k)=2.d0*Azz(i,j,nz)-Azz(i,j,k1) - enddo - enddo - enddo - call comput_Jacobian3d_Ghost(6) ! Comput Jocabian coefficient of the Ghost Cells - endif - -! test test ------------------------ -! if(npx .eq. 11 .and. npy .eq. 0 .and. npz .eq. 4) then -! open(99,file="test-jac.dat") -! do j=1-LAP, 5 -! write(99,"(15F16.8)") 1.d0*j, Axx(1,j,1),Ayy(1,j,1),Azz(1,j,1),Akx(1,j,1),Aky(1,j,1),Akz(1,j,1), & -! Aix(1,j,1),Aiy(1,j,1),Aiz(1,j,1),Asx(1,j,1),Asy(1,j,1),Asz(1,j,1),Ajac(1,j,1) -! enddo -! close(99) -! endif - - - end - -!--------Comput Jocabian coefficients at Ghost Cells - subroutine comput_Jacobian3d_Ghost(nb) - Use flow_data - implicit none - integer:: nb, ib,ie,jb,je,kb,ke ! Jocabian data range - integer:: ib1, ie1, jb1,je1,kb1,ke1 ! coordinate data range - real(kind=OCFD_REAL_KIND):: xi1,xj1,xk1, yi1, yj1, yk1 , zi1, zj1, zk1, Jac1 - integer:: i,j,k - - if(nb .eq. 1) then ! i- - ib=1-LAP; ie=0 ; jb=1; je=ny ; kb=1; ke=nz - ib1=ib; ie1=1 ; jb1=jb; je1=je ; kb1=kb; ke1=ke - else if (nb .eq. 2) then ! i+ - ib=nx+1; ie=nx+LAP ; jb=1; je=ny ; kb=1; ke=nz - ib1=nx; ie1=ie ; jb1=jb; je1=je ; kb1=kb; ke1=ke - else if(nb .eq. 3) then - ib=1; ie=nx ; jb=1-LAP; je=0 ; kb=1; ke=nz - ib1=ib; ie1=ie ; jb1=jb; je1=1 ; kb1=kb; ke1=ke - else if(nb .eq. 4) then - ib=1; ie=nx ; jb=ny+1; je=ny+LAP ; kb=1; ke=nz - ib1=ib; ie1=ie ; jb1=ny; je1=je ; kb1=kb; ke1=ke - else if(nb .eq. 5) then - ib=1; ie=nx ; jb=1; je=ny ; kb=1-LAP; ke=0 - ib1=ib; ie1=ie ; jb1=jb; je1=je ; kb1=kb; ke1=1 - else if(nb .eq. 6) then - ib=1; ie=nx ; jb=1; je=ny ; kb=nz+1; ke=nz+LAP - ib1=ib; ie1=ie ; jb1=jb; je1=je ; kb1=nz; ke1=ke - endif - - - do k=kb,ke - do j=jb,je - do i=ib,ie - - if(i .eq. ib1 ) then - xi1=(-3.d0*Axx(i,j,k)+4.d0*Axx(i+1,j,k)-Axx(i+2,j,k))/(2.d0*hx) ! 2nd one-side scheme - yi1=(-3.d0*Ayy(i,j,k)+4.d0*Ayy(i+1,j,k)-Ayy(i+2,j,k))/(2.d0*hx) - zi1=(-3.d0*Azz(i,j,k)+4.d0*Azz(i+1,j,k)-Azz(i+2,j,k))/(2.d0*hx) - else if (i .eq. ie1) then - xi1=(Axx(i-2,j,k)-4.d0*Axx(i-1,j,k) +3.d0*Axx(i,j,k))/(2.d0*hx) ! 2nd one-side scheme - yi1=(Ayy(i-2,j,k)-4.d0*Ayy(i-1,j,k) +3.d0*Ayy(i,j,k))/(2.d0*hx) ! 2nd one-side scheme - zi1=(Azz(i-2,j,k)-4.d0*Azz(i-1,j,k) +3.d0*Azz(i,j,k))/(2.d0*hx) ! 2nd one-side scheme - else if (i .eq. ib1+1 .or. i .eq. ie1-1) then - xi1=(Axx(i+1,j,k)-Axx(i-1,j,k))/(2.d0*hx) ! 2nd centeral scheme - yi1=(Ayy(i+1,j,k)-Ayy(i-1,j,k))/(2.d0*hx) - zi1=(Azz(i+1,j,k)-Azz(i-1,j,k))/(2.d0*hx) - else - xi1=(8.d0*(Axx(i+1,j,k)-Axx(i-1,j,k)) - (Axx(i+2,j,k)-Axx(i-2,j,k)))/(12.d0*hx) ! 4th central scheme - yi1=(8.d0*(Ayy(i+1,j,k)-Ayy(i-1,j,k)) - (Ayy(i+2,j,k)-Ayy(i-2,j,k)))/(12.d0*hx) - zi1=(8.d0*(Azz(i+1,j,k)-Azz(i-1,j,k)) - (Azz(i+2,j,k)-Azz(i-2,j,k)))/(12.d0*hx) - endif - - if(j .eq. jb1 ) then - xj1=(-3.d0*Axx(i,j,k)+4.d0*Axx(i,j+1,k)-Axx(i,j+2,k))/(2.d0*hy) ! 2nd one-side scheme - yj1=(-3.d0*Ayy(i,j,k)+4.d0*Ayy(i,j+1,k)-Ayy(i,j+2,k))/(2.d0*hy) - zj1=(-3.d0*Azz(i,j,k)+4.d0*Azz(i,j+1,k)-Azz(i,j+2,k))/(2.d0*hy) - - else if (j .eq. je1) then - xj1=(Axx(i,j-2,k)-4.d0*Axx(i,j-1,k) +3.d0*Axx(i,j,k))/(2.d0*hy) ! 2nd one-side scheme - yj1=(Ayy(i,j-2,k)-4.d0*Ayy(i,j-1,k) +3.d0*Ayy(i,j,k))/(2.d0*hy) - zj1=(Azz(i,j-2,k)-4.d0*Azz(i,j-1,k) +3.d0*Azz(i,j,k))/(2.d0*hy) - else if (j .eq. jb1+1 .or. j .eq. je1-1) then - xj1=(Axx(i,j+1,k)-Axx(i,j-1,k))/(2.d0*hy) ! 2nd centeral scheme - yj1=(Ayy(i,j+1,k)-Ayy(i,j-1,k))/(2.d0*hy) - zj1=(Azz(i,j+1,k)-Azz(i,j-1,k))/(2.d0*hy) - else - xj1=(8.d0*(Axx(i,j+1,k)-Axx(i,j-1,k)) - (Axx(i,j+2,k)-Axx(i,j-2,k)))/(12.d0*hy) ! 4th central scheme - yj1=(8.d0*(Ayy(i,j+1,k)-Ayy(i,j-1,k)) - (Ayy(i,j+2,k)-Ayy(i,j-2,k)))/(12.d0*hy) - zj1=(8.d0*(Azz(i,j+1,k)-Azz(i,j-1,k)) - (Azz(i,j+2,k)-Azz(i,j-2,k)))/(12.d0*hy) - endif - - if(k .eq. kb1 ) then - xk1=(-3.d0*Axx(i,j,k)+4.d0*Axx(i,j,k+1)-Axx(i,j,k+2))/(2.d0*hz) ! 2nd one-side scheme - yk1=(-3.d0*Ayy(i,j,k)+4.d0*Ayy(i,j,k+1)-Ayy(i,j,k+2))/(2.d0*hz) - zk1=(-3.d0*Azz(i,j,k)+4.d0*Azz(i,j,k+1)-Azz(i,j,k+2))/(2.d0*hz) - else if (k .eq. ke1) then - xk1=(Axx(i,j,k-2)-4.d0*Axx(i,j,k-1) +3.d0*Axx(i,j,k))/(2.d0*hz) ! 2nd one-side scheme - yk1=(Ayy(i,j,k-2)-4.d0*Ayy(i,j,k-1) +3.d0*Ayy(i,j,k))/(2.d0*hz) - zk1=(Azz(i,j,k-2)-4.d0*Azz(i,j,k-1) +3.d0*Azz(i,j,k))/(2.d0*hz) - else if (k .eq. kb1+1 .or. k .eq. ke1-1) then - xk1=(Axx(i,j,k+1)-Axx(i,j,k-1))/(2.d0*hz) ! 2nd centeral scheme - yk1=(Ayy(i,j,k+1)-Ayy(i,j,k-1))/(2.d0*hz) - zk1=(Azz(i,j,k+1)-Azz(i,j,k-1))/(2.d0*hz) - else - xk1=(8.d0*(Axx(i,j,k+1)-Axx(i,j,k-1)) - (Axx(i,j,k+2)-Axx(i,j,k-2)))/(12.d0*hz) ! 4th central scheme - yk1=(8.d0*(Ayy(i,j,k+1)-Ayy(i,j,k-1)) - (Ayy(i,j,k+2)-Ayy(i,j,k-2)))/(12.d0*hz) - zk1=(8.d0*(Azz(i,j,k+1)-Azz(i,j,k-1)) - (Azz(i,j,k+2)-Azz(i,j,k-2)))/(12.d0*hz) - endif - - Jac1=1.d0/(xi1*yj1*zk1+yi1*zj1*xk1+zi1*xj1*yk1-zi1*yj1*xk1-yi1*xj1*zk1-xi1*zj1*yk1) ! 1./Jocabian = d(x,y,z)/d(i,j,k) - Ajac(i,j,k)=Jac1 - Akx(i,j,k)=Jac1*(yj1*zk1-zj1*yk1) - Aky(i,j,k)=Jac1*(zj1*xk1-xj1*zk1) - Akz(i,j,k)=Jac1*(xj1*yk1-yj1*xk1) - Aix(i,j,k)=Jac1*(yk1*zi1-zk1*yi1) - Aiy(i,j,k)=Jac1*(zk1*xi1-xk1*zi1) - Aiz(i,j,k)=Jac1*(xk1*yi1-yk1*xi1) - Asx(i,j,k)=Jac1*(yi1*zj1-zi1*yj1) - Asy(i,j,k)=Jac1*(zi1*xj1-xi1*zj1) - Asz(i,j,k)=Jac1*(xi1*yj1-yi1*xj1) - if(Jac1 .lt. 0) then - print*, " Jocabian < 0 !!! , Jac=", Jac1 - print*, "i,j,k=", i_offset(npx)+i-1, j_offset(npy)+j-1, k_offset(npz)+k-1 - endif - enddo - enddo - enddo - - end - - diff --git a/OCFD_GhostCell_UserDef.f90 b/OCFD_GhostCell_UserDef.f90 deleted file mode 100644 index e290fcd..0000000 --- a/OCFD_GhostCell_UserDef.f90 +++ /dev/null @@ -1,137 +0,0 @@ -! User Defined Ghost-Cell boundary, for Jacobian and flow -!-------------------------------------------------- -! Ghost Cell for Jacobian coefficients (User defined) - subroutine Jac_Ghost_Userdef - use flow_data - implicit none - if(Para%IBC .eq. BC_SweptCorner ) then - call Jac_Ghost_Sweptcorner - else if (Para%IBC .eq. BC_BoundaryLayer ) then - call Jac_Ghost_flatplate ! only work in flatplate case ( invalid for compression corner or curve wall case) - endif - end - - subroutine Flow_Ghost_Userdef - use flow_data - implicit none - if(Para%IBC .eq. BC_SweptCorner ) then - call Flow_Ghost_Sweptcorner - else if (Para%IBC .eq. BC_BoundaryLayer ) then - call Flow_Ghost_flatplate - endif - end - - -! Ghost Cell for Jacobian coefficients for sweptcorner (symmetry in plane z=0) - subroutine Jac_Ghost_Sweptcorner - use flow_data - implicit none - integer:: i,j,k,k1 - if(npz .eq. 0 .and. Para%Ghost_Cell(5) .eq. -1) then !k- - do k=1-LAP,0 - k1=1-k - do j=1,ny - do i=1,nx - Akx(i,j,k)= Akx(i,j,k1) - Aky(i,j,k)= Aky(i,j,k1) - Akz(i,j,k)= -Akz(i,j,k1) - Aix(i,j,k)= Aix(i,j,k1) - Aiy(i,j,k)= Aiy(i,j,k1) - Aiz(i,j,k)= -Aiz(i,j,k1) - Asx(i,j,k)= -Asx(i,j,k1) - Asy(i,j,k)= -Asy(i,j,k1) - Asz(i,j,k)= Asz(i,j,k1) - Ajac(i,j,k)=Ajac(i,j,k1) - - Axx(i,j,k)= Axx(i,j,k1) - Ayy(i,j,k)= Ayy(i,j,k1) - Azz(i,j,k)=-Azz(i,j,k1) - enddo - enddo - enddo - endif - end - -!----------------------------------------------- -! Ghost Cell for Sweptcorner (z=0 : symmetry ) - subroutine Flow_Ghost_Sweptcorner - use flow_data - implicit none - integer i,j,k,k1 - - if(npz==0 .and. Para%Ghost_Cell(5) .eq. -1) then ! k- - do k=1-LAP,0 - k1=1-k - do j=1,ny - do i=1,nx - u(i,j,k)=u(i,j,k1) - v(i,j,k)=v(i,j,k1) - w(i,j,k)=-w(i,j,k1) - d(i,j,k)=d(i,j,k1) - T(i,j,k)=T(i,j,k1) - enddo - enddo - enddo - endif - - end - -! Used for flatplate boundary layers at y=0 (symmetry in y=0) - subroutine Jac_Ghost_flatplate - use flow_data - implicit none - integer:: i,j,k,j1 - if(npy .eq. 0 .and. Para%Ghost_Cell(3) .eq. -1) then !j- - do k=1,nz - do j=1-LAP,0 - j1=2-j ! 0 <---> 2 ; -1 <----> 3 - do i=1,nx - Akx(i,j,k)= Akx(i,j1,k) - Aky(i,j,k)= -Aky(i,j1,k) - Akz(i,j,k)= Akz(i,j1,k) - Aix(i,j,k)= -Aix(i,j1,k) - Aiy(i,j,k)= Aiy(i,j1,k) - Aiz(i,j,k)= -Aiz(i,j1,k) - Asx(i,j,k)= Asx(i,j1,k) - Asy(i,j,k)= -Asy(i,j1,k) - Asz(i,j,k)= Asz(i,j1,k) - Ajac(i,j,k)= Ajac(i,j1,k) - - Axx(i,j,k)= Axx(i,j1,k) - Ayy(i,j,k)= -Ayy(i,j1,k) - Azz(i,j,k)= Azz(i,j1,k) - enddo - enddo - enddo - endif - end - -!----------------------------------------------- -! Ghost Cell for flatplate (y=0 : symmetry ) - subroutine Flow_Ghost_flatplate - use flow_data - implicit none - integer i,j,k,j1 - Real(kind=OCFD_REAL_KIND),parameter:: s1=0.5d0, s2=2.d0 ! limter - - if(npy==0 .and. Para%Ghost_Cell(3) == -1) then ! j- - - do k=1,nz - do j=1-LAP,0 - j1=2-j - do i=1,nx - u(i,j,k)=2.d0*u(i,1,k)-u(i,j1,k) - v(i,j,k)=2.d0*v(i,1,k)-v(i,j1,k) - w(i,j,k)=2.d0*w(i,1,k)-w(i,j1,k) - - d(i,j,k)=2.d0*d(i,1,k)-d(i,j1,k) - T(i,j,k)=2.d0*T(i,1,k)-T(i,j1,k) - if(d(i,j,k) < s1*d(i,1,k)) d(i,j,k)=s1*d(i,1,k) - if(d(i,j,k) > s2*d(i,1,k)) d(i,j,k)=s2*d(i,1,k) - if(T(i,j,k) < s1*T(i,1,k)) T(i,j,k)=s1*T(i,1,k) - if(T(i,j,k) > s2*T(i,1,k)) T(i,j,k)=s2*T(i,1,k) - enddo - enddo - enddo - endif - end \ No newline at end of file diff --git a/OCFD_IO.f90 b/OCFD_IO.f90 deleted file mode 100644 index 48ebbbc..0000000 --- a/OCFD_IO.f90 +++ /dev/null @@ -1,97 +0,0 @@ -!Read & save file -!Copyright by Li Xinliang, lixl@lnm.imech.ac.cn -!----------------------------------------------------------------------------------------- -! read file, OpenCFD-1.5 - subroutine read_flow_data - use flow_data - implicit none - character(len=100):: filename - integer:: ierr -!----------------------------------------------------------- - filename="opencfd.dat" - if(my_id.eq.0) then - print*, 'read initial data file: ',filename - open(55,file=filename,form='unformatted') - read(55) Istep,tt - print*, Istep,tt - endif - - call MPI_bcast(Istep,1,MPI_INTEGER,0, MPI_COMM_WORLD,ierr) - call MPI_bcast(tt,1,OCFD_DATA_TYPE,0, MPI_COMM_WORLD,ierr) - call read_3d1(55,d) - call read_3d1(55,u) - call read_3d1(55,v) - call read_3d1(55,w) - call read_3d1(55,T) - - if(my_id .eq. 0) then - close(55) - print*, 'read data ok' - endif -end - - -!================================================================================ -! save file, OpenCFD 1.5 - subroutine save_flow_data - use flow_data - implicit none - character(len=100) filename1 - write(filename1,"('OCFD'I8.8'.dat')") Istep - - if(my_id.eq.0) then - print*, 'write data file:',filename1 - open(155,file=filename1,form='unformatted') - write(155) Istep,tt - endif - call write_3d1(155,d) - call write_3d1(155,u) - call write_3d1(155,v) - call write_3d1(155,w) - call write_3d1(155,T) - if(my_id .eq. 0) then - close(155) - print*, 'write data ok' - endif - end -!------------------------------------------------------------------------------------------- - -!--------------------------------------------------------------------------------------------- - subroutine write_3d1(file_no,U) - use flow_para - implicit none - integer file_no,i,j,k - real(kind=OCFD_REAL_KIND):: U(1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP) - real(kind=OCFD_REAL_KIND),allocatable:: U1(:,:,:) - allocate(U1(nx,ny,nz)) - do k=1,nz - do j=1,ny - do i=1,nx - U1(i,j,k)=U(i,j,k) - enddo - enddo - enddo - call write_3d(file_no,U1,nx,ny,nz,nx_global,ny_global,nz_global) - deallocate(U1) - end - - - subroutine read_3d1(file_no,U) - use flow_para - implicit none - integer file_no,i,j,k - real(kind=OCFD_REAL_KIND):: U(1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP) - real(kind=OCFD_REAL_KIND),allocatable:: U1(:,:,:) - allocate(U1(nx,ny,nz)) - call read_3d(file_no,U1,nx,ny,nz,nx_global,ny_global,nz_global) - do k=1,nz - do j=1,ny - do i=1,nx - U(i,j,k)=U1(i,j,k) - enddo - enddo - enddo - deallocate(U1) - end - - diff --git a/OCFD_IO_mpi.f90 b/OCFD_IO_mpi.f90 deleted file mode 100644 index ca1cbbb..0000000 --- a/OCFD_IO_mpi.f90 +++ /dev/null @@ -1,348 +0,0 @@ -! Read and write files by MPI -! Copyright by Li Xinliang -!------------------------------------------------------------ - - - -!-------------------------------------------------------------------------- -! write f(1:nx_global, 1:ny_global, ka) (f=d,u,v,w,T) - subroutine write_2d_XYa(file_no,ka,U) -! write a xy-plane data, i.e U_globle(1:nx_global,1:ny_lobal,ka) -! Use MPI_REDUCE - use flow_para - implicit none - integer file_no, ka,node_k, k_local,i,j,i1,j1,ierr - real(kind=OCFD_REAL_KIND):: U(1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP) - real(kind=OCFD_REAL_KIND),allocatable,dimension(:,:) :: U2d,U0 - - allocate(U2d(nx_global,ny_global),U0(nx_global,ny_global)) - U2d=0.d0 - U0=0.d0 - call get_k_node(ka,node_k,k_local) - if(npz .eq. node_k) then - do j=1,ny - do i=1,nx - i1=i_offset(npx)+i-1 - j1=j_offset(npy)+j-1 - U2d(i1,j1)=U(i,j,k_local) - enddo - enddo - endif - call MPI_Reduce(U2d,U0,nx_global*ny_global,OCFD_DATA_TYPE,MPI_SUM,0,MPI_COMM_WORLD,ierr) - if(my_id.eq.0) then - write (file_no) U0 - endif - deallocate(U2d,U0) - end - - -!-------------------------------------------------------------- -!-----Write a 2D Y-Z (j-k) plane from 3-D array - subroutine write_2d_YZa(file_no,ia,U) - use flow_para - implicit none - integer ierr,ia,node_i,i_local - integer file_no,j,k,j1,k1 - real(kind=OCFD_REAL_KIND):: U(1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP) - real(kind=OCFD_REAL_KIND),allocatable,dimension(:,:):: U2d, U0 - -!-------------------------------------------- - allocate (U2d(ny_global,nz_global), U0(ny_global,nz_global)) - U2d=0.d0 - U0=0.d0 - - call get_i_node(ia,node_i,i_local) - if(npx .eq. node_i) then - do k=1,nz - do j=1,ny - j1=j_offset(npy)+j-1 - k1=k_offset(npz)+k-1 - U2d(j1,k1)=U(i_local,j,k) - enddo - enddo - endif - - call MPI_Reduce(U2d,U0,ny_global*nz_global,OCFD_DATA_TYPE,MPI_SUM,0,MPI_COMM_WORLD,ierr) - if(my_id.eq.0) then - write (file_no) U0 - endif - deallocate(U2d,U0) - end - -!------------------------------------------------- -!----Write a 2d xz-plane from 3d array------------------------ - - subroutine write_2d_XZa(file_no,ja,U) - use flow_para - implicit none - integer file_no,ierr,i,k,i1,k1, ja,node_j,j_local - real(kind=OCFD_REAL_KIND):: U(1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP) - real(kind=OCFD_REAL_KIND),allocatable,dimension(:,:):: U2d, U0 - allocate( U2d(nx_global,nz_global), U0(nx_global,nz_global)) - - U2d=0.d0 - U0=0.d0 - call get_j_node(ja,node_j,j_local) - if(npy .eq. node_j) then - do k=1,nz - do i=1,nx - i1=i_offset(npx)+i-1 - k1=k_offset(npz)+k-1 - U2d(i1,k1)=U(i,j_local,k) - enddo - enddo - endif - call MPI_Reduce(U2d,U0,nx_global*nz_global,OCFD_DATA_TYPE,MPI_SUM,0,MPI_COMM_WORLD,ierr) - if(my_id.eq.0) then - write (file_no) U0 - endif - deallocate(U2d,U0) - end - -!-------------------------------------------------- - -!----Write points from 3d array------------------------ - - subroutine write_points(file_no,U,mpoints,ia,ja,ka) - use flow_para - implicit none - integer mpoints,m,nrecv - integer Status(MPI_status_Size),ierr - integer file_no, node_i,node_j,node_k,i_local,j_local,k_local - integer,dimension(mpoints):: ia,ja,ka - real(kind=OCFD_REAL_KIND):: U(1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP) - real(kind=OCFD_REAL_KIND):: U1(mpoints) -!-------------------------------- - do m=1,mpoints - call get_i_node(ia(m),node_i,i_local) - call get_j_node(ja(m),node_j,j_local) - call get_k_node(ka(m),node_k,k_local) - if(npx.eq.node_i .and. npy .eq. node_j .and. npz .eq. node_k) then - call MPI_Bsend(U(i_local,j_local,k_local),1,OCFD_DATA_TYPE, 0,0,MPI_COMM_WORLD,ierr) - endif - - if(my_id.eq.0) then - nrecv=node_k*npx0*npy0+node_j*npx0+node_i - call MPI_Recv(U1(m),1,OCFD_DATA_TYPE, nrecv,0,MPI_COMM_WORLD,status,ierr) - endif - enddo - if(my_id .eq. 0) then - write (file_no) U1 - endif - end - - - -!-------------------------------------------------- - subroutine read_3d (file_no,U,nx,ny,nz,nx0,ny0,nz0) - use OCFD_precision - use Para_mpi - implicit none - integer nx,ny,nz,nx0,ny0,nz0 - integer Status(MPI_status_Size),ierr,i1,j1,k1,nk,i0,j0,ia,i,j,k,kk - integer file_no,npx1,npy1,npz1,recvcount - real(kind=OCFD_REAL_KIND):: U(nx,ny,nz) - real(kind=OCFD_REAL_KIND),allocatable:: buff2d(:,:),buff1(:,:),buff2(:),buff_recv(:) - integer,allocatable:: sendcounts1(:), displs1(:),sendcounts2(:), displs2(:) -!--------------------------------------------------------------- - allocate(buff2d(nx0,ny0),buff1(nx0,ny),buff2(nx0*ny),buff_recv(nx*ny)) - allocate(sendcounts1(npy0),displs1(npy0),sendcounts2(npx0),displs2(npx0)) - - if(my_id.eq.0) print*, 'read 3d data ...' - - - do npy1=0,npy0-1 - sendcounts1(npy1+1)=nx0*j_nn(npy1) - if(npy1 .eq. 0) then - displs1(npy1+1)=0 - else - displs1(npy1+1)=displs1(npy1)+sendcounts1(npy1) - endif - enddo - - - do npx1=0, npx0-1 - sendcounts2(npx1+1)=i_nn(npx1)*ny - if(npx1 .eq. 0) then - displs2(npx1+1)=0 - else - displs2(npx1+1)=displs2(npx1)+sendcounts2(npx1) - endif - enddo - - do kk=1,nz0 - call get_k_node(kk,nk,k1) - - if(my_id.eq.0) then -! print*, "before read",kk - read(file_no) buff2d -! print*, "after read" - endif - - if(nk .ne. 0 ) then - if(my_id .eq. 0) call MPI_Send(buff2d, nx0*ny0, OCFD_DATA_TYPE, nk*(npx0*npy0), 6666, MPI_COMM_WORLD,ierr) - if(npx.eq.0 .and. npy .eq. 0 .and. npz .eq. nk) & - call MPI_recv(buff2d, nx0*ny0, OCFD_DATA_TYPE, 0, 6666, MPI_COMM_WORLD,status,ierr) - endif - - if(npz .eq. nk ) then - if(npx .eq. 0) then - call MPI_scatterv(buff2d,sendcounts1,displs1,OCFD_DATA_TYPE, buff1,nx0*ny,OCFD_DATA_TYPE,0,MPI_COMM_Y,ierr) - endif -! re-arrage data ......, transfer buff1 to buff2 - ia=0 - do npx1=0,npx0-1 - do i=1,i_nn(npx1)*ny - i0=i_offset(npx1)+mod(i-1,i_nn(npx1)) ! i_offset(npx1)+(mod(i-1,i_nn(npx1))+1) -1 - j0=int((i-1)/i_nn(npx1))+1 - buff2(ia+i)=buff1(i0,j0) - enddo - ia=ia+i_nn(npx1)*ny - enddo - - call MPI_scatterv(buff2,sendcounts2,displs2,OCFD_DATA_TYPE, buff_recv,nx*ny,OCFD_DATA_TYPE,0,MPI_COMM_X,ierr) - - do j1=1,ny - do i1=1,nx - U(i1,j1,k1)=buff_recv(i1+(j1-1)*nx) - enddo - enddo - endif - enddo - deallocate(buff2d,buff1,buff2,buff_recv) - deallocate(sendcounts1,displs1,sendcounts2,displs2) - end - - -!------------------------------------------------------------------------------------------ - subroutine write_3d(file_no,U,nx,ny,nz,nx0,ny0,nz0) - use OCFD_precision - use Para_mpi - implicit none - integer nx,ny,nz,nx0,ny0,nz0 - integer Status(MPI_status_Size),ierr,i1,j1,k1,nk,i0,j0,ia,i,j,k,kk - integer file_no,npx1,npy1,npz1,recvcount - real(kind=OCFD_REAL_KIND):: U(nx,ny,nz) - real(kind=OCFD_REAL_KIND),allocatable:: buff2d(:,:),buff1(:,:),buff2(:),buff_send(:) - integer,allocatable:: recvcounts1(:), displs1(:),recvcounts2(:), displs2(:) -!--------------------------------------------------------------- - allocate(buff2d(nx0,ny0),buff1(nx0,ny),buff2(nx0*ny),buff_send(nx*ny)) - allocate(recvcounts1(npy0),displs1(npy0),recvcounts2(npx0),displs2(npx0)) - - if(my_id.eq.0) print*, 'write 3d data ...' - - do npy1=0,npy0-1 - recvcounts1(npy1+1)=nx0*j_nn(npy1) - if(npy1 .eq. 0) then - displs1(npy1+1)=0 - else - displs1(npy1+1)=displs1(npy1)+recvcounts1(npy1) - endif - enddo - - - do npx1=0, npx0-1 - recvcounts2(npx1+1)=i_nn(npx1)*ny - if(npx1 .eq. 0) then - displs2(npx1+1)=0 - else - displs2(npx1+1)=displs2(npx1)+recvcounts2(npx1) - endif - enddo - - do kk=1,nz0 - call get_k_node(kk,nk,k1) - - if(npz .eq. nk ) then - do j1=1,ny - do i1=1,nx - buff_send(i1+(j1-1)*nx)=U(i1,j1,k1) - enddo - enddo - call MPI_gatherv(buff_send,nx*ny,OCFD_DATA_TYPE, buff2, recvcounts2,displs2,OCFD_DATA_TYPE, 0,MPI_COMM_X,ierr) - - ia=0 - do npx1=0,npx0-1 - do i=1,i_nn(npx1)*ny - i0=i_offset(npx1)+mod(i-1,i_nn(npx1)) ! i_offset(npx1)+(mod(i-1,i_nn(npx1))+1) -1 - j0=int((i-1)/i_nn(npx1))+1 - buff1(i0,j0)=buff2(ia+i) - enddo - ia=ia+i_nn(npx1)*ny - enddo - - if(npx .eq. 0) then - call MPI_gatherv(buff1,nx0*ny,OCFD_DATA_TYPE,buff2d,recvcounts1,displs1,OCFD_DATA_TYPE,0,MPI_COMM_Y,ierr) - endif - endif - - if(nk .ne. 0 ) then - if(npx.eq.0 .and. npy .eq. 0 .and. npz .eq. nk) & - call MPI_send(buff2d, nx0*ny0, OCFD_DATA_TYPE, 0, 6666, MPI_COMM_WORLD,ierr) - if(my_id .eq. 0) call MPI_recv(buff2d, nx0*ny0, OCFD_DATA_TYPE, nk*(npx0*npy0), 6666, MPI_COMM_WORLD,status,ierr) - endif - - if(my_id.eq.0) then - write(file_no) buff2d - endif - enddo - - deallocate(buff2d,buff1,buff2,buff_send) - deallocate(recvcounts1,displs1,recvcounts2,displs2) - - end - - - -!--------------------------------Write blockdata from 3d array------------------------------------------------- - - subroutine write_blockdata(file_no,U,ib,ie,jb,je,kb,ke) - use flow_para - implicit none - integer Status(MPI_status_Size),ierr - integer:: file_no,ib,ie,jb,je,kb,ke,nx1,ny1,nz1,i,j,k,i0,j0,k0,i1,j1,k1 - real(kind=OCFD_REAL_KIND):: U(1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP) - real(kind=OCFD_REAL_KIND),allocatable,dimension(:,:,:):: U1,U0 -!-------------------------------- - nx1=ie-ib+1 ; ny1=je-jb+1 ; nz1= ke-kb+1 - allocate(U1(nx1,ny1,nz1), U0 (nx1,ny1,nz1)) - do k=1,nz1 - do j=1,ny1 - do i=1,nx1 - U1(i,j,k)=0.d0 - U0(i,j,k)=0.d0 - enddo - enddo - enddo - - do k=1,nz - do j=1,ny - do i=1,nx - k0=k_offset(npz)+k-1 - j0=j_offset(npy)+j-1 - i0=i_offset(npx)+i-1 - if(i0 >= ib .and. i0 <=ie .and. j0 >=jb .and. j0<=je .and. k0>=kb .and. k0<=ke ) then - i1=i0-ib+1 - j1=j0-jb+1 - k1=k0-kb+1 - U1(i1,j1,k1)=U(i,j,k) - endif - enddo - enddo - enddo - - call MPI_Reduce(U1,U0,nx1*ny1*nz1, OCFD_DATA_TYPE, MPI_SUM, 0, MPI_COMM_WORLD,ierr) - - if(my_id .eq. 0) then - write (file_no) U0 - endif - deallocate(U1,U0) - end - -!-------------------------------------------------- - - - - - - diff --git a/OCFD_NS_Solver.f90 b/OCFD_NS_Solver.f90 deleted file mode 100644 index 9710ee9..0000000 --- a/OCFD_NS_Solver.f90 +++ /dev/null @@ -1,159 +0,0 @@ -! 3D Compressible N-S Finite Difference Solver -! CopyRight by Li Xinliang Email: lixl@imech.ac.cn -! Version 2.x 2021-2 -!--------------------------------------------------------------------- - subroutine NS_solver - use flow_data - implicit none - real*8:: wall_time - integer:: KRK,i,j,k,m,ierr -!----------------------------------------------------------------------- - call allocate_flow_data ! f, fn, d,u,v,w,T, Axx,Ayy,....,Ajac - call allocate_inviscous_data ! work data for inviscous terms - call allocate_vicous_data ! work data for viscous terms - call init3d - call OCFD_bc ! boundary condition - - if(my_id.eq.0) print*, 'init ok' - wall_time=MPI_wtime() -!c----------------------------------------------------------------------- - do while (tt < Para%End_time-Para%dt*1.d-4 ) ! -dt*1.d-4 , considering rounding error - - do m=1,5 - do k=1,nz - do j=1,ny - do i=1,nx - fn(i,j,k,m)=f(i,j,k,m) - enddo - enddo - enddo - enddo - - do KRK=1,3 ! 3-step Runge-Kutta - - call exchange_boundary_xyz(d) - call exchange_boundary_xyz(u) - call exchange_boundary_xyz(v) - call exchange_boundary_xyz(w) - call exchange_boundary_xyz(T) - - if(KRK .eq. 1 .and. Scheme%Scheme_Invis == OCFD_Scheme_Hybrid ) then - call comput_Rhybrid ! comput only KRK=1 - endif - - if(Para%IF_Scheme_Character .eq. 0) then - call du_inviscous ! inviscous term (non-character type) - else - call du_inviscous_Character ! inviscous term (character type) - endif - - if(Para%IF_Viscous .eq. 1) then - call du_viscous - endif - - call OCFD_time_adv_RK3 (KRK) ! time advance (3-step RK) - - call comput_duvwT ! comput d,u,v,w,T - call OCFD_bc ! boundary condition - - enddo - -!c ---------------4. Loop of t ------------------ - - Istep=Istep+1 - tt=tt+Para%dt - - call filtering(f) - - if( mod(Istep,Para%Istep_show).eq.0 ) then - call show_flow_msg(wall_time) ! CPU time, Total energy, Kinetic energy, Total entropy - endif - - - call OCFD_analysis - if(mod(Istep, Para%Istep_Save).eq.0) call save_flow_data - - -! call MPI_barrier(MPI_COMM_WORLD,ierr) - - enddo -!c--------------------------------------------------------------------- - call save_flow_data - if(my_id.eq.0) print*, 'OK The END of opencfd' - - call deallocate_flow_data - call deallocate_inviscous_data - call deallocate_vicous_data - end - -!----------------------------------------------------------------------------------- - -!----------------------------------------------------------------------------------- - subroutine allocate_flow_data - use flow_data - implicit none -!----------------------------------------------------------------------- - -! allocate flow data space - allocate(f(nx,ny,nz,5),fn(nx,ny,nz,5), & - du(nx,ny,nz,5),Amu(nx,ny,nz)) - - allocate(d(1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP), & - u(1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP), & - v(1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP), & - w(1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP), & - T(1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP) ) - - d=1.d0; u=1.d0; v=1.d0; w=1.d0; T=1.d0 ! initial as 1.0 - Amu=0.d0 ! initial as 0 - du=0.d0 ! initial as 0 -! Amu_t=0.d0 - -!-----Coordinate and Jacobian coefficients (Akx1=Akx/Ajac) ----------- - allocate( Axx(1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP), & - Ayy(1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP), & - Azz(1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP), & - Akx(1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP), & - Aky(1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP), & - Akz(1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP), & - Aix(1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP), & - Aiy(1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP), & - Aiz(1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP), & - Asx(1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP), & - Asy(1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP), & - Asz(1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP), & - Ajac(1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP), & - Akx1(1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP), & - Aky1(1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP), & - Akz1(1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP), & - Aix1(1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP), & - Aiy1(1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP), & - Aiz1(1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP), & - Asx1(1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP), & - Asy1(1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP), & - Asz1(1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP)) - - if(Scheme%Scheme_Invis == OCFD_Scheme_Hybrid) then - allocate(Rhybrid(1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP)) - Rhybrid=0.d0 - endif - -! ------initial as 1.0 -------- - Axx=1.d0; Ayy=1.d0; Azz=1.d0 - Akx=1.d0; Aky=1.d0; Akz=1.d0 - Aix=1.d0; Aiy=1.d0; Aiz=1.d0 - Asx=1.d0; Asy=1.d0; Asz=1.d0 - Ajac=1.d0 - Akx1=1.d0; Aky1=1.d0; Akz1=1.d0 - Aix1=1.d0; Aiy1=1.d0; Aiz1=1.d0 - Asx1=1.d0; Asy1=1.d0; Asz1=1.d0 - end - - subroutine deallocate_flow_data - use flow_data - implicit none - deallocate(f,fn,du,Amu,d,u,v,T,Axx,Ayy,Akx,Aky,Aix,Aiy,Ajac,Akx1,Aky1,Aix1,Aiy1) - if(Scheme%Scheme_Invis == OCFD_Scheme_Hybrid) then - deallocate(Rhybrid) - endif - end diff --git a/OCFD_Schemes.f90 b/OCFD_Schemes.f90 deleted file mode 100644 index 8f1444b..0000000 --- a/OCFD_Schemes.f90 +++ /dev/null @@ -1,373 +0,0 @@ -! Shock Capturing Schemes: WENO5, WENO7, OMP6 -! The same as that in OCFD2d_Scheme_1.f90, but more efficiently; -! OCFD2d_Scheme_1.f90 еĴ㷨빦ܾͬ ҼЧʸ ѣ -! 5th order WENO scheme (for single scheme ib= 0, ie=nx ) -! orient==1 for flux+ ; -1 for flux- - subroutine OCFD_weno5P(v,hh,nx,LAP,ib,ie) - Use OCFD_constants - implicit none - integer nx,LAP,i,ib,ie - real(kind=OCFD_REAL_KIND):: v(1-LAP:nx+LAP), hh(0:nx) - real(kind=OCFD_REAL_KIND):: S0,S1,S2,a0,a1,a2,am,q03,q13,q23 - real(kind=OCFD_REAL_KIND),parameter:: ep=1.d-6 , C03=3.d0/10.d0 , C13=3.d0/5.d0 , C23=1.d0/10.d0 - -! do i=0,nx - do i=ib,ie - S0=13.d0/12.d0*(v(i)-2.d0*v(i+1)+v(i+2))**2+ 1.d0/4.d0*(3.d0*v(i)-4.d0*v(i+1)+v(i+2))**2 - S1=13.d0/12.d0*(v(i-1)-2.d0*v(i)+v(i+1))**2+ 1.d0/4.d0*(v(i-1)-v(i+1))**2 - S2=13.d0/12.d0*(v(i-2)-2.d0*v(i-1)+v(i))**2+ 1.d0/4.d0*(v(i-2)-4.d0*v(i-1)+3.d0*v(i))**2 - a0=C03/((ep+S0)**2) - a1=C13/((ep+S1)**2) - a2=C23/((ep+S2)**2) - am=a0+a1+a2 - q03=1.d0/3.d0*v(i)+5.d0/6.d0*v(i+1)-1.d0/6.d0*v(i+2) - q13=-1.d0/6.d0*v(i-1)+5.d0/6.d0*v(i)+1.d0/3.d0*v(i+1) - q23=1.d0/3.d0*v(i-2)-7.d0/6.d0*v(i-1)+11.d0/6.d0*v(i) - hh(i)=(a0*q03+a1*q13+a2*q23)/am - enddo - end - - subroutine OCFD_weno5M(v,hh,nx,LAP,ib,ie) - Use OCFD_constants - implicit none - integer nx,LAP,i,ib,ie - real(kind=OCFD_REAL_KIND):: v(1-LAP:nx+LAP), hh(0:nx) - real(kind=OCFD_REAL_KIND):: S0,S1,S2,a0,a1,a2,am,q03,q13,q23 - real(kind=OCFD_REAL_KIND),parameter:: ep=1.d-6 , C03=3.d0/10.d0 , C13=3.d0/5.d0 , C23=1.d0/10.d0 - ! for flux- -! do i=1,nx+1 - do i=ib+1,ie+1 - S0=13.d0/12.d0*(v(i)-2.d0*v(i-1)+v(i-2))**2+ 1.d0/4.d0*(3.d0*v(i)-4.d0*v(i-1)+v(i-2))**2 - S1=13.d0/12.d0*(v(i+1)-2.d0*v(i)+v(i-1))**2+ 1.d0/4.d0*(v(i+1)-v(i-1))**2 - S2=13.d0/12.d0*(v(i+2)-2.d0*v(i+1)+v(i))**2+ 1.d0/4.d0*(v(i+2)-4.d0*v(i+1)+3.d0*v(i))**2 - a0=C03/((ep+S0)**2) - a1=C13/((ep+S1)**2) - a2=C23/((ep+S2)**2) - am=a0+a1+a2 - q03=1.d0/3.d0*v(i)+5.d0/6.d0*v(i-1)-1.d0/6.d0*v(i-2) - q13=-1.d0/6.d0*v(i+1)+5.d0/6.d0*v(i)+1.d0/3.d0*v(i-1) - q23=1.d0/3.d0*v(i+2)-7.d0/6.d0*v(i+1)+11.d0/6.d0*v(i) - hh(i-1)=(a0*q03+a1*q13+a2*q23)/am - enddo - - end - -!----------------------------------------------------------------------------------------------------- -! 7th order WENO-JS schemes - -!---------------------------------------------------------------------------------- - subroutine OCFD_weno7P(v,hh,nx,LAP,ib,ie ) - Use OCFD_constants - implicit none - integer nx,LAP,i,ib,ie - real(kind=OCFD_REAL_KIND):: v(1-LAP:nx+LAP),hh(0:nx) - real(kind=OCFD_REAL_KIND):: S0,S1,S2,S3, s10,s11,s12,s13,s20,s21,s22,s23,s30,s31,s32,s33, & - a0,a1,a2,a3,am,q0,q1,q2,q3 - real(kind=OCFD_REAL_KIND),parameter:: & - C0=1.d0/35.d0, C1=12.d0/35.d0, C2=18.d0/35.d0, C3=4.d0/35.d0, & - a11=-2.d0/6.d0,a12=9.d0/6.d0,a13=-18.d0/6.d0,a14=11.d0/6.d0, & - a21=1.d0/6.d0, a23=3.d0/6.d0,a24=2.d0/6.d0, & - a31=-2.d0/6.d0,a32=-3.d0/6.d0, a34=-1.d0/6.d0, & - a41=-11.d0/6.d0,a42=18.d0/6.d0,a43=-9.d0/6.d0,a44=2.d0/6.d0, & - b12=4.d0,b13=-5.d0,b14=2.d0, b22= -2.d0, & - b41=2.d0,b42=-5.d0,b43=4.d0, c12=3.d0, & - d12=13.d0/12.d0,d13=1043.d0/960.d0,d14=1.d0/12.d0 - real(kind=OCFD_REAL_KIND),parameter:: & - e11=-3.d0/12.d0, e12=13.d0/12.d0, e13=-23.d0/12.d0, e14=25.d0/12.d0, & - e21=1.d0/12.d0, e22=-5.d0/12.d0, e23=13.d0/12.d0, e24=3.d0/12.d0, & - e31=-1.d0/12.d0, e32=7.d0/12.d0, e33=7.d0/12.d0, e34=-1.d0/12.d0, & - e41=3.d0/12.d0, e42=13.d0/12.d0, e43=-5.d0/12.d0, e44=1.d0/12.d0, & - ep=1.d-8 !! WENO-JS - - -! do i=0,nx - do i=ib,ie -! 7th order WENO scheme -! 1 ׵ - S10=a11*v(i-3)+a12*v(i-2)+a13*v(i-1) +a14*v(i) - S11=a21*v(i-2) - v(i-1)+a23*v(i) +a24*v(i+1) - S12=a31*v(i-1)+a32*v(i) + v(i+1) +a34*v(i+2) - S13=a41*v(i) +a42*v(i+1)+a43*v(i+2) +a44*v(i+3) - ! 2 ׵ - S20=-v(i-3)+b12*v(i-2)+b13*v(i-1)+b14*v(i) - S21= v(i-1)+b22*v(i) +v(i+1) - S22= v(i) +b22*v(i+1)+v(i+2) - S23=b41*v(i)+b42*v(i+1)+b43*v(i+2)-v(i+3) -! 3 ׵ - S30=-v(i-3)+c12*(v(i-2)-v(i-1)) +v(i) - S31=-v(i-2)+c12*(v(i-1)-v(i)) +v(i+1) - S32=-v(i-1)+c12*(v(i)-v(i+1)) +v(i+2) - S33=-v(i) +c12*(v(i+1)-v(i+2)) +v(i+3) - - S0=S10*S10+d12*S20*S20 +d13*S30*S30 +d14*S10*S30 - S1=S11*S11+d12*S21*S21 +d13*S31*S31 +d14*S11*S31 - S2=S12*S12+d12*S22*S22 +d13*S32*S32 +d14*S12*S32 - S3=S13*S13+d12*S23*S23 +d13*S33*S33 +d14*S13*S33 - -!-------WENO J-S---------------------- - a0=C0/((ep+S0)**2) - a1=C1/((ep+S1)**2) - a2=C2/((ep+S2)**2) - a3=C3/((ep+S3)**2) -!----------------------------------------------- - am=a0+a1+a2+a3 - -! 4ײָʽͨ - q0=e11*v(i-3)+e12*v(i-2)+e13*v(i-1) +e14*v(i) - q1=e21*v(i-2)+e22*v(i-1)+e23*v(i) +e24*v(i+1) - q2=e31*v(i-1)+e32*v(i) +e33*v(i+1) +e34*v(i+2) - q3=e41*v(i) +e42*v(i+1)+e43*v(i+2) +e44*v(i+3) - -! 44ײָʽϳ17ײָʽ -! hj(i)=W0*q0+W1*q1+W2*q2+W3*q3 - hh(i)=(a0*q0+a1*q1+a2*q2+a3*q3)/am - enddo - end - - -!----------WENO7 for flux- - subroutine OCFD_weno7M(v,hh,nx,LAP,ib,ie ) - Use OCFD_constants - implicit none - integer nx,LAP,i,ib,ie - real(kind=OCFD_REAL_KIND):: v(1-LAP:nx+LAP),hh(0:nx) - real(kind=OCFD_REAL_KIND):: S0,S1,S2,S3, s10,s11,s12,s13,s20,s21,s22,s23,s30,s31,s32,s33, & - a0,a1,a2,a3,am,q0,q1,q2,q3 - real(kind=OCFD_REAL_KIND),parameter:: & - C0=1.d0/35.d0, C1=12.d0/35.d0, C2=18.d0/35.d0, C3=4.d0/35.d0, & - a11=-2.d0/6.d0,a12=9.d0/6.d0,a13=-18.d0/6.d0,a14=11.d0/6.d0, & - a21=1.d0/6.d0, a23=3.d0/6.d0,a24=2.d0/6.d0, & - a31=-2.d0/6.d0,a32=-3.d0/6.d0, a34=-1.d0/6.d0, & - a41=-11.d0/6.d0,a42=18.d0/6.d0,a43=-9.d0/6.d0,a44=2.d0/6.d0, & - b12=4.d0,b13=-5.d0,b14=2.d0, b22= -2.d0, & - b41=2.d0,b42=-5.d0,b43=4.d0, c12=3.d0, & - d12=13.d0/12.d0,d13=1043.d0/960.d0,d14=1.d0/12.d0 - real(kind=OCFD_REAL_KIND),parameter:: & - e11=-3.d0/12.d0, e12=13.d0/12.d0, e13=-23.d0/12.d0, e14=25.d0/12.d0, & - e21=1.d0/12.d0, e22=-5.d0/12.d0, e23=13.d0/12.d0, e24=3.d0/12.d0, & - e31=-1.d0/12.d0, e32=7.d0/12.d0, e33=7.d0/12.d0, e34=-1.d0/12.d0, & - e41=3.d0/12.d0, e42=13.d0/12.d0, e43=-5.d0/12.d0, e44=1.d0/12.d0, & - ep=1.d-8 !! WENO-JS - - -! do i= 1,nx+1 - do i=ib+1, ie+1 -! 7th order WENO scheme -! 1 ׵ - S10=a11*v(i+3)+a12*v(i+2)+a13*v(i+1) +a14*v(i) - S11=a21*v(i+2)- v(i+1) +a23*v(i) +a24*v(i-1) - S12=a31*v(i+1)+a32*v(i) + v(i-1) +a34*v(i-2) - S13=a41*v(i) +a42*v(i-1)+a43*v(i-2) +a44*v(i-3) -! 2 ׵ - S20=-v(i+3)+b12*v(i+2)+b13*v(i+1)+b14*v(i) - S21= v(i+1) +b22*v(i) +v(i-1) - S22= v(i) +b22*v(i-1)+v(i-2) - S23=b41*v(i)+b42*v(i-1)+b43*v(i-2)-v(i-3) -! 3 ׵ - S30=-v(i+3)+c12*(v(i+2)-v(i+1))+v(i) - S31=-v(i+2)+c12*(v(i+1)-v(i))+ v(i-1) - S32=-v(i+1)+c12*(v(i) -v(i-1))+v(i-2) - S33=-v(i)+ c12*(v(i-1)-v(i-2))+v(i-3) - - S0=S10*S10+d12*S20*S20 +d13*S30*S30 +d14*S10*S30 - S1=S11*S11+d12*S21*S21 +d13*S31*S31 +d14*S11*S31 - S2=S12*S12+d12*S22*S22 +d13*S32*S32 +d14*S12*S32 - S3=S13*S13+d12*S23*S23 +d13*S33*S33 +d14*S13*S33 - - - a0=C0/((ep+S0)**2) - a1=C1/((ep+S1)**2) - a2=C2/((ep+S2)**2) - a3=C3/((ep+S3)**2) - -!----------------------------------------------- - - am=a0+a1+a2+a3 - -! 4ײָʽͨ - q0=e11*v(i+3)+e12*v(i+2)+e13*v(i+1)+e14*v(i) - q1=e21*v(i+2)+e22*v(i+1)+e23*v(i) +e24*v(i-1) - q2=e31*v(i+1)+e32*v(i) +e33*v(i-1)+e34*v(i-2) - q3=e41*v(i)+ e42*v(i-1)+e43*v(i-2)+e44*v(i-3) - -! 44ײָʽϳ17ײָʽ - hh(i-1)=(a0*q0+a1*q1+a2*q2+a3*q3)/am - enddo - - end - -!--------------------------------------------- - - - -!--------------------------------------------- -! Optimized 6th order Monotonicity-Preserving Schemes -! Scheme by Leng Yan & Li Xinliang see: Int. J. Numer. Meth. Fluids 2013; 73:560C577 -!================================================================================ - subroutine OCFD_OMP6P(v,hh,nx,LAP,ib,ie) - Use OCFD_constants - implicit none - integer nx,LAP,i,ib,ie - real(kind=OCFD_REAL_KIND):: v(1-LAP:nx+LAP),hh(0:nx) - real(kind=OCFD_REAL_KIND)::mid_nf - real(kind=OCFD_REAL_KIND)::minmod2,minmod4 - real(kind=OCFD_REAL_KIND)::d1,d2,d3,ul,md,lc,mp,fmax,fmin - real(kind=OCFD_REAL_KIND),parameter ::kappa=4.d0, ep=1.e-10 - real(kind=OCFD_REAL_KIND),parameter:: OMP_m=0.015d0,OMP_n=0.d0 !defaut (robust) ; !!! low viscous: OMP_m=0.001d0 ; OMP_n=0.d0 - real(kind=OCFD_REAL_KIND),parameter:: OMP_a=0.5d0*(OMP_m+OMP_n), OMP_b=0.5d0*(OMP_m-OMP_n) - real(kind=OCFD_REAL_KIND),parameter:: OMP_a1=OMP_a, OMP_a2=1.d0/60.d0-OMP_b-6.d0*OMP_a, & - OMP_a3= -2.d0/15.d0+6.d0*OMP_b+15.d0*OMP_a, & - OMP_a4=37.d0/60.d0-15.d0*OMP_b-20.d0*OMP_a, OMP_a5=37.d0/60.d0+20.d0*OMP_b+15.d0*OMP_a, & - OMP_a6=-2.d0/15.d0-6.d0*OMP_a-15.d0*OMP_b , OMP_a7=1.d0/60.d0+OMP_a+6.d0*OMP_b, OMP_a8=-OMP_b - -! do i=0,nx - do i=ib,ie - mid_nf=OMP_a1*v(i+4)+OMP_a2*v(i+3)+OMP_a3*v(i+2)+OMP_a4*v(i+1)+OMP_a5*v(i)+OMP_a6*v(i-1)+OMP_a7*v(i-2)+OMP_a8*v(i-3) - mp=v(i)+minmod2((v(i+1)-v(i)),kappa*(v(i)-v(i-1))) - if((mid_nf-v(i))*(mid_nf-mp) .ge. ep) then - d1=v(i-2)+v(i)-2.d0*v(i-1) - d2=v(i-1)+v(i+1)-2.d0*v(i) - d3=v(i)+v(i+2)-2.d0*v(i+1) - ul=v(i)+kappa*(v(i)-v(i-1)) - md=0.5d0*(v(i)+v(i+1))-0.5d0*minmod4(4.d0*d2-d3,4.d0*d3-d2,d2,d3) - lc=v(i)+0.5d0*(v(i)-v(i-1))+kappa*minmod4(4.d0*d1-d2,4.d0*d2-d1,d2,d1) /3.d0 - fmin=max(min(v(i),v(i+1),md),min(v(i),ul,lc)) - fmax=min(max(v(i),v(i+1),md),max(v(i),ul,lc)) - mid_nf=mid_nf+minmod2(fmax-mid_nf,fmin-mid_nf) - endif - hh(i)=mid_nf - enddo - end - - - subroutine OCFD_OMP6M(v,hh,nx,LAP,ib,ie) - Use OCFD_constants - implicit none - integer nx,LAP,i,ib,ie - real(kind=OCFD_REAL_KIND):: v(1-LAP:nx+LAP),hh(0:nx) - real(kind=OCFD_REAL_KIND)::mid_nf - real(kind=OCFD_REAL_KIND)::minmod2,minmod4 - real(kind=OCFD_REAL_KIND)::d1,d2,d3,ul,md,lc,mp,fmax,fmin - real(kind=OCFD_REAL_KIND),parameter ::kappa=4.d0, ep=1.e-10 - real(kind=OCFD_REAL_KIND),parameter:: OMP_m=0.015d0,OMP_n=0.d0 !defaut (robust) ; !!! low viscous: OMP_m=0.001d0 ; OMP_n=0.d0 - real(kind=OCFD_REAL_KIND),parameter:: OMP_a=0.5d0*(OMP_m+OMP_n), OMP_b=0.5d0*(OMP_m-OMP_n) - real(kind=OCFD_REAL_KIND),parameter:: OMP_a1=OMP_a, OMP_a2=1.d0/60.d0-OMP_b-6.d0*OMP_a, & - OMP_a3= -2.d0/15.d0+6.d0*OMP_b+15.d0*OMP_a, & - OMP_a4=37.d0/60.d0-15.d0*OMP_b-20.d0*OMP_a, OMP_a5=37.d0/60.d0+20.d0*OMP_b+15.d0*OMP_a, & - OMP_a6=-2.d0/15.d0-6.d0*OMP_a-15.d0*OMP_b , OMP_a7=1.d0/60.d0+OMP_a+6.d0*OMP_b, OMP_a8=-OMP_b - -! do i=0,nx - do i=ib,ie - mid_nf=OMP_a1*v(i-3)+OMP_a2*v(i-2)+OMP_a3*v(i-1)+OMP_a4*v(i) +OMP_a5*v(i+1)+OMP_a6*v(i+2)+OMP_a7*v(i+3)+OMP_a8*v(i+4) - mp=v(i+1)+minmod2((v(i)-v(i+1)),kappa*(v(i+1)-v(i+2))) - if((mid_nf-v(i+1))*(mid_nf-mp) .ge. ep) then - d1=v(i+3)+v(i+1)-2.d0*v(i+2) - d2=v(i+2)+v(i)-2.d0*v(i+1) - d3=v(i+1)+v(i-1)-2.d0*v(i) - !---- - ul=v(i+1)+kappa*(v(i+1)-v(i+2)) - md=0.5d0*(v(i+1)+v(i))-0.5d0*minmod4(4.d0*d2-d3,4.d0*d3-d2,d2,d3) - lc=v(i+1)+0.5d0*(v(i+1)-v(i))+kappa*minmod4(4.d0*d1-d2,4.d0*d2-d1,d2,d1) /3.d0 - fmin=max(min(v(i+1),v(i),md),min(v(i+1),ul,lc)) - fmax=min(max(v(i+1),v(i),md),max(v(i+1),ul,lc)) - mid_nf=mid_nf+minmod2(fmax-mid_nf,fmin-mid_nf) - endif - hh(i)=mid_nf - enddo - - end - - - - -! ========================================== - function minmod2(x1,x2) - Use OCFD_precision - implicit none - real(kind=OCFD_REAL_KIND):: x1,x2,minmod2 - minmod2=0.5d0*(sign(1.d0,x1)+sign(1.d0,x2))*min(abs(x1),abs(x2)) - end -!========================================================= - function minmod4(x1,x2,x3,x4) - Use OCFD_precision - implicit none - real(kind=OCFD_REAL_KIND):: x1,x2,x3,x4,minmod4 - minmod4=0.5d0*(sign(1.d0,x1)+sign(1.d0,x2)) - minmod4=minmod4*abs(0.5d0*(sign(1.d0,x1)+sign(1.d0,x3))) - minmod4=minmod4*abs(0.5d0*(sign(1.d0,x1)+sign(1.d0,x4))) - minmod4=minmod4*min(abs(x1),abs(x2),abs(x3),abs(x4)) - end - -!-------7th order low-dissipation scheme (mixing 7th upwind and 8th center) - subroutine OCFD_UD7L_P(v,hh,nx,LAP,ib,ie) - use OCFD_constants - use Scheme_para - implicit none - integer nx,LAP,i,ib,ie - real(kind=OCFD_REAL_KIND):: v(1-LAP:nx+LAP), hh(0:nx) -! do i=0,nx - do i=ib,ie - hh(i)=Scheme%UD7L(1)*v(i-3)+Scheme%UD7L(2)*v(i-2)+Scheme%UD7L(3)*v(i-1)+Scheme%UD7L(4)*v(i) & - +Scheme%UD7L(5)*v(i+1)+Scheme%UD7L(6)*v(i+2)+Scheme%UD7L(7)*v(i+3)+Scheme%UD7L(8)*v(i+4) - enddo - end - - subroutine OCFD_UD7L_M(v,hh,nx,LAP,ib,ie) - use OCFD_constants - use Scheme_para - implicit none - integer nx,LAP,i,ib,ie - real(kind=OCFD_REAL_KIND):: v(1-LAP:nx+LAP), hh(0:nx) -! do i=0,nx - do i=ib,ie - hh(i)=Scheme%UD7L(1)*v(i+4)+Scheme%UD7L(2)*v(i+3)+Scheme%UD7L(3)*v(i+2)+Scheme%UD7L(4)*v(i+1) & - +Scheme%UD7L(5)*v(i) +Scheme%UD7L(6)*v(i-1)+Scheme%UD7L(7)*v(i-2)+Scheme%UD7L(8)*v(i-3) - enddo - end - -!-------Hybrid Scheme ------------( HYBRID with UD7L and WENO5) - subroutine OCFD_HybridP(v,hh,nx,LAP,Scm_Hy,ib,ie) - use OCFD_constants - use Scheme_para - implicit none - integer nx,LAP,i,Scm_Hy(0:nx),ib,ie - real(kind=OCFD_REAL_KIND):: v(1-LAP:nx+LAP), hh(0:nx) - -! do i=0,nx - do i=ib,ie - if( Scm_Hy(i) == 1) then - hh(i)=Scheme%UD7L(1)*v(i-3)+Scheme%UD7L(2)*v(i-2)+Scheme%UD7L(3)*v(i-1)+Scheme%UD7L(4)*v(i) & - +Scheme%UD7L(5)*v(i+1)+Scheme%UD7L(6)*v(i+2)+Scheme%UD7L(7)*v(i+3)+Scheme%UD7L(8)*v(i+4) - else if(Scm_Hy(i) == 2) then ! WENO 7P - call hh_weno7P(-3,3,v(i-3),hh(i) ) ! v(i-3) === v(i-3:i+3) - else - call hh_weno5P(-2,2,v(i-2),hh(i)) - endif - enddo - end - - - - subroutine OCFD_HybridM(v,hh,nx,LAP,Scm_Hy,ib,ie) - Use OCFD_constants - use Scheme_para - implicit none - integer nx,LAP,i,Scm_Hy(0:nx),ib,ie - real(kind=OCFD_REAL_KIND):: v(1-LAP:nx+LAP), hh(0:nx) - - ! for flux- -! do i=0,nx - do i=ib,ie - if( Scm_Hy(i) == 1) then - hh(i)=Scheme%UD7L(1)*v(i+4)+Scheme%UD7L(2)*v(i+3)+Scheme%UD7L(3)*v(i+2)+Scheme%UD7L(4)*v(i+1) & - +Scheme%UD7L(5)*v(i) +Scheme%UD7L(6)*v(i-1)+Scheme%UD7L(7)*v(i-2)+Scheme%UD7L(8)*v(i-3) - else if( Scm_Hy(i) == 2) then - call hh_weno7M(-2,4,v(i-2),hh(i) ) - else - call hh_weno5M(-1,3,v(i-1),hh(i)) - endif - enddo - end - - - \ No newline at end of file diff --git a/OCFD_Schemes_1.f90 b/OCFD_Schemes_1.f90 deleted file mode 100644 index bb38738..0000000 --- a/OCFD_Schemes_1.f90 +++ /dev/null @@ -1,419 +0,0 @@ -! Shock Capturing Schemes: WENO5, WENO7, OMP6 -! ʵֵĹOCFD_Scheme.f90 еijͬ 㷨Ҳͬ ֻʽЩ죬ͨ Чͣ - -!--------hh : h(j+1/2), Stencil: [j+Ka, ......, j+Kb]; e.g. Ka=-2, Kb=3 : Stencil [j-2, j-1, j, j+1, j+2, j+3] -! Ka, Kb ܵλã Ka=-1, Kb=2 ʾh(j+1/2)ĻܵΪ [j-1, j, j+1, j+2] -! v(0) ==> v(j) ; v(1) ==> v(j+1) ... -! hh ==> h(j+1/2) - - subroutine hh_weno5P(Ka,Kb,v,hh) ! Ka=-2, Kb=2 - Use OCFD_constants - implicit none - integer Ka,Kb - real(kind=OCFD_REAL_KIND):: v(Ka:Kb), hh - real(kind=OCFD_REAL_KIND):: S0,S1,S2,a0,a1,a2,am,q03,q13,q23 - real(kind=OCFD_REAL_KIND),parameter:: ep=1.d-6 , C03=3.d0/10.d0 , C13=3.d0/5.d0 , C23=1.d0/10.d0 - - - S0=13.d0/12.d0*(v(0)-2.d0*v(1)+v(2))**2+ 1.d0/4.d0*(3.d0*v(0)-4.d0*v(1)+v(2))**2 - S1=13.d0/12.d0*(v(-1)-2.d0*v(0)+v(1))**2+ 1.d0/4.d0*(v(-1)-v(1))**2 - S2=13.d0/12.d0*(v(-2)-2.d0*v(-1)+v(0))**2+ 1.d0/4.d0*(v(-2)-4.d0*v(-1)+3.d0*v(0))**2 - a0=C03/((ep+S0)**2) - a1=C13/((ep+S1)**2) - a2=C23/((ep+S2)**2) - am=a0+a1+a2 - q03=1.d0/3.d0*v(0)+5.d0/6.d0*v(1)-1.d0/6.d0*v(2) - q13=-1.d0/6.d0*v(-1)+5.d0/6.d0*v(0)+1.d0/3.d0*v(1) - q23=1.d0/3.d0*v(-2)-7.d0/6.d0*v(-1)+11.d0/6.d0*v(0) - hh=(a0*q03+a1*q13+a2*q23)/am - - end - - subroutine hh_weno5M(Ka,Kb,v,hh) ! Ka=-1, Kb=3 - Use OCFD_constants - implicit none - integer Ka,Kb - real(kind=OCFD_REAL_KIND):: v(Ka:Kb), hh - real(kind=OCFD_REAL_KIND):: S0,S1,S2,a0,a1,a2,am,q03,q13,q23 - real(kind=OCFD_REAL_KIND),parameter:: ep=1.d-6 , C03=3.d0/10.d0 , C13=3.d0/5.d0 , C23=1.d0/10.d0 - ! for flux- - - - S0=13.d0/12.d0*(v(1)-2.d0*v(0)+v(-1))**2+ 1.d0/4.d0*(3.d0*v(1)-4.d0*v(0)+v(-1))**2 - S1=13.d0/12.d0*(v(2)-2.d0*v(1)+v(0))**2+ 1.d0/4.d0*(v(2)-v(0))**2 - S2=13.d0/12.d0*(v(3)-2.d0*v(2)+v(1))**2+ 1.d0/4.d0*(v(3)-4.d0*v(2)+3.d0*v(1))**2 - a0=C03/((ep+S0)**2) - a1=C13/((ep+S1)**2) - a2=C23/((ep+S2)**2) - am=a0+a1+a2 - q03=1.d0/3.d0*v(1)+5.d0/6.d0*v(0)-1.d0/6.d0*v(-1) - q13=-1.d0/6.d0*v(2)+5.d0/6.d0*v(1)+1.d0/3.d0*v(0) - q23=1.d0/3.d0*v(3)-7.d0/6.d0*v(2)+11.d0/6.d0*v(1) - hh=(a0*q03+a1*q13+a2*q23)/am - - end - -!----------------------------------------------------------------------------------------------------- -! 7th order WENO-JS schemes - -!---------------------------------------------------------------------------------- - subroutine hh_weno7P(Ka,Kb,v,hh ) ! Ka=-3, Kb=3 - Use OCFD_constants - implicit none - integer Ka,Kb - real(kind=OCFD_REAL_KIND):: v(Ka:Kb),hh - real(kind=OCFD_REAL_KIND):: S0,S1,S2,S3, s10,s11,s12,s13,s20,s21,s22,s23,s30,s31,s32,s33, & - a0,a1,a2,a3,am,q0,q1,q2,q3 - real(kind=OCFD_REAL_KIND),parameter:: & - C0=1.d0/35.d0, C1=12.d0/35.d0, C2=18.d0/35.d0, C3=4.d0/35.d0, & - a11=-2.d0/6.d0,a12=9.d0/6.d0,a13=-18.d0/6.d0,a14=11.d0/6.d0, & - a21=1.d0/6.d0, a23=3.d0/6.d0,a24=2.d0/6.d0, & - a31=-2.d0/6.d0,a32=-3.d0/6.d0, a34=-1.d0/6.d0, & - a41=-11.d0/6.d0,a42=18.d0/6.d0,a43=-9.d0/6.d0,a44=2.d0/6.d0, & - b12=4.d0,b13=-5.d0,b14=2.d0, b22= -2.d0, & - b41=2.d0,b42=-5.d0,b43=4.d0, c12=3.d0, & - d12=13.d0/12.d0,d13=1043.d0/960.d0,d14=1.d0/12.d0 - real(kind=OCFD_REAL_KIND),parameter:: & - e11=-3.d0/12.d0, e12=13.d0/12.d0, e13=-23.d0/12.d0, e14=25.d0/12.d0, & - e21=1.d0/12.d0, e22=-5.d0/12.d0, e23=13.d0/12.d0, e24=3.d0/12.d0, & - e31=-1.d0/12.d0, e32=7.d0/12.d0, e33=7.d0/12.d0, e34=-1.d0/12.d0, & - e41=3.d0/12.d0, e42=13.d0/12.d0, e43=-5.d0/12.d0, e44=1.d0/12.d0, & - ep=1.d-8 !! WENO-JS - - -! 7th order WENO scheme -! 1 ׵ - S10=a11*v(-3)+a12*v(-2)+a13*v(-1) +a14*v(0) - S11=a21*v(-2) - v(-1)+a23*v(0) +a24*v(1) - S12=a31*v(-1)+a32*v(0) + v(1) +a34*v(2) - S13=a41*v(0) +a42*v(1)+a43*v(2) +a44*v(3) - ! 2 ׵ - S20=-v(-3)+b12*v(-2)+b13*v(-1)+b14*v(0) - S21= v(-1)+b22*v(0) +v(1) - S22= v(0) +b22*v(1)+v(2) - S23=b41*v(0)+b42*v(1)+b43*v(2)-v(3) -! 3 ׵ - S30=-v(-3)+c12*(v(-2)-v(-1)) +v(0) - S31=-v(-2)+c12*(v(-1)-v(0)) +v(1) - S32=-v(-1)+c12*(v(0)-v(1)) +v(2) - S33=-v(0) +c12*(v(1)-v(2)) +v(3) - - S0=S10*S10+d12*S20*S20 +d13*S30*S30 +d14*S10*S30 - S1=S11*S11+d12*S21*S21 +d13*S31*S31 +d14*S11*S31 - S2=S12*S12+d12*S22*S22 +d13*S32*S32 +d14*S12*S32 - S3=S13*S13+d12*S23*S23 +d13*S33*S33 +d14*S13*S33 - -!-------WENO J-S---------------------- - a0=C0/((ep+S0)**2) - a1=C1/((ep+S1)**2) - a2=C2/((ep+S2)**2) - a3=C3/((ep+S3)**2) -!----------------------------------------------- - am=a0+a1+a2+a3 - -! 4ײָʽͨ - q0=e11*v(-3)+e12*v(-2)+e13*v(-1) +e14*v(0) - q1=e21*v(-2)+e22*v(-1)+e23*v(0) +e24*v(1) - q2=e31*v(-1)+e32*v(0) +e33*v(1) +e34*v(2) - q3=e41*v(0) +e42*v(1)+e43*v(2) +e44*v(3) - -! 44ײָʽϳ17ײָʽ -! hj(0)=W0*q0+W1*q1+W2*q2+W3*q3 - hh=(a0*q0+a1*q1+a2*q2+a3*q3)/am - - end - - -!----------WENO7 for flux- - subroutine hh_weno7M(Ka,Kb,v,hh) ! Ka=-2, Kb=4 - Use OCFD_constants - implicit none - integer Ka,Kb - real(kind=OCFD_REAL_KIND):: v(Ka:Kb),hh - real(kind=OCFD_REAL_KIND):: S0,S1,S2,S3, s10,s11,s12,s13,s20,s21,s22,s23,s30,s31,s32,s33, & - a0,a1,a2,a3,am,q0,q1,q2,q3 - real(kind=OCFD_REAL_KIND),parameter:: & - C0=1.d0/35.d0, C1=12.d0/35.d0, C2=18.d0/35.d0, C3=4.d0/35.d0, & - a11=-2.d0/6.d0,a12=9.d0/6.d0,a13=-18.d0/6.d0,a14=11.d0/6.d0, & - a21=1.d0/6.d0, a23=3.d0/6.d0,a24=2.d0/6.d0, & - a31=-2.d0/6.d0,a32=-3.d0/6.d0, a34=-1.d0/6.d0, & - a41=-11.d0/6.d0,a42=18.d0/6.d0,a43=-9.d0/6.d0,a44=2.d0/6.d0, & - b12=4.d0,b13=-5.d0,b14=2.d0, b22= -2.d0, & - b41=2.d0,b42=-5.d0,b43=4.d0, c12=3.d0, & - d12=13.d0/12.d0,d13=1043.d0/960.d0,d14=1.d0/12.d0 - real(kind=OCFD_REAL_KIND),parameter:: & - e11=-3.d0/12.d0, e12=13.d0/12.d0, e13=-23.d0/12.d0, e14=25.d0/12.d0, & - e21=1.d0/12.d0, e22=-5.d0/12.d0, e23=13.d0/12.d0, e24=3.d0/12.d0, & - e31=-1.d0/12.d0, e32=7.d0/12.d0, e33=7.d0/12.d0, e34=-1.d0/12.d0, & - e41=3.d0/12.d0, e42=13.d0/12.d0, e43=-5.d0/12.d0, e44=1.d0/12.d0, & - ep=1.d-8 !! WENO-JS - - -! 7th order WENO scheme -! 1 ׵ - S10=a11*v(4)+a12*v(3)+a13*v(2) +a14*v(1) - S11=a21*v(3)- v(2) +a23*v(1) +a24*v(0) - S12=a31*v(2)+a32*v(1) + v(0) +a34*v(-1) - S13=a41*v(1) +a42*v(0)+a43*v(-1) +a44*v(-2) -! 2 ׵ - S20=-v(4)+b12*v(3)+b13*v(2)+b14*v(1) - S21= v(2) +b22*v(1) +v(0) - S22= v(1) +b22*v(0)+v(-1) - S23=b41*v(1)+b42*v(0)+b43*v(-1)-v(-2) -! 3 ׵ - S30=-v(4)+c12*(v(3)-v(2))+v(1) - S31=-v(3)+c12*(v(2)-v(1))+ v(0) - S32=-v(2)+c12*(v(1) -v(0))+v(-1) - S33=-v(1)+ c12*(v(0)-v(-1))+v(-2) - - S0=S10*S10+d12*S20*S20 +d13*S30*S30 +d14*S10*S30 - S1=S11*S11+d12*S21*S21 +d13*S31*S31 +d14*S11*S31 - S2=S12*S12+d12*S22*S22 +d13*S32*S32 +d14*S12*S32 - S3=S13*S13+d12*S23*S23 +d13*S33*S33 +d14*S13*S33 - - - a0=C0/((ep+S0)**2) - a1=C1/((ep+S1)**2) - a2=C2/((ep+S2)**2) - a3=C3/((ep+S3)**2) - -!----------------------------------------------- - - am=a0+a1+a2+a3 - -! 4ײָʽͨ - q0=e11*v(4)+e12*v(3)+e13*v(2)+e14*v(1) - q1=e21*v(3)+e22*v(2)+e23*v(1) +e24*v(0) - q2=e31*v(2)+e32*v(1) +e33*v(0)+e34*v(-1) - q3=e41*v(1)+ e42*v(0)+e43*v(-1)+e44*v(-2) - -! 44ײָʽϳ17ײָʽ - hh=(a0*q0+a1*q1+a2*q2+a3*q3)/am - - - end - -!--------------------------------------------- - - - -!--------------------------------------------- -! Optimized 6th order Monotonicity-Preserving Schemes -! Scheme by Leng Yan & Li Xinliang see: Int. J. Numer. Meth. Fluids 2013; 73:560C577 -!================================================================================ - subroutine hh_OMP6P(Ka,Kb,v,hh) !Ka=-3, Kb=4 - Use OCFD_constants - implicit none - integer Ka,Kb - real(kind=OCFD_REAL_KIND):: v(Ka:Kb),hh - real(kind=OCFD_REAL_KIND)::mid_nf - real(kind=OCFD_REAL_KIND)::minmod2,minmod4 - real(kind=OCFD_REAL_KIND)::d1,d2,d3,ul,md,lc,mp,fmax,fmin - real(kind=OCFD_REAL_KIND),parameter ::kappa=4.d0, ep=1.e-10 - real(kind=OCFD_REAL_KIND),parameter:: OMP_m=0.015d0,OMP_n=0.d0 !defaut (robust) ; !!! low viscous: OMP_m=0.001d0 ; OMP_n=0.d0 - real(kind=OCFD_REAL_KIND),parameter:: OMP_a=0.5d0*(OMP_m+OMP_n), OMP_b=0.5d0*(OMP_m-OMP_n) - real(kind=OCFD_REAL_KIND),parameter:: OMP_a1=OMP_a, OMP_a2=1.d0/60.d0-OMP_b-6.d0*OMP_a, & - OMP_a3= -2.d0/15.d0+6.d0*OMP_b+15.d0*OMP_a, & - OMP_a4=37.d0/60.d0-15.d0*OMP_b-20.d0*OMP_a, OMP_a5=37.d0/60.d0+20.d0*OMP_b+15.d0*OMP_a, & - OMP_a6=-2.d0/15.d0-6.d0*OMP_a-15.d0*OMP_b , OMP_a7=1.d0/60.d0+OMP_a+6.d0*OMP_b, OMP_a8=-OMP_b - - - mid_nf=OMP_a1*v(4)+OMP_a2*v(3)+OMP_a3*v(2)+OMP_a4*v(1)+OMP_a5*v(0)+OMP_a6*v(-1)+OMP_a7*v(-2)+OMP_a8*v(-3) - mp=v(0)+minmod2((v(1)-v(0)),kappa*(v(0)-v(-1))) - if((mid_nf-v(0))*(mid_nf-mp) .ge. ep) then - d1=v(-2)+v(0)-2.d0*v(-1) - d2=v(-1)+v(1)-2.d0*v(0) - d3=v(0)+v(2)-2.d0*v(1) - ul=v(0)+kappa*(v(0)-v(-1)) - md=0.5d0*(v(0)+v(1))-0.5d0*minmod4(4.d0*d2-d3,4.d0*d3-d2,d2,d3) - lc=v(0)+0.5d0*(v(0)-v(-1))+kappa*minmod4(4.d0*d1-d2,4.d0*d2-d1,d2,d1) /3.d0 - fmin=max(min(v(0),v(1),md),min(v(0),ul,lc)) - fmax=min(max(v(0),v(1),md),max(v(0),ul,lc)) - mid_nf=mid_nf+minmod2(fmax-mid_nf,fmin-mid_nf) - endif - hh=mid_nf - - end - - - subroutine hh_OMP6M(Ka,Kb,v,hh) ! Ka=-3, Kb=4 - Use OCFD_constants - implicit none - integer Ka,Kb - real(kind=OCFD_REAL_KIND):: v(Ka:Kb),hh - real(kind=OCFD_REAL_KIND)::mid_nf - real(kind=OCFD_REAL_KIND)::minmod2,minmod4 - real(kind=OCFD_REAL_KIND)::d1,d2,d3,ul,md,lc,mp,fmax,fmin - real(kind=OCFD_REAL_KIND),parameter ::kappa=4.d0, ep=1.e-10 - real(kind=OCFD_REAL_KIND),parameter:: OMP_m=0.015d0,OMP_n=0.d0 !defaut (robust) ; !!! low viscous: OMP_m=0.001d0 ; OMP_n=0.d0 - real(kind=OCFD_REAL_KIND),parameter:: OMP_a=0.5d0*(OMP_m+OMP_n), OMP_b=0.5d0*(OMP_m-OMP_n) - real(kind=OCFD_REAL_KIND),parameter:: OMP_a1=OMP_a, OMP_a2=1.d0/60.d0-OMP_b-6.d0*OMP_a, & - OMP_a3= -2.d0/15.d0+6.d0*OMP_b+15.d0*OMP_a, & - OMP_a4=37.d0/60.d0-15.d0*OMP_b-20.d0*OMP_a, OMP_a5=37.d0/60.d0+20.d0*OMP_b+15.d0*OMP_a, & - OMP_a6=-2.d0/15.d0-6.d0*OMP_a-15.d0*OMP_b , OMP_a7=1.d0/60.d0+OMP_a+6.d0*OMP_b, OMP_a8=-OMP_b - - mid_nf=OMP_a1*v(-3)+OMP_a2*v(-2)+OMP_a3*v(-1)+OMP_a4*v(0) +OMP_a5*v(1)+OMP_a6*v(2)+OMP_a7*v(3)+OMP_a8*v(4) - mp=v(1)+minmod2((v(0)-v(1)),kappa*(v(1)-v(2))) - if((mid_nf-v(1))*(mid_nf-mp) .ge. ep) then - d1=v(3)+v(1)-2.d0*v(2) - d2=v(2)+v(0)-2.d0*v(1) - d3=v(1)+v(-1)-2.d0*v(0) - !---- - ul=v(1)+kappa*(v(1)-v(2)) - md=0.5d0*(v(1)+v(0))-0.5d0*minmod4(4.d0*d2-d3,4.d0*d3-d2,d2,d3) - lc=v(1)+0.5d0*(v(1)-v(0))+kappa*minmod4(4.d0*d1-d2,4.d0*d2-d1,d2,d1) /3.d0 - fmin=max(min(v(1),v(0),md),min(v(1),ul,lc)) - fmax=min(max(v(1),v(0),md),max(v(1),ul,lc)) - mid_nf=mid_nf+minmod2(fmax-mid_nf,fmin-mid_nf) - endif - hh=mid_nf - - end - - - -!------------------------------------------------------ -! Boundary Scheme (WENO5 Delete Stencil type) -! ߽ʽ WENO5, ɾģ - - subroutine hh_weno5P_boundary(Ka,Kb,v,hh,Del_Stencil) ! Ka=-2, Kb=2 - Use OCFD_constants - implicit none - integer Ka,Kb,Del_Stencil - real(kind=OCFD_REAL_KIND):: v(Ka:Kb), hh - real(kind=OCFD_REAL_KIND):: S0,S1,S2,a0,a1,a2,am,q03,q13,q23 - real(kind=OCFD_REAL_KIND),parameter:: ep=1.d-6 , C03=3.d0/10.d0 , C13=3.d0/5.d0 , C23=1.d0/10.d0 -!-------for flux+ - a0=0.d0; q03=0.d0 - a2=0.d0; q23=0.d0 - - if(Del_Stencil .ne. DEL_RIGHT) then - S0=13.d0/12.d0*(v(0)-2.d0*v(1)+v(2))**2+ 1.d0/4.d0*(3.d0*v(0)-4.d0*v(1)+v(2))**2 - a0=C03/((ep+S0)**2) - q03=1.d0/3.d0*v(0)+5.d0/6.d0*v(1)-1.d0/6.d0*v(2) - endif - - S1=13.d0/12.d0*(v(-1)-2.d0*v(0)+v(1))**2+ 1.d0/4.d0*(v(-1)-v(1))**2 - a1=C13/((ep+S1)**2) - q13=-1.d0/6.d0*v(-1)+5.d0/6.d0*v(0)+1.d0/3.d0*v(1) - - if(Del_Stencil .ne. DEL_LIFT) then - S2=13.d0/12.d0*(v(-2)-2.d0*v(-1)+v(0))**2+ 1.d0/4.d0*(v(-2)-4.d0*v(-1)+3.d0*v(0))**2 - a2=C23/((ep+S2)**2) - q23=1.d0/3.d0*v(-2)-7.d0/6.d0*v(-1)+11.d0/6.d0*v(0) - endif - am=a0+a1+a2 - hh=(a0*q03+a1*q13+a2*q23)/am - - end - - subroutine hh_weno5M_boundary(Ka,Kb,v,hh,Del_Stencil) ! Ka=-1, Kb=3 - Use OCFD_constants - implicit none - integer Ka,Kb,Del_Stencil - real(kind=OCFD_REAL_KIND):: v(Ka:Kb), hh - real(kind=OCFD_REAL_KIND):: S0,S1,S2,a0,a1,a2,am,q03,q13,q23 - real(kind=OCFD_REAL_KIND),parameter:: ep=1.d-6 , C03=3.d0/10.d0 , C13=3.d0/5.d0 , C23=1.d0/10.d0 - ! for flux- - a0=0.d0; q03=0.d0 - a2=0.d0; q23=0.d0 - - if(Del_Stencil .ne. DEL_LIFT) then - S0=13.d0/12.d0*(v(1)-2.d0*v(0)+v(-1))**2+ 1.d0/4.d0*(3.d0*v(1)-4.d0*v(0)+v(-1))**2 - a0=C03/((ep+S0)**2) - q03=1.d0/3.d0*v(1)+5.d0/6.d0*v(0)-1.d0/6.d0*v(-1) - endif - S1=13.d0/12.d0*(v(2)-2.d0*v(1)+v(0))**2+ 1.d0/4.d0*(v(2)-v(0))**2 - a1=C13/((ep+S1)**2) - q13=-1.d0/6.d0*v(2)+5.d0/6.d0*v(1)+1.d0/3.d0*v(0) - - if(Del_Stencil .ne. DEL_RIGHT) then - S2=13.d0/12.d0*(v(3)-2.d0*v(2)+v(1))**2+ 1.d0/4.d0*(v(3)-4.d0*v(2)+3.d0*v(1))**2 - a2=C23/((ep+S2)**2) - q23=1.d0/3.d0*v(3)-7.d0/6.d0*v(2)+11.d0/6.d0*v(1) - endif - am=a0+a1+a2 - hh=(a0*q03+a1*q13+a2*q23)/am - - end - -!-------7th order low-dissipation scheme (mixing 7th upwind and 8th center) - subroutine hh_UD7L_P(Ka,Kb,v,hh) - use OCFD_constants - use Scheme_para - implicit none - integer Ka,Kb - real(kind=OCFD_REAL_KIND):: v(Ka:Kb), hh - - hh=Scheme%UD7L(1)*v(-3)+Scheme%UD7L(2)*v(-2)+Scheme%UD7L(3)*v(-1)+Scheme%UD7L(4)*v(0) & - +Scheme%UD7L(5)*v(1)+Scheme%UD7L(6)*v(2)+Scheme%UD7L(7)*v(3)+Scheme%UD7L(8)*v(4) - end - - subroutine hh_UD7L_M(Ka,Kb,v,hh) - use OCFD_constants - use Scheme_para - implicit none - integer Ka,Kb - real(kind=OCFD_REAL_KIND):: v(Ka:Kb), hh - - hh=Scheme%UD7L(1)*v(4)+Scheme%UD7L(2)*v(3)+Scheme%UD7L(3)*v(2)+Scheme%UD7L(4)*v(1) & - +Scheme%UD7L(5)*v(0) +Scheme%UD7L(6)*v(-1)+Scheme%UD7L(7)*v(-2)+Scheme%UD7L(8)*v(-3) - end -!----------------------------------------------------------------------------- -! Hybrid scheme (UD7L + WENO7+ WENO5) - subroutine hh_HybridP(Ka,Kb,v,hh,Ihybrid) ! Ka=-4, Kb=4 - Use OCFD_constants - use Scheme_para - implicit none - integer Ka,Kb,Ihybrid - real(kind=OCFD_REAL_KIND):: v(Ka:Kb), hh - if(Ihybrid==1) then ! UD7L - hh=Scheme%UD7L(1)*v(-3)+Scheme%UD7L(2)*v(-2)+Scheme%UD7L(3)*v(-1)+Scheme%UD7L(4)*v(0) & - +Scheme%UD7L(5)*v(1)+Scheme%UD7L(6)*v(2)+Scheme%UD7L(7)*v(3)+Scheme%UD7L(8)*v(4) - else if(Ihybrid ==2) then ! WENO7 scheme - call hh_weno7P(Ka,Kb,v,hh ) - else - call hh_weno5P(Ka,Kb,v,hh) - endif - end - - subroutine hh_HybridM(Ka,Kb,v,hh,Ihybrid) ! Ka=-4, Kb=4 - Use OCFD_constants - use Scheme_para - implicit none - integer Ka,Kb,Ihybrid - real(kind=OCFD_REAL_KIND):: v(Ka:Kb), hh - real(kind=OCFD_REAL_KIND):: S0,S1,S2,a0,a1,a2,am,q03,q13,q23 - real(kind=OCFD_REAL_KIND),parameter:: ep=1.d-6 , C03=3.d0/10.d0 , C13=3.d0/5.d0 , C23=1.d0/10.d0 - ! for flux- - if(Ihybrid ==1) then - hh=Scheme%UD7L(1)*v(4)+Scheme%UD7L(2)*v(3)+Scheme%UD7L(3)*v(2)+Scheme%UD7L(4)*v(1) & - +Scheme%UD7L(5)*v(0) +Scheme%UD7L(6)*v(-1)+Scheme%UD7L(7)*v(-2)+Scheme%UD7L(8)*v(-3) - else if(Ihybrid ==2) then ! WENO7 scheme - call hh_weno7M(Ka,Kb,v,hh ) - else - call hh_weno5M(Ka,Kb,v,hh) - endif - end - -!================================================================================ - - - subroutine hh_NND2P(Ka,Kb,v,hh) ! Ka=-1, Kb=1 - Use OCFD_precision - implicit none - integer Ka,Kb - real(kind=OCFD_REAL_KIND):: v(Ka:Kb),hh,minmod2 - hh=v(0)+0.5d0*minmod2(v(1)-v(0), v(0)-v(-1)) ! v(0) ==> v(j); hh==> h(j+1/2) - end - - subroutine hh_NND2M(Ka,Kb,v,hh) ! Ka=0, Kb=2 - Use OCFD_precision - implicit none - integer Ka,Kb - real(kind=OCFD_REAL_KIND):: v(Ka:Kb),hh,minmod2 - hh=v(1)-0.5d0*minmod2(v(2)-v(1), v(1)-v(0)) - end - - - diff --git a/OCFD_SetHybrid.f90 b/OCFD_SetHybrid.f90 deleted file mode 100644 index a49c003..0000000 --- a/OCFD_SetHybrid.f90 +++ /dev/null @@ -1,154 +0,0 @@ - ! Scheme%Hybrid_para (:) 1: Shock sensor, 2 seta1, 3 seta2 , 4 Num_patch, 5 ib, 6 ie, 7, jb, 8 je, 9 kb, 10 ke - function set_hybrid_scheme(R0) - use OCFD_precision - use Scheme_para - implicit none - real(kind=OCFD_REAL_KIND):: R0 - integer:: set_hybrid_scheme - if(R0 <=Scheme%Hybrid_para(2) ) then - set_hybrid_scheme=1 ! linear scheme - else if (R0 <=Scheme%Hybrid_para(3) ) then - set_hybrid_scheme=2 ! shock caputure scheme 1 (WENO7) - else - set_hybrid_scheme=3 ! shock capture scheme 2 (WENO5) - endif - end -!====================================================== - subroutine comput_Rhybrid - use flow_data - implicit none - real(kind=OCFD_REAL_KIND),allocatable,dimension(:,:,:)::p,pk,pi,ps - integer:: i,j,k,ierr,NS1(4),NS0(4) - integer:: m,mpatch, ib, ie, jb, je, kb,ke,Shock_Sensor - real(kind=OCFD_REAL_KIND):: p00,px,py,pz,dp0,dp_av,dp_av1,epsl,R0 -!------------------------------------------------------------------------ - Shock_sensor=nint(Scheme%Hybrid_para(1)) - if(Shock_sensor==1) then - allocate(p(1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP)) - else - allocate(p(1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP),pk(nx,ny,nz),pi(nx,ny,nz),ps(nx,ny,nz)) - endif - - p00=1.d0/(Para%gamma*Para%Ma*Para%Ma) - epsl=1.d-30 - - do k=1-LAP, nz+LAP - do j=1-LAP, ny+LAP - do i=1-LAP, nx+LAP - p(i,j,k)=p00*d(i,j,k)*T(i,j,k) - enddo - enddo - enddo - - if( Shock_sensor==1 ) then - do k=1,nz - do j=1,ny - do i=1,nx - Rhybrid(i,j,k)=abs((p(i-1,j,k)-2.d0*p(i,j,k)+p(i+1,j,k))/(p(i-1,j,k)+2.d0*p(i,j,k)+p(i+1,j,k)) ) & - + abs((p(i,j-1,k)-2.d0*p(i,j,k)+p(i,j+1,k))/(p(i,j-1,k)+2.d0*p(i,j,k)+p(i,j+1,k)) ) & - + abs((p(i,j,k-1)-2.d0*p(i,j,k)+p(i,j,k+1))/(p(i,j,k-1)+2.d0*p(i,j,k)+p(i,j,k+1)) ) - enddo - enddo - enddo - - else - - call OCFD_dx0(p,pk,Scheme%Scheme_Vis) - call OCFD_dy0(p,pi,Scheme%Scheme_Vis) - call OCFD_dz0(p,ps,Scheme%Scheme_Vis) - - dp0=0.d0 - do k=1,nz - do j=1,ny - do i=1,nx - px=pk(i,j,k)*Akx(i,j,k)+pi(i,j,k)*Aix(i,j,k)+ps(i,j,k)*Asx(i,j,k) - py=pk(i,j,k)*Aky(i,j,k)+pi(i,j,k)*Aiy(i,j,k)+ps(i,j,k)*Asy(i,j,k) - pz=pk(i,j,k)*Akz(i,j,k)+pi(i,j,k)*Aiz(i,j,k)+ps(i,j,k)*Asz(i,j,k) - Rhybrid(i,j,k)=sqrt(px*px+py*py+pz*pz) - dp0=dp0+Rhybrid(i,j,k) - enddo - enddo - enddo - - call MPI_ALLREDUCE(dp0,dp_av,1,OCFD_DATA_TYPE,MPI_SUM,MPI_COMM_WORLD,ierr) - - - dp_av=dp_av/(1.d0*nx_global*ny_global*nz_global) - dp_av1=1.d0/(dp_av+epsl) - - do k=1,nz - do j=1,ny - do i=1,nx - Rhybrid(i,j,k)=Rhybrid(i,j,k)*dp_av1 - enddo - enddo - enddo - endif - -!----------------------------------------------- - mpatch=nint(Scheme%Hybrid_para(4)) - do m=1,mpatch - ib=nint(Scheme%Hybrid_para(5+(m-1)*6)) - ie=nint(Scheme%Hybrid_para(6+(m-1)*6)) - jb=nint(Scheme%Hybrid_para(7+(m-1)*6)) - ie=nint(Scheme%Hybrid_para(8+(m-1)*6)) - kb=nint(Scheme%Hybrid_para(9+(m-1)*6)) - ke=nint(Scheme%Hybrid_para(10+(m-1)*6)) - ib=max(ib-i_offset(npx)+1,1) ! transform global index to local index - ie=min(ie-i_offset(npx)+1,nx) - jb=max(jb-j_offset(npy)+1,1) - je=min(je-j_offset(npy)+1,ny) - kb=max(kb-k_offset(npz)+1,1) - ke=min(ke-k_offset(npz)+1,nz) - - do k=kb,ke - do j=jb,je - do i=ib,ie - Rhybrid(i,j,k)=Rhybrid(i,j,k)+100.d0 ! set to be a large number (using highest rubust scheme) - enddo - enddo - enddo - enddo - - call exchange_boundary_xyz(Rhybrid) - !------------------------------------------ - - if (mod(Istep,Para%Istep_show).eq.0) then - NS1=0 - do k=1,nz - do j=1,ny - do i=0,nx - R0=max(Rhybrid(i,j,k),Rhybrid(i+1,j,k)) - if( R0 <= Scheme%Hybrid_para(2) ) then - NS1(1)=NS1(1)+1 - else if(R0 <=Scheme%Hybrid_para(3)) then - NS1(2)=NS1(2)+1 - else - NS1(3)=NS1(3)+1 - endif - enddo - enddo - enddo - NS1(4)=(nx+1)*ny*nz - call MPI_Reduce(NS1,NS0,4,MPI_INTEGER,MPI_SUM,0,MPI_COMM_WORLD,ierr) - if(my_id .eq. 0) then - print*, "---the percent of 3 schemes (linear ,WENO7,WENO5 are: ", NS0(1:3)/(1.d0*NS0(4)) - endif - - endif - - if(Shock_sensor==1) then - deallocate(p) - else - deallocate(p,pk,pi,ps) - endif - -! if(my_id .eq. 0) open(99,file="Rhybrid.dat",form="unformatted") -! call write_3d1(99,Rhybrid) -! if(my_id .eq. 0) then -! close(99) -! stop -! endif -!----------------------------------- - end - diff --git a/OCFD_Time_Adv.f90 b/OCFD_Time_Adv.f90 deleted file mode 100644 index 0385891..0000000 --- a/OCFD_Time_Adv.f90 +++ /dev/null @@ -1,109 +0,0 @@ - -!----------------------------------------------------------------------------------- -! 3 steps 3rd order TVD type Runge-Kutta method by Jiang & Shu - subroutine OCFD_time_adv_RK3 (KRK) - use flow_data - implicit none - integer KRK,m,i,j,k - real(kind=OCFD_REAL_KIND):: Ralfa(3),Rbeta(3) - - Ralfa(1)=1.d0 ; Rbeta(1)=1.d0 - Ralfa(2)=3.d0/4.d0 ; Rbeta(2)=1.d0/4.d0 - Ralfa(3)=1.d0/3.d0 ; Rbeta(3)=2.d0/3.d0 - - if(KRK.eq.1) then - do m=1,5 - do k=1,nz - do j=1,ny - do i=1,nx -! f(i,j,m)=Ralfa(KRK)*fn(i,j,m) +dt*du(i,j,m)*Rbeta(KRK) - f(i,j,k,m)=fn(i,j,k,m) +Para%dt*du(i,j,k,m) - enddo - enddo - enddo - enddo - else - do m=1,5 - do k=1,nz - do j=1,ny - do i=1,nx - f(i,j,k,m)=Ralfa(KRK)*fn(i,j,k,m)+Rbeta(KRK)* (f(i,j,k,m) + Para%dt*du(i,j,k,m)) - enddo - enddo - enddo - enddo - endif -end - -!---------------------------------------------- - - subroutine comput_duvwT - Use flow_data - implicit none - integer:: Num_NegT,i,j,k - Num_NegT=0 - do k=1,nz - do j=1,ny - do i=1,nx - d(i,j,k)=f(i,j,k,1) - u(i,j,k)=f(i,j,k,2)/f(i,j,k,1) - v(i,j,k)=f(i,j,k,3)/f(i,j,k,1) - w(i,j,k)=f(i,j,k,4)/f(i,j,k,1) - T(i,j,k)=(f(i,j,k,5) -(f(i,j,k,2)*u(i,j,k) +f(i,j,k,3)*v(i,j,k) +f(i,j,k,4)*w(i,j,k))*0.5d0 )/(f(i,j,k,1)*Cv) -!------------------------------------------------------------------ -! if T<=0, Error ! computation will stop (very useful message for debugging at overflow case)------- - if(T(i,j,k) <= 0) then - call handle_NegativeT(i,j,k,Num_NegT) - endif -!---------------------------------- - enddo - enddo - enddo - - end - - - subroutine show_flow_msg(wall_time) - use flow_data - implicit none - real*8:: wall_time, wtmp, E0(3),E1(3),p00,tmp0,tmp1 - integer:: i,j,k,ierr - wtmp=wall_time - wall_time=MPI_wtime() - p00=1.d0/(Para%gamma*Para%Ma*Para%Ma) - tmp1=1.d0-Para%gamma - - - E1(:)=0.d0 - E0(:)=0.d0 - do k=1,nz - do j=1,ny - do i=1,nx - tmp0=1.d0/Ajac(i,j,k) - E1(1)=E1(1)+f(i,j,k,5)*tmp0 ! Total Energy - E1(2)=E1(2)+d(i,j,k)*(u(i,j,k)*u(i,j,k)+v(i,j,k)*v(i,j,k)+w(i,j,k)*w(i,j,k))*0.5d0*tmp0 !Kinetic Energy - E1(3)=E1(3)+p00*d(i,j,k)**tmp1*T(i,j,k)*tmp0 !Entropy p/rho**gamma - enddo - enddo - enddo - - call MPI_REDUCE(E1,E0,3,OCFD_DATA_TYPE, MPI_SUM,0,MPI_COMM_WORLD,ierr) - E0=E0/(nx_global*ny_global*nz_global) - - - if(my_id .eq. 0) then - print*, 'Istep=',Istep,'tt=',tt - print*, 'CPU time per', Para%Istep_show,'step is: ',wall_time-wtmp - print*, "Averaged Total-energy E, Kinetic-energy K and Entropy S are" - write(*,"(3E25.15)") E0(1), E0(2), E0(3) - - open(66,file='opencfd.log',position='append') - write(66,*) 'Istep=',Istep,'tt=',tt,'CPU time is',wall_time-wtmp - write(66,*) "Averaged Total-energy E, Kinetic-energy K and Entropy S are" - write(66,"(3E25.15)") E0(1), E0(2), E0(3) - close(66) - endif - - end - - diff --git a/OCFD_dxyz_viscous.f90 b/OCFD_dxyz_viscous.f90 deleted file mode 100644 index 992308a..0000000 --- a/OCFD_dxyz_viscous.f90 +++ /dev/null @@ -1,244 +0,0 @@ -! Finite difference for viscous terms (Centeral Schemes) - - subroutine OCFD_dx0(f,fx, Num_Scheme) - use flow_para - implicit none - integer Num_Scheme,i,j,k - real(kind=OCFD_REAL_KIND):: f(1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP),fx(nx,ny,nz) - real(kind=OCFD_REAL_KIND):: a1,a2,a3,c1,c2,c3,c4 - a1=1.d0/(60.d0*hx) ! 6th centeral scheme - a2=-3.d0/(20.d0*hx) - a3=3.d0/(4.d0*hx) - - c1=0.8d0/hx ! 8th centreral scheme - c2=-0.2d0/hx - c3=3.80952380952380952d-2/hx - c4=-3.571428571428571428d-3/hx - - -!------Scheme for inner points ( CD6, CD8) - if(Num_Scheme == OCFD_Scheme_CD6 ) then - do k=1,nz - do j=1,ny - do i=1,nx - fx(i,j,k)=a1*(f(i+3,j,k)-f(i-3,j,k)) +a2*(f(i+2,j,k)-f(i-2,j,k)) +a3*(f(i+1,j,k)-f(i-1,j,k)) - enddo - enddo - enddo - - else if (Num_Scheme == OCFD_Scheme_CD8) then - do k=1,nz - do j=1,ny - do i=1,nx - fx(i,j,k)=c1*(f(i+1,j,k)-f(i-1,j,k)) +c2*(f(i+2,j,k)-f(i-2,j,k)) & - +c3*(f(i+3,j,k)-f(i-3,j,k)) +c4*(f(i+4,j,k)-f(i-4,j,k)) - enddo - enddo - enddo - else - print*, 'This Numerical Scheme is not supported in viscous terms !' - print*, 'Only CD6 or CD8 can be used in viscous terms' - stop - endif - -!---------Boundary Scheme ------- (low-order scheme)---- -!---------- i- boundary --------------------------- - if(npx .eq. 0 .and. Para%Iperiodic_X .eq. 0) then - do k=1,nz - do j=1,ny - fx(1,j,k)=(-3.d0*f(1,j,k)+4.d0*f(2,j,k)-f(3,j,k))/(2.d0*hx) ! 2nd one-side scheme - fx(2,j,k)=(f(3,j,k)-f(1,j,k))/(2.d0*hx) ! 2nd centeral scheme - fx(3,j,k)=(8.d0*(f(4,j,k)-f(2,j,k)) - (f(5,j,k)-f(1,j,k)))/(12.d0*hx) ! 4th central scheme - enddo - enddo - if(Num_Scheme == OCFD_Scheme_CD8) then - do k=1,nz - do j=1,ny - fx(4,j,k)=a1*(f(7,j,k)-f(1,j,k)) +a2*(f(6,j,k)-f(2,j,k)) +a3*(f(5,j,k)-f(3,j,k)) ! 6th centeral scheme - enddo - enddo - endif - endif -!--------- i+ boundary ------------------------ - if(npx .eq. npx0-1 .and. Para%Iperiodic_X .eq. 0) then - do k=1,nz - do j=1,ny - fx(nx,j,k)=(f(nx-2,j,k)-4.d0*f(nx-1,j,k) +3.d0*f(nx,j,k))/(2.d0*hx) ! 2nd one-side scheme - fx(nx-1,j,k)=(f(nx,j,k)-f(nx-2,j,k))/(2.d0*hx) ! 2nd centeral scheme - fx(nx-2,j,k)=(8.d0*(f(nx-1,j,k)-f(nx-3,j,k)) - (f(nx,j,k)-f(nx-4,j,k)))/(12.d0*hx) ! 4th central scheme - enddo - enddo - if(Num_Scheme == OCFD_Scheme_CD8) then - do k=1,nz - do j=1,ny - fx(nx-3,j,k)=a1*(f(nx,j,k)-f(nx-6,j,k)) +a2*(f(nx-1,j,k)-f(nx-5,j,k)) +a3*(f(nx-2,j,k)-f(nx-4,j,k)) ! 6th centeral scheme - enddo - enddo - endif - endif - - - end - -!c---------------------------------------------------------- - - subroutine OCFD_dy0(f,fy,Num_Scheme ) - use flow_para - implicit none - integer Num_Scheme,i,j,k - real(kind=OCFD_REAL_KIND):: f(1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP), fy(nx,ny,nz) - real(kind=OCFD_REAL_KIND):: a1,a2,a3,c1,c2,c3,c4 - a1=1.d0/(60.d0*hy) - a2=-3.d0/(20.d0*hy) - a3=3.d0/(4.d0*hy) - c1=0.8d0/hy - c2=-0.2d0/hy - c3=3.80952380952380952d-2/hy - c4=-3.571428571428571428d-3/hy - -!------Scheme for inner points ( CD6, CD8) - if(Num_Scheme == OCFD_Scheme_CD6 ) then - do k=1,nz - do j=1,ny - do i=1,nx - fy(i,j,k)=a1*(f(i,j+3,k)-f(i,j-3,k)) +a2*(f(i,j+2,k)-f(i,j-2,k)) +a3*(f(i,j+1,k)-f(i,j-1,k)) - enddo - enddo - enddo - - else if (Num_Scheme == OCFD_Scheme_CD8) then - do k=1,nz - do j=1,ny - do i=1,nx - fy(i,j,k)=c1*(f(i,j+1,k)-f(i,j-1,k)) +c2*(f(i,j+2,k)-f(i,j-2,k)) & - +c3*(f(i,j+3,k)-f(i,j-3,k)) +c4*(f(i,j+4,k)-f(i,j-4,k)) - enddo - enddo - enddo - else - - print*, 'This Numerical Scheme is not supported in viscous terms !' - print*, 'Only CD6 or CD8 can be used in viscous terms' - stop - endif - -!---------Boundary Scheme ------- (low-order scheme)---- -!---------- j- boundary --------------------------- - if(npy .eq. 0 .and. Para%Iperiodic_Y .eq. 0) then - do k=1,nz - do i=1,nx - fy(i,1,k)=(-3.d0*f(i,1,k)+4.d0*f(i,2,k)-f(i,3,k))/(2.d0*hy) ! 2nd one-side scheme - fy(i,2,k)=(f(i,3,k)-f(i,1,k))/(2.d0*hy) ! 2nd centeral scheme - fy(i,3,k)=(8.d0*(f(i,4,k)-f(i,2,k)) - (f(i,5,k)-f(i,1,k)))/(12.d0*hy) ! 4th central scheme - enddo - enddo - if(Num_Scheme == OCFD_Scheme_CD8) then - do k=1,nz - do i=1,nx - fy(i,4,k)=a1*(f(i,7,k)-f(i,1,k)) +a2*(f(i,6,k)-f(i,2,k)) +a3*(f(i,5,k)-f(i,3,k)) ! 6th centeral scheme - enddo - enddo - endif - endif -!--------- j+ boundary ------------------------ - if(npy .eq. npy0-1 .and. Para%Iperiodic_Y .eq. 0) then - do k=1,nz - do i=1,nx - fy(i,ny,k)=(f(i,ny-2,k)-4.d0*f(i,ny-1,k) +3.d0*f(i,ny,k))/(2.d0*hy) ! 2nd one-side scheme - fy(i,ny-1,k)=(f(i,ny,k)-f(i,ny-2,k))/(2.d0*hy) ! 2nd centeral scheme - fy(i,ny-2,k)=(8.d0*(f(i,ny-1,k)-f(i,ny-3,k)) - (f(i,ny,k)-f(i,ny-4,k)))/(12.d0*hy) ! 4th central scheme - enddo - enddo - if(Num_Scheme == OCFD_Scheme_CD8) then - do k=1,nz - do i=1,nx - fy(i,ny-3,k)=a1*(f(i,ny,k)-f(i,ny-6,k)) +a2*(f(i,ny-1,k)-f(i,ny-5,k)) +a3*(f(i,ny-2,k)-f(i,ny-4,k)) ! 6th centeral scheme - enddo - enddo - endif - endif - - end - - -!c---------------------------------------------------------- - - subroutine OCFD_dz0(f,fz,Num_Scheme ) - use flow_para - implicit none - integer Num_Scheme,i,j,k - real(kind=OCFD_REAL_KIND):: f(1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP), fz(nx,ny,nz) - real(kind=OCFD_REAL_KIND):: a1,a2,a3,c1,c2,c3,c4 - a1=1.d0/(60.d0*hz) - a2=-3.d0/(20.d0*hz) - a3=3.d0/(4.d0*hz) - c1=0.8d0/hz - c2=-0.2d0/hz - c3=3.80952380952380952d-2/hz - c4=-3.571428571428571428d-3/hz - -!------Scheme for inner points ( CD6, CD8) - if(Num_Scheme == OCFD_Scheme_CD6 ) then - do k=1,nz - do j=1,ny - do i=1,nx - fz(i,j,k)=a1*(f(i,j,k+3)-f(i,j,k-3)) +a2*(f(i,j,k+2)-f(i,j,k-2)) +a3*(f(i,j,k+1)-f(i,j,k-1)) - enddo - enddo - enddo - - else if (Num_Scheme == OCFD_Scheme_CD8) then - do k=1,nz - do j=1,ny - do i=1,nx - fz(i,j,k)=c1*(f(i,j,k+1)-f(i,j,k-1)) +c2*(f(i,j,k+2)-f(i,j,k-2)) & - +c3*(f(i,j,k+3)-f(i,j,k-3)) +c4*(f(i,j,k+4)-f(i,j,k-4)) - enddo - enddo - enddo - else - - print*, 'This Numerical Scheme is not supported in viscous terms !' - print*, 'Only CD6 or CD8 can be used in viscous terms' - stop - endif - -!---------Boundary Scheme ------- (low-order scheme)---- -!---------- k- boundary --------------------------- - if(npz .eq. 0 .and. Para%Iperiodic_Z .eq. 0) then - do j=1,ny - do i=1,nx - fz(i,j,1)=(-3.d0*f(i,j,1)+4.d0*f(i,j,2)-f(i,j,3))/(2.d0*hz) ! 2nd one-side scheme - fz(i,j,2)=(f(i,j,3)-f(i,j,1))/(2.d0*hz) ! 2nd centeral scheme - fz(i,j,3)=(8.d0*(f(i,j,4)-f(i,j,2)) - (f(i,j,5)-f(i,j,1)))/(12.d0*hz) ! 4th central scheme - enddo - enddo - if(Num_Scheme == OCFD_Scheme_CD8) then - do j=1,ny - do i=1,nx - fz(i,j,4)=a1*(f(i,j,7)-f(i,j,1)) +a2*(f(i,j,6)-f(i,j,2)) +a3*(f(i,j,5)-f(i,j,3)) ! 6th centeral scheme - enddo - enddo - endif - endif -!--------- k+ boundary ------------------------ - if(npz .eq. npz0-1 .and. Para%Iperiodic_Z .eq. 0) then - do j=1,ny - do i=1,nx - fz(i,j,nz)=(f(i,j,nz-2)-4.d0*f(i,j,nz-1) +3.d0*f(i,j,nz))/(2.d0*hz) ! 2nd one-side scheme - fz(i,j,nz-1)=(f(i,j,nz)-f(i,j,nz-2))/(2.d0*hz) ! 2nd centeral scheme - fz(i,j,nz-2)=(8.d0*(f(i,j,nz-1)-f(i,j,nz-3)) - (f(i,j,nz)-f(i,j,nz-4)))/(12.d0*hz) ! 4th central scheme - enddo - enddo - if(Num_Scheme == OCFD_Scheme_CD8) then - do j=1,ny - do i=1,nx - fz(i,j,nz-3)=a1*(f(i,j,nz)-f(i,j,nz-6)) +a2*(f(i,j,nz-1)-f(i,j,nz-5)) +a3*(f(i,j,nz-2)-f(i,j,nz-4)) ! 6th centeral scheme - enddo - enddo - endif - endif - - end - -!c---------------------------------------------------------- \ No newline at end of file diff --git a/OCFD_filtering.f90 b/OCFD_filtering.f90 deleted file mode 100644 index de41924..0000000 --- a/OCFD_filtering.f90 +++ /dev/null @@ -1,383 +0,0 @@ -! Filtering, to remove high-wavenumber oscillations -! Bogey C, Bailly C, J. Comput. Phys. 194 (2004) 194-214 - - subroutine filtering(f) - Use flow_para - implicit none - integer:: m,ib,ie,jb,je,kb,ke,IF_filter, Filter_X, Filter_Y, Filter_Z, Filter_scheme - real(kind=OCFD_REAL_KIND):: f(nx,ny,nz,Nvars), s0,rth - real(kind=OCFD_REAL_KIND),allocatable,dimension(:,:,:):: f0,p - integer,parameter:: Filter_Fo9p=1, Filter_Fopt_shock=2 - - - - IF_filter=0 - do m=1,Para%Nfiltering - if( mod(Istep, nint(Para%Filter(1,m)))==0) IF_filter=1 - enddo - if( IF_filter == 0) return ! do not filtering in this step - - allocate(f0(1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP),p(1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP)) -! --------------Filtering -------------------- - if(my_id .eq. 0) print*, "filtering ......" - - - do m=1, Para%NFiltering - if( mod(Istep, nint(Para%Filter(1,m)))==0) then - Filter_X=nint(Para%Filter(2,m)) - Filter_Y=nint(Para%Filter(3,m)) - Filter_Z=nint(Para%Filter(4,m)) - ib=nint(Para%Filter(5,m)) - ie=nint(Para%Filter(6,m)) - jb=nint(Para%Filter(7,m)) - je=nint(Para%Filter(8,m)) - kb=nint(Para%Filter(9,m)) - ke=nint(Para%Filter(10,m)) - ib=max(ib-i_offset(npx)+1,1) ! transform global index to local index - ie=min(ie-i_offset(npx)+1,nx) - jb=max(jb-j_offset(npy)+1,1) - je=min(je-j_offset(npy)+1,ny) - kb=max(kb-k_offset(npz)+1,1) - ke=min(ke-k_offset(npz)+1,nz) - - Filter_scheme=nint(Para%Filter(11,m)) ! 1 9-point filtering Fo9P; 2 shock-capturing filtering (more robust but more dissipative) - s0=Para%Filter(12,m) ! filtering amplitude (s=1 for default) - rth=Para%Filter(13,m) ! flitering threshold (1E-5 for default); smaller: more dissipation (robust) rth=0: 100% filtering - - if(Filter_X == 1 ) then - if(Filter_scheme == Filter_Fo9p) then - call filter_x3d(f,f0,s0,ib,ie,jb,je,kb,ke) - else if (Filter_scheme == Filter_Fopt_shock) then - call filter_x3d_shock(f,f0,p,s0,rth,ib,ie,jb,je,kb,ke) - endif - endif - - - if(Filter_Y == 1 ) then - if(Filter_scheme == Filter_Fo9p) then - call filter_y3d(f,f0,s0,ib,ie,jb,je,kb,ke) - else if (Filter_scheme == Filter_Fopt_shock) then - call filter_y3d_shock(f,f0,p,s0,rth,ib,ie,jb,je,kb,ke) - endif - endif - - if(Filter_Z == 1 ) then - if(Filter_scheme == Filter_Fo9p) then - call filter_z3d(f,f0,s0,ib,ie,jb,je,kb,ke) - else if (Filter_scheme == Filter_Fopt_shock) then - call filter_z3d_shock(f,f0,p,s0,rth,ib,ie,jb,je,kb,ke) - endif - endif - endif - enddo - deallocate(f0,p) - end - - - - -!--------------------------------------------------- - subroutine filter_x3d(f,f0,s0,ib,ie,jb,je,kb,ke) - Use flow_para - implicit none - - integer:: i,j,k,m, ib,ie,jb,je,kb,ke, ib1,ie1 - real(kind=OCFD_REAL_KIND):: f0(1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP) - real(kind=OCFD_REAL_KIND):: f(nx,ny,nz,Nvars), s0 - real(kind=OCFD_REAL_KIND),parameter:: d0=0.243527493120d0, d1= -0.204788880640d0, d2=0.120007591680d0 , & - d3= -0.045211119360d0, d4=0.008228661760d0 - - ib1=ib; ie1=ie - if(npx ==0 .and. Para%Iperiodic_X .ne. 1 ) ib1=max(ib,6) - if(npx == npx0-1 .and. Para%Iperiodic_X .ne. 1) ie1=min(ie,nx-5) - - do m=1,Nvars - do k=1,nz - do j=1,ny - do i=1,nx - f0(i,j,k)=f(i,j,k,m) - enddo - enddo - enddo - - call exchange_boundary_x(f0) - - do k=kb,ke - do j=jb,je - do i=ib1,ie1 - f(i,j,k,m)=f0(i,j,k)-s0*(d0*f0(i,j,k)+d1*(f0(i-1,j,k)+f0(i+1,j,k))+d2*(f0(i-2,j,k)+f0(i+2,j,k)) & - +d3*(f0(i-3,j,k)+f0(i+3,j,k))+d4*(f0(i-4,j,k)+f0(i+4,j,k)) ) - enddo - enddo - enddo - enddo - - end - - -!--------------------------------------------------- - subroutine filter_y3d(f,f0,s0,ib,ie,jb,je,kb,ke) - Use flow_para - implicit none - - integer:: i,j,k,m, ib,ie,jb,je,kb,ke,jb1,je1 - real(kind=OCFD_REAL_KIND):: f0(1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP) - real(kind=OCFD_REAL_KIND):: f(nx,ny,nz,Nvars), s0 - real(kind=OCFD_REAL_KIND),parameter:: d0=0.243527493120d0, d1= -0.204788880640d0, d2=0.120007591680d0 , & - d3= -0.045211119360d0, d4=0.008228661760d0 - - jb1=jb; je1=je - if(npy ==0 .and. Para%Iperiodic_Y .ne. 1 ) jb1=max(jb,6) - if(npy == npy0-1 .and. Para%Iperiodic_Y .ne. 1) je1=min(je,ny-5) - - do m=1,Nvars - do k=1,nz - do j=1,ny - do i=1,nx - f0(i,j,k)=f(i,j,k,m) - enddo - enddo - enddo - - call exchange_boundary_y(f0) - - do k=kb,ke - do j=jb1,je1 - do i=ib,ie - f(i,j,k,m)=f0(i,j,k)-s0*(d0*f0(i,j,k)+d1*(f0(i,j-1,k)+f0(i,j+1,k))+d2*(f0(i,j-2,k)+f0(i,j+2,k)) & - +d3*(f0(i,j-3,k)+f0(i,j+3,k))+d4*(f0(i,j-4,k)+f0(i,j+4,k)) ) - enddo - enddo - enddo - enddo - - end - -!--------------------------------------------------- - subroutine filter_z3d(f,f0,s0,ib,ie,jb,je,kb,ke) - Use flow_para - implicit none - - integer:: i,j,k,m, ib,ie,jb,je,kb,ke,kb1,ke1 - real(kind=OCFD_REAL_KIND):: f0(1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP) - real(kind=OCFD_REAL_KIND):: f(nx,ny,nz,Nvars), s0 - real(kind=OCFD_REAL_KIND),parameter:: d0=0.243527493120d0, d1= -0.204788880640d0, d2=0.120007591680d0 , & - d3= -0.045211119360d0, d4=0.008228661760d0 - kb1=kb; ke1=ke - if(npz ==0 .and. Para%Iperiodic_Z .ne. 1 ) kb1=max(kb, 6) - if(npz == npz0-1 .and. Para%Iperiodic_Z .ne. 1) ke1=min(ke,nz-5) - - do m=1,Nvars - do k=1,nz - do j=1,ny - do i=1,nx - f0(i,j,k)=f(i,j,k,m) - enddo - enddo - enddo - - call exchange_boundary_z(f0) - - do k=kb1,ke1 - do j=jb,je - do i=ib,ie - f(i,j,k,m)=f0(i,j,k)-s0*(d0*f0(i,j,k)+d1*(f0(i,j,k-1)+f0(i,j,k+1))+d2*(f0(i,j,k-2)+f0(i,j,k+2)) & - +d3*(f0(i,j,k-3)+f0(i,j,k+3))+d4*(f0(i,j,k-4)+f0(i,j,k+4)) ) - enddo - enddo - enddo - enddo - - end - -!------------------------------------------------------------ -! Shock cpaturing filtering - - subroutine filter_x3d_shock(f,f0,p,s0,rth,ib,ie,jb,je,kb,ke) - Use flow_para - implicit none - - integer:: i,j,k,m, ib,ie,jb,je,kb,ke, ib1,ie1 - real(kind=OCFD_REAL_KIND),dimension (1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP):: f0, p - real(kind=OCFD_REAL_KIND):: f(nx,ny,nz,Nvars),sc0(0:nx+1), s0,rth,dp0,dp1,dp2,ri,sc1,sc2 - real(kind=OCFD_REAL_KIND),parameter:: c1=-0.210383d0 , c2=0.039617d0 - - - ib1=ib; ie1=ie - if(npx ==0 .and. Para%Iperiodic_X .ne. 1 ) ib1=max(ib,4) - if(npx == npx0-1 .and. Para%Iperiodic_X .ne. 1) ie1=min(ie,nx-3) - - do k=1,nz - do j=1,ny - do i=1,nx - p(i,j,k)=( f(i,j,k,5)-0.5d0*(f(i,j,k,2)**2+f(i,j,k,3)**2+f(i,j,k,4)**2)/f(i,j,k,1) )* (Para%gamma-1.d0) - enddo - enddo - enddo - - call exchange_boundary_x(p) - - - do m=1,Nvars - do k=1,nz - do j=1,ny - do i=1,nx - f0(i,j,k)=f(i,j,k,m) - enddo - enddo - enddo - - call exchange_boundary_x(f0) - - - - do k=kb,ke - do j=jb,je - - do i=ib1-1,ie1+1 - dp0=0.25d0*(-p(i+1,j,k)+2.d0*p(i,j,k)-p(i-1,j,k)) - dp1=0.25d0*(-p(i+2,j,k)+2.d0*p(i+1,j,k)-p(i,j,k)) - dp2=0.25d0*(-p(i,j,k)+2.d0*p(i-1,j,k)-p(i-2,j,k)) - ri=0.5d0*((dp0-dp1)**2+(dp0-dp2)**2)/(p(i,j,k)*p(i,j,k))+1.d-16 - sc0(i)=0.5d0*(1.d0-rth/ri+abs(1.d0-rth/ri)) - enddo - - do i=ib1,ie1 - sc1=0.5d0*(sc0(i)+sc0(i+1)) - sc2=0.5d0*(sc0(i)+sc0(i-1)) - - - f(i,j,k,m)=f0(i,j,k)-s0*(Sc1*(c1* (f0(i+1,j,k)-f0(i,j,k)) +c2*(f0(i+2,j,k)-f0(i-1,j,k))) & - - Sc2*(c1* (f0(i,j,k)-f0(i-1,j,k)) +c2*(f0(i+1,j,k)-f0(i-2,j,k))) ) - enddo - enddo - enddo - enddo - - end - -!--------------------------------------------------- - subroutine filter_y3d_shock(f,f0,p,s0,rth,ib,ie,jb,je,kb,ke) - Use flow_para - implicit none - - integer:: i,j,k,m, ib,ie,jb,je,kb,ke,jb1,je1 - real(kind=OCFD_REAL_KIND),dimension (1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP):: f0, p - real(kind=OCFD_REAL_KIND):: f(nx,ny,nz,Nvars),sc0(0:ny+1), s0,rth,dp0,dp1,dp2,ri,sc1,sc2 - real(kind=OCFD_REAL_KIND),parameter:: c1=-0.210383d0 , c2=0.039617d0 - - jb1=jb; je1=je - if(npy ==0 .and. Para%Iperiodic_Y .ne. 1 ) jb1=max(jb,4) - if(npy == npy0-1 .and. Para%Iperiodic_Y .ne. 1) je1=min(je,ny-3) - - do k=1,nz - do j=1,ny - do i=1,nx - p(i,j,k)=( f(i,j,k,5)-0.5d0*(f(i,j,k,2)**2+f(i,j,k,3)**2+f(i,j,k,4)**2)/f(i,j,k,1) )* (Para%gamma-1.d0) - enddo - enddo - enddo - - call exchange_boundary_y(p) - - - - do m=1,Nvars - do k=1,nz - do j=1,ny - do i=1,nx - f0(i,j,k)=f(i,j,k,m) - enddo - enddo - enddo - - call exchange_boundary_y(f0) - - do k=kb,ke - do i=ib,ie - - do j=jb1-1,je1+1 - dp0=0.25d0*(-p(i,j+1,k)+2.d0*p(i,j,k)-p(i,j-1,k)) - dp1=0.25d0*(-p(i,j+2,k)+2.d0*p(i,j+1,k)-p(i,j,k)) - dp2=0.25d0*(-p(i,j,k)+2.d0*p(i,j-1,k)-p(i,j-2,k)) - ri=0.5d0*((dp0-dp1)**2+(dp0-dp2)**2)/(p(i,j,k)*p(i,j,k))+1.d-16 - sc0(j)=0.5d0*(1.d0-rth/ri+abs(1.d0-rth/ri)) - enddo - - do j=jb1,je1 - sc1=0.5d0*(sc0(j)+sc0(j+1)) - sc2=0.5d0*(sc0(j)+sc0(j-1)) - - f(i,j,k,m)=f0(i,j,k)-s0*(Sc1*(c1* (f0(i,j+1,k)-f0(i,j,k)) +c2*(f0(i,j+2,k)-f0(i,j-1,k))) & - - Sc2*(c1* (f0(i,j,k)-f0(i,j-1,k)) +c2*(f0(i,j+1,k)-f0(i,j-2,k))) ) - enddo - - - enddo - enddo - enddo - - end -!--------------------------------------------------- - subroutine filter_z3d_shock(f,f0,p,s0,rth,ib,ie,jb,je,kb,ke) - Use flow_para - implicit none - - integer:: i,j,k,m, ib,ie,jb,je,kb,ke,kb1,ke1 - real(kind=OCFD_REAL_KIND),dimension (1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP):: f0, p - real(kind=OCFD_REAL_KIND):: f(nx,ny,nz,Nvars), sc0(0:nz+1), s0,rth,dp0,dp1,dp2,ri,sc1,sc2 - real(kind=OCFD_REAL_KIND),parameter:: c1=-0.210383d0 , c2=0.039617d0 - - kb1=kb; ke1=ke - if(npz ==0 .and. Para%Iperiodic_Z .ne. 1 ) kb1=max(kb, 4) - if(npz == npz0-1 .and. Para%Iperiodic_Z .ne. 1) ke1=min(ke,nz-3) - - do k=1,nz - do j=1,ny - do i=1,nx - p(i,j,k)=( f(i,j,k,5)-0.5d0*(f(i,j,k,2)**2+f(i,j,k,3)**2+f(i,j,k,4)**2)/f(i,j,k,1) )* (Para%gamma-1.d0) - enddo - enddo - enddo - - call exchange_boundary_z(p) - - - do m=1,Nvars - do k=1,nz - do j=1,ny - do i=1,nx - f0(i,j,k)=f(i,j,k,m) - enddo - enddo - enddo - - call exchange_boundary_z(f0) - - do j=jb,je - do i=ib,ie - - - do k=kb1-1,ke1+1 - dp0=0.25d0*(-p(i,j,k+1)+2.d0*p(i,j,k)-p(i,j,k-1)) - dp1=0.25d0*(-p(i,j,k+2)+2.d0*p(i,j,k+1)-p(i,j,k)) - dp2=0.25d0*(-p(i,j,k)+2.d0*p(i,j,k-1)-p(i,j,k-2)) - ri=0.5d0*((dp0-dp1)**2+(dp0-dp2)**2)/(p(i,j,k)*p(i,j,k))+1.d-16 - sc0(k)=0.5d0*(1.d0-rth/ri+abs(1.d0-rth/ri)) - enddo - - do k=kb1,ke1 - sc1=0.5d0*(sc0(k)+sc0(k+1)) - sc2=0.5d0*(sc0(k)+sc0(k-1)) - - f(i,j,k,m)=f0(i,j,k)-s0*(Sc1*(c1* (f0(i,j,k+1)-f0(i,j,k)) +c2*(f0(i,j,k+2)-f0(i,j,k-1))) & - - Sc2*(c1* (f0(i,j,k)-f0(i,j,k-1)) +c2*(f0(i,j,k+1)-f0(i,j,k-2))) ) - enddo - - enddo - enddo - enddo - - end - -!------------------------------------------------------------ diff --git a/OCFD_flux_split.f90 b/OCFD_flux_split.f90 deleted file mode 100644 index 949eb8d..0000000 --- a/OCFD_flux_split.f90 +++ /dev/null @@ -1,104 +0,0 @@ - -!============================================================================================= -! Steger-Warming Splitting, See Dexun Fu, Computational Aerodynamics, page 160-162 (in Chinese) -! Ref: Steger J I, warming R F, JCP 40, 263-293, 1981 - subroutine split_Stager_Warming(nx1,LAP1,c1,d1,u1,v1,w1,A1,A2,A3,fP,fm) - Use flow_para - implicit none - integer nx1,LAP1,i - real(kind=OCFD_REAL_KIND),dimension (1-LAP1:nx1+LAP1):: c1,d1,u1,v1,w1,A1,A2,A3 - real(kind=OCFD_REAL_KIND),dimension(1-LAP1:nx1+LAP1,5):: fp, fm - - real(kind=OCFD_REAL_KIND):: ss,ss1,ak1,ak2,ak3,tmp0,tmp1,tmp2,tmp3, & - E1,E2,E3,E1P,E2P,E3P,E1M,E2M,E3M, & - vs,uc1,uc2,vc1,vc2,wc1,wc2,vvc1,vvc2,vv,W2,P2 - - tmp1=2.d0*(Para%gamma-1.d0) - tmp2=1.d0/(2.d0*Para%gamma) - tmp3=(3.d0-Para%gamma)/(2.d0*(Para%gamma-1.d0)) - - do i=1-LAP1,nx1+LAP1 - ss=sqrt(A1(i)*A1(i)+A2(i)*A2(i)+A3(i)*A3(i)) - ss1=1.d0/ss - ak1=A1(i)*ss1 - ak2=A2(i)*ss1 - ak3=A3(i)*ss1 - vs=A1(i)*u1(i)+A2(i)*v1(i)+A3(i)*w1(i) -!c E1 is lamda1, lamda2 and lamda3; E2 is lamda4; E3 is lamda5 - E1=vs - E2=vs-c1(i)*ss - E3=vs+c1(i)*ss -!---------------------------------------- - E1P=(E1+abs(E1))*0.5d0 - E2P=(E2+abs(E2))*0.5d0 - E3P=(E3+abs(E3))*0.5d0 - - E1M=E1-E1P - E2M=E2-E2P - E3M=E3-E3P -!---------------------------------------- - tmp0=d1(i)/(2.d0*Para%gamma) - uc1=u1(i)-c1(i)*ak1 - uc2=u1(i)+c1(i)*ak1 - vc1=v1(i)-c1(i)*ak2 - vc2=v1(i)+c1(i)*ak2 - wc1=w1(i)-c1(i)*ak3 - wc2=w1(i)+c1(i)*ak3 - vvc1=(uc1*uc1+vc1*vc1+wc1*wc1)*0.5d0 - vvc2=(uc2*uc2+vc2*vc2+wc2*wc2)*0.5d0 - vv=(Para%gamma-1.d0)*(u1(i)*u1(i)+v1(i)*v1(i) +w1(i)*w1(i)) - W2=tmp3*c1(i)*c1(i) -! --------The equation seems wrong ! P2 should be zero ! -! P2=tmp1*d1(i)*ak1*(ak2*w1(i)-ak3*v1(i)) ! ??????? Error -!-------------------------------------------------------- - fp(i,1)=tmp0*(tmp1*E1P+E2P+E3P) - fp(i,2)=tmp0*(tmp1*E1P*u1(i)+E2P*uc1+E3P*uc2) - fp(i,3)=tmp0*(tmp1*E1P*v1(i)+E2P*vc1+E3P*vc2) - fp(i,4)=tmp0*(tmp1*E1P*w1(i)+E2P*wc1+E3P*wc2) -! P2 should be zero !!! -! fp(i,5)=tmp0*(E1P*vv+E2p*vvc1+E3P*vvc2+W2*(E2P+E3P)+P2*E1P) ! Error - fp(i,5)=tmp0*(E1P*vv+E2p*vvc1+E3P*vvc2+W2*(E2P+E3P)) - - fm(i,1)=tmp0*(tmp1*E1M+E2M+E3M) - fm(i,2)=tmp0*(tmp1*E1M*u1(i)+E2M*uc1+E3M*uc2) - fm(i,3)=tmp0*(tmp1*E1M*v1(i)+E2M*vc1+E3M*vc2) - fm(i,4)=tmp0*(tmp1*E1M*w1(i)+E2M*wc1+E3M*wc2) - -! fm(i,5)=tmp0*(E1M*vv+E2M*vvc1+E3M*vvc2+W2*(E2M+E3M)+P2*E1M) ! Error - fm(i,5)=tmp0*(E1M*vv+E2M*vvc1+E3M*vvc2+W2*(E2M+E3M)) - enddo - end -!-------------------------------------------- - - subroutine split_Local_LaxFriedrichs(nx1,LAP1,c1,d1,u1,v1,w1,A1,A2,A3,fP,fm) - Use flow_para - implicit none - integer nx1,LAP1,i - real(kind=OCFD_REAL_KIND),dimension (1-LAP1:nx1+LAP1):: c1,d1,u1,v1,w1,A1,A2,A3 - real(kind=OCFD_REAL_KIND),dimension(1-LAP1:nx1+LAP1,5):: fp, fm - - real(kind=OCFD_REAL_KIND):: ss,un,p1,lamda0,E0,h0,tmp0,tmp1 - tmp0=1.d0/Para%gamma - tmp1=1.d0/(Para%gamma-1.d0) - - do i=1-LAP1,nx1+LAP1 - ss=sqrt(A1(i)*A1(i)+A2(i)*A2(i)+A3(i)*A3(i)) - un=A1(i)*u1(i)+A2(i)*v1(i)+A3(i)*w1(i) - lamda0=abs(un)+ss*c1(i) - p1=tmp0*d1(i)*c1(i)*c1(i) - E0=tmp1*p1+0.5d0*d1(i)*(u1(i)*u1(i)+v1(i)*v1(i)+w1(i)*w1(i)) - h0=E0+p1 ! Total H (=E+p) - - fp(i,1)=0.5d0*(d1(i)*un +lamda0*d1(i)) - fp(i,2)=0.5d0*(d1(i)*u1(i)*un+A1(i)*p1 + lamda0*d1(i)*u1(i)) - fp(i,3)=0.5d0*(d1(i)*v1(i)*un+A2(i)*p1 + lamda0*d1(i)*v1(i)) - fp(i,4)=0.5d0*(d1(i)*w1(i)*un+A3(i)*p1 + lamda0*d1(i)*w1(i)) - fp(i,5)=0.5d0*(h0*un + lamda0*E0) - - fm(i,1)=0.5d0*(d1(i)*un -lamda0*d1(i)) - fm(i,2)=0.5d0*(d1(i)*u1(i)*un+A1(i)*p1 - lamda0*d1(i)*u1(i)) - fm(i,3)=0.5d0*(d1(i)*v1(i)*un+A2(i)*p1 - lamda0*d1(i)*v1(i)) - fm(i,4)=0.5d0*(d1(i)*w1(i)*un+A3(i)*p1 - lamda0*d1(i)*w1(i)) - fm(i,5)=0.5d0*(h0*un - lamda0*E0) - enddo - end \ No newline at end of file diff --git a/OCFD_handle_NegativeT.f90 b/OCFD_handle_NegativeT.f90 deleted file mode 100644 index b1687e1..0000000 --- a/OCFD_handle_NegativeT.f90 +++ /dev/null @@ -1,18 +0,0 @@ - subroutine handle_NegativeT(i,j,k,Num_NegT) - use flow_data - implicit none - integer:: i,j,k,i1,j1,k1,Num_NegT - integer,parameter:: Max_NegT=10 - ! input you code here !!! - i1=i_offset(npx)+i-1 - j1=j_offset(npy)+j-1 - k1=k_offset(npz)+k-1 - print*, "Negative T found !", i1,j1,k1 - T(i,j,k)=(T(i+1,j,k)+T(i-1,j,k)+T(i,j+1,k)+T(i,j-1,k)+ T(i,j,k+1)+T(i,j,k-1))/6.d0 - Num_NegT=Num_NegT+1 - if(Num_NegT > 10) then - print*, "Number of Negative Temperature Points > Limit, STOP !" - stop - endif - end - diff --git a/OCFD_init.f90 b/OCFD_init.f90 deleted file mode 100644 index ed1c570..0000000 --- a/OCFD_init.f90 +++ /dev/null @@ -1,20 +0,0 @@ - subroutine init3d - use flow_data - implicit none - integer:: i,j,k,ierr - - call init_mesh - call read_flow_data - do k=1,nz - do j=1,ny - do i=1,nx - f(i,j,k,1)=d(i,j,k) - f(i,j,k,2)=d(i,j,k)*u(i,j,k) - f(i,j,k,3)=d(i,j,k)*v(i,j,k) - f(i,j,k,4)=d(i,j,k)*w(i,j,k) - f(i,j,k,5)=d(i,j,k)*( (u(i,j,k)*u(i,j,k)+v(i,j,k)*v(i,j,k)+w(i,j,k)*w(i,j,k))*0.5d0 +Cv*T(i,j,k) ) - enddo - enddo - enddo - end - \ No newline at end of file diff --git a/OCFD_inviscous.f90 b/OCFD_inviscous.f90 deleted file mode 100644 index ff6a3b4..0000000 --- a/OCFD_inviscous.f90 +++ /dev/null @@ -1,370 +0,0 @@ -! Inviscous term for Jacobian-transformed N-S equation (Non-Characterical flux) --------------------- - -module inviscous_data ! data used by inviscous term - use OCFD_precision - implicit none - real(kind=OCFD_REAL_KIND),allocatable,dimension(:,:,:):: cc ! speed of sound - real(kind=OCFD_REAL_KIND),allocatable,dimension(:) :: & - c1x,d1x,u1x,v1x,w1x,A1x,A2x,A3x,hhx1,hhx2, & - c1y,d1y,u1y,v1y,w1y,A1y,A2y,A3y,hhy1,hhy2, & - c1z,d1z,u1z,v1z,w1z,A1z,A2z,A3z,hhz1,hhz2 - real(kind=OCFD_REAL_KIND),allocatable,dimension(:,:):: fpx,fmx,fpy,fmy,fpz,fmz, hhx,hhy,hhz - integer,allocatable,dimension(:)::Scm_Hbx,Scm_Hby,Scm_Hbz ! hybrid scheme index -end - -subroutine allocate_inviscous_data - use flow_para - use inviscous_data - implicit none - allocate(cc(1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP)) - allocate( fpx(1-LAP:nx+LAP,5),fmx(1-LAP:nx+LAP,5)) - allocate( c1x(1-LAP:nx+LAP),d1x(1-LAP:nx+LAP), u1x(1-LAP:nx+LAP), & - v1x(1-LAP:nx+LAP),w1x(1-LAP:nx+LAP), A1x(1-LAP:nx+LAP), & - A2x(1-LAP:nx+LAP), A3x(1-LAP:nx+LAP), & - hhx1(0:nx),hhx2(0:nx), hhx(0:nx,5)) - - allocate( fpy(1-LAP:ny+LAP,5),fmy(1-LAP:ny+LAP,5)) - allocate( c1y(1-LAP:ny+LAP),d1y(1-LAP:ny+LAP), u1y(1-LAP:ny+LAP), & - v1y(1-LAP:ny+LAP),w1y(1-LAP:ny+LAP), A1y(1-LAP:ny+LAP), & - A2y(1-LAP:ny+LAP), A3y(1-LAP:ny+LAP), & - hhy1(0:ny),hhy2(0:ny), hhy(0:ny,5)) - - allocate( fpz(1-LAP:nz+LAP,5),fmz(1-LAP:nz+LAP,5)) - allocate( c1z(1-LAP:nz+LAP),d1z(1-LAP:nz+LAP), u1z(1-LAP:nz+LAP), & - v1z(1-LAP:nz+LAP),w1z(1-LAP:nz+LAP), A1z(1-LAP:nz+LAP), & - A2z(1-LAP:nz+LAP), A3z(1-LAP:nz+LAP), & - hhz1(0:nz),hhz2(0:nz),hhz(0:nz,5)) - - allocate(Scm_Hbx(0:nx),Scm_Hby(0:ny),Scm_Hbz(0:nz)) - Scm_Hbx=0 ; Scm_Hby=0; Scm_Hbz=0 ! 2021-6-7 (initialized as zero, in case of non-hybrid scheme, character-type flux used) - end - - subroutine deallocate_inviscous_data - use flow_para - use inviscous_data - implicit none - deallocate( c1x,d1x,u1x,v1x,w1x,A1x,A2x,A3x,hhx1,hhx2,hhx, & - c1y,d1y,u1y,v1y,w1y,A1y,A2y,A3y,hhy1,hhy2,hhy, & - c1z,d1z,u1z,v1z,w1z,A1z,A2z,A3z,hhz1,hhz2,hhz, & - fpx,fmx,fpy,fmy,fpz,fmz,Scm_Hbx,Scm_Hby,Scm_Hbz) - end - - - -!-----------Inviscous term (non-character type)---------------------------- - subroutine du_inviscous - use flow_data - use inviscous_data - implicit none - integer:: i,j,k,m,set_hybrid_scheme - real(kind=OCFD_REAL_KIND):: hx_1, hy_1, hz_1,Rhb0 -!c------------------------------------------------- - hx_1=1.d0/hx - hy_1=1.d0/hy - hz_1=1.d0/hz - - do k=1-LAP,nz+LAP - do j=1-LAP,ny+LAP - do i=1-LAP,nx+LAP - cc(i,j,k)=sqrt(T(i,j,k))/Para%Ma - enddo - enddo - enddo - -!c---------x direction------------------------- - do k=1,nz - do j=1,ny - - if(Scheme%Scheme_Invis == OCFD_Scheme_Hybrid) then - do i=0,nx - Rhb0=max(Rhybrid(i,j,k),Rhybrid(i+1,j,k)) - Scm_Hbx(i)=set_hybrid_scheme(Rhb0) - enddo - endif - - do i=1-LAP,nx+LAP - c1x(i)=cc(i,j,k) - d1x(i)=d(i,j,k) - u1x(i)=u(i,j,k) - v1x(i)=v(i,j,k) - w1x(i)=w(i,j,k) - A1x(i)=Akx1(i,j,k) - A2x(i)=Aky1(i,j,k) - A3x(i)=Akz1(i,j,k) - enddo - - ! Steger-Warming Flux Vector Splitting (SW-FVS) - if(Para%Flux_Splitting .eq. OCFD_Split_SW) then - call split_Stager_Warming(nx,LAP,c1x,d1x,u1x,v1x,w1x,A1x,A2x,A3x,fpx,fmx) - else - call split_Local_LaxFriedrichs(nx,LAP,c1x,d1x,u1x,v1x,w1x,A1x,A2x,A3x,fpx,fmx) - endif - - do m=1,5 - ! upwind finite-difference: dx1 for Positive flux ; dx2 for Negative flux - call OCFD2d_flux1(fpx(1-LAP,m),hhx1,nx,LAP,Scheme%Bound_index(1,1),Scm_Hbx, Scheme%Scheme_boundary(1:2)) - call OCFD2d_flux2(fmx(1-LAP,m),hhx2,nx,LAP,Scheme%Bound_index(1,1),Scm_Hbx, Scheme%Scheme_boundary(1:2)) - - do i=1,nx - du(i,j,k,m)= (hhx1(i)-hhx1(i-1) + hhx2(i)-hhx2(i-1))*hx_1 - enddo - enddo - enddo - enddo -!c-------y direction ------------------------ - do k=1,nz - do i=1,nx - - if(Scheme%Scheme_Invis == OCFD_Scheme_Hybrid) then - do j=0,ny - Rhb0=max(Rhybrid(i,j,k),Rhybrid(i,j+1,k)) - Scm_Hby(j)=set_hybrid_scheme(Rhb0) - enddo - endif - - do j=1-LAP,ny+LAP - c1y(j)=cc(i,j,k) - d1y(j)=d(i,j,k) - u1y(j)=u(i,j,k) - v1y(j)=v(i,j,k) - w1y(j)=w(i,j,k) - A1y(j)=Aix1(i,j,k) - A2y(j)=Aiy1(i,j,k) - A3y(j)=Aiz1(i,j,k) - enddo - - if(Para%Flux_Splitting .eq. OCFD_Split_SW) then - call split_Stager_Warming(ny,LAP,c1y,d1y,u1y,v1y,w1y,A1y,A2y,A3y,fpy,fmy) - else - call split_Local_LaxFriedrichs(ny,LAP,c1y,d1y,u1y,v1y,w1y,A1y,A2y,A3y,fpy,fmy) - endif - - do m=1,5 - ! dy1 for positive flux; dy2 for negative flux - call OCFD2d_flux1(fpy(1-LAP,m),hhy1,ny,LAP, Scheme%Bound_index(1,2),Scm_Hby, Scheme%Scheme_boundary(3:4) ) - call OCFD2d_flux2(fmy(1-LAP,m),hhy2,ny,LAP, Scheme%Bound_index(1,2),Scm_Hby, Scheme%Scheme_boundary(3:4) ) - do j=1,ny - du(i,j,k,m)= du(i,j,k,m)+ (hhy1(j)-hhy1(j-1)+hhy2(j)-hhy2(j-1))*hy_1 ! df/dt=-du - enddo - enddo - enddo - enddo - -!c-------z direction ------------------------ - do j=1,ny - do i=1,nx - if(Scheme%Scheme_Invis == OCFD_Scheme_Hybrid) then - do k=0,nz - Rhb0=max(Rhybrid(i,j,k),Rhybrid(i,j,k+1)) - Scm_Hbz(k)=set_hybrid_scheme(Rhb0) - enddo - endif - - do k=1-LAP,nz+LAP - c1z(k)=cc(i,j,k) - d1z(k)=d(i,j,k) - u1z(k)=u(i,j,k) - v1z(k)=v(i,j,k) - w1z(k)=w(i,j,k) - A1z(k)=Asx1(i,j,k) - A2z(k)=Asy1(i,j,k) - A3z(k)=Asz1(i,j,k) - enddo - - if(Para%Flux_Splitting .eq. OCFD_Split_SW) then - call split_Stager_Warming(nz,LAP,c1z,d1z,u1z,v1z,w1z,A1z,A2z,A3z,fpz,fmz) - else - call split_Local_LaxFriedrichs(nz,LAP,c1z,d1z,u1z,v1z,w1z,A1z,A2z,A3z,fpz,fmz) - endif - - do m=1,5 - ! dz1 for positive flux; dz2 for negative flux - call OCFD2d_flux1(fpz(1-LAP,m),hhz1,nz,LAP, Scheme%Bound_index(1,3),Scm_Hbz, Scheme%Scheme_boundary(5:6) ) - call OCFD2d_flux2(fmz(1-LAP,m),hhz2,nz,LAP, Scheme%Bound_index(1,3),Scm_Hbz, Scheme%Scheme_boundary(5:6) ) - do k=1,nz - du(i,j,k,m)=-(du(i,j,k,m)+ (hhz1(k)-hhz1(k-1)+hhz2(k)-hhz2(k-1))*hz_1 )*Ajac(i,j,k) ! df/dt=-du - enddo - enddo - enddo - enddo - - - if(Para%IF_Mass_Force .eq. 1) then - do k=1,nz - do j=1,ny - do i=1,nx - du(i,j,k,2)=du(i,j,k,2)+d(i,j,k)*Para%Mass_Force(1) - du(i,j,k,3)=du(i,j,k,3)+d(i,j,k)*Para%Mass_Force(2) - du(i,j,k,4)=du(i,j,k,4)+d(i,j,k)*Para%Mass_Force(3) - du(i,j,k,5)=du(i,j,k,5)+d(i,j,k)*(u(i,j,k)*Para%Mass_Force(1) & - +v(i,j,k)*Para%Mass_Force(2) +w(i,j,k)*Para%Mass_Force(3)) - enddo - enddo - enddo - endif - - - end - -!c----------------------------------- -!Scheme_boundary(:)==0 ! WENO5-type boundary scheme (default); ==-1 Ghost Cell - -! Finite difference Numerical flux for inviscous terms (Upwind Schemes) -! In this version, Only WENO5/WENO7/OMP6 schemes are supported! - subroutine OCFD2d_flux1(f1d,hh,nx1,LAP1,Bound_index,Scm_Hy,Scheme_boundary) - use OCFD_constants - use Scheme_Para - implicit none - integer nx1,LAP1,Bound_index(2),Ka,Kb,i,Scm_Hy(0:nx1),Scheme_boundary(2),ib,ie - real(kind=OCFD_REAL_KIND):: f1d(1-LAP1:nx1+LAP1),hh(0:nx1) - Ka=Scheme%Ka1 ; Kb=Scheme%Kb1 - - if(Bound_index(1) .eq. 0 .or. Scheme_boundary(1) .eq. -1) then ! inner point [ib,ie] - ib=0 - else - ib=-Ka+1 - endif - - if(Bound_index(2) .eq. 0 .or. Scheme_boundary(2) .eq. -1 ) then - ie=nx1 - else - ie=nx1-Kb - endif - - select case(Scheme%Scheme_Invis) - case (OCFD_Scheme_OMP6) - call OCFD_OMP6P(f1d,hh,nx1,LAP1,ib,ie) - case(OCFD_Scheme_WENO7) - call OCFD_WENO7P(f1d,hh,nx1,LAP1,ib,ie) - case(OCFD_Scheme_WENO5) - call OCFD_WENO5P(f1d,hh,nx1,LAP1,ib,ie) - case(OCFD_Scheme_UD7L) - call OCFD_UD7L_P(f1d,hh,nx1,LAP1,ib,ie) - case(OCFD_Scheme_Hybrid) - call OCFD_HybridP(f1d,hh,nx1,LAP1,Scm_Hy,ib,ie) - case(OCFD_Scheme_USER) - call OCFD_Scheme_USER_P(f1d,hh,nx1,LAP1,ib,ie) - - end select - -!------------boundary scheme -------------------------------- - if(Bound_index(1) .eq. 1 )then ! i- (j-, k-) boundary - if(Scheme_boundary(1) .eq. 0) then ! Default (WENO5-type) - do i=0, -Ka - if(i==0 .or. i==1) then - hh(i)=(2.d0*f1d(1)+5.d0*f1d(2)-f1d(3))/6.d0 - else if(i==2) then - call hh_weno5P_boundary(Ka,Kb,f1d(i+Ka:i+Kb),hh(i), DEL_LIFT ) - else - call hh_weno5P(Ka,Kb,f1d(i+Ka:i+Kb),hh(i) ) - endif - enddo -! -1 : WENO5 + Ghost Cell; - else if(Scheme_boundary(1) .eq. 1 ) then ! WENO5 (with Ghost Cell) - do i=0, -Ka - call hh_weno5P(Ka,Kb,f1d(i+Ka:i+Kb),hh(i) ) - enddo - endif - endif - - if(Bound_index(2) .eq. 1 )then ! i+ (j+, k+) boundary - if(Scheme_boundary (2) .eq. 0) then ! Default (WENO5 Del-substencil type) - do i=nx1-Kb+1, nx1 - if(i==nx1) then - hh(i)=(2.d0*f1d(nx1-2)-7.d0*f1d(nx1-1)+11.d0*f1d(nx1))/6.d0 - else if(i==nx1-1) then - call hh_weno5P_boundary(Ka,Kb,f1d(i+Ka:i+Kb),hh(i), DEL_RIGHT) - else - call hh_weno5P(Ka,Kb,f1d(i+Ka:i+Kb),hh(i) ) - endif - enddo - else if(Scheme_boundary(2) .eq. 1 ) then ! WENO5 with Ghost Cell - do i=nx1-Kb+1, nx1 - call hh_weno5P(Ka,Kb,f1d(i+Ka:i+Kb),hh(i) ) - enddo - endif - endif - end - -!--------------------------------------------------------- -! Scheme for flux- - subroutine OCFD2d_flux2(f1d,hh,nx1,LAP1, Bound_index,Scm_Hy,Scheme_boundary) - use OCFD_constants - use Scheme_Para - implicit none - integer nx1,LAP1,Bound_index(2),Ka,Kb,i,Scm_Hy(0:nx1),Scheme_boundary(2),ib,ie - real(kind=OCFD_REAL_KIND):: f1d(1-LAP1:nx1+LAP1),hh(0:nx1) - Ka=Scheme%Ka2 ; Kb=Scheme%Kb2 - - if(Bound_index(1) .eq. 0 .or. Scheme_boundary(1) .eq. -1) then ! inner point [ib,ie] - ib=0 - else - ib=-Ka+1 - endif - - if(Bound_index(2) .eq. 0 .or. Scheme_boundary(2) .eq. -1 ) then - ie=nx1 - else - ie=nx1-Kb - endif - - - - select case(Scheme%Scheme_Invis) - case (OCFD_Scheme_OMP6) - call OCFD_OMP6M(f1d,hh,nx1,LAP1,ib,ie) - case(OCFD_Scheme_WENO7) - call OCFD_WENO7M(f1d,hh,nx1,LAP1,ib,ie) - case(OCFD_Scheme_WENO5) - call OCFD_WENO5M(f1d,hh,nx1,LAP1,ib,ie) - case(OCFD_Scheme_UD7L) - call OCFD_UD7L_M(f1d,hh,nx1,LAP1,ib,ie) - case(OCFD_Scheme_Hybrid) - call OCFD_HybridM(f1d,hh,nx1,LAP1,Scm_Hy,ib,ie) - case(OCFD_Scheme_USER) - call OCFD_Scheme_USER_M(f1d,hh,nx1,LAP1,ib,ie) - end select - -!------------boundary scheme -------------- - if(Bound_index(1) .eq. 1 )then ! i- boundary - if(Scheme_boundary(1) .eq. 0) then ! Default (WENO5-type) - do i=0, -Ka - if(i==0 ) then - hh(i)=(2.d0*f1d(3)-7.d0*f1d(2)+11.d0*f1d(1))/6.d0 - else if(i==1) then - call hh_weno5M_boundary(Ka,Kb,f1d(i+Ka:i+Kb),hh(i), DEL_LIFT ) - else - call hh_weno5M(Ka,Kb,f1d(i+Ka:i+Kb),hh(i) ) - endif - enddo - - else if(Scheme_boundary(1) .eq. 1 ) then ! WENO5 + Ghost Cell - do i=0, -Ka - call hh_weno5M(Ka,Kb,f1d(i+Ka:i+Kb),hh(i) ) - enddo - - endif - endif - - if(Bound_index(2) .eq. 1 )then ! i+ boundary - if(Scheme_boundary(2) .eq. 0) then ! Default (WENO5-type) - do i=nx1-Kb+1, nx1 - if(i==nx1 .or. i==nx1-1) then - hh(i)=(2.d0*f1d(nx1)+5.d0*f1d(nx1-1)-f1d(nx1-2))/6.d0 - else if(i==nx1-2) then - call hh_weno5M_boundary(Ka,Kb,f1d(i+Ka:i+Kb),hh(i), DEL_RIGHT) - else - call hh_weno5M(Ka,Kb,f1d(i+Ka:i+Kb),hh(i) ) - endif - enddo - else if(Scheme_boundary(2) .eq. 1 ) then ! (WENO5 +Ghost Cell ) - do i=nx1-Kb+1, nx1 - call hh_weno5M(Ka,Kb,f1d(i+Ka:i+Kb),hh(i) ) - enddo - endif - endif - - end - -!c---------------------------------------------------------- - diff --git a/OCFD_inviscous_character.f90 b/OCFD_inviscous_character.f90 deleted file mode 100644 index defc7e9..0000000 --- a/OCFD_inviscous_character.f90 +++ /dev/null @@ -1,449 +0,0 @@ -!c inviscous term for Jacobian- transformed N-S equation --------------------- -! Characteristic flux - subroutine du_inviscous_Character - use flow_data - use inviscous_data - implicit none - - integer:: i,j,k,m,Ka1,Kb1,Ka2,Kb2,set_hybrid_scheme - real(kind=OCFD_REAL_KIND):: hx_1, hy_1,hz_1,Rhb0 -!c------------------------------------------------- - Ka1=Scheme%Ka1 - Kb1=Scheme%Kb1 - Ka2=Scheme%Ka2 - Kb2=Scheme%Kb2 - hx_1=1.d0/hx - hy_1=1.d0/hy - hz_1=1.d0/hz - - do k=1-LAP,nz+LAP - do j=1-LAP,ny+LAP - do i=1-LAP,nx+LAP - cc(i,j,k)=sqrt(T(i,j,k))/Para%Ma ! speed of sound - enddo - enddo - enddo - - -!c---------x direction------------------------- - do k=1,nz - do j=1,ny - - if(Scheme%Scheme_Invis == OCFD_Scheme_Hybrid) then - do i=0,nx - Rhb0=max(Rhybrid(i,j,k),Rhybrid(i+1,j,k)) - Scm_Hbx(i)=set_hybrid_scheme(Rhb0) - enddo - endif - - do i=1-LAP,nx+LAP - c1x(i)=cc(i,j,k) - d1x(i)=d(i,j,k) - u1x(i)=u(i,j,k) - v1x(i)=v(i,j,k) - w1x(i)=w(i,j,k) - A1x(i)=Akx1(i,j,k) - A2x(i)=Aky1(i,j,k) - A3x(i)=Akz1(i,j,k) - enddo - - - if(Para%Flux_Splitting .eq. OCFD_Split_SW) then - call split_Stager_Warming(nx,LAP,c1x,d1x,u1x,v1x,w1x,A1x,A2x,A3x,fpx,fmx) - else - call split_Local_LaxFriedrichs(nx,LAP,c1x,d1x,u1x,v1x,w1x,A1x,A2x,A3x,fpx,fmx) - endif - - call flux_charteric(nx,LAP,Ka1,Kb1,Ka2,Kb2, & - hhx,fpx,fmx,A1x,A2x,A3x, & - c1x,d1x,u1x,v1x,w1x,Scheme%Bound_index(1,1),Scm_Hbx, Scheme%Scheme_boundary(1:2)) - do m=1,5 - do i=1,nx - du(i,j,k,m)= (hhx(i,m)-hhx(i-1,m))*hx_1 - enddo - enddo - enddo - enddo - -!c-------y direction --------------------------- - do k=1,nz - do i=1,nx - - if(Scheme%Scheme_Invis == OCFD_Scheme_Hybrid) then - do j=0,ny - Rhb0=max(Rhybrid(i,j,k),Rhybrid(i,j+1,k)) - Scm_Hby(j)=set_hybrid_scheme(Rhb0) - enddo - endif - - do j=1-LAP,ny+LAP - c1y(j)=cc(i,j,k) - d1y(j)=d(i,j,k) - u1y(j)=u(i,j,k) - v1y(j)=v(i,j,k) - w1y(j)=w(i,j,k) - A1y(j)=Aix1(i,j,k) - A2y(j)=Aiy1(i,j,k) - A3y(j)=Aiz1(i,j,k) - enddo - - if(Para%Flux_Splitting .eq. OCFD_Split_SW) then - call split_Stager_Warming(ny,LAP,c1y,d1y,u1y,v1y,w1y,A1y,A2y,A3y,fpy,fmy) - else - call split_Local_LaxFriedrichs(ny,LAP,c1y,d1y,u1y,v1y,w1y,A1y,A2y,A3y,fpy,fmy) - endif - - call flux_charteric(ny,LAP,Ka1,Kb1,Ka2,Kb2, & - hhy,fpy,fmy,A1y,A2y,A3y,& - c1y,d1y,u1y,v1y,w1y,Scheme%Bound_index(1,2),Scm_Hby, Scheme%Scheme_boundary(3:4)) - - do m=1,5 - do j=1,ny - du(i,j,k,m)=du(i,j,k,m)+ (hhy(j,m)-hhy(j-1,m))*hy_1 - enddo - enddo - enddo - enddo -!c-------z direction --------------------------- - do j=1,ny - do i=1,nx - - if(Scheme%Scheme_Invis == OCFD_Scheme_Hybrid) then - do k=0,nz - Rhb0=max(Rhybrid(i,j,k),Rhybrid(i,j,k+1)) - Scm_Hbz(k)=set_hybrid_scheme(Rhb0) - enddo - endif - - do k=1-LAP,nz+LAP - c1z(k)=cc(i,j,k) - d1z(k)=d(i,j,k) - u1z(k)=u(i,j,k) - v1z(k)=v(i,j,k) - w1z(k)=w(i,j,k) - A1z(k)=Asx1(i,j,k) - A2z(k)=Asy1(i,j,k) - A3z(k)=Asz1(i,j,k) - enddo - - - if(Para%Flux_Splitting .eq. OCFD_Split_SW) then - call split_Stager_Warming(nz,LAP,c1z,d1z,u1z,v1z,w1z,A1z,A2z,A3z,fpz,fmz) - else - call split_Local_LaxFriedrichs(nz,LAP,c1z,d1z,u1z,v1z,w1z,A1z,A2z,A3z,fpz,fmz) - endif - - call flux_charteric(nz,LAP,Ka1,Kb1,Ka2,Kb2, & - hhz,fpz,fmz,A1z,A2z,A3z, & - c1z,d1z,u1z,v1z,w1z,Scheme%Bound_index(1,3),Scm_Hbz, Scheme%Scheme_boundary(5:6)) - - do m=1,5 - do k=1,nz - du(i,j,k,m)=-(du(i,j,k,m)+ (hhz(k,m)-hhz(k-1,m))*hz_1 )*Ajac(i,j,k) ! df/dt=-du - enddo - enddo - enddo - enddo - - - - if(Para%IF_Mass_Force .eq. 1) then - do k=1,nz - do j=1,ny - do i=1,nx - du(i,j,k,2)=du(i,j,k,2)+d(i,j,k)*Para%Mass_Force(1) - du(i,j,k,3)=du(i,j,k,3)+d(i,j,k)*Para%Mass_Force(2) - du(i,j,k,4)=du(i,j,k,4)+d(i,j,k)*Para%Mass_Force(3) - du(i,j,k,5)=du(i,j,k,5)+d(i,j,k)*(u(i,j,k)*Para%Mass_Force(1)+v(i,j,k)*Para%Mass_Force(2) & - +w(i,j,k)*Para%Mass_Force(3)) - enddo - enddo - enddo - endif - - end - -!c----------------------------------- - subroutine flux_charteric(nn,LAP1,Ka1,Kb1,Ka2,Kb2,hh,fp,fm,AA1,AA2,AA3, & - cc,dd,uu,vv,ww,Bound_index,Scm_Hb,Scheme_boundary) - use flow_para - implicit none - - integer nn,LAP1,Ka1,Kb1,Ka2,Kb2,i,m,mm,Bound_index(2),ia,ib,Scheme_boundary(2),Ka1h,Kb1h,Ka2h,Kb2h - real(kind=OCFD_REAL_KIND),dimension (1-LAP1:nn+LAP1):: cc,dd,uu,vv,ww,AA1,AA2,AA3 - real(kind=OCFD_REAL_KIND),dimension (1-LAP1:nn+LAP1,5):: fp,fm - real(kind=OCFD_REAL_KIND):: hh(0:nn,5) - real(kind=OCFD_REAL_KIND):: fpc(Ka1:Kb1,5),fmc(Ka2:Kb2,5) ,h1(5),h2(5),h0(5) - real(kind=OCFD_REAL_KIND):: S(5,5),S1(5,5) - real(kind=OCFD_REAL_KIND):: d1,u1,v1,w1,c1,V2,un,ul,um - real(kind=OCFD_REAL_KIND):: a1,a2,a3,ss,n1,n2,n3,l1,l2,l3,m1,m2,m3,KK1,KK,X1,H - integer:: Scm_Hb(0:nn) ! Hybrid scheme index (1 linear scheme ; 2 shock-capturing scheme) - logical If_Char ! Characteristic -!------------------------------------------------------ - if(Bound_index(1) .eq. 0 .or. Scheme_boundary(1) .ne. 0 ) then ! 1 WENO5+ Ghost Cell ; -1 Inner scheme + Ghost Cell - ia=0 - else - ia=1 ! boundary scheme - endif - if(Bound_index(2) .eq. 0 .or. Scheme_boundary(2) .ne. 0 ) then - ib=nn - else - ib=nn-1 - endif -!------------------------------------------------------- - - do i=ia,ib - - if(Scm_Hb(i) == 1) then ! linear scheme (DO NOT use character construction) - fpc(Ka1:Kb1,:)=fp(i+Ka1:i+Kb1,:) - fmc(Ka2:Kb2,:)=fm(i+Ka2:i+Kb2,:) - else - if(Scm_Hb(i) == 0) then ! other nonlinear scheme (not hybrid scheme) - Ka1h=Ka1; Kb1h=Kb1; Ka2h=Ka2; Kb2h=Kb2 - else if(Scm_Hb(i) == 2) then ! WENO7 scheme - Ka1h=Scheme%Ka1_H2; Kb1h=Scheme%Kb1_H2; Ka2h=Scheme%Ka2_H2; Kb2h=Scheme%Kb2_H2 - else ! WENO5 scheme - Ka1h=Scheme%Ka1_H3; Kb1h=Scheme%Kb1_H3; Ka2h=Scheme%Ka2_H3; Kb2h=Scheme%Kb2_H3 - endif - ! Shock capturing scheme (Using character construction) - ! Transform variables to character space - u1=(uu(i)+uu(i+1))*0.5d0 - v1=(vv(i)+vv(i+1))*0.5d0 - w1=(ww(i)+ww(i+1))*0.5d0 - c1=(cc(i)+cc(i+1))*0.5d0 - a1=(AA1(i)+AA1(i+1))*0.5d0 - a2=(AA2(i)+AA2(i+1))*0.5d0 - a3=(AA3(i)+AA3(i+1))*0.5d0 - -! A=S(-1)*LAMDA*S = R * LAMDA * L -! See Katate Masatsuka's Book: "I do like CFD, Vol. 1" page 77-78 - - ss=sqrt(a1*a1+a2*a2+a3*a3) - n1=a1/ss ; n2= a2/ss ; n3= a3/ss - - if(abs(n3) <= abs(n2)) then - ss=sqrt(n1*n1+n2*n2) - l1=-n2/ss ; l2=n1/ss; l3=0.d0 - else - ss=sqrt(n1*n1+n3*n3) - l1=-n3/ss; l2=0.d0; l3=n1/ss - endif - m1=n2*l3-n3*l2 - m2=n3*l1-n1*l3 - m3=n1*l2-n2*l1 - un=u1*n1+v1*n2+w1*n3 - ul=u1*l1+v1*l2+w1*l3 - um=u1*m1+v1*m2+w1*m3 - V2=(u1*u1+v1*v1+w1*w1)*0.5d0 - KK=(para%gamma-1.d0)/(c1*c1) - KK1=KK*0.5d0 - X1=1.d0/(2.d0*c1) - H=V2+1.d0/KK -!==============S=L (Lift Characteristic Matrix) - S(1,1)=1.d0-KK*V2; S(1,2)=KK*u1; S(1,3)=KK*v1 ; S(1,4)=KK*w1 ; S(1,5)=-KK - S(2,1)=-ul ; S(2,2)=l1 ; S(2,3)=l2 ; S(2,4)=l3; S(2,5)=0.d0 - S(3,1)=-um ; S(3,2)=m1 ; S(3,3)=m2 ; S(3,4)=m3; S(3,5)=0.d0 - S(4,1)=KK1*V2+X1*un; S(4,2)=-X1*n1-KK1*u1; S(4,3)=-X1*n2-KK1*v1; S(4,4)=-X1*n3-KK1*w1; S(4,5)=KK1 - S(5,1)=KK1*V2-X1*un; S(5,2)= X1*n1-KK1*u1; S(5,3)= X1*n2-KK1*v1; S(5,4)= X1*n3-KK1*w1; S(5,5)=KK1 -!=======S1 = S^(-1)=R (Right Characteristic Matrix) - S1(1,1)=1.d0; S1(1,2)=0.d0; S1(1,3)=0.d0; S1(1,4)=1.d0; S1(1,5)=1.d0 - S1(2,1)=u1; S1(2,2)=l1; S1(2,3)=m1; S1(2,4)=u1-c1*n1; S1(2,5)=u1+c1*n1 - S1(3,1)=v1; S1(3,2)=l2; S1(3,3)=m2; S1(3,4)=v1-c1*n2; S1(3,5)=v1+c1*n2 - S1(4,1)=w1; S1(4,2)=l3; S1(4,3)=m3; S1(4,4)=w1-c1*n3; S1(4,5)=w1+c1*n3 - S1(5,1)=V2; S1(5,2)=ul; S1(5,3)=um; S1(5,4)=H-c1*un; S1(5,5)=H+c1*un - -! call test_S(S,S1) - -! V=SU V=S*F ! transform into character space -! do mm=Ka1,Kb1 - do mm=Ka1h,Kb1h - m=i+mm - fpc(mm,1)=S(1,1)*fp(m,1)+S(1,2)*fp(m,2)+S(1,3)*fp(m,3)+S(1,4)*fp(m,4)+S(1,5)*fp(m,5) - fpc(mm,2)=S(2,1)*fp(m,1)+S(2,2)*fp(m,2)+S(2,3)*fp(m,3)+S(2,4)*fp(m,4)+S(2,5)*fp(m,5) - fpc(mm,3)=S(3,1)*fp(m,1)+S(3,2)*fp(m,2)+S(3,3)*fp(m,3)+S(3,4)*fp(m,4)+S(3,5)*fp(m,5) - fpc(mm,4)=S(4,1)*fp(m,1)+S(4,2)*fp(m,2)+S(4,3)*fp(m,3)+S(4,4)*fp(m,4)+S(4,5)*fp(m,5) - fpc(mm,5)=S(5,1)*fp(m,1)+S(5,2)*fp(m,2)+S(5,3)*fp(m,3)+S(5,4)*fp(m,4)+S(5,5)*fp(m,5) - enddo - -! do mm=Ka2,Kb2 - do mm=Ka2h,Kb2h - m=i+mm - fmc(mm,1)=S(1,1)*fm(m,1)+S(1,2)*fm(m,2)+S(1,3)*fm(m,3)+S(1,4)*fm(m,4)+S(1,5)*fm(m,5) - fmc(mm,2)=S(2,1)*fm(m,1)+S(2,2)*fm(m,2)+S(2,3)*fm(m,3)+S(2,4)*fm(m,4)+S(2,5)*fm(m,5) - fmc(mm,3)=S(3,1)*fm(m,1)+S(3,2)*fm(m,2)+S(3,3)*fm(m,3)+S(3,4)*fm(m,4)+S(3,5)*fm(m,5) - fmc(mm,4)=S(4,1)*fm(m,1)+S(4,2)*fm(m,2)+S(4,3)*fm(m,3)+S(4,4)*fm(m,4)+S(4,5)*fm(m,5) - fmc(mm,5)=S(5,1)*fm(m,1)+S(5,2)*fm(m,2)+S(5,3)*fm(m,3)+S(5,4)*fm(m,4)+S(5,5)*fm(m,5) - enddo - endif - - do m=1,5 - ! scheme (including boundary scheme) - call flux_x1(Ka1,Kb1,fpc(Ka1,m),h1(m),Scheme%Scheme_Invis,Bound_index,i,nn,Scm_Hb(i),Scheme_boundary) - call flux_x2(Ka2,Kb2,fmc(Ka2,m),h2(m),Scheme%Scheme_Invis,Bound_index,i,nn,Scm_Hb(i),Scheme_boundary) - enddo - - h0=h1+h2 - if(Scm_Hb(i) == 1) then ! linear scheme (do not use character flux) - hh(i,:)=h0(:) - else ! Transform to phyics space - hh(i,1)=S1(1,1)*h0(1)+S1(1,2)*h0(2)+S1(1,3)*h0(3)+S1(1,4)*h0(4)+S1(1,5)*h0(5) - hh(i,2)=S1(2,1)*h0(1)+S1(2,2)*h0(2)+S1(2,3)*h0(3)+S1(2,4)*h0(4)+S1(2,5)*h0(5) - hh(i,3)=S1(3,1)*h0(1)+S1(3,2)*h0(2)+S1(3,3)*h0(3)+S1(3,4)*h0(4)+S1(3,5)*h0(5) - hh(i,4)=S1(4,1)*h0(1)+S1(4,2)*h0(2)+S1(4,3)*h0(3)+S1(4,4)*h0(4)+S1(4,5)*h0(5) - hh(i,5)=S1(5,1)*h0(1)+S1(5,2)*h0(2)+S1(5,3)*h0(3)+S1(5,4)*h0(4)+S1(5,5)*h0(5) - endif - enddo - -!--------non Reflaction boundary (i==0, i==nn) -------------- -! 实现无反射边界条件, 在i=0处 hh+(0)=hh+ (1); 是的df+/dx =0 (i=0处) - - if(Bound_index(1) .eq. 1 ) then - if(Scheme_boundary(1) .eq. 0) then ! Default (WENO5-type) - do m=1,5 - hh(0,m)= (2.d0*fp(1,m)+5.d0*fp(2,m)-fp(3,m) + 2.d0*fm(3,m)-7.d0*fm(2,m)+11.d0*fm(1,m))/6.d0 - enddo - endif - endif - - if(Bound_index(2) .eq. 1) then - if(Scheme_boundary(2) .eq. 0) then ! Default (WENO5-type) - do m=1,5 - hh(nn,m)= (2.d0*fp(nn-2,m)-7.d0*fp(nn-1,m)+11.d0*fp(nn,m)+ 2.d0*fm(nn,m)+5.d0*fm(nn-1,m)-fm(nn-2,m))/6.d0 - enddo - endif - endif - end - -!----------------------------------------------------------------------------- - subroutine flux_x1(Ka,Kb,ff,hh,Num_Scheme,Bound_index,i,nn,Ihybrid,Scheme_boundary) - use flow_para - implicit none - integer Num_Scheme,i,nn, Ka,Kb,Bound_index(2),Ihybrid,Scheme_boundary(2) - real(kind=OCFD_REAL_KIND):: ff(Ka:Kb),hh - - if( (Bound_index(1) .eq. 0 .or. i > -Ka .or. Scheme_boundary(1) .eq. -1 ) & - .and. (Bound_index(2) .eq. 0 .or. i <=nn-Kb .or. Scheme_boundary(2) .eq. -1 ) ) then -! inner point - if (Num_Scheme .eq. OCFD_Scheme_OMP6) then - call hh_OMP6P(Ka,Kb,ff,hh) - else if (Num_Scheme .eq. OCFD_Scheme_WENO7) then - call hh_WENO7P(Ka,Kb,ff,hh) - else if (Num_Scheme .eq. OCFD_Scheme_WENO5) then - call hh_WENO5P(Ka,Kb,ff,hh) - else if (Num_Scheme .eq. OCFD_Scheme_UD7L) then - call hh_UD7L_P(Ka,Kb,ff,hh) - else if (Num_Scheme .eq. OCFD_Scheme_Hybrid) then - call hh_HybridP(Ka,Kb,ff,hh,Ihybrid) - else if (Num_Scheme .eq. OCFD_Scheme_USER) then - call hh_Scheme_USER_P(Ka,Kb,ff,hh) - endif - ! Boundary scheme - else if( i<=-Ka .and. Bound_index(1) .eq. 1 .and. Scheme_boundary(1) .ne. -1 )then -! Lift boundary point - if(Scheme_boundary(1) .eq. 0) then ! Default (WENO5-type) - if(i==1) then - hh=(2.d0*ff(0)+5.d0*ff(1)-ff(2))/6.d0 ! 3rd one-side - else if(i==2) then - call hh_weno5P_boundary(Ka,Kb,ff,hh, DEL_LIFT ) - else - call hh_weno5P(Ka,Kb,ff,hh) ! full WENO5 scheme - endif - else if(Scheme_boundary(1) .eq. 1 ) then ! WENO5 + Ghost Cell - call hh_weno5P(Ka,Kb,ff,hh) ! full WENO5 scheme - endif - - else if( i>nn-Kb .and. Bound_index(2) .eq.1 .and. Scheme_boundary(2) .ne. -1) then -! Right boundary point - if(Scheme_boundary(2) .eq. 0) then ! Default (WENO5-type) - if(i==nn-1) then - call hh_weno5P_boundary(Ka,Kb,ff,hh, DEL_RIGHT) - else - call hh_WENO5P(Ka,Kb,ff,hh) - endif - else if(Scheme_boundary(2) .eq. 1 ) then ! WENO5+ Ghost Cell - call hh_WENO5P(Ka,Kb,ff,hh) - endif - - endif - - end - -!----------------------------------------------------------------------------- - subroutine flux_x2(Ka,Kb,ff,hh,Num_Scheme,Bound_index,i,nn,Ihybrid,Scheme_boundary) - use flow_para - implicit none - integer Num_Scheme,i,nn, Ka,Kb,Bound_index(2),Ihybrid,Scheme_boundary(2) - real(kind=OCFD_REAL_KIND):: ff(Ka:Kb),hh - - if( (Bound_index(1) .eq. 0 .or. i > -Ka .or. Scheme_boundary(1) .eq. -1 ) & - .and. (Bound_index(2) .eq. 0 .or. i <=nn-Kb .or. Scheme_boundary(2) .eq. -1 )) then -! inner point - if (Num_Scheme .eq. OCFD_Scheme_OMP6) then - call hh_OMP6M(Ka,Kb,ff,hh) - else if (Num_Scheme .eq. OCFD_Scheme_WENO7) then - call hh_WENO7M(Ka,Kb,ff,hh) - else if (Num_Scheme .eq. OCFD_Scheme_WENO5) then - call hh_WENO5M(Ka,Kb,ff,hh) - else if (Num_Scheme .eq. OCFD_Scheme_UD7L) then - call hh_UD7L_M(Ka,Kb,ff,hh) - else if (Num_Scheme .eq. OCFD_Scheme_Hybrid) then - call hh_HybridM(Ka,Kb,ff,hh,Ihybrid) - else if (Num_Scheme .eq. OCFD_Scheme_USER) then - call hh_Scheme_USER_M(Ka,Kb,ff,hh) - endif - - else if(i<=-Ka .and. Bound_index(1) .eq. 1 .and. Scheme_boundary(1) .ne. -1) then - if(Scheme_boundary(1) .eq. 0) then ! Default (WENO5-type) - if(i==1) then - call hh_weno5M_boundary(Ka,Kb,ff,hh,DEL_LIFT) - else - call hh_WENO5M(Ka,Kb,ff,hh) - endif - else if(Scheme_boundary(1) .eq. 1 ) then ! WENO5 + Ghost Cell - call hh_WENO5M(Ka,Kb,ff,hh) - endif - - else if(i>nn-Kb .and. Bound_index(2) .eq. 1 .and. Scheme_boundary(2) .ne. -1) then - if(Scheme_boundary(2) .eq. 0) then ! Default (WENO5-type) - if(i==nn-1) then - hh =(2.d0*ff(1)+5.d0*ff(0)-ff(-1))/6.d0 - else if(i==nn-2) then - call hh_weno5M_boundary(Ka,Kb,ff,hh, DEL_RIGHT) - else - call hh_WENO5M(Ka,Kb,ff,hh) - endif - else if(Scheme_boundary(2) .eq. 1 ) then ! WENO5 + Ghost Cell - call hh_WENO5M(Ka,Kb,ff,hh) - endif - - endif - - end - -!------------------------------- -! Test S and S1 (Characteristic Matrix) - subroutine test_S (S, S1) - implicit none - integer:: i,j,m - real*8:: S(5,5), S1(5,5), ST(5,5) - ST=0.d0 - do j=1,5 - do i=1,5 - ST(i,j)=S(i,1)*S1(1,j)+S(i,2)*S1(2,j)+S(i,3)*S1(3,j)+S(i,4)*S1(4,j)+S(i,5)*S1(5,j) - enddo - enddo - print*, "---------test S ------------------" - print*, " -----s= " - do i=1,5 - write(*, "(5F20.15)") S (i,:) - enddo - print*, " -------S1=---" - do i=1,5 - write(*, "(5F20.15)") S1 (i,:) - enddo - print*, "-------ST=----" - do i=1,5 - write(*, "(5F20.15)") ST(i,:) - enddo - end - diff --git a/OCFD_mesh.f90 b/OCFD_mesh.f90 deleted file mode 100644 index 6d443e0..0000000 --- a/OCFD_mesh.f90 +++ /dev/null @@ -1,317 +0,0 @@ - subroutine init_mesh - Use flow_data - implicit none - integer:: i,j,k - - if(Para%Iflag_Gridtype .eq. GRID1D) then - call read_mesh1d - else if(Para%Iflag_Gridtype .eq. GRID2D_PLANE) then - call read_mesh2d_plane - else if(Para%Iflag_Gridtype .eq. GRID2D_AXIAL_SYMM) then - call read_mesh2d_AxialSymm - else if(Para%Iflag_Gridtype .eq. GRID3D .or. Para%Iflag_Gridtype .eq. GRID_AND_JACOBIAN3D ) then - call read_mesh3d - endif - - call exchange_boundary_xyz(Axx) - call exchange_boundary_xyz(Ayy) - call exchange_boundary_xyz(Azz) - - call updata_Axyz_periodic - - if(Para%Iflag_Gridtype .ne. GRID_AND_JACOBIAN3D ) then - call comput_Jacobian3d - endif - - - call exchange_boundary_xyz(Akx) - call exchange_boundary_xyz(Aky) - call exchange_boundary_xyz(Akz) - call exchange_boundary_xyz(Aix) - call exchange_boundary_xyz(Aiy) - call exchange_boundary_xyz(Aiz) - call exchange_boundary_xyz(Asx) - call exchange_boundary_xyz(Asy) - call exchange_boundary_xyz(Asz) - call exchange_boundary_xyz(Ajac) - - call Jac_Ghost_boundary ! Ghost Cell boundary for Jacobian coefficients - - do k=1-LAP,nz+LAP - do j=1-LAP,ny+LAP - do i=1-LAP,nx+LAP - Akx1(i,j,k)=Akx(i,j,k)/Ajac(i,j,k) - Aky1(i,j,k)=Aky(i,j,k)/Ajac(i,j,k) - Akz1(i,j,k)=Akz(i,j,k)/Ajac(i,j,k) - Aix1(i,j,k)=Aix(i,j,k)/Ajac(i,j,k) - Aiy1(i,j,k)=Aiy(i,j,k)/Ajac(i,j,k) - Aiz1(i,j,k)=Aiz(i,j,k)/Ajac(i,j,k) - Asx1(i,j,k)=Asx(i,j,k)/Ajac(i,j,k) - Asy1(i,j,k)=Asy(i,j,k)/Ajac(i,j,k) - Asz1(i,j,k)=Asz(i,j,k)/Ajac(i,j,k) - enddo - enddo - enddo - if(my_id ==0) print*, "Initial Mesh OK " - - end -!-------------------------------------------------------- - - subroutine comput_Jacobian3d - Use flow_data - implicit none - real(kind=OCFD_REAL_KIND), allocatable,dimension(:,:,:):: xi,xj,xk, yi, yj, yk, zi, zj, zk - real(kind=OCFD_REAL_KIND):: xi1,xj1,xk1, yi1, yj1, yk1 , zi1, zj1, zk1, Jac1 - integer:: i,j,k - - allocate (xi(nx,ny,nz),xj(nx,ny,nz),xk(nx,ny,nz), & - yi(nx,ny,nz),yj(nx,ny,nz),yk(nx,ny,nz), & - zi(nx,ny,nz),zj(nx,ny,nz),zk(nx,ny,nz)) - - call OCFD_dx0(Axx,xi,Scheme%Scheme_Vis) - call OCFD_dx0(Ayy,yi,Scheme%Scheme_Vis) - call OCFD_dx0(Azz,zi,Scheme%Scheme_Vis) - call OCFD_dy0(Axx,xj,Scheme%Scheme_Vis) - call OCFD_dy0(Ayy,yj,Scheme%Scheme_Vis) - call OCFD_dy0(Azz,zj,Scheme%Scheme_Vis) - call OCFD_dz0(Axx,xk,Scheme%Scheme_Vis) - call OCFD_dz0(Ayy,yk,Scheme%Scheme_Vis) - call OCFD_dz0(Azz,zk,Scheme%Scheme_Vis) - - - do k=1,nz - do j=1,ny - do i=1,nx - xi1=xi(i,j,k); xj1=xj(i,j,k); xk1=xk(i,j,k) - yi1=yi(i,j,k); yj1=yj(i,j,k); yk1=yk(i,j,k) - zi1=zi(i,j,k); zj1=zj(i,j,k); zk1=zk(i,j,k) - Jac1=1.d0/(xi1*yj1*zk1+yi1*zj1*xk1+zi1*xj1*yk1-zi1*yj1*xk1-yi1*xj1*zk1-xi1*zj1*yk1) ! 1./Jocabian = d(x,y,z)/d(i,j,k) - Ajac(i,j,k)=Jac1 - Akx(i,j,k)=Jac1*(yj1*zk1-zj1*yk1) - Aky(i,j,k)=Jac1*(zj1*xk1-xj1*zk1) - Akz(i,j,k)=Jac1*(xj1*yk1-yj1*xk1) - Aix(i,j,k)=Jac1*(yk1*zi1-zk1*yi1) - Aiy(i,j,k)=Jac1*(zk1*xi1-xk1*zi1) - Aiz(i,j,k)=Jac1*(xk1*yi1-yk1*xi1) - Asx(i,j,k)=Jac1*(yi1*zj1-zi1*yj1) - Asy(i,j,k)=Jac1*(zi1*xj1-xi1*zj1) - Asz(i,j,k)=Jac1*(xi1*yj1-yi1*xj1) - if(Jac1 .lt. 0) then - print*, " Jocabian < 0 !!! , Jac=", Jac1 - print*, "i,j,k=", i_offset(npx)+i-1, j_offset(npy)+j-1, k_offset(npz)+k-1 - endif - enddo - enddo - enddo - deallocate ( xi,xj,xk, yi, yj, yk, zi, zj, zk) - end - - subroutine updata_Axyz_periodic - use flow_data - implicit none - integer:: i,j,k - if(Para%Iperiodic_X .eq. 1 .and. npx .eq. 0 ) then - do k=1,nz - do j=1,ny - do i=1-LAP,0 - Axx(i,j,k)=Axx(i,j,k)-Para%Periodic_ISpan(1) - Ayy(i,j,k)=Ayy(i,j,k)-Para%Periodic_ISpan(2) - Azz(i,j,k)=Azz(i,j,k)-Para%Periodic_ISpan(3) - enddo - enddo - enddo - endif - - if(Para%Iperiodic_X .eq. 1 .and. npx .eq. npx0-1 ) then - do k=1,nz - do j=1,ny - do i=nx+1,nx+LAP - Axx(i,j,k)=Axx(i,j,k)+Para%Periodic_ISpan(1) - Ayy(i,j,k)=Ayy(i,j,k)+Para%Periodic_ISpan(2) - Azz(i,j,k)=Azz(i,j,k)+Para%Periodic_ISpan(3) - enddo - enddo - enddo - endif - - if(Para%Iperiodic_Y .eq. 1 .and. npy .eq. 0 ) then - do k=1,nz - do j=1-LAP,0 - do i=1,nx - Axx(i,j,k)=Axx(i,j,k)-Para%Periodic_JSpan(1) - Ayy(i,j,k)=Ayy(i,j,k)-Para%Periodic_JSpan(2) - Azz(i,j,k)=Azz(i,j,k)-Para%Periodic_JSpan(3) - enddo - enddo - enddo - endif - - if(Para%Iperiodic_Y .eq. 1 .and. npy .eq. npy0-1 ) then - do k=1,nz - do j=ny+1,ny+LAP - do i=1,nx - Axx(i,j,k)=Axx(i,j,k)+Para%Periodic_JSpan(1) - Ayy(i,j,k)=Ayy(i,j,k)+Para%Periodic_JSpan(2) - Azz(i,j,k)=Azz(i,j,k)+Para%Periodic_JSpan(3) - enddo - enddo - enddo - endif - - if(Para%Iperiodic_Z .eq. 1 .and. npz .eq. 0 ) then - do k=1-LAP,0 - do j=1,ny - do i=1,nx - Axx(i,j,k)=Axx(i,j,k)-Para%Periodic_KSpan(1) - Ayy(i,j,k)=Ayy(i,j,k)-Para%Periodic_KSpan(2) - Azz(i,j,k)=Azz(i,j,k)-Para%Periodic_KSpan(3) - enddo - enddo - enddo - endif - - if(Para%Iperiodic_Z .eq. 1 .and. npz .eq. npz0-1 ) then - do k=nz+1,nz+LAP - do j=1,ny - do i=1,nx - Axx(i,j,k)=Axx(i,j,k)+Para%Periodic_KSpan(1) - Ayy(i,j,k)=Ayy(i,j,k)+Para%Periodic_KSpan(2) - Azz(i,j,k)=Azz(i,j,k)+Para%Periodic_KSpan(3) - enddo - enddo - enddo - endif - - end -!-------------------------------------------- - subroutine read_mesh3d - Use flow_data - implicit none - if(my_id .eq. 0) then - print*, "read 3D mesh ..." - open(56,file='OCFD-grid.dat',form='unformatted') - endif - - call read_3d1(56,Axx) - call read_3d1(56,Ayy) - call read_3d1(56,Azz) - - if(Para%Iflag_Gridtype .eq. GRID_AND_JACOBIAN3D) then - call read_3d1(56,Akx) - call read_3d1(56,Aky) - call read_3d1(56,Akz) - call read_3d1(56,Aix) - call read_3d1(56,Aiy) - call read_3d1(56,Aiz) - call read_3d1(56,Asx) - call read_3d1(56,Asy) - call read_3d1(56,Asz) - call read_3d1(56,Ajac) - endif - - if(my_id .eq. 0) then - print*, 'read 3D mesh OK ' - close(56) - endif - end -!-------------------------------------------- - subroutine read_mesh1d - Use flow_data - implicit none - real(kind=OCFD_REAL_KIND), allocatable,dimension(:):: x0, y0, z0 - integer:: i, j, k, i1,j1,k1,ierr - allocate(x0(nx_global),y0(ny_global),z0(nz_global)) - - if(my_id .eq. 0) then - print*, "read 1D mesh ..." - open(56,file='OCFD-grid.dat',form='unformatted') - read(56) x0 - read(56) y0 - read(56) z0 - close(56) - endif - call MPI_bcast(x0(1),nx_global,OCFD_DATA_TYPE,0, MPI_COMM_WORLD,ierr) - call MPI_bcast(y0(1),ny_global,OCFD_DATA_TYPE,0, MPI_COMM_WORLD,ierr) - call MPI_bcast(z0(1),nz_global,OCFD_DATA_TYPE,0, MPI_COMM_WORLD,ierr) - do k=1,nz - do j=1,ny - do i=1,nx - i1=i_offset(npx)+i-1 - j1=j_offset(npy)+j-1 - k1=k_offset(npz)+k-1 - Axx(i,j,k)=x0(i1) - Ayy(i,j,k)=y0(j1) - Azz(i,j,k)=z0(k1) - enddo - enddo - enddo - deallocate(x0,y0,z0) - end -!-------------------------------------------- -! 2D PLANE type mesh, 2d in x-y plane (nx,ny); 1d in z- direcition (nz) - subroutine read_mesh2d_plane - Use flow_data - implicit none - real(kind=OCFD_REAL_KIND), allocatable:: x2(:,:),y2(:,:),z1(:) - integer:: i, j, k, i1,j1,k1,ierr - allocate(x2(nx_global,ny_global),y2(nx_global,ny_global),z1(nz_global)) - - if(my_id .eq. 0) then - print*, "read 1D mesh ..." - open(56,file='OCFD-grid.dat',form='unformatted') - read(56) x2 - read(56) y2 - read(56) z1 - close(56) - endif - call MPI_bcast(x2(1,1),nx_global*ny_global,OCFD_DATA_TYPE,0, MPI_COMM_WORLD,ierr) - call MPI_bcast(y2(1,1),nx_global*ny_global,OCFD_DATA_TYPE,0, MPI_COMM_WORLD,ierr) - call MPI_bcast(z1(1),nz_global,OCFD_DATA_TYPE,0, MPI_COMM_WORLD,ierr) - do k=1,nz - do j=1,ny - do i=1,nx - i1=i_offset(npx)+i-1 - j1=j_offset(npy)+j-1 - k1=k_offset(npz)+k-1 - Axx(i,j,k)=x2(i1,j1) - Ayy(i,j,k)=y2(i1,j1) - Azz(i,j,k)=z1(k1) - enddo - enddo - enddo - deallocate(x2,y2,z1) - end - -! 2D Axial-Symmetry type mesh, 2d in x-y plane (nx,ny); 1d in z- direcition (nz) - subroutine read_mesh2d_AxialSymm - Use flow_data - implicit none - real(kind=OCFD_REAL_KIND), allocatable:: x2(:,:),R2(:,:),seta1(:) - integer:: i, j, k, i1,j1,k1,ierr - allocate(x2(nx_global,ny_global),R2(nx_global,ny_global),seta1(nz_global)) - - if(my_id .eq. 0) then - print*, "read 1D mesh ..." - open(56,file='OCFD-grid.dat',form='unformatted') - read(56) x2 - read(56) R2 - read(56) seta1 - close(56) - endif - call MPI_bcast(x2(1,1),nx_global*ny_global,OCFD_DATA_TYPE,0, MPI_COMM_WORLD,ierr) - call MPI_bcast(R2(1,1),nx_global*ny_global,OCFD_DATA_TYPE,0, MPI_COMM_WORLD,ierr) - call MPI_bcast(seta1(1),nz_global,OCFD_DATA_TYPE,0, MPI_COMM_WORLD,ierr) - do k=1,nz - do j=1,ny - do i=1,nx - i1=i_offset(npx)+i-1 - j1=j_offset(npy)+j-1 - k1=k_offset(npz)+k-1 - Axx(i,j,k)=x2(i1,j1) - Ayy(i,j,k)=R2(i1,j1)*cos(seta1(k)) ! y- is horizontal ; seta- angle with y- axil - Azz(i,j,k)=R2(i1,j1)*sin(seta1(k)) ! z- is up - enddo - enddo - enddo - deallocate(x2,R2,seta1) - end \ No newline at end of file diff --git a/OCFD_mpi.f90 b/OCFD_mpi.f90 deleted file mode 100644 index 7cd42e4..0000000 --- a/OCFD_mpi.f90 +++ /dev/null @@ -1,239 +0,0 @@ -!OpenCFD ver 2, CopyRight by Li Xinliang, LHD, Institute of Mechanics, CAS, lixl@imech.ac.cn -!MPI Subroutines, such as computational domain partation, MPI message send and recv - - subroutine partation3d_mpi -! Domain partation---------------------------------------------------------------------------- - Use flow_para - implicit none - integer k,ka,ierr - integer npx1,npy1,npz1,npx2,npy2,npz2,my_mod1 -!--------------------------------------------------------------------------------------------- - call mpi_comm_size(MPI_COMM_WORLD,np_size,ierr) - if(np_size .ne. npx0*npy0*npz0) then - if(my_id.eq.0) print*, 'The Number of total Processes is not equal to npx0*npy0*npz0 !' - stop - endif - - npx=mod(my_id,npx0) - npy=mod(my_id,npx0*npy0)/npx0 - npz=my_id/(npx0*npy0) -!------commonicaters----------------------------------------------------------------------------- - - CALL MPI_COMM_SPLIT(MPI_COMM_WORLD, npz*npx0*npy0+npy*npx0, 0,MPI_COMM_X,ierr) ! 1-D - CALL MPI_COMM_SPLIT(MPI_COMM_WORLD, npz*npx0*npy0+npx, 0,MPI_COMM_Y,ierr) - CALL MPI_COMM_SPLIT(MPI_COMM_WORLD, npy*npx0+npx, 0,MPI_COMM_Z,ierr) - CALL MPI_COMM_SPLIT(MPI_COMM_WORLD, npz, 0,MPI_COMM_XY,ierr) ! 2-D - CALL MPI_COMM_SPLIT(MPI_COMM_WORLD, npy, 0,MPI_COMM_XZ,ierr) - CALL MPI_COMM_SPLIT(MPI_COMM_WORLD, npx, 0,MPI_COMM_YZ,ierr) - - -!------------------------------------------------------------------------------------------------ -! ȷ nx_globalܱnpx0µֵǰĽڵ -!------------------------------------------------------------------------------------------------ - nx=nx_global/npx0 - ny=ny_global/npy0 - nz=nz_global/npz0 - if(npx .lt. mod(nx_global,npx0)) nx=nx+1 - if(npy .lt. mod(ny_global,npy0)) ny=ny+1 - if(npz .lt. mod(nz_global,npz0)) nz=nz+1 - -!------npx=kĽڵxĸʼλ ----------------------------- - allocate(i_offset(0:npx0-1),i_nn(0:npx0-1), & - j_offset(0:npy0-1),j_nn(0:npy0-1), & - k_offset(0:npz0-1),k_nn(0:npz0-1)) - -!-------------------------------------------------------------------- - do k=0,npx0-1 - ka=min(k,mod(nx_global,npx0)) - i_offset(k)=int(nx_global/npx0)*k+ka+1 - i_nn(k)=nx_global/npx0 - if(k .lt. mod(nx_global,npx0)) i_nn(k)=i_nn(k)+1 - enddo - - do k=0,npy0-1 - ka=min(k,mod(ny_global,npy0)) - j_offset(k)=int(ny_global/npy0)*k+ka+1 - j_nn(k)=ny_global/npy0 - if(k .lt. mod(ny_global,npy0)) j_nn(k)=j_nn(k)+1 - enddo - - do k=0,npz0-1 - ka=min(k,mod(nz_global,npz0)) - k_offset(k)=int(nz_global/npz0)*k+ka+1 - k_nn(k)=nz_global/npz0 - if(k .lt. mod(nz_global,npz0)) k_nn(k)=k_nn(k)+1 - enddo -!-------------------------------------------------------------------------------- -!-------New Data TYPE------------------------------------------------------------ - call New_MPI_datatype - -!--------define proc id: the right, lift, up, bottom, frint and backward procs - npx1=my_mod1(npx-1,npx0) - npx2=my_mod1(npx+1,npx0) - ID_XM1=npz*(npx0*npy0)+npy*npx0+npx1 ! -1 proc in x-direction - ID_XP1=npz*(npx0*npy0)+npy*npx0+npx2 ! +1 proc in x-direction - if(Para%Iperiodic_X .eq.0 .and. npx .eq. 0) ID_XM1=MPI_PROC_NULL ! if not periodic, 0 node donot send mesg to npx0-1 node - if(Para%Iperiodic_X .eq.0 .and. npx .eq. npx0-1) ID_XP1=MPI_PROC_NULL - - npy1=my_mod1(npy-1,npy0) - npy2=my_mod1(npy+1,npy0) - ID_YM1=npz*(npx0*npy0)+npy1*npx0+npx - ID_YP1=npz*(npx0*npy0)+npy2*npx0+npx - if(Para%Iperiodic_Y.eq.0 .and. npy .eq. 0) ID_YM1=MPI_PROC_NULL ! if not periodic, 0 node donot send mesg to npy0-1 node - if(Para%Iperiodic_Y.eq.0 .and. npy .eq. npy0-1) ID_YP1=MPI_PROC_NULL - - npz1=my_mod1(npz-1,npz0) - npz2=my_mod1(npz+1,npz0) - ID_ZM1=npz1*(npx0*npy0)+npy*npx0+npx - ID_ZP1=npz2*(npx0*npy0)+npy*npx0+npx - if(Para%Iperiodic_Z.eq.0 .and. npz .eq. 0) ID_ZM1=MPI_PROC_NULL ! if not periodic, 0 node donot send mesg to npz0-1 node - if(Para%Iperiodic_Z.eq.0 .and. npz .eq. npz0-1) ID_ZP1=MPI_PROC_NULL - - -!-------------------------------------------------------------- - - - end - -!-------------------------------------------------------------------------------- - function my_mod1(i,n) - implicit none - integer my_mod1,i,n - if(i<0) then - my_mod1=i+n - else if (i>n-1) then - my_mod1=i-n - else - my_mod1=i - endif - end -!----------------------------------------------------------------------------------------------- -! Send Recv non-continuous data using derivative data type - subroutine New_MPI_datatype - Use flow_para - implicit none - integer:: ierr,TYPE_tmp - - call MPI_TYPE_Vector(ny,LAP,nx+2*LAP,OCFD_DATA_TYPE,TYPE_LAPX1,ierr) - call MPI_TYPE_Vector(LAP,nx,nx+2*LAP,OCFD_DATA_TYPE,TYPE_LAPY1,ierr) - call MPI_TYPE_Vector(LAP,nx,(nx+2*LAP)*(ny+2*LAP),OCFD_DATA_TYPE,TYPE_LAPZ1,ierr) - - call MPI_TYPE_Vector(ny,nx,nx+2*LAP,OCFD_DATA_TYPE,TYPE_tmp,ierr) - - call MPI_TYPE_HVector(nz,1,(nx+2*LAP)*(ny+2*LAP)*OCFD_REAL_KIND,TYPE_LAPX1,TYPE_LAPX2,ierr) - call MPI_TYPE_HVector(nz,1,(nx+2*LAP)*(ny+2*LAP)*OCFD_REAL_KIND,TYPE_LAPY1,TYPE_LAPY2,ierr) - call MPI_TYPE_HVector(LAP,1,(nx+2*LAP)*(ny+2*LAP)*OCFD_REAL_KIND,TYPE_tmp,TYPE_LAPZ2,ierr) - - call MPI_TYPE_COMMIT(TYPE_LAPX1,ierr) - call MPI_TYPE_COMMIT(TYPE_LAPY1,ierr) - call MPI_TYPE_COMMIT(TYPE_LAPZ1,ierr) - - call MPI_TYPE_COMMIT(TYPE_LAPX2,ierr) - call MPI_TYPE_COMMIT(TYPE_LAPY2,ierr) - call MPI_TYPE_COMMIT(TYPE_LAPZ2,ierr) - - call MPI_barrier(MPI_COMM_WORLD,ierr) - end -!----------------------------------------------------------------------------------------------- - -!------------------------------------------------------------------------------- -!----Form a Global index, get the node information and local index - subroutine get_i_node(i_global,node_i,i_local) - Use Para_mpi - implicit none - integer i_global,node_i,i_local,ia - - node_i=npx0-1 - do ia=0,npx0-2 - if(i_global.ge.i_offset(ia) .and. i_global .lt. i_offset(ia+1) ) node_i=ia - enddo - i_local=i_global-i_offset(node_i)+1 - end -!------------------------------------------------------------------------------- - subroutine get_j_node(j_global,node_j,j_local) - Use Para_mpi - implicit none - integer j_global,node_j,j_local,ja - node_j=npy0-1 - do ja=0,npy0-2 - if(j_global.ge.j_offset(ja) .and. j_global .lt. j_offset(ja+1) ) node_j=ja - enddo - j_local=j_global-j_offset(node_j)+1 - end -!----------------------------------------------------------------------------------- - subroutine get_k_node(k_global,node_k,k_local) - Use Para_mpi - implicit none - integer k_global,node_k,k_local,ka - - node_k=npz0-1 - do ka=0,npz0-2 - if(k_global .ge. k_offset(ka) .and. k_global .lt. k_offset(ka+1) ) node_k=ka - enddo - k_local=k_global-k_offset(node_k)+1 - end - -!------------------------------------------------------------------------------------ - function get_id(npx1,npy1,npz1) - Use Para_mpi - implicit none - integer get_id,npx1,npy1,npz1 - get_id=npz1*(npx0*npy0)+npy1*npx0+npx1 - return - end -!------------------------------------------------------------------------------------- -! Message send and recv at inner boundary (or 'MPI boundary') - subroutine exchange_boundary_xyz(f) - Use flow_para - implicit none - real(kind=OCFD_REAL_KIND):: f(1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP) - call exchange_boundary_x(f) - call exchange_boundary_y(f) - call exchange_boundary_z(f) - return - end - -!========================================================================================================= -! Boundary message communication (exchange bounary message) -!========================================================================================================= - -! mpi message send and recv, using user defined data type - subroutine exchange_boundary_x(f) - Use flow_para - implicit none - integer Status(MPI_status_Size),ierr - real(kind=OCFD_REAL_KIND):: f(1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP) - - call MPI_Sendrecv(f(1,1,1),1,TYPE_LAPX2, ID_XM1, 9000, & - f(nx+1,1,1),1, TYPE_LAPX2, ID_XP1, 9000,MPI_COMM_WORLD,Status,ierr) - call MPI_Sendrecv(f(nx+1-LAP,1,1),1,TYPE_LAPX2, ID_XP1, 8000, & - f(1-LAP,1,1),1,TYPE_LAPX2, ID_XM1, 8000,MPI_COMM_WORLD,Status,ierr) - - end -!------------------------------------------------------ - subroutine exchange_boundary_y(f) - Use flow_para - implicit none - integer Status(MPI_status_Size),ierr - real(kind=OCFD_REAL_KIND):: f(1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP) - - call MPI_Sendrecv(f(1,1,1),1, TYPE_LAPY2, ID_YM1,9000, & - f(1,ny+1,1),1,TYPE_LAPY2, ID_YP1, 9000,MPI_COMM_WORLD,Status,ierr) - call MPI_Sendrecv(f(1,ny+1-LAP,1),1, TYPE_LAPY2, ID_YP1, 8000, & - f(1,1-LAP,1),1, TYPE_LAPY2, ID_YM1, 8000,MPI_COMM_WORLD,Status,ierr) - end -!------------------------------------------------------------ - subroutine exchange_boundary_z(f) - Use flow_para - implicit none - integer Status(MPI_status_Size),ierr - real(kind=OCFD_REAL_KIND):: f(1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP) - - call MPI_Sendrecv(f(1,1,1),1,TYPE_LAPZ2, ID_ZM1,9000, & - f(1,1,nz+1),1, TYPE_LAPZ2, ID_ZP1, 9000,MPI_COMM_WORLD,Status,ierr) - call MPI_Sendrecv(f(1,1,nz+1-LAP),1,TYPE_LAPZ2, ID_ZP1, 8000, & - f(1,1,1-LAP),1,TYPE_LAPZ2, ID_ZM1, 8000,MPI_COMM_WORLD,Status,ierr) - end - -!----------------------------------------------------------------------- - diff --git a/OCFD_parameters.f90 b/OCFD_parameters.f90 deleted file mode 100644 index 8c83b8f..0000000 --- a/OCFD_parameters.f90 +++ /dev/null @@ -1,113 +0,0 @@ -!-----OpenCFD-SC version 2 -------------------------------------------------------------------- -! Copyright by Li Xinliang, LHD, Institute of Mechanics, CAS, lixl@imech.ac.cn -! Codey by Li Xinliang, 2021-2 -!---------------------------------------------------------------------------------------------- - -! Double precsion (real*8) or Single Precision (real*4) (default: double precision) -module OCFD_precision -implicit none -include "mpif.h" -!------For Doubleprecision (real*8)-------------------------------------------------------------------------- -integer,parameter::OCFD_REAL_KIND=8, OCFD_DATA_TYPE=MPI_DOUBLE_PRECISION ! double precison computing -! ------For Single precision (real*4)------------------------------------------------------------------------- -! integer,parameter::OCFD_REAL_KIND=4, OCFD_DATA_TYPE=MPI_REAL ! single precision computing - end module OCFD_precision - - - !------parameters used in OpenCFD--------------------------------------- -module OCFD_constants - Use OCFD_precision - implicit none - integer,parameter:: Nvars=5 ! 5 conservative variables, 5 Equations - integer,parameter:: OCFD_Turb_None=0 ! Turbulence model - - integer,parameter:: OCFD_Scheme_WENO5=1,OCFD_Scheme_WENO7=2, & ! Schemes - OCFD_Scheme_OMP6=3, OCFD_Scheme_UD7L=4, & - OCFD_Scheme_CD6=5,OCFD_Scheme_CD8=6, & - OCFD_Scheme_Hybrid=10, & - OCFD_Scheme_USER=99 - - integer,parameter:: OCFD_Split_SW=1, OCFD_Split_LLF=2 - - integer,parameter:: BC_None=0,BC_Blunt2d=1, BC_BoundaryLayer=2, BC_SweptCorner=3, BC_User_Def=99 - - integer,parameter:: GRID1D=10, GRID2D_PLANE=20, GRID2D_AXIAL_SYMM=21, GRID3D=30, GRID_AND_JACOBIAN3D=31 - - integer,parameter:: DEL_LIFT=1, DEL_RIGHT=2, DEL_NONE=0 ! WENO5-type boundary Scheme - integer,parameter:: OCFD_ANA_USER=99, OCFD_ANA_time_average=100, & - OCFD_ANA_Q=101, OCFD_ANA_BOX=102, OCFD_ANA_SAVEDATA=103, OCFD_ANA_Corner=104 -end - -!----mpi parameters------------------------------------------------ -module Para_mpi - implicit none - integer:: my_id, npx,npy,npz, npx0,npy0,npz0, np_size, & ! npx0, npy0 : zone numbers in x- and y- direction - MPI_COMM_X,MPI_COMM_Y,MPI_COMM_Z, MPI_COMM_XY,MPI_COMM_YZ, MPI_COMM_XZ, & - ID_XM1,ID_XP1,ID_YM1,ID_YP1, ID_ZM1, ID_ZP1 ! ID_XM1: MPI ID for zone-1 (lift one) in x-direction - integer:: LAP ! Overlap length for Block-Block - integer,allocatable,dimension(:):: i_offset,j_offset, k_offset, i_nn,j_nn, k_nn - integer:: TYPE_LAPX1,TYPE_LAPY1,TYPE_LAPZ1,TYPE_LAPX2,TYPE_LAPY2,TYPE_LAPZ2 ! user defined MPI DATA TYPE (for Send & Recv) - end - - -!-----------parameters for numerical schemes------------------------ -module Scheme_Para - use OCFD_precision - implicit none - TYPE TYPE_Scheme - integer:: Scheme_Invis, Scheme_Vis - integer:: Bound_index(2,3), Scheme_boundary(6) !Bound_index(:,:) if using boundary scheme(0/1) - !Scheme_boundary(:) : boundary scheme type ( i-, i+, j-, j+, k-, k+: 0 : default, WENO5 Del-substencil type; -1 full-WENO5 type) - integer:: Ka1,Kb1,Ka2,Kb2 ! [Ka1,Kb1] stencil for flux+ ; [Ka2,Kb2] stencil for flux- - integer:: Ka1_H1,Kb1_H1,Ka2_H1,Kb2_H1,Ka1_H2,Kb1_H2,Ka2_H2,Kb2_H2,Ka1_H3,Kb1_H3,Ka2_H3,Kb2_H3 ! [Ka,Kb] for Hybrid scheme (scheme1, scheme2, scheme3) - Real(kind=OCFD_REAL_KIND):: UD7L_Diss, UD7L(8) , Hybrid_para(100) - ! UD7L_Diss: dissipation coefficient (0-1; 0 : CD8, 1: UD7) - ! UD7L coefficients for 7th low-dissipation upwind difference sheme - end TYPE - TYPE (TYPE_Scheme):: Scheme - -end - - -!-----------flow parameters ---------------------------------------------- -module flow_para - use OCFD_constants - use Para_mpi - use Scheme_para - implicit none - - - TYPE TYPE_Para ! input parameters - integer:: Iperiodic_X,Iperiodic_Y,Iperiodic_Z ! 1/0 : If periodic or not - integer:: IF_Scheme_Character , IF_Viscous ,Istep_Show, Istep_Save, Flux_Splitting,& - Iflag_Gridtype , & ! 0: Grid only, 1: Grid and Jocabian - IBC , IF_Mass_Force, & ! boundary conditon ; IF_Mase_Force : 0 (default): no mass force; 1 with mass force - ANA_Number, & ! number of analysis process - Nfiltering, & ! Number of filtering - Ghost_cell(6) ! 0 : non-GhostCell (default); 1 Ghost Cell (Auto, exterpolation); 2 Ghost cell (user defined) - Real(kind=OCFD_REAL_KIND):: Periodic_ISpan(3), Periodic_JSpan(3) , Periodic_KSpan(3) ! Span in peridoic direction - Real(kind=OCFD_REAL_KIND):: Re, Ma, gamma, Pr , Ref_Amu_T0 ,dt, End_time, AoA ! AoA angle of attack - Real(kind=OCFD_REAL_KIND):: BC_para(100) ! parameters for boundary conditions - Real(kind=OCFD_REAL_KIND):: Mass_Force(3) ! Mass force (such as gravity) - Real(kind=OCFD_REAL_KIND):: ANA_Para(100,10) ! parameters for post analysis code - Real(kind=OCFD_REAL_KIND):: Filter(100,10) ! parameters for filtering - end TYPE - - TYPE (TYPE_Para):: Para - - integer:: nx_global, ny_global,nz_global, nx, ny, nz, Istep - Real(kind=OCFD_REAL_KIND):: Cp, Cv, tt, hx, hy, hz -end - -!---------flow data--------------------------------------------------------- -module flow_data - use flow_para - implicit none - - real(kind=OCFD_REAL_KIND),allocatable,dimension(:,:,:):: Axx,Ayy,Azz, & ! Coordinates - Akx,Aky,Akz,Aix,Aiy,Aiz,Asx,Asy,Asz, Ajac , & ! Jacobian coefficients - Akx1,Aky1,Akz1,Aix1,Aiy1,Aiz1,Asx1,Asy1,Asz1 ! Akx1=Akx/Ajac - real(kind=OCFD_REAL_KIND),allocatable:: f(:,:,:,:),fn(:,:,:,:), du(:,:,:,:), Amu(:,:,:),Amu_t(:,:,:) - real(kind=OCFD_REAL_KIND),allocatable,dimension(:,:,:):: d,u,v,w,T - real(kind=OCFD_REAL_KIND),allocatable,dimension(:,:,:):: Rhybrid ! Index of hybrid scheme -end \ No newline at end of file diff --git a/OCFD_readpara.f90 b/OCFD_readpara.f90 deleted file mode 100644 index 692d26f..0000000 --- a/OCFD_readpara.f90 +++ /dev/null @@ -1,350 +0,0 @@ -! ------------------------------------------------------------------------------- -! read flow parameters (Namelist type) - subroutine read_parameter - use flow_para - implicit none - integer:: IF_Scheme_Character , Iperiodic_X,Iperiodic_Y,Iperiodic_Z,IF_Viscous,Istep_Show,Istep_Save, & - Iflag_Gridtype, Scheme_boundary(6), IF_Mass_Force,ANA_Number,NFiltering,Flux_Splitting, & - Ghost_Cell(6), ierr - character(len=50):: Scheme_Invis,Scheme_Vis, BoundaryCondition - real(kind=OCFD_REAL_KIND):: Ma, Re, gamma, Pr,Ref_Amu_T0,dt,End_time , AoA, & - Periodic_ISpan(3), Periodic_JSpan(3),Periodic_KSpan(3), & - BC_Para(100),Mass_Force(3),ANA_Para(100,10),Filter_Para(100,10), & - Hybrid_para(100),UD7L_Diss - namelist /control_opencfd/ Ma, Re, gamma, Pr, Ref_Amu_T0,dt,End_time, AoA, & - nx_global, ny_global,nz_global, npx0,npy0,npz0,LAP, & - Iperiodic_X,Iperiodic_Y,Iperiodic_Z, & - Scheme_Invis,Scheme_Vis,IF_Scheme_Character,IF_Viscous, & - Istep_Show, Istep_Save,Iflag_Gridtype, & - Periodic_ISpan, Periodic_JSpan,Periodic_KSpan, & - BoundaryCondition,BC_Para,Scheme_boundary,IF_Mass_Force,Mass_Force, & - ANA_Number,ANA_Para,NFiltering,Filter_Para,UD7L_Diss,Hybrid_para, Flux_Splitting, & - Ghost_Cell - - integer:: nparameters(100) - real(kind=OCFD_REAL_KIND):: rparameters(100) - real*8,parameter:: PI=3.1415926535897932d0 -!--------Set defalut parameter ---------------- - gamma=1.4d0 - Re=100.d0 - Ma=1.d0 - Pr=0.7d0 - npx0=1 - npy0=1 - npz0=1 - LAP=4 - Iperiodic_X=0 - Iperiodic_Y=0 - Iperiodic_Z=0 - Scheme_Invis="WENO5" - Scheme_Vis="CD6" - IF_Scheme_Character=0 - Ref_Amu_T0=288.15d0 - dt=1.d-4 - End_time=100.d0 - Iflag_Gridtype=GRID3D - Periodic_ISpan(:)=0.d0 - Periodic_JSpan(:)=0.d0 - Periodic_KSpan(:)=0.d0 - BC_Para(:)=0.d0 - BoundaryCondition="BC_None" - Istep_show=1 - Istep_save=1000 - IF_Viscous=1 - Scheme_boundary(:)=0 - IF_Mass_Force=0 - Mass_Force(:)=0.d0 - AoA=0.d0 - ANA_Number=0 - ANA_Para=0.d0 - NFiltering=0 - Filter_Para=0.d0 - UD7L_Diss=1.d0 ! Disspation for Low-dissipative Upwind difference scheme (0-1, 0 CD8 scheme, 1 UD7 scheme) - Hybrid_para(:)=1.d0 ! parameters for Hybrid scheme - Flux_Splitting=OCFD_Split_SW - Ghost_Cell(:)=0 - -!---------------------------------------------- - - if(my_id .eq. 0) then - print*, "---------OpenCFD-SC Version 2-------------" - print*, "- code by Li Xinliang -" - print*, "- LHD, Institue of Mechanics, CAS -" - print*, "- lixl@imech.ac.cn -" - print*, "------------------------------------------" - - - open(99,file="opencfd2.in") - read(99,nml=control_opencfd) - close(99) - print*, "Re=",Re - print*, "Ma=",Ma - print*, "Scheme_Invis=",Scheme_Invis - print*, "Scheme_Vis=",Scheme_Vis - print*, "Flux_Splitting (1 SW; 2 LLF)= ",Flux_Splitting - print*, "IF_Scheme_Character (0/1) = ", IF_Scheme_Character - print*, "-----------------------------------------------------" - - - call capitalize(Scheme_Invis) - call capitalize(Scheme_Vis) - call capitalize(BoundaryCondition) - - call find_scheme(Scheme_Invis,Scheme%Scheme_Invis) ! Scheme for inviscous terms - call find_scheme(Scheme_Vis,Scheme%Scheme_Vis) ! Scheme for viscous terms - call find_bc(BoundaryCondition,Para%IBC) ! boundary condition - if(ANA_Number > 10 .or. NFiltering > 10) then - print*, "ANA_Number and NFiltering should <=10, please check !!!" - stop - endif - - Para%BC_Para(1:100)=BC_Para(1:100) - Para%ANA_Para(:,:)=ANA_Para(:,:) - Para%Filter(:,:)=Filter_Para(:,:) - Scheme%Hybrid_para(:)=Hybrid_para(:) - - nparameters(1)=nx_global - nparameters(2)=ny_global - nparameters(3)=nz_global - - nparameters(4)=npx0 - nparameters(5)=npy0 - nparameters(6)=npz0 - - nparameters(7)=LAP - nparameters(8)=Iperiodic_X - nparameters(9)=Iperiodic_Y - nparameters(10)=Iperiodic_Z - - nparameters(11)=Scheme%Scheme_Invis - nparameters(12)=Scheme%Scheme_Vis - nparameters(13)=If_Scheme_Character - nparameters(14)=IF_Viscous - nparameters(15)=Istep_Show - nparameters(16)=Istep_Save - nparameters(17)=Iflag_Gridtype - nparameters(18)=Para%IBC - nparameters(19:24)=Scheme_boundary(1:6) - nparameters(25)=IF_Mass_Force - nparameters(26)=ANA_Number - nparameters(27)=NFiltering - nparameters(28)=Flux_Splitting - nparameters(29:34)=Ghost_Cell(1:6) - - rparameters(1)=Ma - rparameters(2)=Re - rparameters(3)=gamma - rparameters(4)=Pr - rparameters(5)=Ref_Amu_T0 - rparameters(6)=dt - rparameters(7)=End_time - rparameters(8:10)=Periodic_ISpan - rparameters(11:13)=Periodic_JSpan - rparameters(14:16)=Periodic_KSpan - rparameters(17:19)=Mass_Force - rparameters(20)=AoA*PI/180.d0 ! angle of attack (in degree) - rparameters(21)=UD7L_Diss - endif - - -! Broadcast the parameters to all MPI procs - - call MPI_bcast(nparameters(1),100,MPI_INTEGER,0, MPI_COMM_WORLD,ierr) - call MPI_bcast(rparameters(1),100,OCFD_DATA_TYPE,0, MPI_COMM_WORLD,ierr) - - - nx_global=nparameters(1) - ny_global=nparameters(2) - nz_global=nparameters(3) - - npx0= nparameters(4) - npy0=nparameters(5) - npz0=nparameters(6) - - LAP=nparameters(7) - Para%Iperiodic_X=nparameters(8) - Para%Iperiodic_Y= nparameters(9) - Para%Iperiodic_Z= nparameters(10) - - Scheme%Scheme_Invis=nparameters(11) - Scheme%Scheme_Vis=nparameters(12) - Para%IF_Scheme_Character=nparameters(13) - Para%IF_Viscous=nparameters(14) - Para%Istep_Show=nparameters(15) - Para%Istep_Save=nparameters(16) - Para%Iflag_Gridtype=nparameters(17) - Para%IBC=nparameters(18) - Scheme%Scheme_boundary(1:6)=nparameters(19:24) - Para%IF_Mass_Force=nparameters(25) - Para%ANA_Number=nparameters(26) - Para%NFiltering=nparameters(27) - Para%Flux_Splitting=nparameters(28) - Para%Ghost_Cell(1:6)=nparameters(29:34) - -!---------------------------- - - Para%Ma=rparameters(1) - Para%Re=rparameters(2) - Para%gamma=rparameters(3) - Para%Pr=rparameters(4) - Para%Ref_Amu_T0=rparameters(5) - Para%dt=rparameters(6) - Para%End_time=rparameters(7) - Para%Periodic_ISpan(:)=rparameters(8:10) - Para%Periodic_JSpan(:)=rparameters(11:13) - Para%Periodic_KSpan(:)=rparameters(14:16) - Para%Mass_Force(:)=rparameters(17:19) - Para%AoA=rparameters(20) - Scheme%UD7L_Diss=rparameters(21) - - call MPI_bcast(Para%BC_Para(1),100,OCFD_DATA_TYPE,0, MPI_COMM_WORLD,ierr) - call MPI_bcast(Para%ANA_Para(1,1),1000,OCFD_DATA_TYPE,0, MPI_COMM_WORLD,ierr) - call MPI_bcast(Para%Filter(1,1),1000,OCFD_DATA_TYPE,0, MPI_COMM_WORLD,ierr) - call MPI_bcast(Scheme%Hybrid_para(1),100,OCFD_DATA_TYPE,0, MPI_COMM_WORLD,ierr) - end - -!----------------------------------------------- - subroutine find_scheme(Schm1,scheme) - use OCFD_constants - implicit none - character(len=50):: Schm1 - integer:: scheme - - select case(trim(Schm1)) - - case("WENO5" ) - Scheme=OCFD_Scheme_WENO5 - case("WENO7" ) - Scheme=OCFD_Scheme_WENO7 - case("OMP6" ) - Scheme=OCFD_Scheme_OMP6 - case("CD6" ) - Scheme=OCFD_Scheme_CD6 - case("CD8" ) - Scheme=OCFD_Scheme_CD8 - case("UD7L" ) - Scheme=OCFD_Scheme_UD7L - case("HYBRID") - scheme=OCFD_Scheme_Hybrid - case("SCHEME_USER") - Scheme=OCFD_Scheme_USER - case default - print*, "This Scheme is not supported !!", trim(Schm1) - print*, "Scheme_Invis can be WENO5, WENO7 or OMP6 " - print*, "Scheme_Vis can be CD6 or CD8 (6th or 8th Centeral Scheme)" - stop - end select - end - - subroutine find_bc(bc,ibc) - use OCFD_constants - implicit none - character(len=50):: bc - integer:: ibc - - select case(trim(bc)) - - case("BC_NONE" ) - ibc=BC_None - case("BC_BLUNT2D") - ibc=BC_Blunt2d - case("BC_BOUNDARYLAYER") - ibc=BC_BoundaryLayer - case("BC_SWEPTCORNER") - ibc=BC_SweptCorner - case("BC_USER_DEF" ) - ibc=BC_User_Def - case default - print*, "This Boundary Condition is not supported !!", trim(bc) - print*, "Please read OCFD2d_BoundaryConditions.f90 to find the supported BCs" - stop - end select - end - -!------------Set parameters -------------------------------- - subroutine set_parameters - use flow_para - implicit none - - hx=1.d0/(nx_global-1.d0) - hy=1.d0/(ny_global-1.d0) - hz=1.d0/(nz_global-1.d0) - - Cv=1.d0/(Para%gamma*(Para%gamma-1.d0)*Para%Ma*Para%Ma) - Cp=Cv*Para%gamma - -!---------Set Scheme%bound_index (指示6个边界 是否采用边界格式) -! Scheme%Scheme_boundary(:)==-1 ! Ghost-Cell type boundary (Do not use boundary scheme) - Scheme%bound_index(:,:)=0 ! default : not use boundary scheme - - if(npx .eq. 0 .and. Para%Iperiodic_X .eq. 0 ) Scheme%bound_index(1,1)= 1 ! i- - if(npx .eq. npx0-1 .and. Para%Iperiodic_X .eq.0 ) Scheme%bound_index(2,1)= 1 ! i+ - - if(npy .eq. 0 .and. Para%Iperiodic_Y .eq. 0 ) Scheme%bound_index(1,2)= 1 ! j- - if(npy .eq. npy0-1 .and. Para%Iperiodic_Y .eq. 0 ) Scheme%bound_index(2,2)= 1 ! j+ - - if(npz .eq. 0 .and. Para%Iperiodic_Z .eq. 0 ) Scheme%bound_index(1,3)= 1 ! k- - if(npz .eq. npz0-1 .and. Para%Iperiodic_Z .eq. 0 ) Scheme%bound_index(2,3)= 1 ! k+ - - - - - -! ----[Ka1,Kb1]: Stencil of positive flux F(i+1/2) : [i+Ka1, i+Kb1] ; -! [Ka2,Kb2]: Stencil of negative flux ; - - select case (Scheme%Scheme_Invis ) - case (OCFD_Scheme_WENO5) - Scheme%Ka1=-2 ; Scheme%Kb1=2 ! Stencil for F(i+1/2) of WENO5+ : [i-2, ..., i+2] - Scheme%Ka2=-1 ; Scheme%Kb2=3 ! Stencil for F(i+1/2) of WENO5- : [i-1, ..., i+3] - case( OCFD_Scheme_WENO7) - Scheme%Ka1=-3; Scheme%Kb1=3 - Scheme%Ka2=-2; Scheme%Kb2=4 - case( OCFD_Scheme_OMP6) - Scheme%Ka1=-3; Scheme%Kb1=4 - Scheme%Ka2=-3; Scheme%Kb2=4 - case( OCFD_Scheme_UD7L) ! low-dissipative Upwind Difference scheme - Scheme%Ka1=-3; Scheme%Kb1=4 - Scheme%Ka2=-3; Scheme%Kb2=4 - case( OCFD_Scheme_Hybrid) ! Hybrid scheme - Scheme%Ka1=-3; Scheme%Kb1=4 - Scheme%Ka2=-3; Scheme%Kb2=4 - case( OCFD_Scheme_USER) -! call Stencil_Scheme_User(Scheme%Ka1, Scheme%Kb1, Scheme%Ka2, Scheme%Kb2) - - case default - print*, "The Inviscous Scheme is not supported" - stop - end select - -! [Ka,Kb] for hybrid scheme - Scheme%Ka1_H1=-3; Scheme%Kb1_H1=4; Scheme%Ka2_H1=-3; Scheme%Kb2_H1=4 ! UD7L - Scheme%Ka1_H2=-3; Scheme%Kb1_H2=3; Scheme%Ka2_H2=-2; Scheme%Kb2_H2=4 ! WENO7 - Scheme%Ka1_H3=-2; Scheme%Kb1_H3=2; Scheme%Ka2_H3=-1; Scheme%Kb2_H3=3 ! WENO5 - - call set_scheme_para - - end - -!----------------change to capital letters ------------------- - subroutine capitalize(string) - implicit none - character(len=*):: string - integer::i,length - length=len(string) - do i=1, length - if(lge(string(i:i),'a') .and. lle(string(i:i),'z')) then - string(i:i)=achar(iachar(string(i:i))-32) - endif - enddo - end -! ---------Coefficients for low-dissipative upwind scheme (UD7L) - subroutine set_scheme_para - use flow_para - implicit none - real(kind=OCFD_REAL_KIND):: UD7(8),CD8(8) - UD7=(/ -3.d0, 25.d0, -101.d0, 319.d0, 214.d0, -38.d0, 4.d0, 0.d0 /) ! coefficients for UD7 - CD8=(/ -3.0, 29.0, -139.0, 533.0, 533.0, -139.0, 29.0, -3.0 /) ! coefficients for CD8 - Scheme%UD7L=Scheme%UD7L_Diss*UD7/420.d0 + (1.d0-Scheme%UD7L_Diss)*CD8/840.d0 - end - diff --git a/OCFD_viscous.f90 b/OCFD_viscous.f90 deleted file mode 100644 index 74a7698..0000000 --- a/OCFD_viscous.f90 +++ /dev/null @@ -1,163 +0,0 @@ -!======================================================== -! Viscous term ! 3D Jacobian transformation -! Copyright by Li Xinliang -module viscous_data ! data used by inviscous term - use OCFD_precision - implicit none - real(kind=OCFD_REAL_KIND),allocatable,dimension(:,:,:,:):: Ev1,Ev2,Ev3 - real(kind=OCFD_REAL_KIND),allocatable,dimension(:,:,:):: uk,ui,us,vk,vi,vs,wk,wi,ws,Tk,Ti,Ts -end - -subroutine allocate_vicous_data - Use flow_para - Use viscous_data - implicit none - allocate(Ev1(1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP,4), & - Ev2(1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP,4), & - Ev3(1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP,4) ) - allocate(uk(nx,ny,nz),ui(nx,ny,nz),us(nx,ny,nz),vk(nx,ny,nz),vi(nx,ny,nz),vs(nx,ny,nz), & - wk(nx,ny,nz),wi(nx,ny,nz),ws(nx,ny,nz),Tk(nx,ny,nz),Ti(nx,ny,nz),Ts(nx,ny,nz)) - end - -subroutine deallocate_vicous_data - Use viscous_data - implicit none - deallocate( Ev1,Ev2,Ev3,uk,ui,us,vk,vi,vs,wk,wi,ws,Tk,Ti,Ts) - end - -!-------------Viscous term ----------------------------------------------------------------- - subroutine du_viscous - Use flow_data - Use viscous_data - implicit none - - real(kind=OCFD_REAL_KIND):: div, ux,uy,uz,vx,vy,vz,wx,wy,wz,Tx,Ty,Tz,Amu1,Amuk, & - s11,s12,s13,s22,s23,s33,E1,E2,E3 - real(kind=OCFD_REAL_KIND),parameter:: Prt=0.9d0, tmp2_3=2.d0/3.d0 - integer:: i,j,k,m -!------------------------------------------------------------------------ - - - call comput_Amu ! comput viscous coefficient (by using Sutherland eq.) - - call OCFD_dx0(u,uk,Scheme%Scheme_Vis) - call OCFD_dx0(v,vk,Scheme%Scheme_Vis) - call OCFD_dx0(w,wk,Scheme%Scheme_Vis) - call OCFD_dx0(T,Tk,Scheme%Scheme_Vis) - call OCFD_dy0(u,ui,Scheme%Scheme_Vis) - call OCFD_dy0(v,vi,Scheme%Scheme_Vis) - call OCFD_dy0(w,wi,Scheme%Scheme_Vis) - call OCFD_dy0(T,Ti,Scheme%Scheme_Vis) - call OCFD_dz0(u,us,Scheme%Scheme_Vis) - call OCFD_dz0(v,vs,Scheme%Scheme_Vis) - call OCFD_dz0(w,ws,Scheme%Scheme_Vis) - call OCFD_dz0(T,Ts,Scheme%Scheme_Vis) - -!------------------------------------------------------------- - - do k=1,nz - do j=1,ny - do i=1,nx - ux=uk(i,j,k)*Akx(i,j,k)+ui(i,j,k)*Aix(i,j,k)+us(i,j,k)*Asx(i,j,k) - vx=vk(i,j,k)*Akx(i,j,k)+vi(i,j,k)*Aix(i,j,k)+vs(i,j,k)*Asx(i,j,k) - wx=wk(i,j,k)*Akx(i,j,k)+wi(i,j,k)*Aix(i,j,k)+ws(i,j,k)*Asx(i,j,k) - Tx=Tk(i,j,k)*Akx(i,j,k)+Ti(i,j,k)*Aix(i,j,k)+Ts(i,j,k)*Asx(i,j,k) - - uy=uk(i,j,k)*Aky(i,j,k)+ui(i,j,k)*Aiy(i,j,k)+us(i,j,k)*Asy(i,j,k) - vy=vk(i,j,k)*Aky(i,j,k)+vi(i,j,k)*Aiy(i,j,k)+vs(i,j,k)*Asy(i,j,k) - wy=wk(i,j,k)*Aky(i,j,k)+wi(i,j,k)*Aiy(i,j,k)+ws(i,j,k)*Asy(i,j,k) - Ty=Tk(i,j,k)*Aky(i,j,k)+Ti(i,j,k)*Aiy(i,j,k)+Ts(i,j,k)*Asy(i,j,k) - - uz=uk(i,j,k)*Akz(i,j,k)+ui(i,j,k)*Aiz(i,j,k)+us(i,j,k)*Asz(i,j,k) - vz=vk(i,j,k)*Akz(i,j,k)+vi(i,j,k)*Aiz(i,j,k)+vs(i,j,k)*Asz(i,j,k) - wz=wk(i,j,k)*Akz(i,j,k)+wi(i,j,k)*Aiz(i,j,k)+ws(i,j,k)*Asz(i,j,k) - Tz=Tk(i,j,k)*Akz(i,j,k)+Ti(i,j,k)*Aiz(i,j,k)+Ts(i,j,k)*Asz(i,j,k) - div=ux+vy+wz - -! Amu1=Amu(i,j,k)+Amu_t(i,j,k) ! Turbulent or LES model ! -! Amuk=Cp*(Amu(i,j,k)/Pr+Amu_t(i,j,k)/Prt) - - Amu1=Amu(i,j,k) ! In this version, turbulence model is not supported ! - Amuk=Cp*Amu(i,j,k)/Para%Pr - - - s11=(2.d0*ux-tmp2_3*div)* Amu1 ! tmp2_3=2.d0/3.d0 - s22=(2.d0*vy-tmp2_3*div)* Amu1 - s33=(2.d0*wz-tmp2_3*div)* Amu1 - - s12=(uy+vx)*Amu1 - s13=(uz+wx)*Amu1 - s23=(vz+wy)*Amu1 - - E1=u(i,j,k)*s11+v(i,j,k)*s12+w(i,j,k)*s13+Amuk*Tx - E2=u(i,j,k)*s12+v(i,j,k)*s22+w(i,j,k)*s23+Amuk*Ty - E3=u(i,j,k)*s13+v(i,j,k)*s23+w(i,j,k)*s33+Amuk*Tz - - Ev1(i,j,k,1)=Akx1(i,j,k)*s11+Aky1(i,j,k)*s12+Akz1(i,j,k)*s13 - Ev1(i,j,k,2)=Akx1(i,j,k)*s12+Aky1(i,j,k)*s22+Akz1(i,j,k)*S23 - Ev1(i,j,k,3)=Akx1(i,j,k)*s13+Aky1(i,j,k)*s23+Akz1(i,j,k)*s33 - Ev1(i,j,k,4)=Akx1(i,j,k)*E1 +Aky1(i,j,k)*E2 +Akz1(i,j,k)*E3 - - Ev2(i,j,k,1)=Aix1(i,j,k)*s11+Aiy1(i,j,k)*s12+Aiz1(i,j,k)*s13 - Ev2(i,j,k,2)=Aix1(i,j,k)*s12+Aiy1(i,j,k)*s22+Aiz1(i,j,k)*S23 - Ev2(i,j,k,3)=Aix1(i,j,k)*s13+Aiy1(i,j,k)*s23+Aiz1(i,j,k)*s33 - Ev2(i,j,k,4)=Aix1(i,j,k)*E1 +Aiy1(i,j,k)*E2 +Aiz1(i,j,k)*E3 - - Ev3(i,j,k,1)=Asx1(i,j,k)*s11+Asy1(i,j,k)*s12+Asz1(i,j,k)*s13 - Ev3(i,j,k,2)=Asx1(i,j,k)*s12+Asy1(i,j,k)*s22+Asz1(i,j,k)*S23 - Ev3(i,j,k,3)=Asx1(i,j,k)*s13+Asy1(i,j,k)*s23+Asz1(i,j,k)*s33 - Ev3(i,j,k,4)=Asx1(i,j,k)*E1 +Asy1(i,j,k)*E2 +Asz1(i,j,k)*E3 - - enddo - enddo - enddo - - - - -!------ x,y,z direction - do m=1,4 - call exchange_boundary_x(Ev1(1-LAP,1-LAP,1-LAP,m)) - call exchange_boundary_y(Ev2(1-LAP,1-LAP,1-LAP,m)) - call exchange_boundary_z(Ev3(1-LAP,1-LAP,1-LAP,m)) - - call OCFD_dx0(Ev1(1-LAP,1-LAP,1-LAP,m),uk,Scheme%Scheme_Vis) - call OCFD_dy0(Ev2(1-LAP,1-LAP,1-LAP,m),ui,Scheme%Scheme_Vis) - call OCFD_dz0(Ev3(1-LAP,1-LAP,1-LAP,m),us,Scheme%Scheme_Vis) - do k=1,nz - do j=1,ny - do i=1,nx - du(i,j,k,m+1)=du(i,j,k,m+1)+(uk(i,j,k)+ui(i,j,k)+us(i,j,k))*Ajac(i,j,k) - enddo - enddo - enddo - enddo - - end - -!---------------------------------------------------------- -! viscous coefficient: Sutherland Eq. - subroutine comput_Amu - use flow_data - implicit none - real(kind=OCFD_REAL_KIND):: Tsb,tmpR - integer:: i,j,k - Tsb=110.4d0/Para%Ref_Amu_T0 - TmpR=1.d0/Para%Re - do k=1,nz - do j=1,ny - do i=1,nx - Amu(i,j,k)=TmpR*(1.d0+Tsb)*sqrt(T(i,j,k)**3) /(Tsb+T(i,j,k)) - enddo - enddo - enddo - end - -!c======================================================== -!c subroutine add_symmetry_Ev(kv,Ev,nx,ny,nz,LAP) -!c include 'OpenCFD.h' -!c real Ev -!c integer i,j,k,LAP,kv -!c dimension Ev(1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP) -!c end -!c-------------------------------------------------------- diff --git "a/OpenCFD-SC-V2.2b\346\211\213\345\206\214.docx" "b/OpenCFD-SC-V2.2b\346\211\213\345\206\214.docx" deleted file mode 100644 index f8d33e2..0000000 Binary files "a/OpenCFD-SC-V2.2b\346\211\213\345\206\214.docx" and /dev/null differ diff --git a/bin/opencfd b/bin/opencfd new file mode 100644 index 0000000..c9c6872 Binary files /dev/null and b/bin/opencfd differ diff --git a/cases/blunt-cylinder/Grid_and_init_HC3d.f90 b/cases/blunt-cylinder/Grid_and_init_HC3d.f90 deleted file mode 100644 index eb71c82..0000000 --- a/cases/blunt-cylinder/Grid_and_init_HC3d.f90 +++ /dev/null @@ -1,92 +0,0 @@ - ! Mesh and Initial condition for flow over a Half-Cylinder - implicit none - integer,parameter:: nx=181, ny=101 , nz=16 - real*8,parameter:: PI=3.1415926535897d0 - integer:: i,j,k - real*8:: r,seta,R1,R2,hy1,Lz - real*8:: x2d(nx,ny),y2d(nx,ny),z1d(nz) - real*8 d(nx,ny,nz),u(nx,ny,nz),v(nx,ny,nz),w(nx,ny,nz),T(nx,ny,nz),y1d(ny) -!--------------------------------------- - R1=1.d0 - R2=3.d0 - Lz=1.d0 - hy1=0.001d0 - call getsy(ny,y1d,R2-R1,hy1) - !------------------------------------- - - do j=1,ny - do i=1,nx - r=R1+y1d(j) - seta= 3.d0/2.d0*PI -PI*(i-1.d0)/(nx-1.d0) - x2d(i,j)=r*cos(seta) - y2d(i,j)=r*sin(seta) - enddo - enddo - do k=1,nz - z1d(k)=(k-1.d0)/nz*Lz - enddo - - d=1.d0 - u=1.d0 - v=0.d0 - w=0.d0 - T=1.d0 - - open(99,file="OCFD-grid.dat",form="unformatted") - write(99) x2d - write(99) y2d - write(99) z1d - close(99) - - open(100,file="opencfd0.dat",form="unformatted") - write(100) 0, 0.d0 - call write3d(100,nx,ny,nz,d) - call write3d(100,nx,ny,nz,u) - call write3d(100,nx,ny,nz,v) - call write3d(100,nx,ny,nz,w) - call write3d(100,nx,ny,nz,T) - close(100) - end - - -!c================================================================= - subroutine getsy(ny,yy,SL,hy1) - implicit none - real*8 yy(ny),SL,hy1,delta,fb,fbx,bnew,a,s,dy - real*8,save:: b=3.5d0 - integer:: ny,j - - dy=1.d0/(ny-1.d0) -!--------------------------------------- - delta=hy1/SL - ! using Newton method get coefficient - 100 continue - fb=(exp(b/(ny-1.d0))-1.d0)/(exp(b)-1.d0)-delta - fbx=(exp(b/(ny-1.d0))/(ny-1.d0)*(exp(b)-1.d0) - & - (exp(b/(ny-1.d0))-1.d0)*exp(b) )/((exp(b)-1.d0))**2 - bnew=b-fb/fbx - if(abs(b-bnew) .gt. 1.d-6) then - b=bnew - goto 100 - endif - - b=bnew - a=1.d0/(exp(b)-1.d0)*SL - do j=1,ny - s=(j-1.d0)*dy - yy(j)=a*(exp(s*b)-1.d0) - enddo - end -!----------------------------------------------- - subroutine write3d(file_no,nx,ny,nz,U) - implicit none - integer:: file_no, nx,ny,nz, k - real*8:: U(nx,ny,nz) - do k=1,nz - write(file_no) U(:,:,k) - enddo - end - - - - diff --git a/cases/blunt-cylinder/readme.txt b/cases/blunt-cylinder/readme.txt deleted file mode 100644 index 333b5c2..0000000 --- a/cases/blunt-cylinder/readme.txt +++ /dev/null @@ -1,5 +0,0 @@ - Mach 5 flow over a half-cylinder - 1) run Grid_and_init_HC3d.f90 for mesh and initial data - 2) ln -s opencfd0.dat opencfd.dat - 3) mpirun -n 24 ./opencfd-x.x.out - 4) run postproc3d-1.0.f90 (in ../../) for output tecplot-type data diff --git a/cases/compression-ramp-Ma6/Interploation-corner3d-1.0.f90 b/cases/compression-ramp-Ma6/Interploation-corner3d-1.0.f90 deleted file mode 100644 index 5586479..0000000 --- a/cases/compression-ramp-Ma6/Interploation-corner3d-1.0.f90 +++ /dev/null @@ -1,395 +0,0 @@ - -! interpolation for compression-corner type mesh ( mesh uniform in Z- direction ) - - implicit none - integer,parameter:: Periodic=1,Non_Periodic=0 - integer:: Nvar,nx1,ny1,nz1,nx2,ny2,nz2 - real*8,allocatable,dimension(:):: Z1, Z2, W1, W2 - real*8,allocatable,dimension(:,:) :: x1,y1,x2,y2,Ak - real*8,allocatable,dimension(:,:,:) :: V1, V2, U2 - real*8,allocatable,dimension(:,:,:,:):: U1,Un - real*8:: ZL,tt - integer,allocatable,dimension(:) :: ks_k - integer:: Istep ,i,j,k,m - - print*, "3D Interploation for compression corner ..." - print*, "please input nx1,ny1,nz1 (orginal grid)" - read(*,*) nx1, ny1, nz1 - print*, "please input nx2, ny2, nz2 (new grid)" - read(*,*) nx2, ny2, nz2 - Nvar=5 - ZL=1.d0 - - allocate( z1(nx1), z2(nz2), ks_k(nz2) , Ak(6,nz2), W1(nz1), W2(nz2)) - allocate(x1(nx1,ny1), y1(nx1,ny1), x2(nx2,ny2), y2(nx2,ny2)) - allocate(V1(nx1,ny1,Nvar),V2(nx2,ny2,Nvar)) - allocate(U1(nx1,ny1,nz1,Nvar),Un(nx2,ny2,nz1,Nvar),U2(nx2,ny2,nz2) ) - -!--------read coordinate ------------------------------ - open(99,file="mesh-old.dat",form="unformatted") - read(99) x1 - read(99) y1 - close(99) - - open(100,file="mesh-new.dat",form="unformatted") - read(100) x2 - read(100) y2 - close(100) - -!-------read flow data ---------------- - print*, "read old data ..." - open(99,file="data-old.dat",form="unformatted") - read(99) Istep, tt - print*, "Istep, tt=", Istep, tt - do m=1,Nvar - print*, "read 3d data ..." - do k=1,nz1 - read(99) U1(:,:,k,m) - enddo - enddo - close(99) - -!------------Inter ploation in x-y plane -------------------- - print*, "read flow data OK , Interploation in x-y plane ..." - - do k=1,nz1 - print*, "k=", k - do m=1,Nvar - do j=1,ny1 - do i=1,nx1 - V1(i,j,m)=U1(i,j,k,m) - enddo - enddo - enddo - - call interploation_curve2d(Nvar,nx1,ny1,nx2,ny2,x1,y1,V1,x2,y2,V2) - - do m=1,Nvar - do j=1,ny2 - do i=1,nx2 - Un(i,j,k,m)=V2(i,j,m) - enddo - enddo - enddo - enddo - - open(99,file="flow-z1-old.dat") - write(99,*) "variables=x,y,T" - write(99,*) "zone i=" ,nx1, "j=", ny1 - do j=1,ny1 - do i=1,nx1 - write(99,"(3F16.8)") x1(i,j), y1(i,j), U1(i,j,1,5) - enddo - enddo - - open(99,file="flow-z1-new.dat") - write(99,*) "variables=x,y,T" - write(99,*) "zone i=" ,nx2, "j=", ny2 - do j=1,ny2 - do i=1,nx2 - write(99,"(3F16.8)") x2(i,j), y2(i,j), Un(i,j,1,5) - enddo - enddo - -!----------------------------------------------------------- -!--interploation in z- direction ---------------- - - do k=1,nz1 - z1(k)=(k-1.d0)/nz1 - enddo - do k=1,nz2 - z2(k)=(k-1.d0)/nz2 - enddo - call get_ks_Ai(nz1,nz2,z1,z2,ks_k,Ak,Periodic, ZL) - - open(55,file="data-new.dat",form="unformatted") - write(55) Istep, tt - - do m=1,Nvar - print*, "interpolation-Z... ",m - -!---------------interpolation in z- direction - do j=1,ny2 - do i=1,nx2 - w1=Un(i,j,1:nz1,m) - call interpolation6(nz1,nz2,ks_k,Ak,w1,w2,Periodic) - U2(i,j,1:nz2)=w2 - enddo - enddo - -!------------------------------------------ - call write3d(55,U2,nx2,ny2,nz2) - enddo - close(55) - -!----------test in y-z-direction - i=nx2/2 - open(44,file="flow2d-yz-1.dat") - write(44,*) "variables=x,y,T" - write(44,*) "zone i= ",ny2 , " j= ", nz1 - do k=1,nz1 - do j=1,ny2 - write(44,"(3f15.6)") (j-1.d0)/ny2, (k-1.0)/nz1, Un(i,j,k,5) - enddo - enddo - close(44) - - open(44,file="flow2d-yz-2.dat") - write(44,*) "variables=x,y,T" - write(44,*) "zone i= ", ny2, " j= ", nz2 - do k=1,nz2 - do j=1,ny2 - write(44,"(3f15.6)") (j-1.d0)/ny2, (k-1.0)/nz2,U2(i,j,k) - enddo - enddo - close(44) -!======================================= - - deallocate( Z1, Z2, W1, W2,x1,y1,x2,y2,Ak, V1, V2, U1,U2,Un, Ks_k) - - end - - -!-----------2nd order interploation ---------------------- -! Nvar : Number of variables - subroutine interploation_curve2d(Nvar,nx1,ny1,nx2,ny2,x1,y1,V1,x2,y2,V2) - implicit none - integer:: Nvar,nx1,ny1,nx2,ny2 - integer:: i,j,i0,j0,m - real*8:: x1(nx1,ny1),y1(nx1,ny1),x2(nx2,ny2),y2(nx2,ny2),V1(nx1,ny1,Nvar),V2(nx2,ny2,Nvar) - real*8,allocatable,dimension(:,:,:):: Vx,Vy - integer,allocatable,dimension(:,:) :: ist, jst ! the nearest (i,j) - print*, "in inter_ploation 2D ..." - -!---------------------------- - allocate(ist(nx2,ny2), jst(nx2,ny2)) - allocate(Vx(nx1,ny1,Nvar),Vy(nx1,ny1,Nvar)) - - call comput_grident(Nvar,nx1,ny1,x1,y1,V1,Vx,Vy) - - call find_nearest_ij(nx1,ny1, nx2,ny2, x1,y1,x2,y2, ist, jst) ! Find the nearest point - -!-------------Taylor expansion ---------------------------------------- - do j=1, ny2 - do i=1, nx2 - i0=ist(i,j) ! ĵ - j0=jst(i,j) - do m=1,Nvar - V2(i,j,m)= V1(i0,j0,m) + Vx(i0,j0,m)*(x2(i,j)-x1(i0,j0))+ Vy(i0,j0,m)*(y2(i,j)-y1(i0,j0)) - enddo - - enddo - enddo - - deallocate(ist, jst, Vx, vy) - end - - -!------------ݶ--------------------------------------------- - subroutine comput_grident(Nvar,nx,ny, xx, yy, V1, Vx,Vy) - implicit none - integer:: Nvar,nx,ny,i,j - real*8:: xx(nx,ny), yy(nx,ny),V1(nx,ny,Nvar),Vx(nx,ny,Nvar),Vy(nx,ny,Nvar) - real*8:: xi, xj, yi, yj, Aix, Aiy, Ajx, Ajy, Ajac, Vi(Nvar),Vj(Nvar) - - do j=1,ny - do i=1,nx - if(i .eq. 1) then - xi=xx(2,j)-xx(1,j) - yi=yy(2,j)-yy(1,j) - Vi(:)=V1(2,j,:)-V1(1,j,:) - else if(i .eq. nx )then - xi=xx(nx,j)-xx(nx-1,j) - yi=yy(nx,j)-yy(nx-1,j) - Vi(:)= V1(nx,j,:)-V1(nx-1,j,:) - else - xi=(xx(i+1,j)-xx(i-1,j))*0.5d0 - yi=(yy(i+1,j)-yy(i-1,j))*0.5d0 - Vi(:)= (V1(i+1,j,:)-V1(i-1,j,:))*0.5d0 - endif - - if(j .eq. 1) then - xj=xx(i,2)-xx(i,1) - yj=yy(i,2)-yy(i,1) - Vj(:)=V1(i,2,:)-V1(i,1,:) - else if(j .eq. ny )then - xj=xx(i,ny)-xx(i,ny-1) - yj=yy(i,ny)-yy(i,ny-1) - Vj(:)= V1(i,ny,:)-V1(i,ny-1,:) - else - xj=(xx(i,j+1)-xx(i,j-1))*0.5d0 - yj=(yy(i,j+1)-yy(i,j-1))*0.5d0 - Vj(:)= (V1(i,j+1,:)-V1(i,j-1,:))*0.5d0 - endif - - Ajac=1.d0/(xi*yj-yi*xj) - Aix=yj*Ajac ; Aiy=-xj*Ajac; Ajx=-yi*Ajac ; Ajy=xi*Ajac ! Jacobian - Vx(i,j,:)=Vi(:)*Aix+Vj(:)*Ajx - Vy(i,j,:)=Vi(:)*Aiy+Vj(:)*Ajy - - enddo - enddo - - - - end - -!------------------------------------------------------------------------------------------------------- -! (xn,yn) old coordinate; (x2,y2) new coordinate - subroutine find_nearest_ij(nx0,ny0, nx2,ny2, xn, yn, x2, y2, ist, jst) - implicit none - integer:: nx0,ny0, nx2, ny2, i, j, i1,j1, ia,ib, ja, jb, Iflag_Half, i0, j0 - real*8:: xn(nx0,ny0), yn(nx0,ny0), x2(nx2,ny2), y2(nx2,ny2) - integer:: ist(nx2,ny2), jst(nx2,ny2) - real*8:: d0, dd - integer, parameter:: LP=10 - !-------------------------------------------------- - do j1=1, ny2 - do i1=1, nx2 - if(i1 .ne. 1) then - ia=max(ist(i1-1, j1)-LP, 1) ; ib=min(ist(i1-1, j1)+LP, nx0) - ja=max(jst(i1-1, j1)-LP, 1) ; jb=min(jst(i1-1, j1)+LP, ny0) - else - if(j1 .ne. 1) then - ia=max(ist(i1, j1-1)-LP, 1) ; ib=min(ist(i1, j1-1)+LP, nx0) - ja=max(jst(i1, j1-1)-LP, 1) ; jb=min(jst(i1, j1-1)+LP, ny0) - else - ia=1; ib=nx0 - ja=1; jb=ny0 - endif - endif - - i0=ia; j0=ja ; d0=1.d20 ! d0, a larage number - do j=ja, jb - do i=ia, ib - dd=(x2(i1,j1)-xn(i,j))**2+(y2(i1,j1)-yn(i,j))**2 - - if(dd < d0) then - d0=dd - i0=i; j0=j - endif - enddo - enddo - ist(i1,j1)=i0 - jst(i1,j1)=j0 - - enddo - enddo - end - - -!------------------------------------------------------- - subroutine get_ks_Ai(nx1,nx2,xx1,xx2,ks_i,Ai,IF_Periodic, ZL_Periodic) - implicit doubleprecision(a-h,o-z) - integer,parameter:: LAP=6 - integer nx1,nx2,ks_i(nx2) - real*8 xx1(nx1),xx2(nx2),Ai(6,nx2), ZL_Periodic - real*8:: xx0(1-LAP:nx1+LAP) ! periodical spaned x - - do j=1,nx1 - xx0(j)=xx1(j) - enddo - do j=1-LAP, 0 - xx0(j)=xx1(nx1+j)-ZL_Periodic - enddo - do j=nx1+1, nx1+LAP - xx0(j)=xx1(j-nx1)+ZL_Periodic - enddo - print*, "xx0=", xx0 - - do j=1,nx2 - if(xx2(j) .lt. xx1(1) ) then - ks_i(j)=0 - goto 100 - endif - - do i=1,nx1-1 - if(xx2(j) .ge. xx1(i) .and. xx2(j) .lt. xx1(i+1)) then - ks_i(j)=i - goto 100 - endif - enddo - ks_i(j)=nx1 -100 continue - enddo - - Ai=0.d0 - - - do i=1,nx2 - ka=4-ks_i(i) - if(ka .lt. 1 .or. IF_Periodic .eq. 1) ka=1 - kb=nx1+3-ks_i(i) - if(kb .gt. 6 .or. IF_Periodic .eq. 1) kb=6 - - do k=ka,kb -! ik=MOD_N(ks_i(i)+k-3,nx1) - ik=ks_i(i)+k-3 - Ai(k,i)=1.d0 - do km=ka,kb - ikm=ks_i(i)+km-3 -! ikm=MOD_N(ks_i(i)+km-3,nx1) - - if(km .ne. k) then -! Ai(k,i)=Ai(k,i)*(xx2(i)-xx1(ikm))/(xx1(ik)-xx1(ikm)) - Ai(k,i)=Ai(k,i)*(xx2(i)-xx0(ikm))/(xx0(ik)-xx0(ikm)) - endif - enddo - enddo - - enddo - - - end - -!---------------------------------------- - - subroutine interpolation6(nx1,nx2,ks_i,Ai,ux1,ux2,IF_Periodic) - implicit doubleprecision(a-h,o-z) - integer nx1,nx2,ks_i(nx2) - real*8 Ai(6,nx2),ux1(nx1),ux2(nx2) - - do i=1,nx2 - - ka=4-ks_i(i) - if(ka .lt. 1 .or. IF_Periodic .eq. 1 ) ka=1 - kb=nx1+3-ks_i(i) - if(kb .gt. 6 .or. IF_Periodic .eq. 1) kb=6 - - ux2(i)=0.d0 - do k=ka,kb -! ik=ks_i(i)+k-3 - ik=MOD_N(ks_i(i)+k-3,nx1) - ux2(i)=ux2(i)+Ai(k,i)*ux1(ik) - enddo - - if(ks_i(i) .eq. 0 .and. IF_Periodic .eq. 0) ux2(i)=ux1(1) ! do not ext-interpolate - if(ks_i(i) .eq. nx1 .and. IF_Periodic .eq. 0) ux2(i)=ux1(nx1) - - enddo - end - -!--------------------------------------- - function MOD_N(k,N) - integer k,N,MOD_N - MOD_N=k - if(k .lt. 1) MOD_N=k+N - if(K .gt. N) MOD_N=k-N - end - -!---------------------------------------------- - subroutine read3d(no,U,nx,ny,nz) - implicit doubleprecision (a-h,o-z) - real*8 U(nx,ny,nz) - do k=1,nz - read(no) U(:,:,k) - enddo - end -!---------------------------------------------- - subroutine write3d(no,U,nx,ny,nz) - implicit doubleprecision (a-h,o-z) - real*8 U(nx,ny,nz) - do k=1,nz - write(no) U(:,:,k) - enddo - end \ No newline at end of file diff --git a/cases/compression-ramp-Ma6/data/cf-1.11.3d-t5800.dat b/cases/compression-ramp-Ma6/data/cf-1.11.3d-t5800.dat deleted file mode 100644 index 521db4f..0000000 --- a/cases/compression-ramp-Ma6/data/cf-1.11.3d-t5800.dat +++ /dev/null @@ -1,2500 +0,0 @@ - -450.0000000000 0.0002706139 18.1011815924 0.0005728295 - -449.5000107956 0.0001897930 15.3662222795 0.0004935947 - -449.0000435999 0.0002206285 16.5621835049 0.0005335056 - -448.5000990389 0.0002088139 16.1429220012 0.0005247861 - -448.0001777386 0.0002072368 16.0904413376 0.0005260263 - -447.5002803251 0.0002009738 15.8627431028 0.0005212571 - -447.0004074243 0.0001958087 15.6774289776 0.0005187254 - -446.5005596623 0.0001917205 15.5310335426 0.0005167378 - -446.0007376653 0.0001870119 15.3581378092 0.0005140622 - -445.5009420591 0.0001821009 15.1743809729 0.0005113065 - -445.0011734698 0.0001767681 14.9701252571 0.0005081688 - -444.5014325234 0.0001710157 14.7446727767 0.0005046847 - -444.0017198461 0.0001650174 14.5043685806 0.0005009869 - -443.5020360638 0.0001589010 14.2540336204 0.0004971682 - -443.0023818025 0.0001527522 13.9968023456 0.0004932802 - -442.5027576884 0.0001466015 13.7335753037 0.0004893163 - -442.0031643474 0.0001405350 13.4680146611 0.0004853598 - -441.5036024055 0.0001345445 13.1994014028 0.0004813876 - -441.0040724888 0.0001285912 12.9255942788 0.0004773638 - -440.5045752234 0.0001227229 12.6486046612 0.0004733229 - -440.0051112352 0.0001169632 12.3693974349 0.0004692721 - -439.5056811503 0.0001112961 12.0869152025 0.0004651928 - -439.0062855948 0.0001057129 11.8004326919 0.0004610817 - -438.5069251946 0.0001002423 11.5112617510 0.0004569628 - -438.0076005758 0.0000948894 11.2194847401 0.0004528174 - -437.5083123644 0.0000896670 10.9257171384 0.0004486511 - -437.0090611866 0.0000845570 10.6286457685 0.0004444257 - -436.5098476682 0.0000795249 10.3257786954 0.0004400791 - -436.0106724354 0.0000746308 10.0206544274 0.0004356598 - -435.5115361141 0.0000699129 9.7157262570 0.0004311920 - -435.0124393304 0.0000653750 9.4114270763 0.0004267081 - -434.5133827104 0.0000610670 9.1116582673 0.0004222489 - -434.0143668801 0.0000570267 8.8199561377 0.0004178126 - -433.5153924654 0.0000532903 8.5402405113 0.0004135317 - -433.0164600925 0.0000498783 8.2756209513 0.0004089465 - -432.5175703874 0.0000468133 8.0297978089 0.0004045196 - -432.0187239761 0.0000441785 7.8121751935 0.0004000617 - -431.5199214847 0.0000420811 7.6351982956 0.0003954285 - -431.0211635391 0.0000406568 7.5146216333 0.0003907204 - -430.5224507654 0.0000400863 7.4704003117 0.0003860221 - -430.0237837897 0.0000406295 7.5283456343 0.0003810596 - -429.5251632380 0.0000427205 7.7256443877 0.0003746928 - -429.0265897362 0.0000472373 8.1278863636 0.0003651416 - -428.5280639106 0.0000555756 8.8176222131 0.0003517060 - -428.0295863870 0.0000694165 9.8527122595 0.0003365967 - -427.5311577915 0.0000900514 11.2155958546 0.0003247041 - -427.0327787502 0.0001182773 12.8419467402 0.0003226338 - -426.5344498891 0.0001545261 14.6606683493 0.0003345440 - -426.0361718342 0.0001989893 16.6122676042 0.0003601472 - -425.5379452115 0.0002510076 18.6259039030 0.0003990554 - -425.0397706471 0.0003088067 20.6201234437 0.0004474351 - -424.5416487671 0.0003706293 22.5439798410 0.0005060689 - -424.0435801974 0.0004361513 24.4041925197 0.0005742933 - -423.5455655641 0.0005060839 26.2324560996 0.0006535509 - -423.0476054933 0.0005803182 28.0320877784 0.0007421633 - -422.5497006109 0.0006557208 29.7342908216 0.0008366527 - -422.0518515430 0.0007269343 31.2395385672 0.0009328675 - -421.5540589156 0.0007880600 32.4515652609 0.0010269194 - -421.0563233548 0.0008340777 33.3034252435 0.0011162278 - -420.5586454865 0.0008625052 33.7767544941 0.0012003131 - -420.0610259369 0.0008729988 33.8869220640 0.0012851046 - -419.5634653320 0.0008669208 33.6697644931 0.0013842554 - -419.0659642978 0.0008501045 33.2366592960 0.0014826377 - -418.5685234603 0.0008318886 32.7693749610 0.0015518882 - -418.0711434456 0.0008140275 32.3133511052 0.0015960734 - -417.5738248797 0.0007802757 31.5657706502 0.0016433746 - -417.0765683886 0.0007115882 30.1509797063 0.0016868516 - -416.5793745984 0.0006000538 27.7797540393 0.0016895023 - -416.0822441351 0.0004385245 23.8957882024 0.0015862987 - -415.5851776247 0.0002593115 18.5292532506 0.0013087009 - -415.0881756933 0.0001392246 13.6982514306 0.0009420821 - -414.5912389669 0.0001162040 12.6059469672 0.0006232162 - -414.0943680715 0.0001705592 15.3329173952 0.0004585846 - -413.5975636333 0.0002560449 18.8096164450 0.0004678086 - -413.1008262781 0.0003514967 22.0297689940 0.0005729351 - -412.6041566321 0.0004425217 24.6798962729 0.0007335572 - -412.1075553212 0.0005210887 26.7182833444 0.0008899799 - -411.6110229716 0.0005919255 28.3912903255 0.0010264659 - -411.1145602092 0.0006738561 30.2000881682 0.0011392823 - -410.6181676601 0.0007813866 32.4246109205 0.0012392330 - -410.1218459503 0.0009024359 34.7246405674 0.0013054480 - -409.6255957059 0.0010135857 36.6277731803 0.0013399589 - -409.1294175528 0.0010878930 37.7122428574 0.0013506247 - -408.6333121172 0.0011196365 37.9905927956 0.0013453044 - -408.1372800250 0.0011313451 37.9311143032 0.0013536422 - -407.6413219023 0.0011324058 37.7264240235 0.0013723163 - -407.1454383751 0.0011202207 37.3416971238 0.0013794999 - -406.6496300695 0.0010854258 36.6128736644 0.0013677937 - -406.1538976115 0.0010288448 35.5317555535 0.0013330030 - -405.6582416271 0.0009538786 34.1291017929 0.0012679900 - -405.1626627423 0.0008638629 32.4319306450 0.0011828183 - -404.6671615832 0.0007676082 30.5593936062 0.0010833769 - -404.1717387759 0.0006780375 28.7289175020 0.0009749292 - -403.6763949463 0.0006044034 27.1407025258 0.0008721880 - -403.1811307205 0.0005499374 25.9067971908 0.0007887045 - -402.6859467245 0.0005121398 25.0103066457 0.0007263527 - -402.1908435844 0.0004851209 24.3335275619 0.0006774602 - -401.6958219262 0.0004637455 23.7648719439 0.0006339832 - -401.2008823759 0.0004468638 23.2926773014 0.0005991794 - -400.7060255596 0.0004364632 22.9889436346 0.0005763730 - -400.2112521033 0.0004349804 22.9322051952 0.0005750976 - -399.7165626330 0.0004430616 23.1400739392 0.0005948174 - -399.2219577748 0.0004575561 23.5140167332 0.0006252916 - -398.7274381547 0.0004725944 23.8900806902 0.0006590164 - -398.2330043987 0.0004852141 24.1946683259 0.0006943454 - -397.7386571329 0.0004965796 24.4605915995 0.0007278119 - -397.2443969833 0.0005081626 24.7263768009 0.0007583120 - -396.7502245759 0.0005206462 25.0108295520 0.0007876481 - -396.2561405368 0.0005335383 25.3014768286 0.0008165179 - -395.7621454920 0.0005449242 25.5516429309 0.0008432625 - -395.2682400676 0.0005527545 25.7154262137 0.0008637490 - -394.7744248895 0.0005569715 25.7985081680 0.0008779074 - -394.2807005838 0.0005598630 25.8596545352 0.0008901994 - -393.7870677766 0.0005649407 25.9831420439 0.0009070184 - -393.2935270938 0.0005743297 26.2110110133 0.0009313017 - -392.8000791616 0.0005865741 26.4983809451 0.0009590183 - -392.3067246059 0.0005984429 26.7648916234 0.0009846459 - -391.8134640528 0.0006079420 26.9672909745 0.0010057072 - -391.3202981283 0.0006160021 27.1330829244 0.0010243419 - -390.8272274584 0.0006244407 27.3074534053 0.0010446359 - -390.3342526693 0.0006338189 27.5019927948 0.0010652344 - -389.8413743868 0.0006425371 27.6752908695 0.0010825683 - -389.3485932371 0.0006478507 27.7635645133 0.0010925000 - -388.8559098462 0.0006490818 27.7563016765 0.0010956356 - -388.3633248401 0.0006479549 27.6981512922 0.0010946763 - -387.8708388448 0.0006463066 27.6365633301 0.0010962717 - -387.3784524864 0.0006461176 27.6184327640 0.0011070035 - -386.8861663910 0.0006488501 27.6683457061 0.0011245647 - -386.3939811845 0.0006547675 27.7828363592 0.0011452161 - -385.9018974930 0.0006624916 27.9244489394 0.0011641978 - -385.4099159425 0.0006689721 28.0264260139 0.0011744373 - -384.9180371591 0.0006714633 28.0391504821 0.0011782762 - -384.4262617688 0.0006691381 27.9516052563 0.0011761509 - -383.9345903976 0.0006626142 27.7772718993 0.0011632436 - -383.4430236716 0.0006542255 27.5702565209 0.0011442733 - -382.9515622167 0.0006473238 27.4038855661 0.0011280264 - -382.4602066591 0.0006438155 27.3163885384 0.0011173703 - -381.9689576247 0.0006434992 27.3011081665 0.0011131578 - -381.4778157397 0.0006440172 27.3037549353 0.0011139346 - -380.9867816300 0.0006427599 27.2669246469 0.0011156939 - -380.4958559216 0.0006400193 27.1983194919 0.0011172346 - -380.0050392406 0.0006377521 27.1418917445 0.0011197904 - -379.5143322131 0.0006377758 27.1433734511 0.0011245501 - -379.0237354651 0.0006414967 27.2359886911 0.0011373281 - -378.5332496225 0.0006475297 27.3871777907 0.0011607523 - -378.0428753115 0.0006536242 27.5454847442 0.0011913181 - -377.5526131580 0.0006594391 27.6975536943 0.0012223636 - -377.0624637882 0.0006655578 27.8474039921 0.0012461625 - -376.5724278280 0.0006714087 27.9734664976 0.0012535946 - -376.0825059034 0.0006762920 28.0639016154 0.0012457318 - -375.5926986406 0.0006814102 28.1600595862 0.0012369207 - -375.1030066655 0.0006861011 28.2558895146 0.0012341888 - -374.6134306042 0.0006879424 28.3007735664 0.0012365081 - -374.1239710827 0.0006886214 28.3321653265 0.0012469128 - -373.6346287271 0.0006943887 28.4731778899 0.0012679854 - -373.1454041633 0.0007087408 28.7818019776 0.0012995150 - -372.6562980174 0.0007281926 29.1714968259 0.0013394364 - -372.1673109155 0.0007428736 29.4362801754 0.0013784260 - -371.6784434836 0.0007428840 29.3870223563 0.0013985769 - -371.1896963476 0.0007277645 29.0329602202 0.0013853901 - -370.7010701338 0.0007084761 28.6062962082 0.0013487747 - -370.2125654680 0.0006961892 28.3368363686 0.0013100724 - -369.7241829763 0.0006927496 28.2606675210 0.0012827317 - -369.2359232848 0.0006924941 28.2613082927 0.0012665706 - -368.7477870194 0.0006902776 28.2342530719 0.0012594263 - -368.2597748063 0.0006876044 28.2186306561 0.0012702345 - -367.7718872714 0.0006897754 28.3188432879 0.0013068736 - -367.2841250409 0.0006995050 28.5786605905 0.0013666110 - -366.7964887406 0.0007152681 28.9400260438 0.0014333956 - -366.3089789967 0.0007282664 29.1862654992 0.0014691584 - -365.8215964352 0.0007292899 29.1386209664 0.0014563860 - -365.3343416821 0.0007179676 28.8222332035 0.0014070075 - -364.8472153635 0.0006985948 28.3539589883 0.0013386183 - -364.3602181054 0.0006795282 27.9361019968 0.0012843422 - -363.8733505338 0.0006691297 27.7504469610 0.0012705376 - -363.3866132747 0.0006668748 27.7569683422 0.0012858298 - -362.9000069543 0.0006677474 27.8258233279 0.0013096823 - -362.4135321985 0.0006700311 27.9037281001 0.0013287261 - -361.9271896333 0.0006736914 27.9923981637 0.0013435896 - -361.4409798849 0.0006805696 28.1495001070 0.0013782032 - -360.9549035791 0.0006877659 28.3067137177 0.0014244718 - -360.4689613422 0.0006910374 28.3589987170 0.0014497589 - -359.9831538000 0.0006901952 28.2972588463 0.0014373835 - -359.4974815787 0.0006863709 28.1599562549 0.0013964750 - -359.0119453043 0.0006816276 28.0064987794 0.0013358062 - -358.5265456027 0.0006781021 27.8983048552 0.0012683319 - -358.0412831001 0.0006765594 27.8611004006 0.0012107782 - -357.5561584225 0.0006761155 27.8818210828 0.0011770821 - -357.0711721959 0.0006756091 27.9305362021 0.0011751668 - -356.5863250463 0.0006732238 27.9594042753 0.0011958166 - -356.1016175997 0.0006705434 27.9904788530 0.0012281279 - -355.6170504823 0.0006715856 28.1017212561 0.0012740949 - -355.1326243201 0.0006778665 28.3175852991 0.0013338181 - -354.6483397390 0.0006889840 28.6236342295 0.0014048125 - -354.1641973651 0.0007022863 28.9533444773 0.0014770953 - -353.6801978245 0.0007162369 29.2684791246 0.0015456501 - -353.1963417431 0.0007291353 29.5209243159 0.0016021170 - -352.7126297471 0.0007360320 29.6005317440 0.0016338821 - -352.2290624624 0.0007324245 29.4254255226 0.0016200540 - -351.7456405151 0.0007196999 29.0480364634 0.0015635460 - -351.2623645312 0.0007031530 28.6006237431 0.0014854358 - -350.7792351367 0.0006892150 28.2368472330 0.0014085198 - -350.2962529578 0.0006825674 28.0616955148 0.0013612362 - -349.8134186203 0.0006844326 28.0923869268 0.0013528799 - -349.3307327504 0.0006913223 28.2278667219 0.0013627820 - -348.8481959741 0.0006967988 28.3132378674 0.0013575213 - -348.3658089175 0.0006947433 28.2183551386 0.0013099913 - -347.8835722064 0.0006846107 27.9618027037 0.0012280743 - -347.4014864671 0.0006716261 27.6901125039 0.0011515382 - -346.9195523255 0.0006633802 27.5806887612 0.0011158789 - -346.4377704076 0.0006637660 27.6996503244 0.0011270231 - -345.9561413396 0.0006684719 27.9228966063 0.0011607630 - -345.4746657473 0.0006727944 28.1367397215 0.0012025157 - -344.9933442570 0.0006759342 28.3193349077 0.0012521014 - -344.5121774945 0.0006792806 28.4995971208 0.0013100855 - -344.0311660859 0.0006852194 28.7280904052 0.0013731512 - -343.5503106573 0.0006976134 29.0899984816 0.0014478182 - -343.0696118347 0.0007169634 29.5781936326 0.0015373027 - -342.5890702442 0.0007329578 29.9429504742 0.0016147510 - -342.1086865117 0.0007345104 29.9414187518 0.0016353925 - -341.6284612633 0.0007216852 29.6002305875 0.0015970171 - -341.1483951250 0.0007049734 29.1700741317 0.0015364032 - -340.6684887229 0.0006951516 28.8903800177 0.0014858024 - -340.1887426830 0.0006963132 28.8480454408 0.0014572160 - -339.7091576314 0.0007047288 28.9582516547 0.0014431161 - -339.2297341940 0.0007166496 29.1460821094 0.0014422823 - -338.7504729969 0.0007328583 29.4286572786 0.0014630365 - -338.2713746661 0.0007486407 29.7007484645 0.0014877173 - -337.7924398278 0.0007567131 29.8247197427 0.0014986348 - -337.3136691078 0.0007589385 29.8442691988 0.0015048040 - -336.8350631323 0.0007594281 29.8227503545 0.0015099858 - -336.3566225272 0.0007587912 29.7602537046 0.0015015886 - -335.8783479187 0.0007586765 29.7150897240 0.0014925176 - -335.4002399327 0.0007649121 29.8358114832 0.0015096681 - -334.9222991953 0.0007810726 30.1890687645 0.0015576454 - -334.4445263325 0.0008005008 30.6047256222 0.0016052073 - -333.9669219703 0.0008132887 30.8705133748 0.0016261871 - -333.4894867348 0.0008189159 30.9820793335 0.0016174070 - -333.0122212521 0.0008208297 31.0210724715 0.0015989971 - -332.5351261481 0.0008227740 31.0732160023 0.0015875675 - -332.0582020488 0.0008275078 31.1933762899 0.0015983618 - -331.5814495804 0.0008366835 31.4038773193 0.0016236945 - -331.1048693689 0.0008540954 31.7821773201 0.0016624439 - -330.6284620402 0.0008819551 32.3771157976 0.0017289231 - -330.1522282204 0.0009205751 33.1840144891 0.0018371997 - -329.6761685356 0.0009628044 34.0342147889 0.0019595289 - -329.2002836118 0.0009970360 34.7048057566 0.0020630445 - -328.7245740750 0.0010145789 35.0461792293 0.0021261688 - -328.2490405513 0.0010153459 35.0679992026 0.0021470265 - -327.7736836666 0.0010055199 34.8934917315 0.0021366010 - -327.2985040471 0.0009872019 34.5681982904 0.0021021907 - -326.8235023188 0.0009641432 34.1701632295 0.0020668231 - -326.3486791076 0.0009455441 33.8594452696 0.0020588780 - -325.8740350396 0.0009365349 33.7001785138 0.0020720396 - -325.3995707410 0.0009355061 33.6433652113 0.0020912868 - -324.9252868376 0.0009379090 33.6046048436 0.0020976737 - -324.4511839555 0.0009337117 33.4095197333 0.0020654474 - -323.9772627208 0.0009108834 32.8584633124 0.0019784123 - -323.5035237595 0.0008704084 32.0182000663 0.0018656672 - -323.0299676977 0.0008273763 31.1804343949 0.0017593190 - -322.5565951613 0.0007951471 30.5727383427 0.0016777473 - -322.0834067764 0.0007784912 30.2691666118 0.0016271186 - -321.6104031690 0.0007702137 30.1040849932 0.0015986708 - -321.1375849653 0.0007630897 29.9313601893 0.0015734153 - -320.6649527911 0.0007594289 29.8157431199 0.0015391847 - -320.1925072725 0.0007623382 29.8312415258 0.0015043815 - -319.7202490357 0.0007696628 29.9528391459 0.0014729677 - -319.2481787065 0.0007789680 30.1441092814 0.0014447584 - -318.7762969111 0.0007895545 30.4179193870 0.0014395041 - -318.3046042754 0.0008070719 30.9073159921 0.0014983108 - -317.8331014256 0.0008325043 31.5940967590 0.0016114923 - -317.3617889875 0.0008608390 32.3286976765 0.0017529247 - -316.8906675874 0.0008872277 32.9867431269 0.0018948639 - -316.4197378512 0.0009140186 33.6152352174 0.0020373875 - -315.9490004049 0.0009468137 34.3043603656 0.0021809419 - -315.4784558746 0.0009808948 34.9429978085 0.0023127858 - -315.0081048864 0.0010081309 35.3793832203 0.0024252657 - -314.5379480661 0.0010257443 35.5618216958 0.0024979228 - -314.0679860400 0.0010313934 35.4460039412 0.0024996101 - -313.5982194339 0.0010274835 35.0950092806 0.0024281451 - -313.1286488741 0.0010165652 34.5851212295 0.0022937462 - -312.6592749864 0.0009995591 33.9995698455 0.0021273963 - -312.1900983969 0.0009807046 33.4800947963 0.0019890885 - -311.7211197317 0.0009647844 33.1108057975 0.0019000665 - -311.2523396167 0.0009482880 32.7851526754 0.0018231453 - -310.7837586781 0.0009262444 32.4025732219 0.0017385349 - -310.3153775418 0.0008998808 31.9882887788 0.0016554058 - -309.8471968340 0.0008788614 31.7236992191 0.0015930836 - -309.3792171805 0.0008715643 31.7592239651 0.0015670003 - -308.9114392075 0.0008766705 32.0592693271 0.0015752265 - -308.4438635410 0.0008901689 32.5477180394 0.0016186160 - -307.9764908070 0.0009147597 33.2804913307 0.0017253217 - -307.5093216316 0.0009480102 34.1655998419 0.0019017432 - -307.0423566408 0.0009771224 34.9018168255 0.0020905724 - -306.5755964606 0.0009907796 35.2486656014 0.0022245716 - -306.1090417171 0.0009907395 35.2526367833 0.0022916476 - -305.6426930362 0.0009802189 34.9855927041 0.0022994907 - -305.1765510441 0.0009633007 34.5702288148 0.0022664881 - -304.7106163668 0.0009541426 34.3344564424 0.0022629782 - -304.2448896303 0.0009604969 34.4146880099 0.0023070445 - -303.7793714605 0.0009784880 34.6968090494 0.0023737504 - -303.3140624837 0.0010001442 34.9941639647 0.0024369999 - -302.8489633258 0.0010153667 35.0973349171 0.0024535990 - -302.3840746128 0.0010185470 34.9262766995 0.0024084101 - -301.9193969708 0.0010094559 34.5300993860 0.0023193280 - -301.4549310257 0.0009955180 34.0960527794 0.0022243251 - -300.9906774037 0.0009911763 33.9095927503 0.0021689336 - -300.5266367308 0.0010053922 34.0991321312 0.0021721615 - -300.0628096330 0.0010321530 34.5105471081 0.0022140826 - -299.5991967364 0.0010573184 34.8688040383 0.0022583044 - -299.1357986669 0.0010737647 35.0805010987 0.0022844746 - -298.6726160506 0.0010849018 35.2535779866 0.0023023060 - -298.2096495136 0.0010920635 35.4110071635 0.0023174090 - -297.7468996818 0.0010920971 35.4685768634 0.0023219090 - -297.2843671814 0.0010819863 35.3288177748 0.0022881031 - -296.8220526383 0.0010648068 35.0373231716 0.0022064584 - -296.3599566785 0.0010480358 34.7506485020 0.0021098525 - -295.8980799282 0.0010373361 34.6079412641 0.0020361275 - -295.4364230134 0.0010369824 34.7007513389 0.0020096969 - -294.9749865600 0.0010418563 34.9278794099 0.0020213174 - -294.5137711942 0.0010520968 35.3056231203 0.0020715707 - -294.0527775419 0.0010781246 36.0226257000 0.0021901908 - -293.5920062291 0.0011259483 37.1630664738 0.0023995123 - -293.1314578821 0.0011900720 38.5678604316 0.0026766253 - -292.6711331266 0.0012550138 39.9018246423 0.0029475219 - -292.2110325889 0.0013129336 41.0126039271 0.0031854452 - -291.7511568948 0.0013597433 41.8055138095 0.0033662549 - -291.2915066705 0.0013893907 42.1890702794 0.0034748216 - -290.8320825421 0.0013969302 42.1115094470 0.0035068245 - -290.3728851354 0.0013810506 41.5701547392 0.0034507891 - -289.9139150766 0.0013437006 40.6055064548 0.0032945295 - -289.4551729917 0.0012886640 39.3246466781 0.0030462312 - -288.9966595067 0.0012222464 37.8824481766 0.0027454117 - -288.5383752477 0.0011555249 36.5127454328 0.0024453468 - -288.0803208407 0.0010991615 35.4398732161 0.0022120398 - -287.6224969117 0.0010562357 34.7296482935 0.0020726943 - -287.1649040867 0.0010292457 34.4113572928 0.0020283378 - -286.7075429919 0.0010215637 34.5069336333 0.0020731992 - -286.2504142532 0.0010320698 34.9390824350 0.0021895563 - -285.7935184967 0.0010530478 35.5106170268 0.0023414943 - -285.3368563483 0.0010748585 36.0080906356 0.0024800589 - -284.8804284342 0.0010887563 36.2539508627 0.0025627129 - -284.4242353804 0.0010939739 36.2725862548 0.0025799116 - -283.9682778129 0.0011001624 36.2885961477 0.0025731467 - -283.5125563577 0.0011132088 36.4120983774 0.0025725936 - -283.0570716409 0.0011310746 36.6050120317 0.0025797499 - -282.6018242885 0.0011509501 36.8366589635 0.0025894751 - -282.1468149265 0.0011679621 37.0367810431 0.0025936179 - -281.6920441810 0.0011686697 36.9696082022 0.0025554649 - -281.2375126780 0.0011495631 36.5798778044 0.0024542635 - -280.7832210436 0.0011239468 36.1237507763 0.0023440858 - -280.3291699037 0.0011006941 35.7489448377 0.0022397474 - -279.8753598845 0.0010890989 35.6295575931 0.0021705292 - -279.4217916118 0.0010942245 35.8578043011 0.0021817070 - -278.9684657119 0.0011111246 36.3166340745 0.0022498560 - -278.5153828107 0.0011415282 37.0081663651 0.0023669632 - -278.0625435342 0.0011821832 37.8265170849 0.0025155398 - -277.6099485085 0.0012178108 38.4799596703 0.0026442682 - -277.1575983596 0.0012409196 38.8716327333 0.0027275690 - -276.7054937136 0.0012563897 39.1251242366 0.0028020796 - -276.2536351965 0.0012649660 39.2437909546 0.0028863380 - -275.8020234343 0.0012604278 39.0785231653 0.0029401304 - -275.3506590530 0.0012384281 38.5375636645 0.0029074099 - -274.8995426787 0.0012072654 37.8013799200 0.0027983017 - -274.4486749374 0.0011766379 37.0728615757 0.0026563854 - -273.9980564552 0.0011524124 36.4871863227 0.0025109749 - -273.5476878581 0.0011372981 36.1151006350 0.0023836078 - -273.0975697721 0.0011304843 35.9464213714 0.0022988391 - -272.6477028233 0.0011253146 35.8434004695 0.0022372930 - -272.1980876377 0.0011114666 35.6145744205 0.0021551177 - -271.7487248412 0.0010885294 35.2779390061 0.0020544564 - -271.2996150601 0.0010671460 35.0445667514 0.0019774561 - -270.8507589202 0.0010590635 35.1272210096 0.0019594430 - -270.4021570477 0.0010698369 35.6145826315 0.0020213199 - -269.9538100685 0.0010973495 36.4434395181 0.0021553301 - -269.5057186087 0.0011380039 37.5156130159 0.0023407862 - -269.0578832944 0.0011853475 38.6852820854 0.0025453021 - -268.6103047515 0.0012338620 39.8297388864 0.0027502800 - -268.1629836061 0.0012795055 40.8816173868 0.0029569947 - -267.7159204843 0.0013226753 41.8619060167 0.0031970427 - -267.2691160120 0.0013595041 42.6461279086 0.0034523593 - -266.8225708153 0.0013764039 42.9139164210 0.0036347241 - -266.3762855203 0.0013627329 42.4561687765 0.0036661081 - -265.9302607529 0.0013214648 41.3752328864 0.0035499989 - -265.4844971393 0.0012642423 39.9369866290 0.0033346764 - -265.0389953053 0.0012034894 38.4237600855 0.0030667791 - -264.5937558772 0.0011493594 37.0681789894 0.0027806014 - -264.1487794808 0.0011136435 36.1399318651 0.0025442634 - -263.7040667423 0.0010995991 35.7017074572 0.0023793539 - -263.2596182877 0.0011009873 35.6340034477 0.0022763275 - -262.8154347430 0.0011095865 35.7734896809 0.0022232230 - -262.3715167342 0.0011207198 35.9990015762 0.0021900598 - -261.9278648874 0.0011307881 36.2229773882 0.0021634008 - -261.4844798286 0.0011430632 36.5005615933 0.0021465531 - -261.0413621839 0.0011667557 36.9983275500 0.0021682688 - -260.5985125792 0.0012000130 37.6778530673 0.0022250439 - -260.1559316407 0.0012377963 38.4656222354 0.0023122004 - -259.7136199943 0.0012794977 39.3719494845 0.0024494250 - -259.2715782661 0.0013235178 40.3468412755 0.0026542824 - -258.8298070821 0.0013637809 41.2464474610 0.0029145780 - -258.3883070683 0.0013960079 41.9458213068 0.0031882985 - -257.9470788509 0.0014222788 42.4201066330 0.0034078621 - -257.5061230557 0.0014410546 42.6429547108 0.0035392234 - -257.0654403089 0.0014508959 42.6454765074 0.0035938983 - -256.6250312366 0.0014563057 42.5350712452 0.0035989965 - -256.1848964646 0.0014591799 42.3578191002 0.0035739485 - -255.7450366191 0.0014573157 42.0814753695 0.0035289884 - -255.3054523260 0.0014476694 41.6766805514 0.0034481813 - -254.8661442115 0.0014348222 41.2507985544 0.0033513825 - -254.4271129016 0.0014214445 40.8662005828 0.0032431255 - -253.9883590222 0.0014094310 40.5683377490 0.0031356625 - -253.5498831995 0.0013983388 40.3555470273 0.0030368212 - -253.1116860594 0.0013892271 40.2467133990 0.0029581828 - -252.6737682281 0.0013845155 40.2653077350 0.0029147568 - -252.2361303314 0.0013861595 40.4130599353 0.0029132709 - -251.7987729956 0.0013909260 40.5879671508 0.0029337945 - -251.3616968465 0.0013951962 40.7068282889 0.0029521643 - -250.9249025103 0.0013973270 40.7496612391 0.0029628153 - -250.4883906129 0.0013932279 40.6793923775 0.0029566891 - -250.0521617804 0.0013815597 40.5105731123 0.0029311546 - -249.6162166389 0.0013649972 40.2850714058 0.0028881524 - -249.1805558143 0.0013467423 40.0474970114 0.0028296850 - -248.7451799327 0.0013344274 39.9416331877 0.0027834947 - -248.3100896202 0.0013334526 40.0477821968 0.0027655115 - -247.8752855027 0.0013414774 40.3293709017 0.0027770325 - -247.4407682064 0.0013563905 40.7552357574 0.0028282703 - -247.0065383572 0.0013774070 41.2971302421 0.0029187597 - -246.5725965811 0.0014023722 41.8997952113 0.0030488688 - -246.1389435043 0.0014252934 42.4251124827 0.0032053076 - -245.7055797527 0.0014362259 42.6637624479 0.0033319244 - -245.2725059524 0.0014284234 42.4866023666 0.0033512554 - -244.8397227294 0.0014081142 42.0459462892 0.0032762799 - -244.4072307098 0.0013844683 41.5577427015 0.0031721023 - -243.9750305195 0.0013614579 41.1268041901 0.0030770275 - -243.5431227846 0.0013463959 40.9006105055 0.0030202939 - -243.1115081312 0.0013383450 40.8376342344 0.0029922644 - -242.6801871853 0.0013322845 40.8660228360 0.0029845361 - -242.2491605728 0.0013339449 41.1080832781 0.0030388093 - -241.8184289200 0.0013458501 41.5745761826 0.0031523884 - -241.3879928527 0.0013652903 42.1878720015 0.0033004584 - -240.9578529970 0.0013894587 42.8660224061 0.0034646625 - -240.5280099790 0.0014161051 43.5460444487 0.0036375182 - -240.0984644247 0.0014483760 44.2714917238 0.0038429377 - -239.6692169601 0.0014867441 44.9923275586 0.0040762744 - -239.2402682112 0.0015185541 45.4185975799 0.0042622905 - -238.8116188042 0.0015245873 45.1968159177 0.0042793047 - -238.3832693649 0.0014989388 44.3042329032 0.0041013600 - -237.9552205196 0.0014478314 42.9552564344 0.0038003833 - -237.5274728941 0.0013836218 41.4335632819 0.0034392224 - -237.1000271145 0.0013199802 40.0132859151 0.0030740018 - -236.6728838069 0.0012672061 38.8935224707 0.0027609915 - -236.2460435973 0.0012338376 38.2625838954 0.0025560805 - -235.8195071117 0.0012303278 38.3081468016 0.0025137811 - -235.3932749762 0.0012544254 38.9258663936 0.0026107553 - -234.9673478168 0.0012922696 39.8031141895 0.0027822075 - -234.5417262595 0.0013298514 40.6795754866 0.0029835489 - -234.1164109304 0.0013635601 41.4728494545 0.0031977473 - -233.6914024555 0.0013897953 42.0735147705 0.0033812244 - -233.2667014608 0.0014042176 42.3835580181 0.0034916436 - -232.8423085724 0.0014040756 42.3621982921 0.0035122639 - -232.4182244162 0.0013909910 42.0776243483 0.0034676145 - -231.9944496185 0.0013669469 41.5889400048 0.0033821787 - -231.5709848050 0.0013351485 40.9710731318 0.0032563749 - -231.1478306020 0.0013072155 40.4573413849 0.0031347483 - -230.7249876355 0.0012927203 40.2205689338 0.0030703309 - -230.3024565314 0.0012890634 40.1839260061 0.0030579157 - -229.8802379158 0.0012884871 40.1797340830 0.0030543183 - -229.4583324147 0.0012866074 40.1251978258 0.0030373043 - -229.0367406543 0.0012841532 40.0582820670 0.0030178735 - -228.6154632604 0.0012876643 40.1159870325 0.0030275797 - -228.1945008592 0.0012994360 40.3269963972 0.0030778945 - -227.7738540766 0.0013191836 40.6631009618 0.0031486248 - -227.3535235388 0.0013459793 41.0808014406 0.0032267595 - -226.9335098717 0.0013778384 41.5365906765 0.0032892143 - -226.5138137014 0.0014137277 42.0120405765 0.0033382614 - -226.0944356539 0.0014444273 42.3609063013 0.0033617050 - -225.6753763553 0.0014645740 42.5232100405 0.0033595613 - -225.2566364315 0.0014761068 42.5666471684 0.0033418160 - -224.8382165087 0.0014854229 42.6087564449 0.0033253691 - -224.4201172128 0.0014910464 42.6059299652 0.0032984862 - -224.0023391699 0.0014864638 42.4468714278 0.0032391483 - -223.5848830060 0.0014712855 42.1493268268 0.0031619479 - -223.1677493472 0.0014506287 41.8135819459 0.0030952508 - -222.7509388195 0.0014338757 41.5827386393 0.0030623241 - -222.3344520488 0.0014292841 41.5667583023 0.0030799787 - -221.9182896614 0.0014354848 41.6802873249 0.0031137124 - -221.5024522831 0.0014427895 41.7303202368 0.0030904001 - -221.0869405401 0.0014488441 41.7440223649 0.0030249786 - -220.6717550583 0.0014557801 41.8244073631 0.0029613160 - -220.2568964638 0.0014643618 42.0304297110 0.0029312281 - -219.8423653826 0.0014780688 42.4199046838 0.0029486693 - -219.4281624408 0.0014991795 43.0060451431 0.0030133575 - -219.0142882644 0.0015292397 43.8054145230 0.0031363960 - -218.6007434794 0.0015709347 44.8412274557 0.0033308926 - -218.1875287119 0.0016173797 45.9417236300 0.0035656434 - -217.7746445879 0.0016527188 46.8026197206 0.0037739062 - -217.3620917334 0.0016659806 47.2253611394 0.0039136719 - -216.9498707745 0.0016528788 47.1356132587 0.0039651103 - -216.5379823372 0.0016214158 46.6875707801 0.0039444741 - -216.1264270475 0.0015848611 46.1185441165 0.0038956813 - -215.7152055315 0.0015505416 45.5431851717 0.0038406844 - -215.3043184151 0.0015194400 44.9709081939 0.0037641433 - -214.8937663246 0.0014904974 44.3944340705 0.0036660036 - -214.4835498858 0.0014588368 43.7347409966 0.0035237248 - -214.0736697248 0.0014265409 43.0719400500 0.0033540477 - -213.6641264676 0.0014068700 42.6809890204 0.0032363232 - -213.2549207403 0.0014031095 42.5970323739 0.0031972373 - -212.8460531690 0.0014091094 42.6655340046 0.0032147320 - -212.4375243795 0.0014143825 42.6640066106 0.0032446617 - -212.0293349981 0.0014099141 42.4197797468 0.0032312380 - -211.6214856506 0.0013924910 41.8995649784 0.0031520327 - -211.2139769632 0.0013643431 41.1903479665 0.0030272993 - -210.8068095619 0.0013305591 40.4022699826 0.0028773188 - -210.3999840727 0.0012928858 39.5872098208 0.0026988523 - -209.9935011216 0.0012560764 38.8575781922 0.0025136011 - -209.5873613348 0.0012281504 38.3822712826 0.0023643522 - -209.1815653381 0.0012134742 38.2419739830 0.0022757412 - -208.7761137577 0.0012155808 38.4974282163 0.0022665377 - -208.3710072196 0.0012376456 39.1883708577 0.0023710359 - -207.9662463497 0.0012789560 40.2566709255 0.0025793406 - -207.5618317743 0.0013351201 41.5672091749 0.0028655835 - -207.1577641192 0.0013945253 42.8585771517 0.0031632703 - -206.7540440106 0.0014438325 43.8758426661 0.0034136238 - -206.3506720744 0.0014723753 44.4432875100 0.0035748833 - -205.9476489367 0.0014758029 44.5107202371 0.0036395900 - -205.5449752235 0.0014536747 44.0942470786 0.0036031883 - -205.1426515609 0.0014211763 43.5039336221 0.0035242984 - -204.7406785748 0.0013996159 43.1134684631 0.0034896344 - -204.3390568914 0.0013901407 42.8882205024 0.0035011423 - -203.9377871367 0.0013805464 42.5706780927 0.0034688007 - -203.5368699366 0.0013629077 42.0402702513 0.0033413463 - -203.1363059173 0.0013398760 41.4339167503 0.0031601393 - -202.7360957048 0.0013268041 41.1048511170 0.0030368553 - -202.3362399250 0.0013332798 41.2159692077 0.0030255472 - -201.9367392041 0.0013601993 41.7431122470 0.0031257957 - -201.5375941680 0.0013993109 42.4460698122 0.0032859287 - -201.1388054428 0.0014324977 42.9571945365 0.0034262061 - -200.7403736546 0.0014482528 43.0845409894 0.0035043286 - -200.3422994293 0.0014429324 42.7764654688 0.0034842273 - -199.9445833931 0.0014200058 42.1257309707 0.0033649161 - -199.5472261718 0.0013897579 41.3634312833 0.0031898774 - -199.1502283917 0.0013624455 40.6970798603 0.0030025326 - -198.7535906786 0.0013425537 40.2386533563 0.0028523805 - -198.3573136587 0.0013385730 40.1470825312 0.0027917393 - -197.9613979580 0.0013509557 40.3782828120 0.0028268379 - -197.5658442024 0.0013706420 40.7048345279 0.0029072911 - -197.1706530181 0.0013863746 40.8903842674 0.0029760005 - -196.7758250311 0.0013855229 40.7152097161 0.0029738468 - -196.3813608674 0.0013593655 40.0686872961 0.0028550548 - -195.9872611530 0.0013161891 39.1616907382 0.0026625814 - -195.5935265141 0.0012722611 38.3184180761 0.0024733151 - -195.2001575765 0.0012419197 37.7903154512 0.0023488810 - -194.8071549664 0.0012308090 37.6523537419 0.0023036819 - -194.4145193097 0.0012352784 37.8087061462 0.0023131174 - -194.0222512326 0.0012474746 38.0951554147 0.0023313691 - -193.6303513610 0.0012622843 38.4274304870 0.0023446183 - -193.2388203210 0.0012775126 38.7781764016 0.0023503428 - -192.8476587386 0.0012942817 39.1906543134 0.0023655347 - -192.4568672399 0.0013162708 39.7462535641 0.0024192705 - -192.0664464508 0.0013470173 40.4917970282 0.0025262163 - -191.6763969975 0.0013867861 41.3804663645 0.0026818785 - -191.2867195059 0.0014254732 42.1952616541 0.0028400739 - -190.8974146021 0.0014535119 42.7630807348 0.0029634712 - -190.5084829122 0.0014635790 42.9813714249 0.0030254635 - -190.1199250621 0.0014566601 42.9030889368 0.0030317513 - -189.7317416778 0.0014385279 42.6431986695 0.0030054833 - -189.3439333856 0.0014163574 42.3384520393 0.0029823568 - -188.9565008112 0.0013981968 42.1305605746 0.0029908157 - -188.5694445809 0.0013886623 42.0842646810 0.0030377550 - -188.1827653206 0.0013872668 42.1700780949 0.0031050889 - -187.7964636563 0.0013912085 42.3308818671 0.0031787125 - -187.4105402142 0.0013967376 42.4980572943 0.0032412936 - -187.0249956201 0.0014036572 42.6834809735 0.0033001313 - -186.6398305003 0.0014150557 42.9491146583 0.0033702635 - -186.2550454806 0.0014334444 43.3369039048 0.0034613666 - -185.8706411872 0.0014594311 43.8409208980 0.0035777384 - -185.4866182460 0.0014898427 44.3903965698 0.0037212591 - -185.1029772831 0.0015140720 44.7524518940 0.0038432914 - -184.7197189246 0.0015186956 44.6743100589 0.0038587907 - -184.3368437965 0.0015004940 44.1459900165 0.0037546005 - -183.9543525247 0.0014654237 43.3324209778 0.0035817846 - -183.5722457354 0.0014247605 42.4774227440 0.0034130352 - -183.1905240545 0.0013922661 41.8220939510 0.0033155002 - -182.8091881082 0.0013646656 41.2525905514 0.0032375659 - -182.4282385224 0.0013347450 40.6260648445 0.0031143822 - -182.0476759232 0.0013032711 39.9813166766 0.0029506978 - -181.6675009365 0.0012746823 39.4382491104 0.0027891146 - -181.2877141886 0.0012545858 39.1290851260 0.0026734706 - -180.9083163053 0.0012539129 39.2642183812 0.0026632602 - -180.5293079127 0.0012750116 39.8372086528 0.0027695193 - -180.1506896368 0.0013117098 40.6680953632 0.0029665420 - -179.7724621038 0.0013498054 41.4156736125 0.0031736007 - -179.3946259395 0.0013719748 41.7332023834 0.0032891814 - -179.0171817701 0.0013687035 41.4755405172 0.0032624385 - -178.6401302216 0.0013436748 40.7853841323 0.0031163785 - -178.2634719200 0.0013085489 39.9377745468 0.0029128283 - -177.8872074913 0.0012739920 39.1669012445 0.0027052421 - -177.5113375616 0.0012493127 38.6545594581 0.0025488117 - -177.1358627570 0.0012355002 38.4206237097 0.0024562135 - -176.7607837034 0.0012350764 38.5007975294 0.0024409563 - -176.3861010269 0.0012454048 38.8138267324 0.0024853888 - -176.0118153535 0.0012614763 39.2471298363 0.0025634650 - -175.6379273092 0.0012820224 39.7734355484 0.0026683590 - -175.2644375202 0.0013134318 40.5041012458 0.0028208018 - -174.8913466123 0.0013564827 41.4192688300 0.0030273232 - -174.5186552118 0.0014017879 42.3091845968 0.0032374299 - -174.1463639445 0.0014384034 42.9698454086 0.0034004371 - -173.7744734365 0.0014607937 43.3114875149 0.0034845178 - -173.4029843139 0.0014698991 43.3773417871 0.0034914080 - -173.0318972027 0.0014731727 43.3291678604 0.0034561698 - -172.6612127290 0.0014797606 43.3483357792 0.0034108677 - -172.2909315187 0.0014966684 43.5786966739 0.0033862817 - -171.9210541979 0.0015288271 44.1281168258 0.0034253707 - -171.5515813926 0.0015779862 45.0074611075 0.0035387975 - -171.1825137289 0.0016395756 46.1006158429 0.0037029862 - -170.8138518328 0.0017073210 47.2694806633 0.0038907197 - -170.4455963303 0.0017735303 48.3632158090 0.0040695432 - -170.0777478475 0.0018296070 49.2515022453 0.0042115999 - -169.7103070104 0.0018689996 49.8750578393 0.0043283084 - -169.3432744450 0.0018899326 50.2134642333 0.0044347715 - -168.9766507774 0.0018893845 50.1868291425 0.0045013500 - -168.6104366336 0.0018681277 49.7708364816 0.0044922250 - -168.2446326396 0.0018343649 49.1001513069 0.0044061196 - -167.8792394215 0.0018013135 48.4204058072 0.0042940773 - -167.5142576053 0.0017757400 47.8651777281 0.0041988735 - -167.1496878171 0.0017537913 47.3717437238 0.0041219377 - -166.7855306828 0.0017259129 46.7763595181 0.0040223886 - -166.4217868286 0.0016864127 45.9951455217 0.0038754487 - -166.0584568804 0.0016425897 45.1838286620 0.0037151837 - -165.6955414642 0.0016071621 44.5545217259 0.0035888682 - -165.3330412062 0.0015787064 44.0494698743 0.0034780621 - -164.9709567323 0.0015543865 43.6260889541 0.0033693327 - -164.6092886686 0.0015383019 43.3752284642 0.0032920457 - -164.2480376412 0.0015354454 43.3723251389 0.0032756341 - -163.8872042759 0.0015409163 43.4931812354 0.0032836955 - -163.5267891990 0.0015454984 43.5760719030 0.0032691959 - -163.1667930363 0.0015470246 43.6010767687 0.0032338599 - -162.8072164141 0.0015461641 43.5872531326 0.0031959876 - -162.4480599582 0.0015440477 43.5625352747 0.0031746135 - -162.0893242947 0.0015417406 43.5432204199 0.0031824159 - -161.7310100497 0.0015353889 43.4494854048 0.0032008838 - -161.3731178491 0.0015197022 43.1967575601 0.0032007378 - -161.0156483191 0.0014979203 42.8665186152 0.0031809865 - -160.6586020857 0.0014795941 42.6266323924 0.0031679429 - -160.3019797748 0.0014732417 42.6250310001 0.0031936301 - -159.9457820126 0.0014793105 42.8409615126 0.0032615690 - -159.5900094250 0.0014868951 43.0617057039 0.0033233699 - -159.2346626381 0.0014928461 43.2499412388 0.0033801999 - -158.8797422779 0.0015009515 43.4870725725 0.0034681490 - -158.5252489705 0.0015143460 43.8230132921 0.0036159415 - -158.1711833419 0.0015269898 44.1096669388 0.0037818494 - -157.8175460182 0.0015265166 44.1009837241 0.0038844785 - -157.4643376253 0.0015082843 43.7269461937 0.0038776905 - -157.1115587892 0.0014766745 43.0907719326 0.0037746804 - -156.7592101362 0.0014410478 42.3940500146 0.0036314449 - -156.4072922921 0.0014120223 41.8351965524 0.0035114826 - -156.0558058829 0.0013899531 41.3864438770 0.0034100644 - -155.7047515349 0.0013674575 40.9041923350 0.0032864427 - -155.3541298739 0.0013452658 40.4126048869 0.0031460895 - -155.0039415259 0.0013290043 40.0230129013 0.0030158710 - -154.6541871172 0.0013184438 39.7487999968 0.0029096940 - -154.3048672736 0.0013095569 39.5437884132 0.0028281749 - -153.9559826212 0.0013031789 39.4159681412 0.0027694753 - -153.6075337860 0.0013017504 39.3892583324 0.0027359905 - -153.2595213942 0.0013088464 39.5125231466 0.0027366466 - -152.9119460716 0.0013245634 39.7710642139 0.0027641604 - -152.5648084444 0.0013466161 40.1186840125 0.0028075858 - -152.2181091385 0.0013674480 40.4125861219 0.0028520786 - -151.8718487801 0.0013736203 40.4206107712 0.0028508925 - -151.5260279951 0.0013629670 40.1472887156 0.0027861993 - -151.1806474096 0.0013457890 39.8038557682 0.0027013559 - -150.8357076496 0.0013334659 39.6033760173 0.0026442651 - -150.4912093411 0.0013322051 39.6629307840 0.0026563771 - -150.1471531102 0.0013468670 40.0450105138 0.0027579116 - -149.8035395830 0.0013746805 40.6276184575 0.0029190406 - -149.4603693854 0.0014021130 41.1114294327 0.0030543500 - -149.1176431435 0.0014178432 41.2979089010 0.0031017649 - -148.7753614833 0.0014167137 41.1336311464 0.0030395834 - -148.4335250308 0.0014020377 40.7384619726 0.0028964941 - -148.0921344121 0.0013830717 40.3284376292 0.0027352477 - -147.7511902533 0.0013696973 40.1001544204 0.0026148722 - -147.4106931803 0.0013673672 40.1406730533 0.0025635921 - -147.0706438192 0.0013798117 40.4945048702 0.0025969647 - -146.7310427960 0.0014061603 41.0982867413 0.0026947046 - -146.3918907368 0.0014397260 41.7981591183 0.0028179522 - -146.0531882676 0.0014697904 42.3949089632 0.0029230817 - -145.7149360144 0.0014933743 42.8618144123 0.0029950735 - -145.3771346032 0.0015175141 43.3334221949 0.0030587240 - -145.0397846602 0.0015475234 43.9164150398 0.0031293612 - -144.7028868113 0.0015891779 44.7287387284 0.0032384139 - -144.3664416825 0.0016423426 45.7690497443 0.0034153686 - -144.0304499000 0.0016983958 46.8756072009 0.0036490823 - -143.6949120896 0.0017423376 47.7606257741 0.0038814601 - -143.3598288776 0.0017648990 48.2478492113 0.0040583784 - -143.0252008898 0.0017662686 48.3109057076 0.0041583995 - -142.6910287524 0.0017458453 47.9320945480 0.0041648628 - -142.3573130913 0.0017067904 47.1703841163 0.0040804332 - -142.0240545327 0.0016470398 45.9952133789 0.0038780000 - -141.6912537024 0.0015703021 44.5158030503 0.0035745006 - -141.3589112267 0.0014925440 43.0462344212 0.0032490886 - -141.0270277314 0.0014298505 41.8841912911 0.0029794585 - -140.6956038427 0.0013878985 41.1206423162 0.0027820948 - -140.3646401866 0.0013696112 40.8129909057 0.0026630229 - -140.0341373891 0.0013761778 40.9777514525 0.0026463012 - -139.7040960762 0.0014001063 41.4585204628 0.0027185973 - -139.3745168740 0.0014327553 42.0713764668 0.0028394209 - -139.0454004085 0.0014656391 42.6388397368 0.0029550457 - -138.7167473057 0.0014912061 43.0307146106 0.0030175273 - -138.3885581917 0.0015066720 43.2428122008 0.0030277279 - -138.0608336925 0.0015180976 43.4364089665 0.0030354021 - -137.7335744342 0.0015358312 43.8085498496 0.0030948200 - -137.4067810428 0.0015614696 44.3592732263 0.0032180541 - -137.0804541442 0.0015871592 44.9059450868 0.0033730530 - -136.7545943647 0.0016059768 45.3030546562 0.0035185684 - -136.4292023301 0.0016154251 45.4846575180 0.0036359218 - -136.1042786665 0.0016114586 45.3686022207 0.0036919897 - -135.7798240000 0.0015930811 44.9327419825 0.0036678132 - -135.4558389565 0.0015575245 44.1397833770 0.0035334984 - -135.1323241622 0.0015098914 43.1354668764 0.0033087642 - -134.8092802430 0.0014612904 42.1577731867 0.0030561405 - -134.4867078250 0.0014222245 41.4238953217 0.0028328553 - -134.1646075343 0.0014025439 41.1130514656 0.0026888422 - -133.8429799968 0.0014019954 41.2121329117 0.0026357889 - -133.5218258386 0.0014182996 41.6695060514 0.0026759629 - -133.2011456857 0.0014468112 42.3710123269 0.0027984961 - -132.8809401641 0.0014806460 43.1704539689 0.0029722619 - -132.5612099000 0.0015146285 43.9490203011 0.0031626809 - -132.2419555193 0.0015419517 44.5588491752 0.0033244009 - -131.9231776480 0.0015572689 44.9151414702 0.0034299759 - -131.6048769123 0.0015602754 45.0308774181 0.0034875514 - -131.2870539381 0.0015521522 44.9418608216 0.0035115169 - -130.9697093514 0.0015405130 44.7786615597 0.0035156301 - -130.6528437783 0.0015362276 44.7249410494 0.0035228180 - -130.3364578449 0.0015412056 44.7992347874 0.0035398448 - -130.0205521772 0.0015476367 44.8716969527 0.0035403789 - -129.7051274011 0.0015523103 44.9198029861 0.0035319798 - -129.3901841428 0.0015548406 44.9589483377 0.0035413701 - -129.0757230282 0.0015547963 44.9725575909 0.0035676415 - -128.7617446834 0.0015502878 44.8942942786 0.0035799342 - -128.4482497345 0.0015375064 44.6490557913 0.0035406791 - -128.1352388075 0.0015236214 44.3937218384 0.0034789636 - -127.8227125283 0.0015188356 44.3172605895 0.0034493592 - -127.5106715231 0.0015240923 44.4244069338 0.0034571409 - -127.1991164179 0.0015356044 44.6260265265 0.0034813423 - -126.8880478387 0.0015550250 44.9483395584 0.0035385046 - -126.5774664115 0.0015821479 45.3575171823 0.0036400735 - -126.2673727624 0.0016034236 45.5879274488 0.0037187263 - -125.9577675174 0.0016108717 45.5127128953 0.0037271253 - -125.6486513026 0.0016002700 45.0751219619 0.0036354523 - -125.3400247439 0.0015712112 44.3311516212 0.0034443195 - -125.0318884675 0.0015329926 43.4963897838 0.0032018425 - -124.7242430993 0.0014976116 42.8102478000 0.0029707821 - -124.4170892653 0.0014746021 42.4364417044 0.0028151591 - -124.1104275917 0.0014663023 42.3954247663 0.0027608745 - -123.8042587045 0.0014759576 42.7072969419 0.0028151725 - -123.4985832296 0.0014982188 43.2241847538 0.0029460835 - -123.1934017932 0.0015156044 43.6026403040 0.0030730280 - -122.8887150212 0.0015194208 43.7018765432 0.0031447495 - -122.5845235396 0.0015118403 43.5757892873 0.0031483693 - -122.2808279747 0.0014974425 43.3421501407 0.0030977514 - -121.9776289522 0.0014880511 43.2506803725 0.0030554086 - -121.6749270984 0.0014931157 43.4610775653 0.0030752606 - -121.3727230391 0.0015105983 43.9151142468 0.0031584897 - -121.0710174006 0.0015352249 44.4889786511 0.0032792212 - -120.7698108087 0.0015616430 45.0600509466 0.0034112542 - -120.4691038895 0.0015856112 45.5370853859 0.0035288437 - -120.1688972691 0.0016011980 45.8243897711 0.0035955972 - -119.8691915736 0.0016098424 45.9942104016 0.0036229946 - -119.5699874288 0.0016190143 46.2010739773 0.0036497513 - -119.2712854609 0.0016327073 46.5152233035 0.0037073877 - -118.9730862959 0.0016538322 46.9697843291 0.0038207112 - -118.6753905598 0.0016828108 47.5236922473 0.0039817123 - -118.3781988787 0.0017091358 47.9526625627 0.0041407715 - -118.0815118786 0.0017201475 48.0199424079 0.0042142635 - -117.7853301855 0.0017112648 47.6658393670 0.0041692498 - -117.4896544255 0.0016879262 47.0420452827 0.0040385479 - -117.1944852246 0.0016627209 46.4141907656 0.0038902879 - -116.8998232088 0.0016407202 45.8866117415 0.0037622037 - -116.6056690042 0.0016190747 45.4085139054 0.0036425614 - -116.3120232368 0.0015975748 44.9851267551 0.0035256846 - -116.0188865326 0.0015804447 44.6863207309 0.0034311113 - -115.7262595177 0.0015701002 44.5355099859 0.0033644603 - -115.4341428182 0.0015656305 44.4963272387 0.0033231808 - -115.1425370599 0.0015622816 44.4763166476 0.0032869874 - -114.8514428691 0.0015568277 44.4314175838 0.0032403515 - -114.5608608716 0.0015528230 44.4422857692 0.0032053409 - -114.2707916936 0.0015542465 44.5738841928 0.0032143325 - -113.9812359611 0.0015530554 44.6516372612 0.0032420152 - -113.6921943000 0.0015397767 44.4859414877 0.0032333288 - -113.4036673366 0.0015131541 44.0595195637 0.0031665131 - -113.1156556967 0.0014836205 43.5854969685 0.0030782077 - -112.8281600064 0.0014659060 43.3501121967 0.0030271150 - -112.5411808918 0.0014655617 43.4517110815 0.0030487849 - -112.2547189788 0.0014757796 43.7531982055 0.0031264284 - -111.9687748936 0.0014877087 44.0791909765 0.0032122616 - -111.6833492621 0.0014979468 44.3631875603 0.0032767914 - -111.3984427104 0.0015092363 44.6595703620 0.0033326790 - -111.1140558645 0.0015259063 45.0540619626 0.0034107659 - -110.8301893505 0.0015522085 45.6105716649 0.0035362654 - -110.5468437944 0.0015816947 46.1729589981 0.0036804458 - -110.2640198222 0.0016024962 46.5182520259 0.0037805828 - -109.9817180599 0.0016092954 46.5672569522 0.0038090759 - -109.6999391336 0.0016013864 46.3437457910 0.0037617649 - -109.4186836694 0.0015877010 46.0635093202 0.0036952288 - -109.1379522932 0.0015830332 46.0068827372 0.0036859657 - -108.8577456311 0.0015964020 46.3056685193 0.0037767943 - -108.5780643092 0.0016296708 46.9365836525 0.0039699289 - -108.2989089534 0.0016684354 47.5610662013 0.0041852768 - -108.0202801898 0.0016885216 47.7297548944 0.0042965322 - -107.7421786444 0.0016792370 47.3031810347 0.0042569787 - -107.4646049433 0.0016422939 46.3795919787 0.0040872755 - -107.1875597125 0.0015875159 45.1864834536 0.0038433800 - -106.9110435780 0.0015282704 43.9788181742 0.0035762967 - -106.6350571659 0.0014751663 42.9455964957 0.0033367057 - -106.3596011022 0.0014337542 42.1822767349 0.0031566813 - -106.0846760129 0.0014100034 41.7859550249 0.0030654747 - -105.8102825241 0.0014065052 41.7758481899 0.0030708912 - -105.5364212618 0.0014195759 42.0471333058 0.0031591293 - -105.2630928520 0.0014368215 42.3353280444 0.0032698906 - -104.9902979208 0.0014458484 42.4012192536 0.0033288119 - -104.7180370942 0.0014413748 42.1578896588 0.0032970929 - -104.4463109982 0.0014240060 41.6619311422 0.0031746718 - -104.1751202590 0.0014055107 41.1828522460 0.0030389479 - -103.9044655024 0.0013959607 40.9144090759 0.0029505305 - -103.6343473546 0.0013977443 40.8814384279 0.0029185925 - -103.3647664415 0.0014075407 40.9977641760 0.0029298594 - -103.0957233893 0.0014177175 41.0883586653 0.0029400764 - -102.8272188239 0.0014148721 40.9119956791 0.0028735133 - -102.5592533714 0.0014007989 40.5529919056 0.0027358678 - -102.2918276578 0.0013858757 40.2332392466 0.0025901641 - -102.0249423091 0.0013776416 40.1091951788 0.0024820788 - -101.7585979514 0.0013828576 40.2989793830 0.0024410508 - -101.4927952108 0.0014074383 40.8792904894 0.0024870269 - -101.2275347132 0.0014506241 41.7916756563 0.0026187292 - -100.9628170846 0.0015038356 42.8522366292 0.0028045466 - -100.6986429512 0.0015564368 43.8609479446 0.0030042249 - -100.4350129390 0.0016002772 44.6730129837 0.0031816266 - -100.1719276739 0.0016354698 45.2828137099 0.0033228904 - -99.9093877821 0.0016637647 45.7018533342 0.0034147839 - -99.6473938895 0.0016818581 45.8865977927 0.0034443939 - -99.3859466222 0.0016880975 45.8538272117 0.0034105981 - -99.1250466062 0.0016872897 45.7381595634 0.0033477624 - -98.8646944676 0.0016878782 45.7122258485 0.0033007756 - -98.6048908324 0.0016982868 45.9197075061 0.0033085038 - -98.3456363266 0.0017202514 46.3609795488 0.0033694245 - -98.0869315762 0.0017496932 46.9453907792 0.0034669180 - -97.8287772074 0.0017801673 47.5355595219 0.0035854043 - -97.5711738460 0.0018025293 47.9735978642 0.0037003899 - -97.3141221183 0.0018121688 48.1736348364 0.0037894837 - -97.0576226501 0.0018063373 48.0817951366 0.0038244023 - -96.8016760676 0.0017879027 47.7445529569 0.0038093495 - -96.5462829967 0.0017582402 47.1918359626 0.0037429371 - -96.2914440636 0.0017188692 46.4594064221 0.0036148200 - -96.0371598941 0.0016747680 45.6575277879 0.0034430355 - -95.7834311145 0.0016379080 45.0128557252 0.0032990207 - -95.5302583506 0.0016167897 44.6553240023 0.0032283490 - -95.2776422286 0.0016087442 44.5044948268 0.0032124499 - -95.0255833744 0.0016012097 44.3262628259 0.0031912619 - -94.7740824142 0.0015857796 43.9939012615 0.0031209327 - -94.5231399739 0.0015600873 43.4943431774 0.0029931986 - -94.2727566795 0.0015274728 42.9201610373 0.0028317701 - -94.0229331572 0.0014986887 42.4758063802 0.0027024166 - -93.7736700329 0.0014807418 42.2679748280 0.0026379440 - -93.5249679327 0.0014749364 42.2930360601 0.0026266869 - -93.2768274826 0.0014803232 42.5318054195 0.0026630846 - -93.0292493086 0.0015009311 43.0659347209 0.0027772626 - -92.7822340368 0.0015401336 43.9299809070 0.0029897539 - -92.5357822932 0.0015895491 44.9289276476 0.0032498492 - -92.2898947039 0.0016400925 45.8850497484 0.0035174109 - -92.0445718949 0.0016832043 46.6452659022 0.0037539502 - -91.7998144921 0.0017137083 47.1189792432 0.0039255552 - -91.5556231218 0.0017250672 47.1922248531 0.0039935740 - -91.3119984098 0.0017103991 46.7679535966 0.0039295958 - -91.0689409822 0.0016723688 45.9388554427 0.0037509438 - -90.8264514650 0.0016258028 45.0045349046 0.0035320706 - -90.5845304844 0.0015843746 44.2010996840 0.0033242401 - -90.3431786663 0.0015525923 43.6060468863 0.0031426243 - -90.1023966367 0.0015387582 43.3755919887 0.0030230165 - -89.8621850217 0.0015487764 43.5899562396 0.0029970785 - -89.6225444473 0.0015757392 44.1158473429 0.0030459291 - -89.3834755396 0.0016131301 44.8401484887 0.0031640436 - -89.1449789246 0.0016557267 45.6601271564 0.0033424190 - -88.9070552283 0.0016932604 46.3675264348 0.0035404693 - -88.6697050768 0.0017142755 46.7441660030 0.0036897022 - -88.4329290960 0.0017181073 46.7819043889 0.0037690443 - -88.1967279121 0.0017054407 46.4864953591 0.0037727665 - -87.9611021511 0.0016703106 45.7663785158 0.0036568690 - -87.7260524389 0.0016161065 44.7378765744 0.0034363302 - -87.4915794017 0.0015576565 43.6982686605 0.0031909621 - -87.2576836654 0.0015061874 42.8586932833 0.0029850740 - -87.0243658562 0.0014715942 42.3841832327 0.0028650398 - -86.7916265999 0.0014572431 42.2862340767 0.0028235570 - -86.5594665228 0.0014548583 42.3941275010 0.0028162160 - -86.3278862507 0.0014586882 42.6138603971 0.0028336932 - -86.0968864098 0.0014674707 42.9180821307 0.0028792067 - -85.8664676260 0.0014811678 43.2952727179 0.0029406186 - -85.6366305254 0.0014978129 43.7055630825 0.0030020353 - -85.4073757341 0.0015147845 44.1115478231 0.0030492523 - -85.1787038781 0.0015362708 44.6037663779 0.0031038039 - -84.9506155833 0.0015641190 45.2162020132 0.0031829955 - -84.7231114759 0.0015944540 45.8844600678 0.0032875778 - -84.4961921819 0.0016258959 46.5860662750 0.0034219437 - -84.2698583273 0.0016606947 47.3464983468 0.0035938105 - -84.0441105381 0.0016991438 48.1409403085 0.0037936987 - -83.8189494404 0.0017370478 48.8749969817 0.0039938883 - -83.5943756602 0.0017702318 49.4774688223 0.0041733385 - -83.3703898235 0.0017954835 49.8943731537 0.0043157150 - -83.1469925565 0.0018115834 50.1124118798 0.0044152286 - -82.9241844850 0.0018231698 50.2002339490 0.0044940811 - -82.7019662352 0.0018291485 50.1209621989 0.0045402687 - -82.4803384331 0.0018263093 49.8136736450 0.0045274843 - -82.2593017047 0.0018056731 49.1481626318 0.0044022902 - -82.0388566760 0.0017626338 48.1128218910 0.0041544995 - -81.8190039731 0.0017060538 46.9256633985 0.0038373160 - -81.5997442221 0.0016568992 45.9636463993 0.0035503700 - -81.3810780489 0.0016259136 45.3825579881 0.0033441215 - -81.1630060795 0.0016080129 45.0648499761 0.0032037015 - -80.9455289401 0.0015927655 44.8197844685 0.0031011089 - -80.7286472567 0.0015743342 44.5428804019 0.0030179607 - -80.5123616552 0.0015522361 44.2238476750 0.0029470457 - -80.2966727618 0.0015332868 43.9694679810 0.0029204540 - -80.0815812024 0.0015203275 43.7930126901 0.0029372491 - -79.8670876031 0.0015050526 43.5064878294 0.0029373913 - -79.6531925900 0.0014737925 42.8720603188 0.0028312550 - -79.4398967890 0.0014277491 41.9691485343 0.0026138987 - -79.2272008262 0.0013837329 41.1538150352 0.0023670769 - -79.0151053276 0.0013576021 40.7497064590 0.0021887227 - -78.8036109193 0.0013614926 40.9810936433 0.0021595318 - -78.5927182273 0.0013969348 41.8304534848 0.0022929121 - -78.3824278776 0.0014516743 43.0205068561 0.0025323454 - -78.1727404963 0.0015099670 44.2331636231 0.0028111316 - -77.9636567094 0.0015590348 45.2283225171 0.0030669687 - -77.7551771429 0.0015932052 45.9199084907 0.0032651840 - -77.5473024229 0.0016168557 46.3974720698 0.0034169959 - -77.3400331753 0.0016338627 46.7300585627 0.0035309075 - -77.1333700264 0.0016446187 46.9299899706 0.0036068698 - -76.9273136020 0.0016470530 46.9757714239 0.0036347160 - -76.7218645282 0.0016445046 46.9510163807 0.0036334550 - -76.5170234310 0.0016450157 47.0051340448 0.0036431285 - -76.3127909365 0.0016536656 47.2172539199 0.0036900608 - -76.1091676707 0.0016712995 47.5761204695 0.0037678274 - -75.9061542597 0.0016959753 48.0270570199 0.0038608520 - -75.7037513294 0.0017240096 48.5065310092 0.0039625727 - -75.5019595059 0.0017517314 48.9549162195 0.0040758296 - -75.3007794153 0.0017732335 49.2672865214 0.0041833166 - -75.1002116836 0.0017864982 49.4044139415 0.0042635585 - -74.9002569367 0.0017903751 49.3384158338 0.0043025008 - -74.7009158009 0.0017814677 49.0162215378 0.0042795311 - -74.5021889020 0.0017606399 48.4792188083 0.0041917096 - -74.3040768661 0.0017336187 47.8487449656 0.0040591708 - -74.1065803192 0.0017070439 47.2607260898 0.0039229962 - -73.9096998875 0.0016854504 46.8029274012 0.0038165407 - -73.7134361968 0.0016748365 46.5686623017 0.0037653696 - -73.5177898733 0.0016739691 46.5103773649 0.0037546957 - -73.3227615430 0.0016788139 46.5567109488 0.0037585437 - -73.1283518320 0.0016881214 46.6916123627 0.0037847662 - -72.9345613661 0.0016993766 46.8732186801 0.0038312071 - -72.7413907716 0.0017122630 47.0888348367 0.0038965142 - -72.5488406744 0.0017224345 47.2546163073 0.0039604796 - -72.3569117005 0.0017253806 47.2970226681 0.0039979254 - -72.1656044760 0.0017211834 47.2325277671 0.0040025316 - -71.9749196270 0.0017162680 47.1840538550 0.0040034228 - -71.7848577794 0.0017191135 47.2908427597 0.0040444691 - -71.5954195593 0.0017324210 47.5690967916 0.0041380608 - -71.4066055927 0.0017478238 47.8403583643 0.0042448226 - -71.2184165057 0.0017531040 47.8850592843 0.0043031789 - -71.0308529243 0.0017446773 47.6526859329 0.0042910572 - -70.8439154745 0.0017266613 47.2298369425 0.0042256781 - -70.6576047824 0.0017015515 46.6642006056 0.0041165595 - -70.4719214740 0.0016667648 45.9229227992 0.0039546520 - -70.2868661753 0.0016228022 45.0352870465 0.0037413429 - -70.1024395124 0.0015751852 44.1098325929 0.0034972017 - -69.9186421113 0.0015289576 43.2456590958 0.0032483307 - -69.7354745980 0.0014888866 42.5394045125 0.0030306962 - -69.5529375986 0.0014576992 42.0363322275 0.0028691509 - -69.3710317390 0.0014357926 41.7333273936 0.0027631528 - -69.1897576455 0.0014238276 41.6303953542 0.0027037071 - -69.0091159439 0.0014223265 41.7358031513 0.0026864869 - -68.8291072603 0.0014329809 42.0797305821 0.0027197965 - -68.6497322207 0.0014568146 42.6702822258 0.0028122812 - -68.4709914512 0.0014902427 43.4275952786 0.0029509910 - -68.2928855778 0.0015277500 44.2469042263 0.0031133305 - -68.1154152266 0.0015665052 45.0766988755 0.0032876196 - -67.9385810235 0.0016042855 45.8736347051 0.0034668845 - -67.7623835947 0.0016361482 46.5480896942 0.0036318048 - -67.5868235661 0.0016576633 47.0248583828 0.0037550563 - -67.4119015638 0.0016715559 47.3619323544 0.0038381430 - -67.2376182137 0.0016858474 47.7077441584 0.0039171026 - -67.0639741421 0.0017087281 48.1993931136 0.0040388141 - -66.8909699748 0.0017404250 48.8112879387 0.0042129577 - -66.7186063379 0.0017722671 49.3585661574 0.0043940732 - -66.5468838575 0.0017920730 49.6196872796 0.0045106701 - -66.3758031596 0.0017947814 49.5353655646 0.0045243429 - -66.2053648702 0.0017875882 49.2648800646 0.0044654163 - -66.0355696153 0.0017798924 48.9897276783 0.0043824761 - -65.8664180210 0.0017783220 48.8315362215 0.0043157667 - -65.6979107134 0.0017836877 48.8059103688 0.0042798213 - -65.5300483184 0.0017935426 48.8746038078 0.0042761611 - -65.3628314621 0.0018057462 48.9982992083 0.0043012166 - -65.1962607705 0.0018194919 49.1568525446 0.0043428096 - -65.0303368696 0.0018335376 49.3162665844 0.0043924752 - -64.8650603856 0.0018440209 49.4129070792 0.0044350076 - -64.7004319444 0.0018509961 49.4570833381 0.0044726724 - -64.5364521720 0.0018571540 49.4897076568 0.0045106992 - -64.3731216946 0.0018612916 49.4861682837 0.0045373070 - -64.2104411381 0.0018623539 49.4238307233 0.0045415158 - -64.0484111285 0.0018588616 49.2743923642 0.0045177687 - -63.8870322919 0.0018508671 49.0438830835 0.0044728694 - -63.7263052544 0.0018378615 48.7293739134 0.0044113382 - -63.5662306419 0.0018184056 48.3200911965 0.0043304079 - -63.4068090805 0.0017950672 47.8775792905 0.0042397484 - -63.2480411963 0.0017769908 47.5607110996 0.0041779110 - -63.0899276152 0.0017704547 47.4559639194 0.0041726763 - -62.9324689633 0.0017754163 47.5349082525 0.0042191114 - -62.7756658667 0.0017843414 47.6452321470 0.0042861842 - -62.6195189513 0.0017894926 47.6527821150 0.0043438309 - -62.4640288433 0.0017845177 47.4551066038 0.0043667765 - -62.3091961686 0.0017642189 46.9743470708 0.0043211703 - -62.1550215532 0.0017277762 46.2168507440 0.0041908856 - -62.0015056233 0.0016817284 45.3158119986 0.0039997100 - -61.8486490048 0.0016369840 44.4695667313 0.0037974772 - -61.6964523237 0.0016004248 43.7933599201 0.0036192255 - -61.5449162062 0.0015729978 43.3000024214 0.0034744743 - -61.3940412782 0.0015535289 42.9633776496 0.0033640216 - -61.2438281658 0.0015400331 42.7376299411 0.0032868097 - -61.0942774951 0.0015286252 42.5459849505 0.0032277215 - -60.9453898919 0.0015164172 42.3362201459 0.0031735534 - -60.7971659825 0.0015016908 42.0818478703 0.0031166327 - -60.6496063927 0.0014834922 41.7697835669 0.0030507447 - -60.5027117487 0.0014623068 41.4112527551 0.0029736099 - -60.3564826765 0.0014401513 41.0431580016 0.0028930068 - -60.2109198021 0.0014179497 40.6815593280 0.0028093875 - -60.0660237516 0.0013979132 40.3694785844 0.0027280129 - -59.9217951509 0.0013834619 40.1688451354 0.0026666415 - -59.7782346262 0.0013759330 40.1035647906 0.0026344009 - -59.6353428034 0.0013783756 40.2286654961 0.0026478371 - -59.4931203086 0.0013926938 40.5639289838 0.0027216317 - -59.3515677678 0.0014146336 41.0160382944 0.0028345857 - -59.2106858071 0.0014373764 41.4552937222 0.0029549824 - -59.0704750525 0.0014557626 41.7871298152 0.0030554702 - -58.9309361300 0.0014686479 41.9880141310 0.0031248567 - -58.7920696656 0.0014768264 42.0685545511 0.0031704631 - -58.6538762855 0.0014768999 41.9686774749 0.0031753487 - -58.5163566155 0.0014646476 41.6287996347 0.0031156935 - -58.3795112819 0.0014393583 41.0591628880 0.0029839196 - -58.2433409105 0.0014069906 40.3836346022 0.0028022977 - -58.1078461275 0.0013743363 39.7313007173 0.0026101617 - -57.9730275588 0.0013465236 39.1989323399 0.0024380544 - -57.8388858305 0.0013273527 38.8490086398 0.0023063912 - -57.7054215687 0.0013182301 38.6977580944 0.0022195286 - -57.5726353993 0.0013181017 38.7196921744 0.0021729577 - -57.4405279484 0.0013251971 38.8801792020 0.0021618827 - -57.3090998421 0.0013374050 39.1376189521 0.0021805246 - -57.1783517063 0.0013516803 39.4354939322 0.0022146223 - -57.0482841671 0.0013653970 39.7289092667 0.0022507127 - -56.9188978506 0.0013772067 39.9977253225 0.0022813914 - -56.7901933827 0.0013874163 40.2528502702 0.0023074902 - -56.6621713896 0.0013982332 40.5368454624 0.0023433738 - -56.5348324972 0.0014122253 40.8923149223 0.0024026913 - -56.4081773315 0.0014306673 41.3344006776 0.0024918185 - -56.2822065187 0.0014534950 41.8505932734 0.0026074542 - -56.1569206847 0.0014796006 42.4125355150 0.0027383873 - -56.0323204556 0.0015087726 43.0122364054 0.0028824721 - -55.9084064574 0.0015422639 43.6639743130 0.0030466861 - -55.7851793161 0.0015794248 44.3390300974 0.0032272828 - -55.6626396578 0.0016134273 44.9016067457 0.0033920582 - -55.5407881085 0.0016337911 45.1736603855 0.0034858501 - -55.4196252943 0.0016345807 45.0815428398 0.0034752259 - -55.2991518412 0.0016178748 44.7013859693 0.0033684353 - -55.1793683752 0.0015943967 44.2523032003 0.0032212321 - -55.0602755223 0.0015787847 43.9945969878 0.0031078476 - -54.9418739086 0.0015803104 44.0708262746 0.0030781557 - -54.8241641601 0.0015991989 44.4595226352 0.0031375465 - -54.7071469029 0.0016299413 45.0431644894 0.0032649333 - -54.5908227630 0.0016641715 45.6624544016 0.0034237650 - -54.4751923664 0.0016929687 46.1593511302 0.0035711741 - -54.3602563391 0.0017116357 46.4601870730 0.0036756170 - -54.2460153072 0.0017206522 46.5825531844 0.0037313237 - -54.1324698968 0.0017217668 46.5658252627 0.0037460961 - -54.0196207338 0.0017175491 46.4613680063 0.0037333381 - -53.9074684443 0.0017117079 46.3318676774 0.0037073784 - -53.7960136543 0.0017049127 46.1839578815 0.0036709428 - -53.6852569899 0.0016954975 45.9921442037 0.0036180983 - -53.5751990771 0.0016822962 45.7395230973 0.0035468698 - -53.4658405419 0.0016640004 45.4097274797 0.0034514671 - -53.3571820104 0.0016428320 45.0500619921 0.0033369988 - -53.2492241086 0.0016238623 44.7526795064 0.0032275059 - -53.1419674625 0.0016131275 44.6202542982 0.0031554280 - -53.0354126981 0.0016147047 44.7130681922 0.0031485851 - -52.9295604416 0.0016262571 44.9782283710 0.0032015106 - -52.8244113189 0.0016424125 45.3171692036 0.0032871085 - -52.7199659561 0.0016583490 45.6448540698 0.0033781866 - -52.6162249791 0.0016716079 45.9217776592 0.0034584498 - -52.5131890142 0.0016827259 46.1577972988 0.0035261948 - -52.4108586871 0.0016940013 46.3906470688 0.0035904478 - -52.3092346241 0.0017066936 46.6394852355 0.0036592650 - -52.2083174511 0.0017201796 46.8920243983 0.0037314180 - -52.1081077942 0.0017324364 47.1102049551 0.0037967957 - -52.0086062794 0.0017389118 47.2160131275 0.0038303404 - -51.9098135328 0.0017376700 47.1863271306 0.0038194899 - -51.8117301803 0.0017320279 47.0862146871 0.0037822097 - -51.7143568480 0.0017260907 46.9879114749 0.0037398027 - -51.6176941620 0.0017234461 46.9561560725 0.0037106310 - -51.5217427482 0.0017271379 47.0425505472 0.0037089053 - -51.4265032328 0.0017383970 47.2671103690 0.0037419252 - -51.3319762417 0.0017581988 47.6444182951 0.0038166114 - -51.2381624010 0.0017871329 48.1747074016 0.0039377999 - -51.1450623367 0.0018240625 48.8264025999 0.0041057310 - -51.0526766748 0.0018658469 49.5312635118 0.0043131786 - -50.9610060414 0.0019057866 50.1592291520 0.0045308610 - -50.8700510626 0.0019328546 50.5178064895 0.0047053928 - -50.7798123643 0.0019355832 50.4265999962 0.0047735695 - -50.6902905726 0.0019095697 49.8392830827 0.0046948619 - -50.6014863135 0.0018589116 48.8564767834 0.0044723161 - -50.5134002130 0.0017944973 47.6949798575 0.0041558251 - -50.4260328973 0.0017313417 46.6315492896 0.0038267905 - -50.3393849922 0.0016858773 45.9419170613 0.0035697549 - -50.2534571240 0.0016670983 45.7532279588 0.0034377078 - -50.1682499185 0.0016737527 46.0195555331 0.0034350029 - -50.0837640018 0.0017004145 46.6269360638 0.0035409154 - -50.0000000000 0.0017390472 47.4192023297 0.0037208402 - -49.9165971643 0.0017812534 48.2439041748 0.0039334280 - -49.8331943286 0.0018196204 48.9717800533 0.0041368869 - -49.7497914929 0.0018496664 49.5361437905 0.0043111541 - -49.6663886572 0.0018711446 49.9431211998 0.0044520521 - -49.5829858215 0.0018878191 50.2581401854 0.0045763721 - -49.4995829858 0.0019010142 50.4986853643 0.0046899925 - -49.4161801501 0.0019090524 50.6343945308 0.0047864021 - -49.3327773144 0.0019079947 50.5951217684 0.0048454149 - -49.2493744787 0.0018929115 50.3004448706 0.0048354163 - -49.1659716430 0.0018639182 49.7647246613 0.0047492859 - -49.0825688073 0.0018258743 49.0816487722 0.0046111115 - -48.9991659716 0.0017866008 48.3892739660 0.0044593134 - -48.9157631359 0.0017531029 47.7973391337 0.0043296425 - -48.8323603003 0.0017251220 47.2910059316 0.0042233820 - -48.7489574646 0.0016981858 46.7943056311 0.0041217456 - -48.6655546289 0.0016689550 46.2548527601 0.0040064379 - -48.5821517932 0.0016366604 45.6700684491 0.0038705026 - -48.4987489575 0.0016046235 45.1078174958 0.0037278879 - -48.4153461218 0.0015790344 44.6780638763 0.0036109053 - -48.3319432861 0.0015650384 44.4630353792 0.0035497621 - -48.2485404504 0.0015631462 44.4575172750 0.0035540196 - -48.1651376147 0.0015690660 44.5719805772 0.0036052458 - -48.0817347790 0.0015763020 44.6813487055 0.0036653271 - -47.9983319433 0.0015776223 44.6573202963 0.0036904314 - -47.9149291076 0.0015699616 44.4570825423 0.0036571982 - -47.8315262719 0.0015551365 44.1271757147 0.0035736194 - -47.7481234362 0.0015368755 43.7455198391 0.0034609168 - -47.6647206005 0.0015192353 43.3901948549 0.0033401341 - -47.5813177648 0.0015050332 43.1123939836 0.0032290582 - -47.4979149291 0.0014951330 42.9282071104 0.0031366350 - -47.4145120934 0.0014897503 42.8416054450 0.0030683883 - -47.3311092577 0.0014898469 42.8687583328 0.0030307069 - -47.2477064220 0.0014964225 43.0232282410 0.0030288779 - -47.1643035863 0.0015093715 43.2963903118 0.0030638742 - -47.0809007506 0.0015268345 43.6492125113 0.0031278415 - -46.9974979149 0.0015465781 44.0395362008 0.0032091308 - -46.9140950792 0.0015678092 44.4507753301 0.0033028564 - -46.8306922435 0.0015900241 44.8712916767 0.0034061370 - -46.7472894078 0.0016123452 45.2840236594 0.0035151256 - -46.6638865721 0.0016336747 45.6670972186 0.0036255878 - -46.5804837364 0.0016525427 45.9917090095 0.0037290033 - -46.4970809008 0.0016670466 46.2225854302 0.0038113569 - -46.4136780651 0.0016751680 46.3251081853 0.0038574056 - -46.3302752294 0.0016758528 46.2849713216 0.0038575122 - -46.2468723937 0.0016697289 46.1214742523 0.0038127592 - -46.1634695580 0.0016591041 45.8855228138 0.0037352113 - -46.0800667223 0.0016475801 45.6482946140 0.0036461988 - -45.9966638866 0.0016377884 45.4575400918 0.0035641444 - -45.9132610509 0.0016301382 45.3185673951 0.0034958547 - -45.8298582152 0.0016236016 45.2112026597 0.0034360671 - -45.7464553795 0.0016168801 45.1133972658 0.0033773972 - -45.6630525438 0.0016099470 45.0308390530 0.0033194566 - -45.5796497081 0.0016058921 45.0230584735 0.0032748295 - -45.4962468724 0.0016088889 45.1624598851 0.0032629478 - -45.4128440367 0.0016213120 45.4842857590 0.0032990766 - -45.3294412010 0.0016431827 45.9817921399 0.0033873275 - -45.2460383653 0.0016744113 46.6458890702 0.0035300605 - -45.1626355296 0.0017155942 47.4763012536 0.0037329602 - -45.0792326939 0.0017665259 48.4533302489 0.0039998360 - -44.9958298582 0.0018236111 49.4950239601 0.0043198914 - -44.9124270225 0.0018804270 50.4735925903 0.0046593891 - -44.8290241868 0.0019313026 51.2727906476 0.0049790750 - -44.7456213511 0.0019698011 51.7659674728 0.0052331216 - -44.6622185154 0.0019852116 51.7690676958 0.0053547146 - -44.5788156797 0.0019714633 51.2089209084 0.0052976464 - -44.4954128440 0.0019291378 50.1372711750 0.0050523879 - -44.4120100083 0.0018622137 48.6897663721 0.0046461780 - -44.3286071726 0.0017873868 47.2134351455 0.0041796308 - -44.2452043369 0.0017296008 46.1216805511 0.0037937595 - -44.1618015013 0.0016953810 45.4721438532 0.0035333537 - -44.0783986656 0.0016750596 45.0849959534 0.0033522729 - -43.9949958299 0.0016619940 44.8538216296 0.0032164385 - -43.9115929942 0.0016550870 44.7691373974 0.0031185871 - -43.8281901585 0.0016566849 44.8749130591 0.0030731752 - -43.7447873228 0.0016708405 45.2325923270 0.0031052462 - -43.6613844871 0.0016995524 45.8553082622 0.0032297169 - -43.5779816514 0.0017397133 46.6656765122 0.0034362348 - -43.4945788157 0.0017857318 47.5458642182 0.0036954108 - -43.4111759800 0.0018316548 48.3730811210 0.0039721520 - -43.3277731443 0.0018705350 49.0125101482 0.0042262048 - -43.2443703086 0.0018943480 49.3251751470 0.0044113597 - -43.1609674729 0.0018968180 49.2177660831 0.0044876629 - -43.0775646372 0.0018760892 48.6807789391 0.0044321471 - -42.9941618015 0.0018342939 47.7800914441 0.0042423208 - -42.9107589658 0.0017776124 46.6538263185 0.0039477172 - -42.8273561301 0.0017147848 45.4825548809 0.0036016131 - -42.7439532944 0.0016579903 44.4845491252 0.0032728213 - -42.6605504587 0.0016178849 43.8286331307 0.0030186601 - -42.5771476230 0.0015977679 43.5520921678 0.0028632456 - -42.4937447873 0.0015952548 43.6000627931 0.0028031016 - -42.4103419516 0.0016058970 43.8836901806 0.0028213023 - -42.3269391159 0.0016243523 44.3023911638 0.0028915505 - -42.2435362802 0.0016452672 44.7594658937 0.0029849342 - -42.1601334445 0.0016646971 45.1888671876 0.0030800850 - -42.0767306088 0.0016820330 45.5822639731 0.0031709113 - -41.9933277731 0.0016985878 45.9595309320 0.0032621339 - -41.9099249374 0.0017153733 46.3333999813 0.0033538157 - -41.8265221018 0.0017324663 46.7003604301 0.0034433477 - -41.7431192661 0.0017484503 47.0354497278 0.0035213898 - -41.6597164304 0.0017634268 47.3447648351 0.0035867239 - -41.5763135947 0.0017796488 47.6685623534 0.0036501513 - -41.4929107590 0.0017982383 48.0255557477 0.0037196919 - -41.4095079233 0.0018195419 48.4231605409 0.0038014721 - -41.3261050876 0.0018445242 48.8752349061 0.0039043150 - -41.2427022519 0.0018733370 49.3757451729 0.0040306167 - -41.1592994162 0.0019032925 49.8716298508 0.0041685023 - -41.0758965805 0.0019295811 50.2803082616 0.0042940799 - -40.9924937448 0.0019480357 50.5358830650 0.0043828448 - -40.9090909091 0.0019568202 50.6154482596 0.0044229450 - -40.8256880734 0.0019563354 50.5360569938 0.0044125929 - -40.7422852377 0.0019480715 50.3353709643 0.0043611939 - -40.6588824020 0.0019352661 50.0815340484 0.0042863951 - -40.5754795663 0.0019238348 49.8755272024 0.0042173330 - -40.4920767306 0.0019178689 49.7750207768 0.0041767433 - -40.4086738949 0.0019167340 49.7620748552 0.0041677305 - -40.3252710592 0.0019178459 49.7890186652 0.0041793291 - -40.2418682235 0.0019191326 49.8202467547 0.0041987569 - -40.1584653878 0.0019209991 49.8629444642 0.0042245589 - -40.0750625521 0.0019238154 49.9207455192 0.0042588386 - -39.9916597164 0.0019271712 49.9828710048 0.0042967057 - -39.9082568807 0.0019297128 50.0214047954 0.0043260839 - -39.8248540450 0.0019294302 50.0069951092 0.0043317512 - -39.7414512093 0.0019274791 49.9700918832 0.0043149395 - -39.6580483736 0.0019293997 50.0070244630 0.0042986173 - -39.5746455379 0.0019404454 50.1993249461 0.0043081843 - -39.4912427023 0.0019619852 50.5594663709 0.0043575723 - -39.4078398666 0.0019918156 51.0443426477 0.0044460891 - -39.3244370309 0.0020272989 51.5998922561 0.0045691442 - -39.2410341952 0.0020637391 52.1367243832 0.0047072414 - -39.1576313595 0.0020932488 52.5232952459 0.0048272094 - -39.0742285238 0.0021085059 52.6528485783 0.0048968828 - -38.9908256881 0.0021070241 52.5012140640 0.0049003545 - -38.9074228524 0.0020897642 52.0993367222 0.0048342206 - -38.8240200167 0.0020592754 51.5052627696 0.0047017554 - -38.7406171810 0.0020222759 50.8378442361 0.0045280162 - -38.6572143453 0.0019868738 50.2300983864 0.0043495378 - -38.5738115096 0.0019603080 49.7948297711 0.0042038107 - -38.4904086739 0.0019461466 49.5819653768 0.0041139271 - -38.4070058382 0.0019438938 49.5721356547 0.0040813973 - -38.3236030025 0.0019492616 49.6847962404 0.0040896259 - -38.2402001668 0.0019565936 49.8250883597 0.0041143526 - -38.1567973311 0.0019627564 49.9447261908 0.0041447662 - -38.0733944954 0.0019668421 50.0317427213 0.0041772704 - -37.9899916597 0.0019686512 50.0820901744 0.0042070337 - -37.9065888240 0.0019688161 50.1068164324 0.0042310336 - -37.8231859883 0.0019691221 50.1345491616 0.0042529199 - -37.7397831526 0.0019714141 50.1937451212 0.0042800230 - -37.6563803169 0.0019771531 50.3021037006 0.0043207282 - -37.5729774812 0.0019853256 50.4383528053 0.0043747833 - -37.4895746455 0.0019941963 50.5679466720 0.0044377880 - -37.4061718098 0.0020015630 50.6468850470 0.0045004070 - -37.3227689741 0.0020043453 50.6179306484 0.0045443901 - -37.2393661384 0.0019988660 50.4255241633 0.0045497230 - -37.1559633028 0.0019820524 50.0319899264 0.0045043092 - -37.0725604671 0.0019531647 49.4420069653 0.0044032728 - -36.9891576314 0.0019159246 48.7244210616 0.0042563135 - -36.9057547957 0.0018759414 47.9750029612 0.0040823926 - -36.8223519600 0.0018389038 47.2904976957 0.0039087247 - -36.7389491243 0.0018084851 46.7281748251 0.0037594200 - -36.6555462886 0.0017842880 46.2731893081 0.0036390008 - -36.5721434529 0.0017622884 45.8520435933 0.0035278376 - -36.4887406172 0.0017392564 45.4148032493 0.0034036357 - -36.4053377815 0.0017164083 44.9890539853 0.0032684849 - -36.3219349458 0.0016959205 44.6179644884 0.0031340350 - -36.2385321101 0.0016797134 44.3399361065 0.0030144725 - -36.1551292744 0.0016716590 44.2214907069 0.0029268159 - -36.0717264387 0.0016758172 44.3183123448 0.0028929509 - -35.9883236030 0.0016916116 44.6078252577 0.0029129157 - -35.9049207673 0.0017155267 45.0185412064 0.0029668102 - -35.8215179316 0.0017416330 45.4486322040 0.0030258092 - -35.7381150959 0.0017657392 45.8370556842 0.0030718506 - -35.6547122602 0.0017872504 46.1807183177 0.0031054308 - -35.5713094245 0.0018046548 46.4613031448 0.0031242854 - -35.4879065888 0.0018157843 46.6529108217 0.0031203631 - -35.4045037531 0.0018220318 46.7881269510 0.0031017689 - -35.3211009174 0.0018275852 46.9381677208 0.0030879825 - -35.2376980817 0.0018362002 47.1632061223 0.0031010653 - -35.1542952460 0.0018507114 47.4993013332 0.0031585275 - -35.0708924103 0.0018711886 47.9302605322 0.0032637028 - -34.9874895746 0.0018950275 48.3971300259 0.0034007762 - -34.9040867389 0.0019182949 48.8306835346 0.0035516788 - -34.8206839033 0.0019369758 49.1648718896 0.0036968944 - -34.7372810676 0.0019491614 49.3710929741 0.0038225435 - -34.6538782319 0.0019561061 49.4683757878 0.0039254011 - -34.5704753962 0.0019569349 49.4378909560 0.0040004866 - -34.4870725605 0.0019461278 49.1978532746 0.0040218341 - -34.4036697248 0.0019204817 48.7167755264 0.0039631512 - -34.3202668891 0.0018825628 48.0544960103 0.0038277643 - -34.2368640534 0.0018382423 47.3223274923 0.0036435304 - -34.1534612177 0.0017972662 46.6853847482 0.0034607442 - -34.0700583820 0.0017682580 46.2780393672 0.0033253735 - -33.9866555463 0.0017538437 46.1276513785 0.0032592580 - -33.9032527106 0.0017495814 46.1453105737 0.0032476382 - -33.8198498749 0.0017490626 46.2175953089 0.0032588382 - -33.7364470392 0.0017479822 46.2719860444 0.0032696601 - -33.6530442035 0.0017440325 46.2732811971 0.0032685741 - -33.5696413678 0.0017380342 46.2354644431 0.0032596839 - -33.4862385321 0.0017321987 46.1870001901 0.0032534291 - -33.4028356964 0.0017247954 46.0917917820 0.0032361687 - -33.3194328607 0.0017124715 45.8960952683 0.0031884377 - -33.2360300250 0.0016935937 45.5872673344 0.0030986773 - -33.1526271893 0.0016710565 45.2316338186 0.0029796886 - -33.0692243536 0.0016509907 44.9475465295 0.0028598599 - -32.9858215179 0.0016431868 44.9022796807 0.0027814523 - -32.9024186822 0.0016546279 45.2029027371 0.0027802484 - -32.8190158465 0.0016848494 45.8263130858 0.0028653474 - -32.7356130108 0.0017297191 46.6872249450 0.0030221074 - -32.6522101751 0.0017845307 47.6882310784 0.0032324580 - -32.5688073394 0.0018435223 48.7179765899 0.0034691577 - -32.4854045038 0.0019015167 49.6824565360 0.0037053530 - -32.4020016681 0.0019530944 50.4923708831 0.0039157341 - -32.3185988324 0.0019945451 51.0984824056 0.0040809587 - -32.2351959967 0.0020256137 51.5108465109 0.0041989721 - -32.1517931610 0.0020461686 51.7408277538 0.0042711428 - -32.0683903253 0.0020578080 51.8294955072 0.0043012084 - -31.9849874896 0.0020644230 51.8477256586 0.0043075827 - -31.9015846539 0.0020685825 51.8425685847 0.0043064144 - -31.8181818182 0.0020712618 51.8333266469 0.0043111124 - -31.7347789825 0.0020737530 51.8418670914 0.0043307018 - -31.6513761468 0.0020780645 51.8899015444 0.0043685539 - -31.5679733111 0.0020850790 51.9809313848 0.0044252563 - -31.4845704754 0.0020953929 52.1101615319 0.0045026045 - -31.4011676397 0.0021064540 52.2180772132 0.0045898116 - -31.3177648040 0.0021108948 52.1831983095 0.0046456870 - -31.2343619683 0.0021037354 51.9358665357 0.0046395392 - -31.1509591326 0.0020818269 51.4422638033 0.0045527195 - -31.0675562969 0.0020437187 50.7046116207 0.0043805100 - -30.9841534612 0.0019902301 49.7608468983 0.0041355147 - -30.9007506255 0.0019278096 48.7244664715 0.0038553869 - -30.8173477898 0.0018668287 47.7531171183 0.0035883126 - -30.7339449541 0.0018154977 46.9633712137 0.0033692167 - -30.6505421184 0.0017749959 46.3638130683 0.0032036210 - -30.5671392827 0.0017436170 45.9167214755 0.0030727804 - -30.4837364470 0.0017206195 45.6073082131 0.0029659453 - -30.4003336113 0.0017058024 45.4436904684 0.0028927968 - -30.3169307756 0.0016995122 45.4392911334 0.0028671075 - -30.2335279399 0.0017052343 45.6463757796 0.0029098708 - -30.1501251043 0.0017221684 46.0267685778 0.0030149710 - -30.0667222686 0.0017440236 46.4549619601 0.0031421521 - -29.9833194329 0.0017645426 46.8160838941 0.0032487466 - -29.8999165972 0.0017771023 46.9991255445 0.0032971285 - -29.8165137615 0.0017760635 46.9394837784 0.0032612182 - -29.7331109258 0.0017653918 46.7377351214 0.0031682554 - -29.6497080901 0.0017528468 46.5378976940 0.0030627510 - -29.5663052544 0.0017433017 46.4263129881 0.0029786462 - -29.4829024187 0.0017417267 46.4816170360 0.0029433486 - -29.3994995830 0.0017522663 46.7497619716 0.0029741575 - -29.3160967473 0.0017704984 47.1375005983 0.0030469812 - -29.2326939116 0.0017896231 47.5310112600 0.0031299866 - -29.1492910759 0.0018051431 47.8602258402 0.0032041847 - -29.0658882402 0.0018161238 48.1159148060 0.0032647403 - -28.9824854045 0.0018233565 48.3122913387 0.0033102453 - -28.8990825688 0.0018288558 48.4815685665 0.0033443095 - -28.8156797331 0.0018355636 48.6708092177 0.0033788577 - -28.7322768974 0.0018453566 48.9108038404 0.0034261283 - -28.6488740617 0.0018590822 49.2125383620 0.0034926420 - -28.5654712260 0.0018757747 49.5565712922 0.0035739099 - -28.4820683903 0.0018940332 49.9222406476 0.0036638562 - -28.3986655546 0.0019162957 50.3508620422 0.0037734532 - -28.3152627189 0.0019454444 50.8769894088 0.0039208485 - -28.2318598832 0.0019773767 51.4131228740 0.0040879330 - -28.1484570475 0.0020035272 51.8138450938 0.0042320047 - -28.0650542118 0.0020193860 52.0183425692 0.0043213500 - -27.9816513761 0.0020270832 52.0764509613 0.0043667410 - -27.8982485405 0.0020279402 52.0208891841 0.0043851201 - -27.8148457048 0.0020217376 51.8587490115 0.0043839080 - -27.7314428691 0.0020096113 51.6043289404 0.0043718388 - -27.6480400334 0.0019883024 51.2003113819 0.0043324676 - -27.5646371977 0.0019555826 50.6165271629 0.0042455214 - -27.4812343620 0.0019162583 49.9369206978 0.0041221330 - -27.3978315263 0.0018769027 49.2661391441 0.0039864227 - -27.3144286906 0.0018411213 48.6590437373 0.0038510081 - -27.2310258549 0.0018104080 48.1395601378 0.0037222469 - -27.1476230192 0.0017847136 47.7071905844 0.0036046247 - -27.0642201835 0.0017622897 47.3352552429 0.0034951824 - -26.9808173478 0.0017431650 47.0297141456 0.0033902013 - -26.8974145121 0.0017321866 46.8779180433 0.0033091024 - -26.8140116764 0.0017325755 46.9316003489 0.0032790794 - -26.7306088407 0.0017423354 47.1549788109 0.0033009504 - -26.6472060050 0.0017583910 47.4882793908 0.0033646794 - -26.5638031693 0.0017767632 47.8500104652 0.0034529302 - -26.4804003336 0.0017911845 48.1203178028 0.0035292429 - -26.3969974979 0.0017940388 48.1744683658 0.0035525720 - -26.3135946622 0.0017819383 47.9722686612 0.0035034825 - -26.2301918265 0.0017581020 47.5880543236 0.0033942588 - -26.1467889908 0.0017294389 47.1515816159 0.0032634267 - -26.0633861551 0.0017028964 46.7825858214 0.0031480061 - -25.9799833194 0.0016846845 46.5766647220 0.0030729218 - -25.8965804837 0.0016773021 46.5619660510 0.0030442732 - -25.8131776480 0.0016799589 46.7161513139 0.0030627326 - -25.7297748123 0.0016893075 46.9716299376 0.0031224427 - -25.6463719766 0.0017010273 47.2528812431 0.0032035060 - -25.5629691410 0.0017136108 47.5392202713 0.0032953553 - -25.4795663053 0.0017267037 47.8256726266 0.0033902493 - -25.3961634696 0.0017415072 48.1351830001 0.0034911921 - -25.3127606339 0.0017597199 48.4952088399 0.0036096448 - -25.2293577982 0.0017830122 48.9261416263 0.0037494560 - -25.1459549625 0.0018112135 49.4147445405 0.0039092531 - -25.0625521268 0.0018419280 49.9140472631 0.0040847558 - -24.9791492911 0.0018714414 50.3563366627 0.0042616316 - -24.8957464554 0.0018938413 50.6413491343 0.0044169883 - -24.8123436197 0.0019033748 50.6781071340 0.0045172514 - -24.7289407840 0.0018988018 50.4494319739 0.0045499304 - -24.6455379483 0.0018807086 49.9711175554 0.0045091473 - -24.5621351126 0.0018533957 49.3256073694 0.0044059870 - -24.4787322769 0.0018219300 48.6014145763 0.0042662261 - -24.3953294412 0.0017861242 47.8027675890 0.0040919182 - -24.3119266055 0.0017446539 46.9176176661 0.0038783956 - -24.2285237698 0.0016974780 45.9598966883 0.0036221415 - -24.1451209341 0.0016492619 45.0152373816 0.0033399947 - -24.0617180984 0.0016045066 44.1654327166 0.0030542432 - -23.9783152627 0.0015663897 43.4778967037 0.0027843801 - -23.8949124270 0.0015403617 43.0541698173 0.0025636941 - -23.8115095913 0.0015321100 42.9921964139 0.0024287442 - -23.7281067556 0.0015462234 43.3557295241 0.0024112944 - -23.6447039199 0.0015805058 44.0834481574 0.0025077030 - -23.5613010842 0.0016277532 45.0290475329 0.0026886110 - -23.4778982485 0.0016796247 46.0348146015 0.0029117052 - -23.3944954128 0.0017299670 46.9871326431 0.0031431020 - -23.3110925771 0.0017712267 47.7544570309 0.0033460471 - -23.2276897415 0.0017980104 48.2642294069 0.0034902340 - -23.1442869058 0.0018124091 48.5679400945 0.0035836362 - -23.0608840701 0.0018179455 48.7375967865 0.0036407736 - -22.9774812344 0.0018204000 48.8772689154 0.0036912927 - -22.8940783987 0.0018250471 49.0657806318 0.0037611169 - -22.8106755630 0.0018334240 49.3100473563 0.0038542544 - -22.7272727273 0.0018420378 49.5348787153 0.0039463194 - -22.6438698916 0.0018477957 49.6814949635 0.0040137240 - -22.5604670559 0.0018495581 49.7295265526 0.0040432114 - -22.4770642202 0.0018476149 49.6927247652 0.0040366329 - -22.3936613845 0.0018436560 49.6092995609 0.0040116391 - -22.3102585488 0.0018371632 49.4748566489 0.0039771961 - -22.2268557131 0.0018258576 49.2529270113 0.0039256166 - -22.1434528774 0.0018093787 48.9393268601 0.0038510730 - -22.0600500417 0.0017886278 48.5516386510 0.0037586289 - -21.9766472060 0.0017654356 48.1236010995 0.0036534470 - -21.8932443703 0.0017401843 47.6664557143 0.0035410638 - -21.8098415346 0.0017132402 47.1918053234 0.0034245236 - -21.7264386989 0.0016862929 46.7285049431 0.0033080396 - -21.6430358632 0.0016589129 46.2676048691 0.0031855747 - -21.5596330275 0.0016298838 45.7940709737 0.0030523405 - -21.4762301918 0.0016019603 45.3636455175 0.0029174205 - -21.3928273561 0.0015807776 45.0761282511 0.0028054032 - -21.3094245204 0.0015714304 45.0185652491 0.0027392945 - -21.2260216847 0.0015771563 45.2409355416 0.0027387265 - -21.1426188490 0.0015973751 45.7266395517 0.0028069806 - -21.0592160133 0.0016301234 46.4318175240 0.0029410641 - -20.9758131776 0.0016716056 47.2751359187 0.0031263005 - -20.8924103420 0.0017161260 48.1410460894 0.0033355388 - -20.8090075063 0.0017565127 48.8984758436 0.0035320218 - -20.7256046706 0.0017870661 49.4518345265 0.0036911475 - -20.6422018349 0.0018047102 49.7559436587 0.0037945653 - -20.5587989992 0.0018102838 49.8324324459 0.0038387331 - -20.4753961635 0.0018071714 49.7471975603 0.0038335943 - -20.3919933278 0.0017999481 49.5871703727 0.0037981231 - -20.3085904921 0.0017920433 49.4163105961 0.0037527803 - -20.2251876564 0.0017845212 49.2556214486 0.0037052876 - -20.1417848207 0.0017770391 49.1032047046 0.0036568102 - -20.0583819850 0.0017698330 48.9640286804 0.0036086634 - -19.9749791493 0.0017641739 48.8611761109 0.0035629302 - -19.8915763136 0.0017640450 48.8630975530 0.0035377290 - -19.8081734779 0.0017722905 49.0107309874 0.0035485492 - -19.7247706422 0.0017868534 49.2621917684 0.0035902713 - -19.6413678065 0.0018045040 49.5586061046 0.0036520055 - -19.5579649708 0.0018219477 49.8419816079 0.0037185203 - -19.4745621351 0.0018370728 50.0754788067 0.0037810123 - -19.3911592994 0.0018464388 50.1987169802 0.0038240206 - -19.3077564637 0.0018452296 50.1316957856 0.0038243597 - -19.2243536280 0.0018334413 49.8843813662 0.0037723585 - -19.1409507923 0.0018143020 49.5215014587 0.0036848242 - -19.0575479566 0.0017906284 49.1000722497 0.0035794502 - -18.9741451209 0.0017676770 48.7149004228 0.0034806862 - -18.8907422852 0.0017505789 48.4456814326 0.0034104689 - -18.8073394495 0.0017416299 48.3240253555 0.0033706835 - -18.7239366138 0.0017402286 48.3344751620 0.0033590150 - -18.6405337781 0.0017439567 48.4337237940 0.0033714259 - -18.5571309425 0.0017505384 48.5821198553 0.0034077664 - -18.4737281068 0.0017576392 48.7399495266 0.0034614364 - -18.3903252711 0.0017649408 48.8999633861 0.0035261796 - -18.3069224354 0.0017737049 49.0771133753 0.0036033617 - -18.2235195997 0.0017827843 49.2414523470 0.0036856672 - -18.1401167640 0.0017893067 49.3403397564 0.0037584840 - -18.0567139283 0.0017909023 49.3341190427 0.0038102618 - -17.9733110926 0.0017861354 49.2048696562 0.0038325355 - -17.8899082569 0.0017763161 48.9846089016 0.0038262838 - -17.8065054212 0.0017653389 48.7470050560 0.0038034006 - -17.7231025855 0.0017584898 48.5823715146 0.0037901359 - -17.6396997498 0.0017572566 48.5109337659 0.0038022594 - -17.5562969141 0.0017594206 48.4876207190 0.0038367564 - -17.4728940784 0.0017605550 48.4283988417 0.0038746021 - -17.3894912427 0.0017540922 48.2197512600 0.0038791646 - -17.3060884070 0.0017353511 47.7972226344 0.0038227847 - -17.2226855713 0.0017049389 47.1871688065 0.0037082334 - -17.1392827356 0.0016657414 46.4519187083 0.0035532583 - -17.0558798999 0.0016219708 45.6722726713 0.0033744698 - -16.9724770642 0.0015803157 44.9721278234 0.0031970232 - -16.8890742285 0.0015462298 44.4468995008 0.0030569274 - -16.8056713928 0.0015196582 44.0974302652 0.0029661610 - -16.7222685571 0.0014998734 43.9076881720 0.0029315730 - -16.6388657214 0.0014858976 43.8494252040 0.0029468032 - -16.5554628857 0.0014760409 43.8790706412 0.0029993863 - -16.4720600500 0.0014655874 43.9050292878 0.0030622898 - -16.3886572143 0.0014509250 43.8636922265 0.0031119280 - -16.3052543786 0.0014318928 43.7518864183 0.0031463926 - -16.2218515430 0.0014117537 43.6304553065 0.0031690018 - -16.1384487073 0.0013961424 43.6008916544 0.0032024697 - -16.0550458716 0.0013865486 43.6875182451 0.0032613563 - -15.9716430359 0.0013806738 43.8466535210 0.0033409812 - -15.8882402002 0.0013744996 44.0002611048 0.0034280453 - -15.8048373645 0.0013662016 44.1101232798 0.0035114512 - -15.7214345288 0.0013554040 44.1634207612 0.0035857057 - -15.6380316931 0.0013403338 44.1248851497 0.0036352483 - -15.5546288574 0.0013215613 44.0088112076 0.0036647895 - -15.4712260217 0.0012998462 43.8279414424 0.0036880684 - -15.3878231860 0.0012771070 43.6182632922 0.0037138708 - -15.3044203503 0.0012553007 43.4131582630 0.0037535006 - -15.2210175146 0.0012338476 43.1956091175 0.0038073801 - -15.1376146789 0.0012087766 42.8821812578 0.0038607022 - -15.0542118432 0.0011737547 42.3468261312 0.0038816893 - -14.9708090075 0.0011256063 41.5281281621 0.0038531139 - -14.8874061718 0.0010638859 40.4181174791 0.0037657458 - -14.8040033361 0.0009908465 39.0632839519 0.0036408991 - -14.7206005004 0.0009120533 37.5737333542 0.0035146315 - -14.6371976647 0.0008352043 36.1046955959 0.0034178104 - -14.5537948290 0.0007659319 34.7733054512 0.0033686716 - -14.4703919933 0.0007082815 33.6816237657 0.0033781182 - -14.3869891576 0.0006668802 32.9667965935 0.0034649224 - -14.3035863219 0.0006422099 32.6587840263 0.0036282834 - -14.2201834862 0.0006281309 32.5964655113 0.0038242914 - -14.1367806505 0.0006184132 32.6064920366 0.0040017221 - -14.0533778148 0.0006100827 32.5979000644 0.0041266344 - -13.9699749791 0.0005999642 32.4774548524 0.0041689435 - -13.8865721435 0.0005867220 32.2133156687 0.0041306302 - -13.8031693078 0.0005697836 31.8019272378 0.0040380123 - -13.7197664721 0.0005490100 31.2516053028 0.0039115176 - -13.6363636364 0.0005245506 30.5744388801 0.0037689932 - -13.5529608007 0.0004950682 29.7282143986 0.0036129288 - -13.4695579650 0.0004590501 28.6630251410 0.0034484333 - -13.3861551293 0.0004186602 27.4397814121 0.0032989850 - -13.3027522936 0.0003811617 26.2978945490 0.0032056097 - -13.2193494579 0.0003592168 25.7096598369 0.0032226081 - -13.1359466222 0.0003610398 26.0166114777 0.0033816773 - -13.0525437865 0.0003827508 27.0724344631 0.0036614394 - -12.9691409508 0.0004205230 28.6834989111 0.0040305728 - -12.8857381151 0.0004705638 30.6385726360 0.0044565876 - -12.8023352794 0.0005240871 32.5683495922 0.0048602669 - -12.7189324437 0.0005682323 34.0259623300 0.0051525369 - -12.6355296080 0.0005879450 34.5665625000 0.0052499524 - -12.5521267723 0.0005704071 33.8658338523 0.0051148046 - -12.4687239366 0.0005187735 32.0544112413 0.0048141128 - -12.3853211009 0.0004436567 29.4108372104 0.0044238179 - -12.3019182652 0.0003551272 26.1358978842 0.0040159366 - -12.2185154295 0.0002656159 22.4979062211 0.0036537952 - -12.1351125938 0.0001845813 18.7130544472 0.0033873707 - -12.0517097581 0.0001208082 15.1414642063 0.0032324662 - -11.9683069224 0.0000751699 11.9642737650 0.0031665310 - -11.8849040867 0.0000407671 8.8306287536 0.0031418328 - -11.8015012510 0.0000054141 3.2230689414 0.0030951820 - -11.7180984153 -0.0000497869 9.7790400259 0.0029745684 - -11.6346955796 -0.0001221907 15.3273620303 0.0028019312 - -11.5512927440 -0.0002036536 19.8141229244 0.0026295332 - -11.4678899083 -0.0002878662 23.6203068704 0.0024724215 - -11.3844870726 -0.0003656343 26.7318207852 0.0023378959 - -11.3010842369 -0.0004262669 29.0354739613 0.0022468289 - -11.2176814012 -0.0004602045 30.4085318206 0.0022101217 - -11.1342785655 -0.0004683542 30.9729863568 0.0022479681 - -11.0508757298 -0.0004508891 30.7415732934 0.0023859029 - -10.9674728941 -0.0004075091 29.6134606128 0.0026575971 - -10.8840700584 -0.0003408226 27.4704761057 0.0030917173 - -10.8006672227 -0.0002652271 24.5743034590 0.0036350600 - -10.7172643870 -0.0002008850 21.6573269875 0.0042094503 - -10.6338615513 -0.0001570140 19.3501623825 0.0047642274 - -10.5504587156 -0.0001456323 18.7836778891 0.0052198492 - -10.4670558799 -0.0001661734 20.1796246301 0.0055378050 - -10.3836530442 -0.0002027405 22.3804503700 0.0057203829 - -10.3002502085 -0.0002468749 24.7682649033 0.0057524665 - -10.2168473728 -0.0002839229 26.6305753065 0.0057124946 - -10.1334445371 -0.0003064351 27.7358568689 0.0056739798 - -10.0500417014 -0.0003211269 28.4540239625 0.0056749583 - -9.9666388657 -0.0003431239 29.4453392569 0.0056996242 - -9.8832360300 -0.0003884373 31.3190363973 0.0056999491 - -9.7998331943 -0.0004635451 34.1578021850 0.0056660409 - -9.7164303586 -0.0005549175 37.3065717731 0.0055944226 - -9.6330275229 -0.0006359402 39.9068261503 0.0055237417 - -9.5496246872 -0.0006912130 41.6185770973 0.0054763097 - -9.4662218515 -0.0007175049 42.4504712309 0.0054445165 - -9.3828190158 -0.0007062657 42.2012964801 0.0054241685 - -9.2994161802 -0.0006553212 40.7568514179 0.0054160410 - -9.2160133445 -0.0005778850 38.3901982108 0.0054016028 - -9.1326105088 -0.0004880692 35.3971104500 0.0054014885 - -9.0492076731 -0.0004067295 32.4002779783 0.0054407250 - -8.9658048374 -0.0003475279 29.9951730621 0.0054537248 - -8.8824020017 -0.0003104482 28.3515860711 0.0054396837 - -8.7989991660 -0.0002877960 27.2604658149 0.0054059522 - -8.7155963303 -0.0002819332 26.9051629132 0.0053201853 - -8.6321934946 -0.0003011623 27.6989875815 0.0051994152 - -8.5487906589 -0.0003479231 29.6501700238 0.0050409505 - -8.4653878232 -0.0004165759 32.3399065253 0.0048805097 - -8.3819849875 -0.0004962799 35.2414264279 0.0047464228 - -8.2985821518 -0.0005738033 37.8970525633 0.0046629443 - -8.2151793161 -0.0006344073 39.9034768984 0.0046140601 - -8.1317764804 -0.0006761551 41.2834129657 0.0045563336 - -8.0483736447 -0.0007000323 42.1187648323 0.0044617585 - -7.9649708090 -0.0007048956 42.4016486556 0.0043701987 - -7.8815679733 -0.0006941813 42.2275080010 0.0043290369 - -7.7981651376 -0.0006757855 41.8025784638 0.0043225002 - -7.7147623019 -0.0006572875 41.3303339611 0.0042961949 - -7.6313594662 -0.0006368515 40.7591878752 0.0042204238 - -7.5479566305 -0.0006048802 39.7909171634 0.0040783929 - -7.4645537948 -0.0005624313 38.4393374573 0.0039208659 - -7.3811509591 -0.0005096351 36.6768600814 0.0038175933 - -7.2977481234 -0.0004486998 34.5043982561 0.0038067408 - -7.2143452877 -0.0003922162 32.3331422083 0.0038931592 - -7.1309424520 -0.0003497075 30.5767414309 0.0040609338 - -7.0475396163 -0.0003327946 29.8313270314 0.0042803992 - -6.9641367807 -0.0003470634 30.4139209161 0.0044936503 - -6.8807339450 -0.0003949369 32.3299553918 0.0046432434 - -6.7973311093 -0.0004857232 35.6655000185 0.0047058640 - -6.7139282736 -0.0006203037 40.0491461059 0.0046758128 - -6.6305254379 -0.0007939002 45.0249612478 0.0045854828 - -6.5471226022 -0.0009926090 50.1056261029 0.0044513268 - -6.4637197665 -0.0011905579 54.7746772652 0.0043162396 - -6.3803169308 -0.0013597806 58.6678234128 0.0042255685 - -6.2969140951 -0.0014838066 61.6706623550 0.0042171321 - -6.2135112594 -0.0015622683 63.8942109619 0.0043102461 - -6.1301084237 -0.0016040892 65.5076808132 0.0044696562 - -6.0467055880 -0.0016257954 66.7995818678 0.0046699932 - -5.9633027523 -0.0016310894 67.8307735848 0.0049294178 - -5.8798999166 -0.0016131084 68.4234567259 0.0052048868 - -5.7964970809 -0.0015623407 68.3227817354 0.0054514577 - -5.7130942452 -0.0014765482 67.3757472340 0.0056380913 - -5.6296914095 -0.0013650398 65.6644248161 0.0058205231 - -5.5462885738 -0.0012343235 63.2334833601 0.0059630233 - -5.4628857381 -0.0010918958 60.1456705275 0.0060734110 - -5.3794829024 -0.0009501091 56.6448574541 0.0061459406 - -5.2960800667 -0.0008159835 52.9152122543 0.0061857258 - -5.2126772310 -0.0006957244 49.1786656871 0.0061903828 - -5.1292743953 -0.0006059959 46.1396441042 0.0061558261 - -5.0458715596 -0.0005437114 43.9096034782 0.0061387662 - -4.9624687239 -0.0005093555 42.6864240083 0.0061884729 - -4.8790658882 -0.0004975706 42.3739435736 0.0062994149 - -4.7956630525 -0.0004963945 42.5054130726 0.0064610426 - -4.7122602168 -0.0005027144 42.9466885957 0.0066256462 - -4.6288573812 -0.0005238361 43.9924234701 0.0067960179 - -4.5454545455 -0.0005671930 45.9261838208 0.0069487910 - -4.4620517098 -0.0006297818 48.5872640372 0.0070933475 - -4.3786488741 -0.0006936658 51.2744410758 0.0072960669 - -4.2952460384 -0.0007437950 53.4546862836 0.0075952141 - -4.2118432027 -0.0007658310 54.6355681035 0.0079241555 - -4.1284403670 -0.0007573123 54.6844572731 0.0082018471 - -4.0450375313 -0.0007438295 54.4505835507 0.0083287811 - -3.9616346956 -0.0007408258 54.5054543408 0.0083132309 - -3.8782318599 -0.0007608891 55.3516544360 0.0082167921 - -3.7948290242 -0.0008103787 57.2533817780 0.0081328190 - -3.7114261885 -0.0008768530 59.7768442203 0.0080180987 - -3.6280233528 -0.0009328354 62.0149764635 0.0079516776 - -3.5446205171 -0.0009624470 63.4798405951 0.0079565318 - -3.4612176814 -0.0009685233 64.2339511237 0.0080071990 - -3.3778148457 -0.0009581959 64.4660766167 0.0081340883 - -3.2944120100 -0.0009346528 64.2664589162 0.0084203502 - -3.2110091743 -0.0008912317 63.3770737373 0.0089458226 - -3.1276063386 -0.0008196104 61.3997452316 0.0097305714 - -3.0442035029 -0.0007130724 57.8477727105 0.0106462992 - -2.9608006672 -0.0005668570 52.0446091992 0.0115460767 - -2.8773978315 -0.0003873295 43.3232100660 0.0122455334 - -2.7939949958 -0.0002046452 31.6097403159 0.0126490575 - -2.7105921601 -0.0000726720 18.8450692093 0.0128387200 - -2.6271893244 -0.0000122630 7.7229032952 0.0129267416 - -2.5437864887 -0.0000242388 10.8107447295 0.0129338024 - -2.4603836530 -0.0000991440 21.7580619663 0.0128346179 - -2.3769808173 -0.0002031318 31.0242769932 0.0125803722 - -2.2935779817 -0.0002959811 37.3703611479 0.0122460033 - -2.2101751460 -0.0003642671 41.4173879682 0.0118230631 - -2.1267723103 -0.0004147090 44.1840376928 0.0113981770 - -2.0433694746 -0.0004502760 46.0781522794 0.0110015887 - -1.9599666389 -0.0004706066 47.2140719108 0.0107326506 - -1.8765638032 -0.0004860603 48.1575895365 0.0106771208 - -1.7931609675 -0.0005036832 49.2479705870 0.0106281900 - -1.7097581318 -0.0005173866 50.1796127057 0.0106102904 - -1.6263552961 -0.0005216950 50.7016900543 0.0106448157 - -1.5429524604 -0.0004966182 49.8168729679 0.0107526285 - -1.4595496247 -0.0004401545 47.2516752130 0.0109676192 - -1.3761467890 -0.0003690725 43.5891379958 0.0111852062 - -1.2927439533 -0.0003023828 39.7330427852 0.0115105372 - -1.2093411176 -0.0002471003 36.1520989955 0.0120591560 - -1.1259382819 -0.0002057062 33.1595764276 0.0128012756 - -1.0425354462 -0.0001858350 31.6311682838 0.0136157090 - -0.9591326105 -0.0001826819 31.4313589473 0.0143734161 - -0.8757297748 -0.0001917504 32.2316646134 0.0150161586 - -0.7923269391 -0.0002157721 34.1707969505 0.0154858588 - -0.7089241034 -0.0002539585 37.0041897698 0.0157228759 - -0.6255212677 -0.0002986351 40.0042514740 0.0157918582 - -0.5421184320 -0.0003449348 42.8167637892 0.0156785379 - -0.4587155963 -0.0003716063 44.2412078403 0.0154136892 - -0.3753127606 -0.0003773887 44.3910167605 0.0150855707 - -0.2919099249 -0.0003168938 40.5916173032 0.0148939866 - -0.2085070892 -0.0001502818 27.9017427462 0.0146450023 - -0.1251042535 0.0000156647 8.9697487074 0.0140347049 - -0.0417014178 0.0001198177 24.5987450083 0.0132832100 - 0.0345720418 0.0000197571 9.8983985612 0.0125513248 - 0.1037161255 -0.0001776899 29.4247669573 0.0120923268 - 0.1728602092 -0.0004736136 47.8720569150 0.0122537578 - 0.2420042929 -0.0006654565 56.6208013776 0.0122464267 - 0.3111483766 -0.0008017441 62.0377254528 0.0122011455 - 0.3802924602 -0.0008939983 65.2794325402 0.0122023593 - 0.4494365439 -0.0009529640 67.1279506481 0.0121716114 - 0.5185806276 -0.0010015389 68.4925777040 0.0119717350 - 0.5877247113 -0.0010781629 70.6887636412 0.0116829196 - 0.6568687950 -0.0012014867 74.2696707102 0.0114666555 - 0.7260128786 -0.0013526308 78.4967685518 0.0113430458 - 0.7951569623 -0.0014904385 82.1820615263 0.0112585607 - 0.8643010460 -0.0015895327 84.7239690607 0.0111523180 - 0.9334451297 -0.0016492890 86.2300646896 0.0109302836 - 1.0025892134 -0.0016760812 86.9844512122 0.0106342372 - 1.0717332970 -0.0016770819 87.2620480188 0.0103106198 - 1.1408773807 -0.0016541085 87.1069737189 0.0100467042 - 1.2100214644 -0.0016058783 86.4190347236 0.0098878341 - 1.2791655481 -0.0015412590 85.3241844677 0.0098371806 - 1.3483096318 -0.0014731239 84.0849448729 0.0098697572 - 1.4174537154 -0.0014059701 82.7980006168 0.0099589360 - 1.4865977991 -0.0013369658 81.3546480233 0.0101073078 - 1.5557418828 -0.0012686813 79.8101035729 0.0103197585 - 1.6248859665 -0.0012118804 78.4879026355 0.0105616583 - 1.6940300502 -0.0011715277 77.6171016674 0.0108057738 - 1.7631741338 -0.0011485549 77.3129697487 0.0110377885 - 1.8323182175 -0.0011393044 77.5205058058 0.0112211514 - 1.9014623012 -0.0011232780 77.5298745867 0.0113447717 - 1.9706063849 -0.0010872690 76.8401744465 0.0114393501 - 2.0397504686 -0.0010298336 75.3447686477 0.0115579795 - 2.1088945522 -0.0009478494 72.8418325767 0.0117498186 - 2.1780386359 -0.0008370694 68.9720249104 0.0119380503 - 2.2471827196 -0.0007028806 63.6811894019 0.0121102817 - 2.3163268033 -0.0005623900 57.3996431291 0.0122551078 - 2.3854708870 -0.0004336503 50.7818664104 0.0123808955 - 2.4546149706 -0.0003289423 44.5255433156 0.0124173841 - 2.5237590543 -0.0002516462 39.1819837671 0.0124312440 - 2.5929031380 -0.0001999038 35.1158565309 0.0125175749 - 2.6620472217 -0.0001715229 32.7082902620 0.0126826260 - 2.7311913054 -0.0001547897 31.2545057008 0.0129183267 - 2.8003353890 -0.0001349687 29.3701337556 0.0132323326 - 2.8694794727 -0.0001008816 25.5738891301 0.0136984682 - 2.9386235564 -0.0000466066 17.5195417552 0.0141622431 - 3.0077676401 0.0000255220 13.0697859990 0.0145978449 - 3.0769117238 0.0001086574 27.1959022991 0.0150573428 - 3.1460558074 0.0001966685 36.9034253803 0.0155689032 - 3.2151998911 0.0002814990 44.5057127083 0.0160555548 - 3.2843439748 0.0003550451 50.3352189781 0.0164526305 - 3.3534880585 0.0004073187 54.2131912342 0.0166691712 - 3.4226321422 0.0004306909 55.9516689443 0.0166484957 - 3.4917762258 0.0004124512 54.8598659168 0.0164230657 - 3.5609203095 0.0003578432 51.1348199963 0.0160236834 - 3.6300643932 0.0002988989 46.7361942563 0.0155645497 - 3.6992084769 0.0002409283 41.9061822289 0.0150874368 - 3.7683525605 0.0001579624 33.7941229599 0.0145519845 - 3.8374966442 0.0000292509 14.4410207532 0.0139453907 - 3.9066407279 -0.0001566027 33.0965943803 0.0132655360 - 3.9757848116 -0.0003940641 51.9329093172 0.0125359308 - 4.0449288953 -0.0006681534 66.9014047774 0.0119236561 - 4.1140729789 -0.0009327275 78.4158430057 0.0115424262 - 4.1832170626 -0.0011364460 86.2435545502 0.0113437444 - 4.2523611463 -0.0012605243 90.8816322132 0.0112460901 - 4.3215052300 -0.0013254758 93.5705820033 0.0112700548 - 4.3906493137 -0.0013505991 95.0507294402 0.0113974521 - 4.4597933973 -0.0013415435 95.4671108202 0.0115605622 - 4.5289374810 -0.0013062569 94.9986130319 0.0117294127 - 4.5980815647 -0.0012516543 93.7924337060 0.0118839034 - 4.6672256484 -0.0011808721 91.8572337409 0.0120327030 - 4.7363697321 -0.0010919038 89.0399088937 0.0120959183 - 4.8055138157 -0.0009925663 85.5547341562 0.0120762021 - 4.8746578994 -0.0008902365 81.6435430360 0.0120933638 - 4.9438019831 -0.0007898351 77.4710686319 0.0121403333 - 5.0129460668 -0.0006863545 72.7398268609 0.0122062395 - 5.0820901505 -0.0005715275 66.8616310708 0.0123258019 - 5.1512342341 -0.0004396744 59.0933640753 0.0124777345 - 5.2203783178 -0.0003013110 49.3165509002 0.0126544806 - 5.2895224015 -0.0001654936 36.8576433529 0.0126354135 - 5.3586664852 -0.0000405948 18.4094142982 0.0124206610 - 5.4278105689 0.0000667163 23.7979184542 0.0121022128 - 5.4969546525 0.0001555345 36.6176754435 0.0118578731 - 5.5660987362 0.0002338300 45.2002788739 0.0117488124 - 5.6352428199 0.0003062546 52.0191814406 0.0118402388 - 5.7043869036 0.0003694973 57.4018464427 0.0118234501 - 5.7735309873 0.0004211297 61.5640588545 0.0117594546 - 5.8426750709 0.0004645871 65.0160159864 0.0118037020 - 5.9118191546 0.0004993957 67.8526972446 0.0119943636 - 5.9809632383 0.0005163029 69.5244849329 0.0122450452 - 6.0501073220 0.0005228676 70.5781385698 0.0124646338 - 6.1192514057 0.0005318746 71.8668076879 0.0126752483 - 6.1883954893 0.0005389746 73.0661335968 0.0129306116 - 6.2575395730 0.0005303870 73.2017206589 0.0132715058 - 6.3266836567 0.0005127490 72.6756387115 0.0136829232 - 6.3958277404 0.0004897765 71.7083017409 0.0141684088 - 6.4649718241 0.0004605867 70.1836989320 0.0147140191 - 6.5341159077 0.0004325614 68.6416782345 0.0153020031 - 6.6032599914 0.0004173861 68.0561867312 0.0159115683 - 6.6724040751 0.0004333082 70.0110769965 0.0165405622 - 6.7415481588 0.0004961463 75.6654343824 0.0171338441 - 6.8106922425 0.0006099301 84.7769571984 0.0176545068 - 6.8798363261 0.0007524337 95.1551844093 0.0181839362 - 6.9489804098 0.0009075313 105.5669617490 0.0187822342 - 7.0181244935 0.0010645452 115.4005788178 0.0194977538 - 7.0872685772 0.0012096274 123.9917025423 0.0202166520 - 7.1564126609 0.0013282603 130.7826229290 0.0208303599 - 7.2255567445 0.0014202208 135.9991701886 0.0213349148 - 7.2947008282 0.0014866538 139.8177328079 0.0216943084 - 7.3638449119 0.0015226306 142.0536164231 0.0218275417 - 7.4329889956 0.0015417928 143.4276832164 0.0217420154 - 7.5021330793 0.0015528142 144.4406128878 0.0215303039 - 7.5712771629 0.0015544461 145.0601054303 0.0212603345 - 7.6404212466 0.0015490765 145.4436171169 0.0209751663 - 7.7095653303 0.0015450916 145.9680840796 0.0206733423 - 7.7787094140 0.0015357407 146.1893885819 0.0203219184 - 7.8478534977 0.0015084814 145.4855770609 0.0199787360 - 7.9169975813 0.0014727087 144.3411364943 0.0197375030 - 7.9861416650 0.0014453055 143.5673489589 0.0196508548 - 8.0552857487 0.0014220990 142.9070036769 0.0196330081 - 8.1244298324 0.0013939745 141.8860001513 0.0196171760 - 8.1935739161 0.0013565902 140.2963965350 0.0195972916 - 8.2627179997 0.0013128596 138.3604565234 0.0196342033 - 8.3318620834 0.0012668213 136.3502530066 0.0197941605 - 8.4010061671 0.0012288949 134.8820502653 0.0201565441 - 8.4701502508 0.0012113396 134.6762098652 0.0206969702 - 8.5392943345 0.0012300072 136.7002874554 0.0213686268 - 8.6084384181 0.0012813714 140.7305992792 0.0220795221 - 8.6775825018 0.0013601888 146.3687859482 0.0227711599 - 8.7467265855 0.0014700037 153.7312581684 0.0234010718 - 8.8158706692 0.0016039544 162.3559724173 0.0240414726 - 8.8850147529 0.0017511673 171.5153310439 0.0246665046 - 8.9541588365 0.0019077427 180.8789921847 0.0252119996 - 9.0233029202 0.0020687001 190.1115914660 0.0256515452 - 9.0924470039 0.0022286340 198.9113304167 0.0259930001 - 9.1615910876 0.0023738993 206.6004639484 0.0261955174 - 9.2307351713 0.0024991710 212.9826699184 0.0263081776 - 9.2998792549 0.0025940789 217.6113197816 0.0263135565 - 9.3690233386 0.0026459493 220.0301315061 0.0262301183 - 9.4381674223 0.0026543392 220.2782606489 0.0260478501 - 9.5073115060 0.0026353131 219.1677276585 0.0258085516 - 9.5764555897 0.0026080845 217.6128034814 0.0254877289 - 9.6455996733 0.0025908245 216.4637891472 0.0251606213 - 9.7147437570 0.0025989701 216.4925674799 0.0249324945 - 9.7838878407 0.0026384889 217.9775066435 0.0248093884 - 9.8530319244 0.0027032235 220.6466580402 0.0247975535 - 9.9221760081 0.0027988555 224.7259827727 0.0249072150 - 9.9913200917 0.0029163275 229.7212892336 0.0250833356 - 10.0604641754 0.0030296198 234.4382180182 0.0252943245 - 10.1296082591 0.0031337573 238.6607836148 0.0255506340 - 10.1987523428 0.0032399699 242.8598310907 0.0258417801 - 10.2678964265 0.0033461430 246.8978222978 0.0260654827 - 10.3370405101 0.0034444193 250.4786371417 0.0261523167 - 10.4061845938 0.0035266208 253.2993465833 0.0260287136 - 10.4753286775 0.0035921092 255.3769691660 0.0256250047 - 10.5444727612 0.0036348553 256.5254974189 0.0250653787 - 10.6136168449 0.0036594954 257.0962461370 0.0245983393 - 10.6827609285 0.0036892182 258.0344116860 0.0244194218 - 10.7519050122 0.0037248184 259.2799700449 0.0244026292 - 10.8210490959 0.0037547508 260.2240161827 0.0242528335 - 10.8901931796 0.0037631285 260.3396770964 0.0239118318 - 10.9593372633 0.0037576238 260.0525163788 0.0235594805 - 11.0284813469 0.0037518607 259.8984650936 0.0233314158 - 11.0976254306 0.0037581872 260.3321427829 0.0232884466 - 11.1667695143 0.0037770346 261.2941731302 0.0234117733 - 11.2359135980 0.0038042909 262.5166818640 0.0236586272 - 11.3050576816 0.0038285389 263.5762470701 0.0240153351 - 11.3742017653 0.0038411098 264.1873111814 0.0244316732 - 11.4433458490 0.0038325562 263.9273810610 0.0248322913 - 11.5124899327 0.0038214022 263.5556701802 0.0251761258 - 11.5816340164 0.0038220459 263.7124310459 0.0254851136 - 11.6507781000 0.0038368993 264.5292653427 0.0257875314 - 11.7199221837 0.0038626392 265.8869998108 0.0260942948 - 11.7890662674 0.0038878693 267.2641913985 0.0262928689 - 11.8582103511 0.0038993188 268.0099790569 0.0262618609 - 11.9273544348 0.0038913921 267.9071693359 0.0260396343 - 11.9964985184 0.0038704265 267.2184373217 0.0255897336 - 12.0656426021 0.0038413436 266.1994189791 0.0249766678 - 12.1347866858 0.0038123349 265.2600891917 0.0243771643 - 12.2039307695 0.0037864683 264.4580802314 0.0238574167 - 12.2730748532 0.0037560936 263.3674466935 0.0233666540 - 12.3422189368 0.0037221165 262.0689017078 0.0228993208 - 12.4113630205 0.0036869811 260.7584551985 0.0224605203 - 12.4805071042 0.0036621264 259.9861298685 0.0221122743 - 12.5496511879 0.0036518563 259.9038277393 0.0218768928 - 12.6187952716 0.0036568176 260.6183358971 0.0217918980 - 12.6879393552 0.0036659152 261.6521485253 0.0218507464 - 12.7570834389 0.0036677975 262.4839938483 0.0220022631 - 12.8262275226 0.0036597024 262.9859646517 0.0222483420 - 12.8953716063 0.0036423398 263.1826079052 0.0225380227 - 12.9645156900 0.0036291887 263.6269918375 0.0228313111 - 13.0336597736 0.0036396700 265.1226640251 0.0231496582 - 13.1028038573 0.0036904232 268.3720739174 0.0235085116 - 13.1719479410 0.0037751560 273.0635765576 0.0238620582 - 13.2410920247 0.0038787465 278.4988835744 0.0241716137 - 13.3102361084 0.0039881558 284.0259852419 0.0244133428 - 13.3793801920 0.0040892119 288.9602044811 0.0245267592 - 13.4485242757 0.0041704073 292.8153226607 0.0244895322 - 13.5176683594 0.0042294702 295.5629170496 0.0243219643 - 13.5868124431 0.0042703258 297.4046174778 0.0240615742 - 13.6559565268 0.0042843662 297.9679647273 0.0237158327 - 13.7251006104 0.0042620178 296.8920534249 0.0232876571 - 13.7942446941 0.0041998180 293.9822858512 0.0227731674 - 13.8633887778 0.0041066661 289.6543725883 0.0221647523 - 13.9325328615 0.0039881344 284.1171165887 0.0214400923 - 14.0016769452 0.0038522940 277.7898155962 0.0206688528 - 14.0708210288 0.0036956796 270.6208388596 0.0199034830 - 14.1399651125 0.0035180050 262.4877528064 0.0191504186 - 14.2091091962 0.0033315228 253.9021932900 0.0183726030 - 14.2782532799 0.0031645008 246.2184055498 0.0176757212 - 14.3473973636 0.0030545357 241.3870739415 0.0172764803 - 14.4165414472 0.0030112528 239.8799813193 0.0172461029 - 14.4856855309 0.0030145577 240.6099154568 0.0174447561 - 14.5548296146 0.0030510563 242.8118723044 0.0177158378 - 14.6239736983 0.0031043769 245.6919680046 0.0179193921 - 14.6931177820 0.0031569129 248.5000899442 0.0179697507 - 14.7622618656 0.0032067407 251.2092173745 0.0179274499 - 14.8314059493 0.0032573960 253.9537643741 0.0178770780 - 14.9005500330 0.0033092713 256.7915260989 0.0178504627 - 14.9696941167 0.0033650257 259.8028279638 0.0178546858 - 15.0388382004 0.0034226998 262.8707124483 0.0178637136 - 15.1079822840 0.0034712443 265.5011820197 0.0178321813 - 15.1771263677 0.0035162680 267.9642812643 0.0178485848 - 15.2462704514 0.0035676996 270.6640698337 0.0179758903 - 15.3154145351 0.0036280033 273.6990920218 0.0181963671 - 15.3845586188 0.0036949623 276.8715201382 0.0184766556 - 15.4537027024 0.0037622113 279.8536529128 0.0187555538 - 15.5228467861 0.0038137267 282.0042931312 0.0189059668 - 15.5919908698 0.0038316640 282.6185839631 0.0188546320 - 15.6611349535 0.0038173104 281.8312916826 0.0186591280 - 15.7302790372 0.0037898395 280.5187851199 0.0183577120 - 15.7994231208 0.0037634265 279.3718489840 0.0179859069 - 15.8685672045 0.0037465643 278.7711147618 0.0175780954 - 15.9377112882 0.0037402548 278.8354241017 0.0172217991 - 16.0068553719 0.0037492653 279.8887079849 0.0170688055 - 16.0759994556 0.0037728008 281.8405666946 0.0171056352 - 16.1451435392 0.0038077641 284.4898611583 0.0172254933 - 16.2142876229 0.0038381101 286.9533357772 0.0173002861 - 16.2834317066 0.0038478838 288.4416717685 0.0172787026 - 16.3525757903 0.0038325495 288.8042928131 0.0172544643 - 16.4217198740 0.0038022560 288.4762455357 0.0172112847 - 16.4908639576 0.0037691393 288.0271670722 0.0170967206 - 16.5600080413 0.0037431627 287.9148864385 0.0169242285 - 16.6291521250 0.0037283567 288.4052397097 0.0168109027 - 16.6982962087 0.0037380784 290.1204854413 0.0168925311 - 16.7674402924 0.0037715132 293.1258332922 0.0171649134 - 16.8365843760 0.0038280006 297.4747894008 0.0176206765 - 16.9057284597 0.0039105407 303.2797152438 0.0182491920 - 16.9748725434 0.0040131165 310.1717496147 0.0190258823 - 17.0440166271 0.0041374019 318.0634351286 0.0199043887 - 17.1131607108 0.0042759546 326.4838725265 0.0207763247 - 17.1823047944 0.0044177922 334.8879168910 0.0216152401 - 17.2514488781 0.0045507640 342.6850723958 0.0223910709 - 17.3205929618 0.0046728933 349.8709268184 0.0231250264 - 17.3897370455 0.0047843945 356.2975193043 0.0237694705 - 17.4588811292 0.0048739637 361.3746934702 0.0242810992 - 17.5280252128 0.0049292275 364.5053326233 0.0245870340 - 17.5971692965 0.0049565211 366.0072422499 0.0247464553 - 17.6663133802 0.0049625892 366.2884481759 0.0248134197 - 17.7354574639 0.0049486497 365.4320716908 0.0247875167 - 17.8046015476 0.0049237438 363.9650363770 0.0247122514 - 17.8737456312 0.0048868418 361.9247041891 0.0245909450 - 17.9428897149 0.0048261083 358.8497642005 0.0243857816 - 18.0120337986 0.0047301088 354.2427909624 0.0240458756 - 18.0811778823 0.0046061927 348.4516499967 0.0235851964 - 18.1503219660 0.0044731953 342.3636006942 0.0230916707 - 18.2194660496 0.0043395479 336.3802302435 0.0225752845 - 18.2886101333 0.0042181106 331.0506974510 0.0220932666 - 18.3577542170 0.0041241674 327.0331685260 0.0216932261 - 18.4268983007 0.0040684681 324.8636145738 0.0213964706 - 18.4960423844 0.0040525525 324.6112986999 0.0211765211 - 18.5651864680 0.0040622790 325.5681782231 0.0209869718 - 18.6343305517 0.0040920245 327.5352676911 0.0208698675 - 18.7034746354 0.0041408384 330.4849899667 0.0208525037 - 18.7726187191 0.0041932975 333.5346164619 0.0208332655 - 18.8417628027 0.0042414795 336.2791781645 0.0207767427 - 18.9109068864 0.0042906148 339.0101237830 0.0206936112 - 18.9800509701 0.0043452201 342.0343587101 0.0206361144 - 19.0491950538 0.0044017990 345.1755194431 0.0205916414 - 19.1183391375 0.0044663574 348.7638343282 0.0206036507 - 19.1874832211 0.0045424262 353.0049002440 0.0207248614 - 19.2566273048 0.0046198264 357.3397705429 0.0209072508 - 19.3257713885 0.0046892932 361.3305040259 0.0211456948 - 19.3949154722 0.0047453320 364.6862175691 0.0214076294 - 19.4640595559 0.0047977192 367.9480484092 0.0217170877 - 19.5332036395 0.0048540714 371.4491372635 0.0220598530 - 19.6023477232 0.0049179815 375.3676662029 0.0224538764 - 19.6714918069 0.0049865629 379.6530088587 0.0229118973 - 19.7406358906 0.0050622990 384.5318907780 0.0234801038 - 19.8097799743 0.0051473121 390.0612086808 0.0241297935 - 19.8789240579 0.0052381483 395.8950812154 0.0248038972 - 19.9480681416 0.0053322799 401.6858847606 0.0254645820 - 20.0172122253 0.0054186494 406.5916497978 0.0260116745 - 20.0863563090 0.0054929617 410.4083744173 0.0264128839 - 20.1555003927 0.0055539620 412.8982561819 0.0266516834 - 20.2246444763 0.0055796064 412.9113631225 0.0266221620 - 20.2937885600 0.0055640506 410.3566211797 0.0263023796 - 20.3629326437 0.0055044412 405.2814176504 0.0256893867 - 20.4320767274 0.0053867065 397.1102672513 0.0247161665 - 20.5012208111 0.0052111333 386.2791287771 0.0234605072 - 20.5703648947 0.0049892535 373.4040668734 0.0220373305 - 20.6395089784 0.0047370099 359.1297639837 0.0205397820 - 20.7086530621 0.0044769713 344.4674756366 0.0189965745 - 20.7777971458 0.0042370612 330.9401255382 0.0175160345 - 20.8469412295 0.0040588035 320.6712412020 0.0162797498 - 20.9160853131 0.0039574620 314.3729799240 0.0153409592 - 20.9852293968 0.0039103948 311.0068952113 0.0146538516 - 21.0543734805 0.0039002478 309.7324110035 0.0141634985 - 21.1235175642 0.0039076529 309.5020341665 0.0138054010 - 21.1926616479 0.0039234813 309.7085996141 0.0134994225 - 21.2618057315 0.0039488756 310.3656401988 0.0132542997 - 21.3309498152 0.0039860305 311.5231594696 0.0130682224 - 21.4000938989 0.0040272588 312.7835600031 0.0129126969 - 21.4692379826 0.0040597789 313.5493035298 0.0127581864 - 21.5383820663 0.0040764210 313.4667500163 0.0125713321 - 21.6075261499 0.0040823160 312.8644273635 0.0123896492 - 21.6766702336 0.0040800365 311.8537367555 0.0122055594 - 21.7458143173 0.0040752643 310.7192491152 0.0119978945 - 21.8149584010 0.0040746008 309.8994037349 0.0118079063 - 21.8841024847 0.0040825677 309.7588864190 0.0116953831 - 21.9532465683 0.0041077501 310.7387628384 0.0117038346 - 22.0223906520 0.0041473747 312.5690208685 0.0118162962 - 22.0915347357 0.0041887626 314.3712722486 0.0119115941 - 22.1606788194 0.0042090582 314.9032544404 0.0118544941 - 22.2298229031 0.0041971524 313.7550701108 0.0116513944 - 22.2989669867 0.0041609926 311.4609291737 0.0113588202 - 22.3681110704 0.0041232573 309.1837127179 0.0110978579 - 22.4372551541 0.0040944769 307.4880775045 0.0109192650 - 22.5063992378 0.0040731042 306.3425041653 0.0108436860 - 22.5755433215 0.0040580715 305.7459497171 0.0108735368 - 22.6446874051 0.0040459887 305.4592249670 0.0109716037 - 22.7138314888 0.0040278568 304.8467786841 0.0110305649 - 22.7829755725 0.0039955441 303.4991161004 0.0110174418 - 22.8521196562 0.0039506202 301.6263889124 0.0109831746 - 22.9212637399 0.0038951308 299.3521235515 0.0109574498 - 22.9904078235 0.0038436343 297.3566662874 0.0109467948 - 23.0595519072 0.0038194829 296.7532480071 0.0109907234 - 23.1286959909 0.0038246458 297.6518410088 0.0111269891 - 23.1978400746 0.0038561233 299.9164855036 0.0113883950 - 23.2669841583 0.0039173707 303.6613504299 0.0117633552 - 23.3361282419 0.0040078770 308.7140772338 0.0122342000 - 23.4052723256 0.0041173668 314.5122233991 0.0127663487 - 23.4744164093 0.0042322021 320.3443366312 0.0132570626 - 23.5435604930 0.0043457775 325.9721820197 0.0136530289 - 23.6127045767 0.0044665024 331.9581194154 0.0140428374 - 23.6818486603 0.0046011145 338.7014578862 0.0144914201 - 23.7509927440 0.0047397042 345.7549455706 0.0149603953 - 23.8201368277 0.0048801522 352.9845681269 0.0154452046 - 23.8892809114 0.0050161195 360.0225111504 0.0159177272 - 23.9584249951 0.0051438960 366.6859370887 0.0163811117 - 24.0275690787 0.0052618375 372.8000765076 0.0168205147 - 24.0967131624 0.0053670773 378.2116280009 0.0172157119 - 24.1658572461 0.0054576258 382.8702647660 0.0175696958 - 24.2350013298 0.0055318614 386.8001472964 0.0178775388 - 24.3041454135 0.0055814744 389.6407166034 0.0181323995 - 24.3732894971 0.0056003842 391.1868382525 0.0183300904 - 24.4424335808 0.0055969086 391.9158922913 0.0184948134 - 24.5115776645 0.0055798081 392.2397201060 0.0186503292 - 24.5807217482 0.0055458050 391.9991263428 0.0187714091 - 24.6498658319 0.0054901115 390.8050566041 0.0188380802 - 24.7190099155 0.0054133217 388.5261240504 0.0188241187 - 24.7881539992 0.0053262298 385.5640109410 0.0187204257 - 24.8572980829 0.0052287987 381.9693469873 0.0185452176 - 24.9264421666 0.0051334372 378.2958029623 0.0183401350 - 24.9955862503 0.0050505110 374.9942819419 0.0181487580 - 25.0647303339 0.0049789919 371.9968252928 0.0179464988 - 25.1338744176 0.0049183861 369.3818703557 0.0177691473 - 25.2030185013 0.0048742463 367.5024664337 0.0176618220 - 25.2721625850 0.0048501525 366.6085094828 0.0176443648 - 25.3413066687 0.0048464452 366.6932702656 0.0176932889 - 25.4104507523 0.0048550138 367.3465770815 0.0177590265 - 25.4795948360 0.0048577567 367.6852705877 0.0177715639 - 25.5487389197 0.0048512025 367.5201564471 0.0177188326 - 25.6178830034 0.0048455476 367.3162202723 0.0176241259 - 25.6870270871 0.0048514105 367.6609902301 0.0175328835 - 25.7561711707 0.0048799400 369.1729010096 0.0175270395 - 25.8253152544 0.0049376443 372.1069183801 0.0176215451 - 25.8944593381 0.0050293108 376.7203703879 0.0178436935 - 25.9636034218 0.0051551435 383.0701134922 0.0182118063 - 26.0327475055 0.0053043839 390.5266166326 0.0186803418 - 26.1018915891 0.0054560831 397.9529115096 0.0191359753 - 26.1710356728 0.0055960729 404.5558528387 0.0194917459 - 26.2401797565 0.0057269672 410.5731345801 0.0197821711 - 26.3093238402 0.0058500754 416.1013580737 0.0200325515 - 26.3784679238 0.0059559771 420.6650141757 0.0202067231 - 26.4476120075 0.0060364062 423.9218532832 0.0203140842 - 26.5167560912 0.0060861139 425.6182389222 0.0203364877 - 26.5859001749 0.0061040188 425.8814034230 0.0202891352 - 26.6550442586 0.0060973076 425.0508625107 0.0202060484 - 26.7241883422 0.0060655513 423.0869424304 0.0200662082 - 26.7933324259 0.0060144899 420.2682208227 0.0198838586 - 26.8624765096 0.0059548990 417.1522518840 0.0196962729 - 26.9316205933 0.0058907124 413.9309608722 0.0194940636 - 27.0007646770 0.0058128254 410.1017262162 0.0191836399 - 27.0699087606 0.0057260262 405.9644634497 0.0188295375 - 27.1390528443 0.0056470452 402.3419247071 0.0185185177 - 27.2081969280 0.0055751454 399.0820787574 0.0182127881 - 27.2773410117 0.0055089499 396.2011148144 0.0179296956 - 27.3464850954 0.0054496862 393.8614135372 0.0177201127 - 27.4156291790 0.0053969083 392.0153310058 0.0175721252 - 27.4847732627 0.0053575441 390.8591178040 0.0174677172 - 27.5539173464 0.0053329163 390.3793884133 0.0174068106 - 27.6230614301 0.0053119884 389.9022232218 0.0173219069 - 27.6922055138 0.0052780556 388.4496020039 0.0171167901 - 27.7613495974 0.0052228161 385.6552120527 0.0167426927 - 27.8304936811 0.0051533964 381.9912770846 0.0162515521 - 27.8996377648 0.0050915728 378.7009422831 0.0157838290 - 27.9687818485 0.0050476708 376.4427768256 0.0154091303 - 28.0379259322 0.0050162493 374.9377579937 0.0151220097 - 28.1070700158 0.0049908039 373.7790831862 0.0148817259 - 28.1762140995 0.0049651379 372.6307152129 0.0146630513 - 28.2453581832 0.0049388367 371.4812119556 0.0144803844 - 28.3145022669 0.0049159779 370.5424701815 0.0143586295 - 28.3836463506 0.0048940182 369.6801955146 0.0142888357 - 28.4527904342 0.0048681485 368.6733744465 0.0142630592 - 28.5219345179 0.0048405396 367.5665360413 0.0142688334 - 28.5910786016 0.0048223506 366.8348215817 0.0143279834 - 28.6602226853 0.0048181853 366.6792473578 0.0144374889 - 28.7293667690 0.0048185395 366.6183758969 0.0145598425 - 28.7985108526 0.0048156336 366.1978193366 0.0146278471 - 28.8676549363 0.0048031878 365.1101931664 0.0146060538 - 28.9367990200 0.0047850030 363.5947143234 0.0145176361 - 29.0059431037 0.0047650347 362.0271830454 0.0144166204 - 29.0750871874 0.0047479778 360.7119851632 0.0143409676 - 29.1442312710 0.0047433385 360.1920978926 0.0143522310 - 29.2133753547 0.0047577102 360.7220794301 0.0144708083 - 29.2825194384 0.0047909746 362.2005644720 0.0146766190 - 29.3516635221 0.0048391160 364.3698622885 0.0149289382 - 29.4208076058 0.0048849547 366.2991891217 0.0151660255 - 29.4899516894 0.0049168455 367.4672764483 0.0153353839 - 29.5590957731 0.0049353661 367.9096881207 0.0154207144 - 29.6282398568 0.0049492781 368.2121328906 0.0154479399 - 29.6973839405 0.0049711374 369.0718248334 0.0154822759 - 29.7665280242 0.0050010859 370.5484225254 0.0155542762 - 29.8356721078 0.0050336148 372.3321973982 0.0156764815 - 29.9048161915 0.0050678271 374.3257022087 0.0158419343 - 29.9739602752 0.0051045414 376.4642869000 0.0160449326 - 30.0431043589 0.0051396137 378.5344670199 0.0162471610 - 30.1122484426 0.0051706929 380.3680603697 0.0164349389 - 30.1813925262 0.0051925772 381.7365820755 0.0165758056 - 30.2505366099 0.0051986514 382.2625001979 0.0166440485 - 30.3196806936 0.0051843840 381.6126829136 0.0166126156 - 30.3888247773 0.0051528559 379.9592316206 0.0164700217 - 30.4579688610 0.0051083285 377.6005443661 0.0162311063 - 30.5271129446 0.0050524991 374.5654236595 0.0158997337 - 30.5962570283 0.0049834343 370.7730032564 0.0155074258 - 30.6654011120 0.0049088680 366.8011450733 0.0151331577 - 30.7345451957 0.0048601211 364.2743662942 0.0148987420 - 30.8036892794 0.0048600844 364.2603103728 0.0148546191 - 30.8728333630 0.0048970790 366.0515726137 0.0149247292 - 30.9419774467 0.0049540629 368.8148939888 0.0150521507 - 31.0111215304 0.0050233113 372.2684954666 0.0152357835 - 31.0802656141 0.0050985534 376.1144680183 0.0154580386 - 31.1494096978 0.0051652772 379.6328867228 0.0156751559 - 31.2185537814 0.0052052913 381.8318848180 0.0157775038 - 31.2876978651 0.0052369339 383.6309890794 0.0158610473 - 31.3568419488 0.0052581931 384.8637228430 0.0159403320 - 31.4259860325 0.0052786230 385.9231758317 0.0160194168 - 31.4951301162 0.0053103457 387.3904487397 0.0161427243 - 31.5642741998 0.0053519889 389.1570229377 0.0162895025 - 31.6334182835 0.0053854916 390.2787219974 0.0163618944 - 31.7025623672 0.0053994820 390.3033752240 0.0163093989 - 31.7717064509 0.0054053278 389.9644214845 0.0161946606 - 31.8408505346 0.0054086140 389.7002192273 0.0160941640 - 31.9099946182 0.0054097976 389.5850237265 0.0160510293 - 31.9791387019 0.0054108096 389.6779216574 0.0160821920 - 32.0482827856 0.0054146037 390.0302187297 0.0161505843 - 32.1174268693 0.0054280155 390.8862510895 0.0162499620 - 32.1865709530 0.0054523215 392.2751987029 0.0163767725 - 32.2557150366 0.0054854458 394.1373602901 0.0165459565 - 32.3248591203 0.0055223177 396.1961520741 0.0167428774 - 32.3940032040 0.0055572623 398.1723090538 0.0169370296 - 32.4631472877 0.0055910403 400.1200715470 0.0171354148 - 32.5322913714 0.0056257942 402.0701335936 0.0173267200 - 32.6014354550 0.0056600415 404.0096747633 0.0175175255 - 32.6705795387 0.0056977320 406.0744755257 0.0177333766 - 32.7397236224 0.0057471163 408.6062720916 0.0180194786 - 32.8088677061 0.0058072784 411.5070524611 0.0183335330 - 32.8780117898 0.0058713539 414.4301348562 0.0186396687 - 32.9471558734 0.0059326627 417.0878975606 0.0189145235 - 33.0162999571 0.0059915148 419.5114547213 0.0191808692 - 33.0854440408 0.0060385898 421.2580549703 0.0194186886 - 33.1545881245 0.0060657456 421.9645899070 0.0195797228 - 33.2237322082 0.0060752417 421.7206843916 0.0196373474 - 33.2928762918 0.0060762769 421.0259178692 0.0196321197 - 33.3620203755 0.0060851557 420.7625723077 0.0196575071 - 33.4311644592 0.0061176512 421.7179489569 0.0197973831 - 33.5003085429 0.0061682466 423.5525336327 0.0199972502 - 33.5694526266 0.0062311032 425.9783523019 0.0202469565 - 33.6385967102 0.0063050560 428.9422031617 0.0205432858 - 33.7077407939 0.0063796808 431.8825979260 0.0208227359 - 33.7768848776 0.0064490939 434.4899922968 0.0210584307 - 33.8460289613 0.0065198301 437.0998282203 0.0213011669 - 33.9151730449 0.0065855117 439.4664089755 0.0215147662 - 33.9843171286 0.0066347389 441.2097934011 0.0216704175 - 34.0534612123 0.0066581479 441.9603111644 0.0217405963 - 34.1226052960 0.0066685830 442.3377489150 0.0217850004 - 34.1917493797 0.0066715831 442.5342351241 0.0217979997 - 34.2608934633 0.0066591045 442.1194436163 0.0217506304 - 34.3300375470 0.0066296428 441.0567902961 0.0216459108 - 34.3991816307 0.0065900564 439.7312171991 0.0215149877 - 34.4683257144 0.0065548901 438.6562015851 0.0213891453 - 34.5374697981 0.0065230418 437.7459004906 0.0212909868 - 34.6066138817 0.0064914892 436.7443768922 0.0211969763 - 34.6757579654 0.0064542807 435.4272888965 0.0210744093 - 34.7449020491 0.0064125007 433.8198268046 0.0209453969 - 34.8140461328 0.0063682028 431.9064865425 0.0207654113 - 34.8831902165 0.0063295437 430.0493968332 0.0205489631 - 34.9523343001 0.0062947207 428.1552152629 0.0202961957 - 35.0214783838 0.0062573852 425.9499921645 0.0200190182 - 35.0906224675 0.0062169443 423.3610424838 0.0197183015 - 35.1597665512 0.0061783817 420.7159943906 0.0194041125 - 35.2289106349 0.0061451275 418.2774657077 0.0190655662 - 35.2980547185 0.0061238689 416.4422093395 0.0187620527 - 35.3671988022 0.0061200221 415.5553146355 0.0185624038 - 35.4363428859 0.0061247338 415.1866882735 0.0184373294 - 35.5054869696 0.0061273392 414.8243587128 0.0183395089 - 35.5746310533 0.0061330826 414.6533621447 0.0182606127 - 35.6437751369 0.0061434368 414.6105047391 0.0182019207 - 35.7129192206 0.0061573195 414.6562949423 0.0181675289 - 35.7820633043 0.0061732130 414.7295508940 0.0181549089 - 35.8512073880 0.0061916842 414.8268704929 0.0181526787 - 35.9203514717 0.0062093607 414.7868907055 0.0181328324 - 35.9894955553 0.0062282471 414.8146283388 0.0181343683 - 36.0586396390 0.0062532322 415.2220292004 0.0181691483 - 36.1277837227 0.0062837589 415.8931445511 0.0181971142 - 36.1969278064 0.0063132375 416.4809551446 0.0181853166 - 36.2660718901 0.0063339227 416.6697332604 0.0181051348 - 36.3352159737 0.0063418490 416.4128443525 0.0179978348 - 36.4043600574 0.0063423735 415.9390550663 0.0178980103 - 36.4735041411 0.0063418310 415.5718197630 0.0178324443 - 36.5426482248 0.0063373947 415.1525967903 0.0177868626 - 36.6117923085 0.0063259456 414.4399562736 0.0177103074 - 36.6809363921 0.0063076929 413.4072663702 0.0176006033 - 36.7500804758 0.0062859821 412.2742121257 0.0174936341 - 36.8192245595 0.0062648168 411.2722626370 0.0174187004 - 36.8883686432 0.0062451299 410.4323932122 0.0173715834 - 36.9575127269 0.0062223493 409.5268379678 0.0173164058 - 37.0266568105 0.0061925203 408.4468275941 0.0172429308 - 37.0958008942 0.0061668756 407.7756255331 0.0172419461 - 37.1649449779 0.0061533689 407.8395185327 0.0173266449 - 37.2340890616 0.0061445291 408.1760133055 0.0174367895 - 37.3032331453 0.0061277910 408.1105310809 0.0175052507 - 37.3723772289 0.0060897810 406.9976680104 0.0174835120 - 37.4415213126 0.0060334453 404.9851623606 0.0173898531 - 37.5106653963 0.0059762791 402.8775145914 0.0172859663 - 37.5798094800 0.0059254916 401.0208505457 0.0171883192 - 37.6489535637 0.0058775610 399.2280533874 0.0170677622 - 37.7180976473 0.0058341083 397.5260985330 0.0169455484 - 37.7872417310 0.0057883291 395.6744513829 0.0168194310 - 37.8563858147 0.0057443891 393.8190856728 0.0166665018 - 37.9255298984 0.0057066893 392.0601097079 0.0164943608 - 37.9946739821 0.0056662522 390.0034793147 0.0163066520 - 38.0638180657 0.0056211124 387.5885871773 0.0161006816 - 38.1329621494 0.0055747392 385.1399383543 0.0158798846 - 38.2021062331 0.0055281428 382.8648625511 0.0156735633 - 38.2712503168 0.0054847833 380.9142582529 0.0154768210 - 38.3403944005 0.0054431397 379.0805323456 0.0152829710 - 38.4095384841 0.0053974715 377.0116474749 0.0150854779 - 38.4786825678 0.0053500330 374.9169293786 0.0149322773 - 38.5478266515 0.0053106884 373.1350351253 0.0148055149 - 38.6169707352 0.0052836375 371.8099056344 0.0147125857 - 38.6861148189 0.0052713340 371.0957041644 0.0146762040 - 38.7552589025 0.0052722535 370.9545362594 0.0146892509 - 38.8244029862 0.0052834387 371.2447781468 0.0147384824 - 38.8935470699 0.0052991024 371.6500885331 0.0147697729 - 38.9626911536 0.0053163663 371.9542921657 0.0147175990 - 39.0318352373 0.0053375274 372.2928870679 0.0146037676 - 39.1009793209 0.0053635643 372.8976539685 0.0144978845 - 39.1701234046 0.0053972048 373.9950089963 0.0144389980 - 39.2392674883 0.0054337042 375.3660083779 0.0144408493 - 39.3084115720 0.0054636931 376.5423122892 0.0144890523 - 39.3775556557 0.0054923949 377.7352811659 0.0145906736 - 39.4466997393 0.0055263376 379.2062040296 0.0147432888 - 39.5158438230 0.0055670641 380.9605373415 0.0149356731 - 39.5849879067 0.0056106393 382.8144063896 0.0151410986 - 39.6541319904 0.0056482068 384.3967067312 0.0153108668 - 39.7232760741 0.0056775695 385.6900083280 0.0154643871 - 39.7924201577 0.0056965469 386.4929370976 0.0155763425 - 39.8615642414 0.0057088567 386.9537949352 0.0156473926 - 39.9307083251 0.0057279775 387.7658845128 0.0157084918 - 39.9998524088 0.0057616321 389.2501601773 0.0157657732 - 40.0689964925 0.0057985434 390.9821462369 0.0158285120 - 40.1381405761 0.0058319281 392.7284323968 0.0159009250 - 40.2072846598 0.0058583223 394.2141592594 0.0159412680 - 40.2764287435 0.0058772076 395.4914825445 0.0159651853 - 40.3455728272 0.0058970576 396.9760259835 0.0160301376 - 40.4147169109 0.0059202684 398.6803553989 0.0161331974 - 40.4838609945 0.0059424119 400.2043687342 0.0162226877 - 40.5530050782 0.0059623808 401.4470698528 0.0162912412 - 40.6221491619 0.0059860412 402.6841999152 0.0163715360 - 40.6912932456 0.0060071511 403.6318749422 0.0164477561 - 40.7604373293 0.0060155192 403.8414791688 0.0164859405 - 40.8295814129 0.0060099388 403.3420526034 0.0164824993 - 40.8987254966 0.0059989626 402.5832313153 0.0164607920 - 40.9678695803 0.0059938094 402.0395310051 0.0164380772 - 41.0370136640 0.0059976316 401.7445267677 0.0164022000 - 41.1061577477 0.0060000696 401.2509054436 0.0163353701 - 41.1753018313 0.0059968232 400.4354117185 0.0162431731 - 41.2444459150 0.0059818561 399.1289655673 0.0161174881 - 41.3135899987 0.0059493108 397.1067078403 0.0159597194 - 41.3827340824 0.0059065928 394.6941207229 0.0157807154 - 41.4518781660 0.0058690929 392.6319787679 0.0156188854 - 41.5217136906 0.0058469977 391.3516472305 0.0155117406 - 41.5922475703 0.0058399108 390.8734549766 0.0154707244 - 41.6634867889 0.0058388555 390.7590515802 0.0154628170 - 41.7354383996 0.0058413580 391.0151659801 0.0155031994 - 41.8081095265 0.0058413335 391.3053465893 0.0155617661 - 41.8815073646 0.0058358040 391.4046878584 0.0156403552 - 41.9556391811 0.0058298107 391.4568101723 0.0157470713 - 42.0305123158 0.0058267204 391.5329280808 0.0158444818 - 42.1061341818 0.0058345437 392.0330187106 0.0159346467 - 42.1825122665 0.0058512605 392.8018738103 0.0160274058 - 42.2596541320 0.0058809268 393.9994352303 0.0161752565 - 42.3375674162 0.0059253060 395.7379387329 0.0163886569 - 42.4162598332 0.0059796053 397.8699506613 0.0165979314 - 42.4957391744 0.0060360924 400.1965589566 0.0167980790 - 42.5760133090 0.0060932945 402.6307893724 0.0169974697 - 42.6570901849 0.0061496365 405.0948473267 0.0171868999 - 42.7389778296 0.0061979477 407.1933236106 0.0173175257 - 42.8216843508 0.0062285128 408.6228083631 0.0174351452 - 42.9052179371 0.0062384464 409.2114480992 0.0175066556 - 42.9895868594 0.0062302278 409.0659676114 0.0175249339 - 43.0747994708 0.0062129968 408.7859206662 0.0175407598 - 43.1608642084 0.0061921667 408.6129806596 0.0175399581 - 43.2477895933 0.0061764661 408.8190668884 0.0175642931 - 43.3355842321 0.0061608932 408.9890635687 0.0176161354 - 43.4242568173 0.0061377059 408.7278186854 0.0176307509 - 43.5138161283 0.0061078062 408.0583928743 0.0175718175 - 43.6042710324 0.0060604183 406.5078543699 0.0174256941 - 43.6956304856 0.0059950809 403.9237600849 0.0172166762 - 43.7879035333 0.0059166904 400.4804747824 0.0169585686 - 43.8810993115 0.0058483314 397.2418020978 0.0167213651 - 43.9752270475 0.0058121501 395.0658572525 0.0165387583 - 44.0702960608 0.0058104678 394.0634853577 0.0164167533 - 44.1663157643 0.0058286235 393.6383210814 0.0163398594 - 44.2632956648 0.0058347709 392.7086085171 0.0162459236 - 44.3612453643 0.0058174748 390.8851914461 0.0160878220 - 44.4601745608 0.0057753963 388.1181214196 0.0158482225 - 44.5600930493 0.0057019837 384.2090022397 0.0154939829 - 44.6610107226 0.0056035191 379.3792938271 0.0150578510 - 44.7629375727 0.0054943130 374.3646247358 0.0146182499 - 44.8658836913 0.0053924368 370.0427929716 0.0142411006 - 44.9698592710 0.0053048714 366.7189893101 0.0139606131 - 45.0748746066 0.0052289688 364.1154408072 0.0137442634 - 45.1809400955 0.0051562473 361.7908565546 0.0135415444 - 45.2880662393 0.0050996257 360.2654818100 0.0133808335 - 45.3962636446 0.0050735300 360.0421467056 0.0133237284 - 45.5055430239 0.0050775023 361.0709885403 0.0133807113 - 45.6159151970 0.0050985030 362.6826994778 0.0134486227 - 45.7273910918 0.0051451741 365.3693940436 0.0135773157 - 45.8399817456 0.0052211034 369.3159784888 0.0138340808 - 45.9536983059 0.0053139921 373.8439906828 0.0141371290 - 46.0685520318 0.0054144231 378.6819230889 0.0145094622 - 46.1845542950 0.0055059733 383.0726694039 0.0148905033 - 46.3017165808 0.0055800702 386.5941747312 0.0152147880 - 46.4200504895 0.0056332659 389.0582028718 0.0154171661 - 46.5395677372 0.0056747656 390.7127493240 0.0154882181 - 46.6602801574 0.0057231666 392.4406786600 0.0155528877 - 46.7821997019 0.0057822381 394.5004744250 0.0156458151 - 46.9053384417 0.0058411712 396.3799620067 0.0157373777 - 47.0297085690 0.0058967907 398.1188035348 0.0158399771 - 47.1553223976 0.0059523924 399.9965771685 0.0159379338 - 47.2821923644 0.0060144467 402.3012304055 0.0160625599 - 47.4103310309 0.0060956254 405.5760203534 0.0162895332 - 47.5397510841 0.0061987913 409.7074351811 0.0166039639 - 47.6704653378 0.0062967215 413.4117187791 0.0168350128 - 47.8024867340 0.0063554161 415.4558118396 0.0169119448 - 47.9358283442 0.0063589859 415.0984702254 0.0168401467 - 48.0705033705 0.0063300635 413.1896878947 0.0167328293 - 48.2065251470 0.0062995395 411.0930318007 0.0166346446 - 48.3439071414 0.0062760144 409.3584257452 0.0165333020 - 48.4826629556 0.0062727099 408.7436727479 0.0164787208 - 48.6228063281 0.0062996249 409.6578471109 0.0165323313 - 48.7643511342 0.0063432849 411.5026837763 0.0166643652 - 48.9073113884 0.0063690813 412.7351120502 0.0167312735 - 49.0517012451 0.0063467052 412.0847725951 0.0166601605 - 49.1975350004 0.0062687887 409.5216538562 0.0164778044 - 49.3448270933 0.0061657286 406.3927580348 0.0163020584 - 49.4935921071 0.0060596339 403.5420574650 0.0161827774 - 49.6438447710 0.0059519032 400.7989512636 0.0161028196 - 49.7955999616 0.0058473169 398.1578621817 0.0160450374 - 49.9488727041 0.0057804300 396.8796534243 0.0161074190 - 50.1036781740 0.0057672172 397.5171118042 0.0162882341 - 50.2600316985 0.0057953972 399.5158310747 0.0165851638 - 50.4179487584 0.0058438152 401.9061419435 0.0168980248 - 50.5774449888 0.0059080430 404.6935761757 0.0172126854 - 50.7385361816 0.0059827883 407.8385672852 0.0174725027 - 50.9012382862 0.0060523204 410.6028068655 0.0176267482 - 51.0655674120 0.0061085969 412.5760157420 0.0177152679 - 51.2315398289 0.0061384359 413.4024157968 0.0177894212 - 51.3991719701 0.0061575486 413.6805038494 0.0178691595 - 51.5684804326 0.0061706572 413.5600039354 0.0179599073 - 51.7394819798 0.0061731743 412.8718375033 0.0180190035 - 51.9121935425 0.0061684830 411.9901806071 0.0180775843 - 52.0866322208 0.0061701972 411.5956896732 0.0181350865 - 52.2628152858 0.0061807028 411.7700377119 0.0181564658 - 52.4407601815 0.0061823490 412.0154909053 0.0181790984 - 52.6204845262 0.0061757006 412.3374490937 0.0182270603 - 52.8020061143 0.0061414125 411.6901829350 0.0182030806 - 52.9853429183 0.0060731632 409.5726517161 0.0180308720 - 53.1705130904 0.0060054660 407.2416543480 0.0178525674 - 53.3575349641 0.0059567666 405.3216346922 0.0177139738 - 53.5464270566 0.0059284781 404.0825069471 0.0176051585 - 53.7372080700 0.0059265110 403.7362562701 0.0175847176 - 53.9298968936 0.0059296835 403.2666404292 0.0175190956 - 54.1245126054 0.0059274828 402.4349095657 0.0173945185 - 54.3210744743 0.0058977616 400.6981051343 0.0172058519 - 54.5196019619 0.0058439738 398.3922847694 0.0169813709 - 54.7201147244 0.0057770837 395.8460033328 0.0167606584 - 54.9226326145 0.0057157565 393.5769931196 0.0165897034 - 55.1271756835 0.0056433073 390.9803667819 0.0164147953 - 55.3337641832 0.0055702832 388.4558099639 0.0163018930 - 55.5424185679 0.0055164441 386.5146260072 0.0162757795 - 55.7531594964 0.0054810840 385.0432633690 0.0162699219 - 55.9660078342 0.0054810340 384.6147720676 0.0162878273 - 56.1809846554 0.0055185228 385.6523906378 0.0163621840 - 56.3981112448 0.0055455444 386.3356176550 0.0163487577 - 56.6174091001 0.0055671030 386.7611085414 0.0163418150 - 56.8388999340 0.0056120896 388.0263618339 0.0164147707 - 57.0626056762 0.0056613397 389.3875833348 0.0165181589 - 57.2885484758 0.0056923010 390.1584030721 0.0166115879 - 57.5167507034 0.0056979421 390.0312600296 0.0166407054 - 57.7472349533 0.0056791191 389.0383141820 0.0165901521 - 57.9800240457 0.0056479903 387.9128855472 0.0165497632 - 58.2151410290 0.0056156456 387.1114214432 0.0165322531 - 58.4526091821 0.0055721421 386.1443566008 0.0164901778 - 58.6924520168 0.0055083270 384.4237330098 0.0163708165 - 58.9346932799 0.0054244457 381.6569554189 0.0161599308 - 59.1793569555 0.0053290297 377.8928890625 0.0158655853 - 59.4264672679 0.0052425078 373.9180423789 0.0155267078 - 59.6760486835 0.0052020014 371.5829566243 0.0152823097 - 59.9281259131 0.0051976787 370.8819420977 0.0152009806 - 60.1827239151 0.0051921815 370.4291875823 0.0151492706 - 60.4398678971 0.0051739901 369.5750153752 0.0149589464 - 60.6995833190 0.0051390209 367.9360651892 0.0146287802 - 60.9618958950 0.0051021370 366.2854381259 0.0143683390 - 61.2268315968 0.0050854871 365.6256642813 0.0142871408 - 61.4944166556 0.0050898457 365.8817293552 0.0143275237 - 61.7646775651 0.0050975675 366.1639929181 0.0143768455 - 62.0376410836 0.0051173427 366.6161588167 0.0144270663 - 62.3133342373 0.0051741283 368.1066378052 0.0145230363 - 62.5917843225 0.0052504253 370.3405853678 0.0146799908 - 62.8730189086 0.0053225130 372.5256009090 0.0148469918 - 63.1570658405 0.0053817701 373.9408499630 0.0149370016 - 63.4439532418 0.0054170406 374.1101644000 0.0149266861 - 63.7337095170 0.0054147709 372.7236983481 0.0147896641 - 64.0263633551 0.0053637943 369.9120048157 0.0145752001 - 64.3219437315 0.0052641635 365.7282933267 0.0142557281 - 64.6204799116 0.0051286001 360.4920139715 0.0138465808 - 64.9220014536 0.0049685685 354.5703853568 0.0134530750 - 65.2265382110 0.0048497478 350.5613019040 0.0132565742 - 65.5341203360 0.0048143315 350.1025993501 0.0132985284 - 65.8447782822 0.0048446771 352.5004970432 0.0135467765 - 66.1585428079 0.0048901124 355.6319881898 0.0138412244 - 66.4754449788 0.0049275787 358.4914287306 0.0141398937 - 66.7955161714 0.0049709262 361.4681872161 0.0144304508 - 67.1187880760 0.0050191182 364.2445757698 0.0146332970 - 67.4452926996 0.0050563737 366.4455826681 0.0147807373 - 67.7750623695 0.0050790639 367.9073283315 0.0148499028 - 68.1081297360 0.0050957079 368.7470424671 0.0148721646 - 68.4445277763 0.0051085750 369.0663953872 0.0148797878 - 68.7842897969 0.0051092688 368.7265815867 0.0148393239 - 69.1274494377 0.0050763288 367.0248230426 0.0146778887 - 69.4740406749 0.0050144317 364.2434300341 0.0144580327 - 69.8240978245 0.0049587783 361.9229976361 0.0143117620 - 70.1776555456 0.0049205042 360.5260301868 0.0142227603 - 70.5347488439 0.0048878689 359.5024801863 0.0141593990 - 70.8954130752 0.0048488690 358.3087900870 0.0140846753 - 71.2596839489 0.0048065287 356.9288187533 0.0140300265 - 71.6275975312 0.0047824238 356.2321464211 0.0140741087 - 71.9991902494 0.0047897255 356.7598248634 0.0142241173 - 72.3744988947 0.0048165580 358.1208857477 0.0144142667 - 72.7535606265 0.0048311377 359.0199162784 0.0145494319 - 73.1364129756 0.0048155254 358.5655695708 0.0145338456 - 73.5230938483 0.0047727710 356.8523230814 0.0144395008 - 73.9136415296 0.0047212396 354.5006304717 0.0142730477 - 74.3080946877 0.0046849614 352.6613706914 0.0140774260 - 74.7064923775 0.0046703122 351.8091657400 0.0139191546 - 75.1088740441 0.0046778177 351.8424960271 0.0138881671 - 75.5152795274 0.0046725248 351.4577421643 0.0138535033 - 75.9257490655 0.0046365425 350.0147595784 0.0137043354 - 76.3403232990 0.0046125053 349.4289048171 0.0135796168 diff --git a/cases/compression-ramp-Ma6/flow1d-inlet.dat b/cases/compression-ramp-Ma6/flow1d-inlet.dat deleted file mode 100644 index 739445d..0000000 --- a/cases/compression-ramp-Ma6/flow1d-inlet.dat +++ /dev/null @@ -1,221 +0,0 @@ - variables=y, d, u, v, T - 0.00000000 0.27366179 0.00000000 0.00000000 3.72000000 - 0.01000000 0.27267828 0.00402539 -0.00000122 3.73192920 - 0.02022226 0.27171693 0.00811190 -0.00000231 3.74375379 - 0.03067171 0.27079092 0.01225300 -0.00000383 3.75537800 - 0.04135342 0.26989447 0.01645070 -0.00000459 3.76682833 - 0.05227253 0.26902442 0.02070767 -0.00000390 3.77810953 - 0.06343433 0.26818036 0.02502905 -0.00000231 3.78923226 - 0.07484421 0.26735623 0.02942151 0.00000094 3.80024077 - 0.08650768 0.26655056 0.03389190 0.00000514 3.81115652 - 0.09843039 0.26575841 0.03844723 0.00001051 3.82202420 - 0.11061808 0.26497728 0.04309385 0.00001658 3.83287123 - 0.12307666 0.26420391 0.04783735 0.00002318 3.84372921 - 0.13581214 0.26343604 0.05268236 0.00003000 3.85461945 - 0.14883067 0.26267195 0.05763243 0.00003678 3.86555670 - 0.16213856 0.26191043 0.06269019 0.00004332 3.87654840 - 0.17574222 0.26115107 0.06785743 0.00004940 3.88759276 - 0.18964823 0.26039392 0.07313525 0.00005494 3.89868203 - 0.20386332 0.25963963 0.07852433 0.00005981 3.90980068 - 0.21839434 0.25888922 0.08402509 0.00006401 3.92092892 - 0.23324833 0.25814409 0.08963785 0.00006754 3.93204191 - 0.24843247 0.25740583 0.09536308 0.00007045 3.94311259 - 0.26395408 0.25667622 0.10120143 0.00007281 3.95411167 - 0.27982068 0.25595708 0.10715385 0.00007473 3.96500937 - 0.29603992 0.25525023 0.11322164 0.00007629 3.97577571 - 0.31261964 0.25455747 0.11940642 0.00007760 3.98638147 - 0.32956787 0.25388048 0.12571019 0.00007878 3.99679844 - 0.34689278 0.25322088 0.13213526 0.00007993 4.00699995 - 0.36460276 0.25258011 0.13868422 0.00008115 4.01696073 - 0.38270635 0.25195957 0.14535988 0.00008251 4.02665677 - 0.40121231 0.25136056 0.15216521 0.00008407 4.03606485 - 0.42012958 0.25078436 0.15910327 0.00008586 4.04516180 - 0.43946730 0.25023226 0.16617719 0.00008790 4.05392413 - 0.45923482 0.24970556 0.17339015 0.00009020 4.06232781 - 0.47944168 0.24920559 0.18074530 0.00009276 4.07034808 - 0.50009766 0.24873371 0.18824586 0.00009557 4.07795907 - 0.52121274 0.24829138 0.19589505 0.00009867 4.08513365 - 0.54279712 0.24788012 0.20369613 0.00010202 4.09184291 - 0.56486122 0.24750159 0.21165237 0.00010564 4.09805606 - 0.58741572 0.24715755 0.21976712 0.00010955 4.10374012 - 0.61047151 0.24684991 0.22804373 0.00011374 4.10885984 - 0.63403974 0.24658075 0.23648560 0.00011822 4.11337753 - 0.65813179 0.24635227 0.24509615 0.00012299 4.11725303 - 0.68275930 0.24616686 0.25387888 0.00012806 4.12044350 - 0.70793418 0.24602707 0.26283723 0.00013340 4.12290337 - 0.73366859 0.24593565 0.27197464 0.00013900 4.12458411 - 0.75997497 0.24589553 0.28129454 0.00014485 4.12543435 - 0.78686603 0.24590991 0.29080028 0.00015089 4.12539952 - 0.81435477 0.24598218 0.30049500 0.00015711 4.12442218 - 0.84245447 0.24611603 0.31038158 0.00016350 4.12244087 - 0.87117870 0.24631519 0.32046320 0.00017013 4.11939219 - 0.90054135 0.24658385 0.33074342 0.00017704 4.11520895 - 0.93055662 0.24692619 0.34122817 0.00018491 4.10982566 - 0.96123899 0.24734629 0.35192578 0.00019378 4.10318543 - 0.99260331 0.24784940 0.36284271 0.00020276 4.09521962 - 1.02466473 0.24844087 0.37398437 0.00021231 4.08585785 - 1.05743873 0.24912643 0.38535600 0.00022237 4.07501784 - 1.09094117 0.24991307 0.39696026 0.00023279 4.06260761 - 1.12518822 0.25080844 0.40879934 0.00024358 4.04853101 - 1.16019644 0.25182090 0.42087575 0.00025477 4.03268840 - 1.19598275 0.25295962 0.43319261 0.00026643 4.01497612 - 1.23256444 0.25423456 0.44575369 0.00027867 3.99528653 - 1.26995918 0.25565666 0.45856306 0.00029166 3.97350779 - 1.30818505 0.25723794 0.47162495 0.00030560 3.94952374 - 1.34726053 0.25899174 0.48494344 0.00032061 3.92321375 - 1.38720449 0.26093298 0.49852237 0.00033672 3.89445242 - 1.42803623 0.26307840 0.51236516 0.00035380 3.86310917 - 1.46977550 0.26544681 0.52647470 0.00037175 3.82904744 - 1.51244245 0.26805955 0.54085332 0.00039049 3.79212420 - 1.55605772 0.27094074 0.55550265 0.00040997 3.75218822 - 1.60064236 0.27411786 0.57042361 0.00043037 3.70907772 - 1.64621794 0.27762233 0.58561624 0.00045213 3.66261779 - 1.69280647 0.28149090 0.60107988 0.00047561 3.61261846 - 1.74043047 0.28576755 0.61681305 0.00050055 3.55887153 - 1.78911295 0.29050534 0.63281378 0.00052671 3.50113832 - 1.83887743 0.29576813 0.64907917 0.00055393 3.43914618 - 1.88974798 0.30163263 0.66560471 0.00058125 3.37260792 - 1.94174916 0.30818952 0.68238401 0.00060897 3.30122896 - 1.99490611 0.31554833 0.69940656 0.00063936 3.22468259 - 2.04924452 0.32384162 0.71665837 0.00067267 3.14268104 - 2.10479064 0.33322309 0.73411914 0.00070932 3.05504331 - 2.16157132 0.34385537 0.75175871 0.00075163 2.96179687 - 2.21961400 0.35588477 0.76953412 0.00080250 2.86337072 - 2.27894673 0.36940808 0.78739007 0.00086447 2.76074655 - 2.33959817 0.38443903 0.80525742 0.00093818 2.65545346 - 2.40159764 0.40086995 0.82305332 0.00102217 2.54947533 - 2.46497509 0.41849127 0.84068418 0.00111348 2.44486228 - 2.52976117 0.43713626 0.85805336 0.00120543 2.34295338 - 2.59598716 0.45689962 0.87506365 0.00128896 2.24363069 - 2.66368508 0.47831410 0.89160612 0.00135726 2.14497252 - 2.73288765 0.50237274 0.90754944 0.00140909 2.04371312 - 2.80362829 0.53039725 0.92273038 0.00145043 1.93644852 - 2.87594121 0.56381395 0.93695784 0.00149201 1.82117762 - 2.94986134 0.60380471 0.95002725 0.00154576 1.69874571 - 3.02542440 0.65079316 0.96173503 0.00161847 1.57345852 - 3.10266692 0.70385762 0.97188783 0.00170695 1.45219340 - 3.18162621 0.76044593 0.98032606 0.00179932 1.34205824 - 3.26234043 0.81684899 0.98696951 0.00188303 1.24800752 - 3.34484860 0.86918407 0.99186708 0.00195138 1.17200156 - 3.42919057 0.91420174 0.99520424 0.00200263 1.11375654 - 3.51540712 0.94948471 0.99724602 0.00203829 1.07207698 - 3.60353989 0.97387516 0.99831339 0.00205989 1.04511153 - 3.69363149 0.98878546 0.99878930 0.00207373 1.02934766 - 3.78572545 0.99737422 0.99900167 0.00208146 1.02050905 - 3.87986628 1.00222169 0.99913221 0.00208797 1.01559811 - 3.97609945 1.00499894 0.99923693 0.00210496 1.01279244 - 4.07447149 1.00676667 0.99931881 0.00211351 1.01104274 - 4.17502993 1.00789419 0.99937166 0.00211671 1.00996806 - 4.27782336 1.00859976 0.99939345 0.00211884 1.00931844 - 4.38290146 1.00911735 0.99940562 0.00211998 1.00889947 - 4.49031500 1.00948289 0.99942164 0.00212626 1.00861761 - 4.60011590 1.00975412 0.99943700 0.00212789 1.00832842 - 4.71235721 1.00988201 0.99944809 0.00212405 1.00817810 - 4.82709317 1.01003099 0.99945380 0.00212496 1.00802162 - 4.94437924 1.01022032 0.99945495 0.00212692 1.00787534 - 5.06427208 1.01037836 0.99946554 0.00213726 1.00779064 - 5.18682964 1.01057163 0.99947594 0.00213977 1.00763862 - 5.31211114 1.01071736 0.99948276 0.00214108 1.00753805 - 5.44017712 1.01084274 0.99949147 0.00214281 1.00742328 - 5.57108948 1.01094471 0.99948805 0.00214577 1.00735332 - 5.70491146 1.01107598 0.99949621 0.00215121 1.00725812 - 5.84170775 1.01118188 0.99950057 0.00215427 1.00717331 - 5.98154445 1.01126795 0.99950545 0.00215712 1.00709469 - 6.12448913 1.01134488 0.99951168 0.00215913 1.00700714 - 6.27061087 1.01143415 0.99951835 0.00216143 1.00694577 - 6.41998029 1.01152997 0.99951683 0.00216723 1.00691082 - 6.57266957 1.01161100 0.99952078 0.00217342 1.00686556 - 6.72875248 1.01165802 0.99952713 0.00217113 1.00680493 - 6.88830447 1.01168620 0.99952968 0.00216849 1.00674659 - 7.05140263 1.01175576 0.99953436 0.00217137 1.00670961 - 7.21812578 1.01187108 0.99953424 0.00218083 1.00668880 - 7.38855449 1.01198367 0.99953608 0.00218981 1.00666375 - 7.56277111 1.01203261 0.99953797 0.00219002 1.00661040 - 7.74085984 1.01206153 0.99954235 0.00218561 1.00654094 - 7.92290673 1.01211625 0.99954402 0.00218765 1.00650339 - 8.10899977 1.01223584 0.99954670 0.00219783 1.00647376 - 8.29922887 1.01231598 0.99954930 0.00220544 1.00644773 - 8.49368597 1.01234908 0.99955311 0.00220604 1.00640956 - 8.69246504 1.01236509 0.99955607 0.00220176 1.00638044 - 8.89566213 1.01239209 0.99955774 0.00220116 1.00635111 - 9.10337544 1.01243717 0.99955717 0.00220701 1.00634614 - 9.31570535 1.01252299 0.99955605 0.00221712 1.00634757 - 9.53275447 1.01259030 0.99955612 0.00222362 1.00633413 - 9.75462768 1.01262017 0.99955898 0.00222461 1.00629833 - 9.98143220 1.01266378 0.99956237 0.00222626 1.00627421 - 10.21327763 1.01272780 0.99956323 0.00223255 1.00627515 - 10.45027602 1.01277324 0.99956494 0.00223779 1.00626315 - 10.69254189 1.01279058 0.99956684 0.00223873 1.00624048 - 10.94019231 1.01280949 0.99956740 0.00224181 1.00622753 - 11.19334697 1.01285611 0.99956762 0.00224859 1.00623337 - 11.45212819 1.01290490 0.99956846 0.00225688 1.00624916 - 11.71666104 1.01293606 0.99957030 0.00226251 1.00625345 - 11.98707334 1.01294765 0.99956966 0.00226529 1.00625049 - 12.26349578 1.01295539 0.99956651 0.00226602 1.00625417 - 12.54606193 1.01300653 0.99956711 0.00227172 1.00624504 - 12.83490835 1.01309224 0.99957268 0.00227894 1.00622517 - 13.13017460 1.01317297 0.99957787 0.00228537 1.00619552 - 13.43200340 1.01322429 0.99957341 0.00228961 1.00616656 - 13.74054058 1.01324669 0.99956146 0.00229385 1.00617199 - 14.05593525 1.01326433 0.99955605 0.00229746 1.00618649 - 14.37833982 1.01329924 0.99956273 0.00230294 1.00619559 - 14.70791010 1.01336499 0.99957353 0.00231084 1.00617487 - 15.04480534 1.01343066 0.99957916 0.00232001 1.00615953 - 15.38918835 1.01347467 0.99958229 0.00232325 1.00613948 - 15.74122556 1.01356867 0.99959045 0.00232840 1.00607462 - 16.10108708 1.01371740 0.99960044 0.00233618 1.00598103 - 16.46894681 1.01379972 0.99959972 0.00234198 1.00594064 - 16.84498253 1.01375508 0.99958295 0.00234850 1.00602162 - 17.22937594 1.01369658 0.99956679 0.00235822 1.00615829 - 17.62231281 1.01369208 0.99956819 0.00236349 1.00620607 - 18.02398302 1.01374660 0.99957797 0.00236707 1.00616404 - 18.43458067 1.01383649 0.99957719 0.00237753 1.00614587 - 18.85430420 1.01386399 0.99957031 0.00238549 1.00616396 - 19.28335642 1.01389214 0.99956927 0.00239380 1.00618423 - 19.72194467 1.01394707 0.99957287 0.00240150 1.00618217 - 20.17028090 1.01400230 0.99957192 0.00240932 1.00617895 - 20.62858177 1.01404246 0.99956614 0.00241770 1.00618091 - 21.09706875 1.01409961 0.99956329 0.00242711 1.00618107 - 21.57596823 1.01416917 0.99956619 0.00243570 1.00617467 - 22.06551164 1.01420258 0.99956878 0.00244261 1.00618190 - 22.56593555 1.01424095 0.99956736 0.00245379 1.00620776 - 23.07748179 1.01429566 0.99956623 0.00246541 1.00621428 - 23.60039756 1.01434400 0.99956738 0.00247346 1.00621078 - 24.13493556 1.01441286 0.99956714 0.00248531 1.00621977 - 24.68135410 1.01447923 0.99956951 0.00249422 1.00621982 - 25.23991723 1.01457531 0.99957329 0.00250398 1.00620473 - 25.81089489 1.01464938 0.99956737 0.00251460 1.00619549 - 26.39456298 1.01467361 0.99955401 0.00253000 1.00623044 - 26.99120357 1.01466705 0.99955601 0.00254688 1.00626123 - 27.60110499 1.01468911 0.99957108 0.00256228 1.00624612 - 28.22456196 1.01476757 0.99957232 0.00257900 1.00623877 - 28.86187576 1.01480886 0.99956203 0.00258930 1.00630597 - 29.51335438 1.01485520 0.99956247 0.00259384 1.00640586 - 30.17931265 1.01499916 0.99956657 0.00259656 1.00642201 - 30.86007237 1.01518629 0.99955782 0.00260413 1.00640089 - 31.55596254 1.01526230 0.99954932 0.00261735 1.00642437 - 32.26731942 1.01522236 0.99955360 0.00264311 1.00644622 - 32.99448680 1.01510861 0.99955927 0.00269522 1.00638352 - 33.73781606 1.01484702 0.99956207 0.00277101 1.00624751 - 34.49766641 1.01452450 0.99956829 0.00284826 1.00611061 - 35.27440505 1.01449650 0.99957132 0.00288568 1.00607836 - 36.06840735 1.01505929 0.99955868 0.00283697 1.00627418 - 36.88005698 1.01612887 0.99953006 0.00268997 1.00669692 - 37.70974619 1.01741462 0.99949344 0.00251485 1.00719773 - 38.55787592 1.01849125 0.99946442 0.00238913 1.00757396 - 39.42485602 1.01906445 0.99945311 0.00232914 1.00776338 - 40.31110545 1.01931268 0.99944902 0.00233146 1.00787960 - 41.21705250 1.01936633 0.99944631 0.00236080 1.00791084 - 42.14313496 1.01931348 0.99944724 0.00240818 1.00787647 - 43.08980035 1.01921883 0.99945103 0.00247706 1.00784392 - 44.05750615 1.01903866 0.99945601 0.00254096 1.00777863 - 45.04671999 1.01894478 0.99945786 0.00261083 1.00771975 - 46.05791992 1.01889262 0.99946003 0.00267975 1.00766932 - 47.09159458 1.01879775 0.99946365 0.00273782 1.00762303 - 48.14824351 1.01877638 0.99946410 0.00280144 1.00761338 - 49.22837731 1.01879328 0.99946378 0.00286335 1.00760744 - 50.33251796 1.01880901 0.99946371 0.00291984 1.00760427 - 51.46119904 1.01886810 0.99946216 0.00297803 1.00761657 - 52.61496597 1.01895968 0.99946026 0.00303467 1.00762256 - 53.79437631 1.01907433 0.99945778 0.00309283 1.00764961 - 55.00000000 1.01918552 0.99945506 0.00314994 1.00769821 diff --git a/cases/compression-ramp-Ma6/flow1d-inlet.dat.origin b/cases/compression-ramp-Ma6/flow1d-inlet.dat.origin deleted file mode 100644 index 789e2d8..0000000 --- a/cases/compression-ramp-Ma6/flow1d-inlet.dat.origin +++ /dev/null @@ -1,321 +0,0 @@ - variables=y,d,u,v,T - 0.00000000 0.27366179 0.00000000 0.00000000 3.72000000 - 0.01200000 0.27248570 0.00482781 -0.00000144 3.73428027 - 0.02416701 0.27136093 0.00967933 -0.00000282 3.74819399 - 0.03650334 0.27029594 0.01454904 -0.00000450 3.76168073 - 0.04901136 0.26927931 0.01943959 -0.00000416 3.77478449 - 0.06169346 0.26830941 0.02435681 -0.00000267 3.78752165 - 0.07455205 0.26737687 0.02930930 0.00000084 3.79996317 - 0.08758960 0.26647746 0.03430579 0.00000558 3.81215398 - 0.10080860 0.26560382 0.03935459 0.00001167 3.82416050 - 0.11421156 0.26475183 0.04446255 0.00001844 3.83602500 - 0.12780106 0.26391651 0.04963503 0.00002573 3.84779264 - 0.14157968 0.26309511 0.05487564 0.00003303 3.85948788 - 0.15555006 0.26228505 0.06018649 0.00004015 3.87113010 - 0.16971487 0.26148522 0.06556842 0.00004678 3.88272298 - 0.18407681 0.26069497 0.07102131 0.00005281 3.89426392 - 0.19863863 0.25991456 0.07654442 0.00005811 3.90574010 - 0.21340311 0.25914460 0.08213668 0.00006266 3.91713445 - 0.22837306 0.25838618 0.08779691 0.00006646 3.92842461 - 0.24355136 0.25764053 0.09352408 0.00006959 3.93958665 - 0.25894089 0.25690907 0.09931738 0.00007211 3.95059514 - 0.27454460 0.25619319 0.10517631 0.00007414 3.96142519 - 0.29036547 0.25549426 0.11110074 0.00007578 3.97205260 - 0.30640652 0.25481354 0.11709083 0.00007713 3.98245490 - 0.32267081 0.25415218 0.12314711 0.00007831 3.99261134 - 0.33916146 0.25351120 0.12927035 0.00007942 4.00250341 - 0.35588161 0.25289145 0.13546157 0.00008054 4.01211460 - 0.37283445 0.25229367 0.14172194 0.00008175 4.02143022 - 0.39002323 0.25171851 0.14805277 0.00008311 4.03043708 - 0.40745123 0.25116653 0.15445540 0.00008464 4.03912284 - 0.42512178 0.25063829 0.16093120 0.00008637 4.04747555 - 0.44303825 0.25013432 0.16748153 0.00008830 4.05548341 - 0.46120406 0.24965514 0.17410773 0.00009044 4.06313464 - 0.47962269 0.24920128 0.18081110 0.00009278 4.07041734 - 0.49829766 0.24877328 0.18759295 0.00009532 4.07731925 - 0.51723252 0.24837171 0.19445453 0.00009807 4.08382769 - 0.53643091 0.24799717 0.20139710 0.00010101 4.08992927 - 0.55589648 0.24765034 0.20842189 0.00010415 4.09560985 - 0.57563295 0.24733192 0.21553014 0.00010748 4.10085444 - 0.59564410 0.24704268 0.22272307 0.00011102 4.10564711 - 0.61593375 0.24678348 0.23000190 0.00011476 4.10997110 - 0.63650577 0.24655521 0.23736783 0.00011870 4.11380863 - 0.65736410 0.24635883 0.24482207 0.00012284 4.11714107 - 0.67851271 0.24619538 0.25236581 0.00012717 4.11994880 - 0.69995565 0.24606596 0.26000022 0.00013169 4.12221125 - 0.72169701 0.24597173 0.26772644 0.00013638 4.12390688 - 0.74374095 0.24591394 0.27554555 0.00014123 4.12501313 - 0.76609168 0.24589389 0.28345863 0.00014622 4.12550663 - 0.78875347 0.24591301 0.29146666 0.00015132 4.12536283 - 0.81173064 0.24597277 0.29957050 0.00015652 4.12455655 - 0.83502759 0.24607477 0.30777085 0.00016180 4.12306091 - 0.85864876 0.24622060 0.31606848 0.00016723 4.12084912 - 0.88259868 0.24641184 0.32446451 0.00017278 4.11789320 - 0.90688191 0.24665049 0.33296012 0.00017861 4.11416450 - 0.93150309 0.24693809 0.34155845 0.00018518 4.10963793 - 0.95646692 0.24727629 0.35026315 0.00019240 4.10429327 - 0.98177818 0.24766727 0.35907693 0.00019965 4.09810283 - 1.00744170 0.24811350 0.36800125 0.00020711 4.09103944 - 1.03346239 0.24861679 0.37703872 0.00021500 4.08307427 - 1.05984520 0.24918003 0.38619023 0.00022311 4.07417123 - 1.08659519 0.24980608 0.39545616 0.00023143 4.06429340 - 1.11371746 0.25049816 0.40483666 0.00023995 4.05340245 - 1.14121720 0.25125969 0.41433200 0.00024868 4.04145958 - 1.16909965 0.25209431 0.42394270 0.00025765 4.02842510 - 1.19737014 0.25300591 0.43366955 0.00026689 4.01425857 - 1.22603408 0.25399862 0.44351355 0.00027646 3.99891867 - 1.25509694 0.25507687 0.45347581 0.00028643 3.98236325 - 1.28456427 0.25624540 0.46355750 0.00029690 3.96454927 - 1.31444170 0.25750930 0.47375976 0.00030795 3.94543278 - 1.34473493 0.25887410 0.48408365 0.00031962 3.92496893 - 1.37544976 0.26034581 0.49453013 0.00033191 3.90311183 - 1.40659206 0.26193097 0.50510000 0.00034476 3.87981454 - 1.43816776 0.26363671 0.51579388 0.00035812 3.85502879 - 1.47018291 0.26547083 0.52661221 0.00037193 3.82870492 - 1.50264361 0.26744188 0.53755524 0.00038616 3.80079176 - 1.53555608 0.26955923 0.54862296 0.00040077 3.77123607 - 1.56892659 0.27183314 0.55981517 0.00041580 3.73998216 - 1.60276152 0.27427494 0.57113140 0.00043136 3.70697107 - 1.63706734 0.27689711 0.58257093 0.00044767 3.67214020 - 1.67185060 0.27971368 0.59413283 0.00046490 3.63542291 - 1.70711793 0.28274067 0.60581594 0.00048303 3.59674825 - 1.74287609 0.28599646 0.61761888 0.00050185 3.55603898 - 1.77913190 0.28950218 0.62954024 0.00052129 3.51320760 - 1.81589228 0.29328197 0.64157835 0.00054135 3.46815689 - 1.85316427 0.29736350 0.65373094 0.00056170 3.42078469 - 1.89095497 0.30177815 0.66599551 0.00058189 3.37098992 - 1.92927161 0.30656106 0.67836889 0.00060220 3.31866987 - 1.96812150 0.31175266 0.69084636 0.00062371 3.26370823 - 2.00751208 0.31739950 0.70342282 0.00064692 3.20599545 - 2.04745085 0.32355445 0.71609148 0.00067154 3.14544768 - 2.08794546 0.33027547 0.72884393 0.00069780 3.08201576 - 2.12900364 0.33762321 0.74166893 0.00072665 3.01570214 - 2.17063323 0.34565496 0.75455202 0.00075899 2.94661281 - 2.21284218 0.35441975 0.76747500 0.00079609 2.87498164 - 2.25563856 0.36394997 0.78041686 0.00083889 2.80120586 - 2.29903055 0.37425696 0.79335270 0.00088778 2.72583010 - 2.34302642 0.38532175 0.80625444 0.00094262 2.64953040 - 2.38763459 0.39708939 0.81909030 0.00100264 2.57309003 - 2.43286358 0.40947701 0.83182639 0.00106685 2.49729541 - 2.47872202 0.42239801 0.84442700 0.00113341 2.42280107 - 2.52521868 0.43580937 0.85685831 0.00119922 2.34993138 - 2.57236244 0.44974862 0.86908595 0.00126084 2.27859841 - 2.62016231 0.46436814 0.88107293 0.00131551 2.20822465 - 2.66862741 0.47994715 0.89277828 0.00136152 2.13779687 - 2.71776700 0.49687332 0.90415423 0.00139905 2.06605256 - 2.76759048 0.51561219 0.91514501 0.00143021 1.99172652 - 2.81810736 0.53666811 0.92568764 0.00145841 1.91383216 - 2.86932728 0.56053114 0.93571408 0.00148791 1.83194859 - 2.92126004 0.58760637 0.94515455 0.00152303 1.74644662 - 2.97391556 0.61812411 0.95394014 0.00156694 1.65858021 - 3.02730388 0.65203257 0.96200414 0.00162049 1.57039684 - 3.08143522 0.68890257 0.96928364 0.00168183 1.48443088 - 3.13631991 0.72789623 0.97572412 0.00174693 1.40323453 - 3.19196844 0.76783818 0.98128702 0.00181085 1.32891388 - 3.24839143 0.80737624 0.98595894 0.00186969 1.26285220 - 3.30559967 0.84516562 0.98975938 0.00192112 1.20568069 - 3.36360408 0.88001632 0.99274262 0.00196436 1.15742962 - 3.42241575 0.91095170 0.99499002 0.00199914 1.11776410 - 3.48204590 0.93719362 0.99659598 0.00202640 1.08622651 - 3.54250594 0.95820129 0.99766366 0.00204629 1.06227374 - 3.60380740 0.97393273 0.99831551 0.00205994 1.04504964 - 3.66596201 0.98506358 0.99868415 0.00207017 1.03323675 - 3.72898162 0.99267850 0.99888960 0.00207746 1.02531478 - 3.79287829 0.99785544 0.99901339 0.00208172 1.02001909 - 3.85766422 1.00133559 0.99910643 0.00208466 1.01648612 - 3.92335177 1.00364191 0.99917888 0.00209661 1.01417745 - 3.98995351 1.00530184 0.99925092 0.00210655 1.01248491 - 4.05748216 1.00651669 0.99930631 0.00211211 1.01128799 - 4.12595061 1.00741381 0.99935193 0.00211683 1.01041178 - 4.19537194 1.00805983 0.99937766 0.00211654 1.00981607 - 4.26575941 1.00852804 0.99939257 0.00211843 1.00937920 - 4.33712648 1.00892128 0.99939629 0.00212001 1.00906459 - 4.40948677 1.00921525 0.99941156 0.00212054 1.00881937 - 4.48285411 1.00945905 0.99942073 0.00212573 1.00863901 - 4.55724250 1.00967415 0.99943141 0.00212875 1.00841465 - 4.63266618 1.00979692 0.99944081 0.00212657 1.00828213 - 4.70913953 1.00987843 0.99944794 0.00212410 1.00818235 - 4.78667716 1.00997510 0.99945029 0.00212428 1.00807733 - 4.86529390 1.01008901 0.99945654 0.00212546 1.00796867 - 4.94500476 1.01022128 0.99945494 0.00212695 1.00787488 - 5.02582496 1.01032904 0.99945959 0.00213417 1.00783183 - 5.10776995 1.01044075 0.99947189 0.00213938 1.00773230 - 5.19085537 1.01057795 0.99947606 0.00213973 1.00763404 - 5.27509711 1.01068475 0.99948019 0.00213976 1.00755261 - 5.36051124 1.01075933 0.99948664 0.00214283 1.00751423 - 5.44711410 1.01084886 0.99949143 0.00214276 1.00741736 - 5.53492221 1.01090996 0.99948706 0.00214398 1.00738311 - 5.62395237 1.01100229 0.99949200 0.00214866 1.00730130 - 5.71422156 1.01108363 0.99949651 0.00215146 1.00725368 - 5.80574704 1.01115575 0.99949901 0.00215388 1.00719604 - 5.89854629 1.01121998 0.99950315 0.00215485 1.00714040 - 5.99263704 1.01127366 0.99950578 0.00215741 1.00708837 - 6.08803727 1.01132230 0.99950984 0.00215881 1.00703014 - 6.18476518 1.01138404 0.99951480 0.00215978 1.00697416 - 6.28283928 1.01144156 0.99951854 0.00216175 1.00694248 - 6.38227828 1.01150682 0.99951727 0.00216534 1.00691730 - 6.48310118 1.01156557 0.99951730 0.00217047 1.00689839 - 6.58532725 1.01161661 0.99952143 0.00217357 1.00686041 - 6.68897601 1.01165086 0.99952624 0.00217232 1.00682057 - 6.79406726 1.01166687 0.99952786 0.00216932 1.00677959 - 6.90062108 1.01168988 0.99953005 0.00216850 1.00674235 - 7.00865782 1.01173411 0.99953368 0.00216985 1.00671225 - 7.11819812 1.01179596 0.99953453 0.00217474 1.00670750 - 7.22926290 1.01187946 0.99953421 0.00218152 1.00668707 - 7.34187339 1.01195560 0.99953486 0.00218782 1.00667600 - 7.45605109 1.01201455 0.99953770 0.00219136 1.00664105 - 7.57181782 1.01203366 0.99953807 0.00218979 1.00660745 - 7.68919568 1.01205278 0.99954130 0.00218673 1.00656066 - 7.80820710 1.01207495 0.99954307 0.00218503 1.00652121 - 7.92887482 1.01211942 0.99954409 0.00218790 1.00650252 - 8.05122189 1.01219985 0.99954598 0.00219441 1.00648155 - 8.17527168 1.01227032 0.99954747 0.00220134 1.00646603 - 8.30104788 1.01231651 0.99954933 0.00220548 1.00644740 - 8.42857452 1.01234375 0.99955152 0.00220667 1.00642173 - 8.55787596 1.01235234 0.99955456 0.00220481 1.00639925 - 8.68897691 1.01236468 0.99955604 0.00220182 1.00638098 - 8.82190241 1.01238161 0.99955716 0.00220073 1.00635945 - 8.95667784 1.01240214 0.99955796 0.00220214 1.00634709 - 9.09332896 1.01243406 0.99955725 0.00220658 1.00634591 - 9.23188187 1.01248602 0.99955637 0.00221316 1.00634913 - 9.37236304 1.01254605 0.99955591 0.00221945 1.00634544 - 9.51479930 1.01258664 0.99955600 0.00222334 1.00633638 - 9.65921786 1.01260979 0.99955759 0.00222456 1.00631315 - 9.80564631 1.01262656 0.99955979 0.00222465 1.00629144 - 9.95411262 1.01265637 0.99956209 0.00222580 1.00627593 - 10.10464516 1.01269988 0.99956302 0.00222924 1.00627187 - 10.25727267 1.01273794 0.99956336 0.00223387 1.00627562 - 10.41202432 1.01276808 0.99956447 0.00223735 1.00626675 - 10.56892966 1.01278388 0.99956633 0.00223837 1.00625143 - 10.72801868 1.01279238 0.99956693 0.00223893 1.00623753 - 10.88932175 1.01280385 0.99956745 0.00224085 1.00622767 - 11.05286970 1.01282678 0.99956720 0.00224447 1.00623012 - 11.21869377 1.01286143 0.99956770 0.00224941 1.00623470 - 11.38682562 1.01289305 0.99956807 0.00225493 1.00624766 - 11.55729739 1.01292151 0.99956930 0.00225956 1.00624918 - 11.73014163 1.01293698 0.99957035 0.00226273 1.00625370 - 11.90539137 1.01294642 0.99957020 0.00226498 1.00625210 - 12.08308008 1.01294803 0.99956868 0.00226531 1.00625031 - 12.26324170 1.01295537 0.99956651 0.00226602 1.00625417 - 12.44591065 1.01298296 0.99956626 0.00226916 1.00624820 - 12.63112183 1.01303028 0.99956833 0.00227400 1.00624132 - 12.81891061 1.01308767 0.99957230 0.00227856 1.00622634 - 13.00931287 1.01313913 0.99957647 0.00228295 1.00621181 - 13.20236498 1.01319080 0.99957791 0.00228658 1.00618536 - 13.39810382 1.01322079 0.99957449 0.00228916 1.00616805 - 13.59656677 1.01323789 0.99956702 0.00229192 1.00616551 - 13.79779176 1.01324976 0.99955962 0.00229457 1.00617507 - 14.00181723 1.01326084 0.99955606 0.00229688 1.00618400 - 14.20868213 1.01327712 0.99955800 0.00229947 1.00619325 - 14.41842600 1.01330608 0.99956408 0.00230385 1.00619435 - 14.63108890 1.01334954 0.99957132 0.00230879 1.00617904 - 14.84671146 1.01339222 0.99957662 0.00231485 1.00616932 - 15.06533486 1.01343403 0.99957934 0.00232039 1.00615866 - 15.28700086 1.01346187 0.99958109 0.00232254 1.00614913 - 15.51175182 1.01349671 0.99958441 0.00232447 1.00612190 - 15.73963066 1.01356806 0.99959040 0.00232837 1.00607500 - 15.97068092 1.01366435 0.99959732 0.00233354 1.00601607 - 16.20494673 1.01375325 0.99960192 0.00233802 1.00595811 - 16.44247285 1.01379838 0.99960037 0.00234159 1.00593977 - 16.68330464 1.01378574 0.99959145 0.00234536 1.00597083 - 16.92748812 1.01373818 0.99957855 0.00235040 1.00605253 - 17.17506993 1.01370114 0.99956814 0.00235688 1.00614195 - 17.42609736 1.01368913 0.99956523 0.00236196 1.00619926 - 17.68061837 1.01369552 0.99956963 0.00236373 1.00620271 - 17.93868158 1.01372899 0.99957643 0.00236563 1.00617363 - 18.20033628 1.01378798 0.99957923 0.00237125 1.00615005 - 18.46563246 1.01384116 0.99957671 0.00237828 1.00614623 - 18.73462080 1.01386150 0.99957205 0.00238350 1.00615586 - 19.00735268 1.01386842 0.99956893 0.00238817 1.00617443 - 19.28388021 1.01389220 0.99956927 0.00239381 1.00618424 - 19.56425619 1.01392673 0.99957161 0.00239898 1.00618461 - 19.84853421 1.01396344 0.99957340 0.00240353 1.00618024 - 20.13676855 1.01399875 0.99957223 0.00240870 1.00617897 - 20.42901428 1.01402575 0.99956880 0.00241410 1.00617937 - 20.72532724 1.01405158 0.99956503 0.00241951 1.00618151 - 21.02576401 1.01408875 0.99956327 0.00242561 1.00618129 - 21.33038200 1.01413666 0.99956430 0.00243175 1.00617917 - 21.63923939 1.01417547 0.99956670 0.00243659 1.00617401 - 21.95239518 1.01419599 0.99956858 0.00244085 1.00617805 - 22.26990920 1.01421612 0.99956853 0.00244647 1.00619129 - 22.59184210 1.01424354 0.99956724 0.00245448 1.00620910 - 22.91825537 1.01427951 0.99956612 0.00246255 1.00621802 - 23.24921138 1.01431134 0.99956666 0.00246793 1.00620908 - 23.58477334 1.01434229 0.99956737 0.00247316 1.00621050 - 23.92500536 1.01438522 0.99956730 0.00248068 1.00621676 - 24.26997242 1.01442949 0.99956725 0.00248791 1.00622090 - 24.61974043 1.01447078 0.99956900 0.00249330 1.00622035 - 24.97437620 1.01452663 0.99957206 0.00249903 1.00621449 - 25.33394748 1.01459154 0.99957323 0.00250574 1.00620121 - 25.69852295 1.01463966 0.99956961 0.00251239 1.00619433 - 26.06817227 1.01466440 0.99956112 0.00252049 1.00620550 - 26.44296603 1.01467411 0.99955333 0.00253149 1.00623428 - 26.82297584 1.01467094 0.99955316 0.00254261 1.00625686 - 27.20827430 1.01466564 0.99956134 0.00255211 1.00626080 - 27.59893499 1.01468889 0.99957104 0.00256222 1.00624622 - 27.99503256 1.01473939 0.99957431 0.00257328 1.00623466 - 28.39664266 1.01478423 0.99956961 0.00258262 1.00624887 - 28.80384202 1.01480664 0.99956272 0.00258867 1.00629685 - 29.21670841 1.01482603 0.99956052 0.00259229 1.00636529 - 29.63532072 1.01487322 0.99956367 0.00259431 1.00641676 - 30.05975890 1.01496605 0.99956667 0.00259588 1.00642496 - 30.49010404 1.01509015 0.99956399 0.00259922 1.00641069 - 30.92643834 1.01520013 0.99955661 0.00260517 1.00640067 - 31.36884515 1.01525656 0.99955029 0.00261319 1.00641393 - 31.81740899 1.01525643 0.99954974 0.00262456 1.00643842 - 32.27221555 1.01522187 0.99955365 0.00264337 1.00644613 - 32.73335170 1.01516196 0.99955782 0.00267334 1.00641753 - 33.20090554 1.01505250 0.99956005 0.00271463 1.00634979 - 33.67496638 1.01487461 0.99956175 0.00276416 1.00626002 - 34.15562477 1.01465785 0.99956507 0.00281584 1.00616649 - 34.64297255 1.01448379 0.99956956 0.00285982 1.00609240 - 35.13710280 1.01446247 0.99957169 0.00288412 1.00607015 - 35.63810992 1.01467875 0.99956780 0.00287630 1.00613610 - 36.14608961 1.01514450 0.99955652 0.00282659 1.00630660 - 36.66113892 1.01580786 0.99953893 0.00273625 1.00656810 - 37.18335622 1.01659576 0.99951688 0.00262334 1.00688303 - 37.71284128 1.01741928 0.99949331 0.00251427 1.00719946 - 38.24969525 1.01815655 0.99947289 0.00242703 1.00746264 - 38.79402068 1.01869809 0.99945970 0.00236600 1.00764059 - 39.34592155 1.01903022 0.99945362 0.00233174 1.00775065 - 39.90550328 1.01922492 0.99945079 0.00232431 1.00783258 - 40.47287278 1.01933634 0.99944834 0.00233592 1.00789351 - 41.04813843 1.01936941 0.99944654 0.00235463 1.00791324 - 41.63141011 1.01934550 0.99944633 0.00237851 1.00789624 - 42.22279925 1.01930818 0.99944746 0.00241356 1.00787383 - 42.82241883 1.01925618 0.99944969 0.00245758 1.00785538 - 43.43038338 1.01915892 0.99945291 0.00250055 1.00782450 - 44.04680904 1.01904046 0.99945597 0.00254026 1.00777942 - 44.67181357 1.01896414 0.99945750 0.00258315 1.00773851 - 45.30551636 1.01893591 0.99945813 0.00262985 1.00770780 - 45.94803846 1.01890166 0.99945964 0.00267309 1.00767538 - 46.59950262 1.01883994 0.99946216 0.00271043 1.00764075 - 47.26003328 1.01878764 0.99946396 0.00274751 1.00761926 - 47.92975663 1.01877419 0.99946422 0.00278802 1.00761360 - 48.60880058 1.01878475 0.99946383 0.00282902 1.00761248 - 49.29729488 1.01879392 0.99946379 0.00286698 1.00760678 - 49.99537102 1.01880114 0.99946387 0.00290267 1.00760285 - 50.70316238 1.01882297 0.99946335 0.00293892 1.00760789 - 51.42080415 1.01886531 0.99946223 0.00297598 1.00761620 - 52.14843342 1.01891982 0.99946103 0.00301207 1.00762044 - 52.88618919 1.01898481 0.99945977 0.00304789 1.00762541 - 53.63421239 1.01905883 0.99945815 0.00308496 1.00764397 - 54.39264592 1.01912948 0.99945642 0.00312155 1.00767324 - 55.16163466 1.01920250 0.99945464 0.00315763 1.00770516 - 55.94132550 1.01930471 0.99945208 0.00319633 1.00774030 - 56.73186739 1.01942892 0.99944888 0.00323585 1.00776999 - 57.53341134 1.01954471 0.99944586 0.00327262 1.00778800 - 58.34611047 1.01965731 0.99944276 0.00331010 1.00782275 - 59.17012003 1.01978764 0.99943908 0.00335234 1.00788784 - 60.00559743 1.01992923 0.99943527 0.00339585 1.00795626 - 60.85270226 1.02007508 0.99943154 0.00343709 1.00800426 - 61.71159634 1.02023420 0.99942727 0.00347917 1.00804999 - 62.58244376 1.02040023 0.99942250 0.00352504 1.00812558 - 63.46541086 1.02055897 0.99941800 0.00357247 1.00822317 - 64.36066631 1.02074628 0.99941304 0.00362027 1.00829690 - 65.26838114 1.02102317 0.99940612 0.00367020 1.00830236 - 66.18872874 1.02138751 0.99939833 0.00372311 1.00824847 - 67.12188492 1.02174319 0.99939192 0.00377742 1.00821505 - 68.06802795 1.02198565 0.99938494 0.00383389 1.00831184 - 69.02733856 1.02204026 0.99937179 0.00389227 1.00860895 - 70.00000000 1.02189708 0.99934857 0.00395581 1.00914695 diff --git a/cases/compression-ramp-Ma6/grid-conner.in b/cases/compression-ramp-Ma6/grid-conner.in deleted file mode 100644 index a31d2d2..0000000 --- a/cases/compression-ramp-Ma6/grid-conner.in +++ /dev/null @@ -1,7 +0,0 @@ -# V3.0 -nx ny nz -2500 220 240 -beta High hy_wall1 hy_wall2 Lz -34. 55. 0.01 0.01 24.0 -XL_conner,nx_conner,XL_inlet,nx_inlet,hx_inlet,nx_buff,alfax_buff -50. 1200 400. 1120 0.5 180 1.01 diff --git a/cases/compression-ramp-Ma6/init3d-1.2.f90 b/cases/compression-ramp-Ma6/init3d-1.2.f90 deleted file mode 100644 index 9403f17..0000000 --- a/cases/compression-ramp-Ma6/init3d-1.2.f90 +++ /dev/null @@ -1,52 +0,0 @@ -! ----- Init 3D ---- -! Generate initial data for opencfd-sc, Ver 1.1 - implicit none - integer:: nx,ny,nz,Iflag - real*8,allocatable,dimension(:,:,:):: u - real*8:: Pi, AoA, ux,uy - print*, "Please input nx,ny,nz ?" - read(*,*) nx,ny,nz - allocate(u(nx,ny,nz)) -!-------------------- - Pi=3.14159265358979d0 - print*, "Please input Iflag (0/1): 0 init wiht 0 flow, 1 with free-stream flow" - read(*,*) Iflag - if(Iflag ==0) then - print*, "Init with 0 flow" - ux=0.d0 - uy=0.d0 - else - print*, "Init with free-stream flow" - print*, "please input AoA (Angle of attack, in degree) " - read(*,*) AoA - AoA=AoA*Pi/180.d0 - ux=cos(AoA) - uy=sin(AoA) - endif - - - open(99,file="opencfd0.dat",form="unformatted") - write(99) 0,0.d0 - u(:,:,:)=1.d0 ! density - call write3d(99,nx,ny,nz,u) - u(:,:,:)=ux ! u - call write3d(99,nx,ny,nz,u) - u(:,:,:)=uy ! v - call write3d(99,nx,ny,nz,u) - u(:,:,:)=0.d0 ! w - call write3d(99,nx,ny,nz,u) - u(:,:,:)=1.d0 ! T - call write3d(99,nx,ny,nz,u) - close(99) - deallocate(u) - end - - subroutine write3d(no,nx,ny,nz,u) - implicit none - integer:: no,nx,ny,nz,k - real*8:: u(nx,ny,nz) - do k=1,nz - write(no) u(:,:,k) - enddo - end - diff --git a/cases/compression-ramp-Ma6/interpolation-inlet1d.f90 b/cases/compression-ramp-Ma6/interpolation-inlet1d.f90 deleted file mode 100644 index 11e0e98..0000000 --- a/cases/compression-ramp-Ma6/interpolation-inlet1d.f90 +++ /dev/null @@ -1,231 +0,0 @@ - implicit none - integer,parameter:: SPLINE_INIT=-1, SPLINE_NORMAL=1 - integer:: ny, ny1, j,tmp , Iflag - real*8,dimension(:),allocatable:: yy, d,u,v,T, yy1,d1,u1,v1,T1 - print*, "interpolate 1d profiles for inlet (flow1d-inlet.dat)......" - print*, "origin data : flow1d-inlet.dat.origin (y,d,u,v,T), new coordinate y1d.dat" - print*, "please input ny (orginate grid number), ny1 (new) " - read(*,*) ny, ny1 - allocate(yy(ny),d(ny),u(ny),v(ny),T(ny), yy1(ny1),d1(ny1),u1(ny1),v1(ny1),T1(ny1)) - - open(99,file="flow1d-inlet.dat.origin") - read(99,*) - do j=1, ny - read(99,*) yy(j), d(j), u(j), v(j), T(j) - enddo - close(99) - - open(100,file="y1d.dat") - do j=1,ny1 - read(100,*) tmp, yy1(j) - enddo - - print*, " input 1 for 6th Lagrange interpolation; 2 for 3rd Spline interpolation " - read(*,*) Iflag - if(Iflag .eq. 1) then - print*, "Interpolation (6th Lagrange) ..." - do j=1,ny1 - call inter1d_6th(yy1(j),d1(j),ny,yy,d) - call inter1d_6th(yy1(j),u1(j),ny,yy,u) - call inter1d_6th(yy1(j),v1(j),ny,yy,v) - call inter1d_6th(yy1(j),T1(j),ny,yy,T) - enddo - else - print*, "Interpolation (3rd Spline) ..." - !--------interpolation for d, u, v, T ------------- - call spline(ny,yy,d,0.d0,0.d0,SPLINE_INIT) - do j=1,ny1 - call spline(ny,yy,d,yy1(j),d1(j),SPLINE_NORMAL) - enddo - - call spline(ny,yy,u,0.d0,0.d0,SPLINE_INIT) - do j=1,ny1 - call spline(ny,yy,u,yy1(j),u1(j),SPLINE_NORMAL) - enddo - - call spline(ny,yy,v,0.d0,0.d0,SPLINE_INIT) - do j=1,ny1 - call spline(ny,yy,v,yy1(j),v1(j),SPLINE_NORMAL) - enddo - - call spline(ny,yy,T,0.d0,0.d0,SPLINE_INIT) - do j=1,ny1 - call spline(ny,yy,T,yy1(j),T1(j),SPLINE_NORMAL) - enddo - endif -!---------------------------------- - open(99,file="flow1d-inlet.dat") - write(99,*) "variables=y, d, u, v, T" - do j=1,ny1 - write(99,"(5F16.8)") yy1(j), d1(j), u1(j), v1(j), T1(j) - enddo - close(99) - - deallocate(yy,d,u,v,T, yy1,d1,u1,v1,T1) -end - -!------------------------------------------------------------------------ -! 6th order Langrage interpolation in one-dimension - subroutine inter1d_6th(x0, f0, nx, xx,ff) - implicit none - integer:: nx,k,k0,ik,ikm,km,ka,kb - real*8:: xx(nx),ff(nx), x0, f0, Ai(6) - if(x0<=xx(1)) then - f0=ff(1) - return - endif - - if(x0>=xx(nx)) then - f0=ff(nx) - return - endif - - k0=0 - do k=1,nx - if(x0 >= xx(k) .and. x0 < xx(k+1) ) then - k0=k - goto 100 - endif - enddo - 100 continue - - ka= max(4-k0,1) - kb= min(nx+3-k0,6) - f0=0.d0 - - do k=ka,kb - ik=k0+k-3 - Ai(k)=1.d0 - do km=ka,kb - ikm=k0+km-3 - if(km .ne. k) Ai(k)=Ai(k)*(x0-xx(ikm))/(xx(ik)-xx(ikm)) - enddo - f0=f0+Ai(k)*ff(ik) - enddo - end - - - -! Spline interpolation -! eg. -! step1: call spline (n, xx,yy, x0, y0, SPLINE_INIT) -! Step2: call spline (n, xx, yy, x0, y0, SPLINE_NORMAL) - - subroutine spline(n,xx,yy,x0,y0,Iflag) - implicit none - integer,parameter:: SPLINE_INIT=-1, SPLINE_NORMAL=1 - integer,parameter:: Nmax=1000000 - integer:: n,j,k, Iflag - integer,save:: Flag1=0 - real*8:: xx(n), yy(n), x0,y0,hj - real*8:: a(n),b(n),c(n),d(n),h(n) - real*8,save:: MM(Nmax) - if(Iflag == SPLINE_INIT) then - Flag1=1 - if(n > Nmax) then - print*, "Error !!! n> Nmax, please modify Nmax in subroutine spline() " - stop - endif - do j=2,n - h(j)=xx(j)-xx(j-1) - enddo - do j=2,n-1 - a(j)=h(j)/(h(j)+h(j+1)) - b(j)=2.d0 - c(j)=h(j+1)/(h(j)+h(j+1)) - d(j)=6.d0*((yy(j+1)-yy(j))/h(j+1)-(yy(j)-yy(j-1))/h(j))/(h(j)+h(j+1)) - enddo - a(1)=0.d0 ; b(1)=1.d0 ; c(1)= 0.d0 ; d(1)=0.d0 - a(n)=0.d0 ; b(n)=1.d0 ; c(n)=0.d0; d(n)=0.d0 - call LU3(n,a,b,c,d,MM) - - - else - if(Flag1 .ne. 1) then - print*, "Error ! Spline interpolation is not initialized !, please run spline(,,,,,-1) first" - stop - endif -! call find_k(n,xx,x0,k) - call find_k_dichotomy(n,xx,x0,k) - j=k+1 - hj=xx(j)-xx(j-1) - y0=(MM(j-1)*(xx(j)-x0)**3/6.d0+MM(j)*(x0-xx(j-1))**3/6.d0 & - +(yy(j-1)-MM(j-1)*hj*hj/6.d0)*(xx(j)-x0) + (yy(j)-MM(j)*hj*hj/6.d0)*(x0-xx(j-1)) ) /hj - - - endif - end - -!--------------搜索插值区间: 线性搜索法 --------------------------------- - subroutine find_k(n,xx,x0,k) - implicit none - integer:: n,k,j - real*8 :: xx(n), x0 - - if(x0 <= xx(2)) then - k=1 - else if(x0 >= xx(n-1)) then - k=n-1 - else - do j=2,n-2 - if( x0 >= xx(j) .and. x0<= xx(j+1)) then - k=j - goto 100 - endif - enddo -100 continue - endif - - end - -!------------------------- 搜索插值区间: 二分法 --------------------- -subroutine find_k_dichotomy(n,xx,x0,k) - implicit none - integer:: n,k,kb,ke,k0 - real*8 :: xx(n), x0 - - if(x0 <= xx(2)) then - k=1 - else if(x0 >= xx(n-1)) then - k=n-1 - else - kb=2 - ke=n-1 - do while( (ke-kb)>1) - k0=(kb+ke)/2 - if(x0 <= xx(k0)) then - ke=k0 - else - kb=k0 - endif - enddo - k=kb - - endif - - end - -! Chasing method (3-line LU ) for 3-line Eq - subroutine LU3(N,a,b,c,d,x) - implicit none - integer:: N,j - real*8,dimension(N):: a,b,c,d,x - real*8,dimension(N):: AA,BB - real*8:: tmp - - AA(1)=0.d0 - BB(1)=d(1) - x(N)=d(N) - x(1)=d(1) - do j=2,N - tmp=1.d0/(a(j)*AA(j-1)+b(j)) - AA(j)=-c(j)*tmp - BB(j)=(d(j)-a(j)*BB(j-1))*tmp - enddo - do j=N-1,2,-1 - x(j)=AA(j)*x(j+1)+BB(j) - enddo - end - - - diff --git a/cases/compression-ramp-Ma6/mesh-conner-4.f90 b/cases/compression-ramp-Ma6/mesh-conner-4.f90 deleted file mode 100644 index 5a4e3e9..0000000 --- a/cases/compression-ramp-Ma6/mesh-conner-4.f90 +++ /dev/null @@ -1,236 +0,0 @@ -! Mesh generater of a compression ramp V3.3 -! Copy right by Lixinliang -! Ver 3.0: 2008-8 -! Ver 3.1: ˱߽ģ -! ver 3.2: allocatable array used in Jocabian() -! Ver 3.3: 2020-4-26; Ϊ x<0 ʱάhy_wall1, x>0 ʱԱ仯hy_wall2 -! Ver 4: 2021-3-12: data for OpenCFD 2 (OCFD-grid.dat) - implicit doubleprecision (a-h,o-z) - real*8,parameter:: PI=3.1415926535897932 - real*8,allocatable:: xa(:),xb(:), ya(:),yb(:),sx(:),sy(:),xx(:,:),yy(:,:),zz(:),hy_wall(:) - real*8 XL,Lz - open(66,file='grid-conner.in') - read(66,*) - read(66,*) - read(66,*) nx,ny,nz - read(66,*) - read(66,*) alfa,High,hy_wall1,hy_wall2,Lz - read(66,*) - read(66,*) XL_conner,nx_conner,XL_inlet,nx_inlet,dx_inlet,nx_buff,alfax_buff - close(66) - - allocate(xa(nx),xb(nx) ,ya(nx),yb(nx),sx(nx),sy(ny),xx(nx,ny),yy(nx,ny),hy_wall(nx),zz(nz)) - -!c------------------------------- - if(nx_conner+nx_inlet+nx_buff .ne. nx) then - print*, "Error ! nx_conner+nx_inlet+nx_buff != nx" - stop - endif - - alfa=alfa*PI/180.d0 - hx0=2.d0*XL_conner/(nx_conner-1.d0) - R=XL_conner/tan(alfa/2.d0)-High - - call grid1d_transition(nx_inlet+1,xa, XL_inlet,dx_inlet, hx0) - do i=1,nx_inlet - xa(i)=xa(i)-XL_conner-XL_inlet - ya(i)=0.d0 - xb(i)=xa(i) - yb(i)=High - enddo - -!------conner region ---------------------- - i0=nx_inlet - do i=1,nx_conner - seta=alfa*(i-1.d0)/(nx_conner-1.d0) - if(seta .le. alfa/2.d0) then - xa(i+i0)= (i-1.d0)*hx0-XL_conner - ya(i+i0)= 0.d0 - else - xa(i+i0)= ((i-1.d0)*hx0-XL_conner)*cos(alfa) - ya(i+i0)= ((i-1.d0)*hx0-XL_conner)*sin(alfa) - endif - xb(i+i0)=R*sin(seta)-XL_conner - yb(i+i0)=R*(1.d0-cos(seta))+High - enddo -!----buff region ------------------------- - i0=nx_inlet+nx_conner - do i=1,nx_buff - dx=(xa(i+i0-1)-xa(i+i0-2))*alfax_buff - xa(i+i0)=xa(i+i0-1)+dx - ya(i+i0)=ya(i+i0-1)+dx*tan(alfa) - xb(i+i0)=xb(i+i0-1)+dx - yb(i+i0)=yb(i+i0-1)+dx*tan(alfa) - enddo -!------------------------------------------- - - open(33,file='grid1d.dat') - do i=1,nx - write(33,'(i6, 6f16.8)') i, xa(i),ya(i),xb(i),yb(i) - enddo -!------Computing hy in wall -----------(hy_wall=hy_wall1 in x<0 regin, keep linear to hy_wall2 in x>0 regin) - do i=1,nx - if(xa(i)<=0) then - hy_wall(i)=hy_wall1 - else - hy_wall(i)=hy_wall1+xa(i)/xa(nx)*(hy_wall2-hy_wall1) - endif - enddo -!---------------------------------------------- - - - do i=1,nx - SL=sqrt((xb(i)-xa(i))**2+(yb(i)-ya(i))**2) - call getsy(ny,sy,SL,hy_wall(i)) - do j=1,ny - xx(i,j)=xa(i)+(xb(i)-xa(i))*sy(j) - yy(i,j)=ya(i)+(yb(i)-ya(i))*sy(j) - enddo - enddo - call Wall_Orthonormalization(nx,ny,xx,yy) - - open(44,file="y1d.dat") - do j=1,ny - write(44,*) j, yy(1,j) - enddo - close(44) - - do k=1,nz - zz(k)=Lz*(k-1.d0)/nz - enddo - open(99,file="OCFD-grid.dat",form="unformatted") - write(99) xx - write(99) yy - write(99) zz - close(99) - open(33,file='grid.dat') - write(33,*) 'variables=x,y' - write(33,*) 'zone i=',nx , 'j=',ny - do j=1,ny - do i=1,nx - write(33,'(2f15.6)') xx(i,j),yy(i,j) - enddo - enddo - - - deallocate(xa,xb ,ya,yb,sx,sy,xx,yy,zz,hy_wall) - end - -!c================================================================= - subroutine getsy(ny,sy,SL,deltx) - implicit doubleprecision (a-h,o-z) - real*8 sy(ny) - real*8,save:: b=3.5d0 - dy=1.d0/(ny-1.d0) -!--------------------------------------- - delta=deltx/SL - ! using Newton method get coefficient - 100 continue -! fb=exp(b/(ny-1.d0))-1.d0-delta*(exp(b)-1.d0) -! fbx=exp(b/(ny-1.d0))/(ny-1.d0)-delta*exp(b) - fb=(exp(b/(ny-1.d0))-1.d0)/(exp(b)-1.d0)-delta - fbx=(exp(b/(ny-1.d0))/(ny-1.d0)*(exp(b)-1.d0) - & - (exp(b/(ny-1.d0))-1.d0)*exp(b) )/((exp(b)-1.d0))**2 - bnew=b-fb/fbx - if(abs(b-bnew) .gt. 1.d-6) then - b=bnew -! print*, "b=",b - goto 100 - endif - - b=bnew - a=1.d0/(exp(b)-1.d0) - do j=1,ny - s=(j-1.d0)*dy - sy(j)=a*(exp(s*b)-1.d0) - enddo - end - - - - -!c======== x direction ------------------ - subroutine getsx(nx,nx_buff,sx,alfax,alfax_buff) - implicit doubleprecision (a-h,o-z) - dimension sx(nx) - nx1=nx-nx_buff - dx=1.d0/(nx1-1.d0) - A=1.d0/(exp(alfax)-1.d0) - do i=1,nx1 - s=(i-1./2.)*dx - sx(i)=A*(exp(s*alfax)-1.d0) - enddo - do i=nx1+1,nx - sx(i)=sx(i-1)+alfax_buff*(sx(i-1)-sx(i-2)) - enddo - open(55,file="sx.dat") - do k=1,nx-1 - write(55,*) k, sx(k),sx(k+1)-sx(k) - enddo - end - - - - - -!-------------------------------------------------------------- -! ģ2: 񣬲κɣ⻬ -! ӿڣnx Length ȣ dx1 ׶ࣻ dx2 β -! ͨҪ ƽ Length/(nx-1.) dx1 dx2֮ - - subroutine grid1d_transition(nx,xx, Length, dx1,dx2) - implicit doubleprecision (a-h,o-z) - real*8 Length, xx(nx) - dx0= Length/(nx-1.d0) - if( dx0 .gt. dmax1(dx1,dx2) .or. dx0 .lt. dmin1(dx1,dx2) ) then - print*, "warning ! dx0 should between dx1 and dx2 !!!" - print*, "dx0 dx1 and dx2 =", dx0, dx1, dx2 - endif - - do i=1,nx - x=(i-1.d0)/(nx-1.d0) -! Ah0=(1.d0+2.d0*x)*(x-1.d0)**2 ! Hermitֵ4 - Ah1=(1.d0-2.d0*(x-1.d0))*x*x - Sh0=x*(x-1.d0)**2 - Sh1=(x-1.d0)*x*x - xx(i)=Length*Ah1+dx1*(nx-1.d0)*Sh0+dx2*(nx-1.d0)*Sh1 - enddo - end - -!---------------------------------------------------------- -! See "ѧ p301 or Obayashi et al AIAA-86-0338,1986 - subroutine Wall_Orthonormalization(nx,ny,xx,yy) - implicit doubleprecision (a-h,o-z) - dimension xx(nx,ny),yy(nx,ny) - real*8 dx(nx),dy(nx),dx1(nx),dy1(nx) - - parameter(Maxstep=10) -! parameter (b=3.d0) - parameter (b=2.d0) ! 2020-4-26 - Jmax=20 - - do mstep= 1, Maxstep - do j=2,Jmax - dx(1)=0.d0; dy(1)=0.d0; dx(nx)=0.d0; dy(nx)=0.d0; - do i=2,nx-1 - qn=sqrt((xx(i+1,j)-xx(i-1,j))**2+(yy(i+1,j)-yy(i-1,j))**2) - qnx=-(yy(i+1,j)-yy(i-1,j))/qn - qny= (xx(i+1,j)-xx(i-1,j))/qn - s= (xx(i,j)-xx(i,j-1))*qnx+(yy(i,j)-yy(i,j-1))*qny - dx(i)=s*qnx-(xx(i,j)-xx(i,j-1)) - dy(i)=s*qny-(yy(i,j)-yy(i,j-1)) - enddo - - do i=2,nx-1 - dx1(i)=(dx(i-1)+2.d0*dx(i)+dx(i+1))/4.d0 - dy1(i)=(dy(i-1)+2.d0*dy(i)+dy(i+1))/4.d0 - xx(i,j)=xx(i,j)+exp(-b*j/Jmax)/2.d0*dx1(i) - yy(i,j)=yy(i,j)+exp(-b*j/Jmax)/2.d0*dy1(i) - enddo - enddo - enddo - - end - - - diff --git a/cases/compression-ramp-Ma6/opencfd2-hybrid.in b/cases/compression-ramp-Ma6/opencfd2-hybrid.in deleted file mode 100644 index 7caf4b7..0000000 --- a/cases/compression-ramp-Ma6/opencfd2-hybrid.in +++ /dev/null @@ -1,50 +0,0 @@ - $control_opencfd - nx_global=2500 - ny_global=220 - nz_global=240 - npx0=48 - npy0=2 - npz0=4 - Iflag_Gridtype=20 ! 2D-plane type mesh - Scheme_Invis="HYBRID" -! shock_sensor seta1 seta2 Num_patch ib ie jb je kb ke - Hybrid_para=1, 0.01, 0.05, 1, 2460, 2500, 1, 220, 1, 240 ! dp2< .02: UD7L ; >=0.1 WENO5 -! Scheme_Invis="OMP6" - Scheme_Vis="CD6" - Ma=6.0 - Re=10000.0 - Ref_Amu_T0=79.0 - Istep_show=1 - Istep_save=10000 - dt=0.01 - End_time=10000.0 - IF_Scheme_Character=1 - Iperiodic_Z=1 - Periodic_KSpan= 0., 0., 24.0 - BoundaryCondition="BC_BOUNDARYLAYER" - ! BcData_inlet BcData_upper bc_upper_nonref bc_outlet Tw Wall_Xinit bc_dis_type bc_dis_A bc_dis_Xbegin bc_dis_Xend bc_dis_mt bc_dis_mz bc_dis_ZL bc_dis_freq - BC_Para=1, 0, 0, 0, 3.72, -1000., 1, 0.2, -430.0 -400.0 5 10 24.0 -1.0 - NFiltering=2 - ! Nstep_Filtering IF_X IF_Y IF_Z ib ie jb je kb ke F_scheme s0 rth - Filter_Para(:,1)= 20, 1, 0, 0, 100, 2500, 2, 220, 1, 240, 2, 1.0, 1.E-5 - Filter_Para(:,2)= 4, 1, 0, 0, 1200, 2500, 2, 220, 1, 240, 2, 1.0, 1.E-5 - ANA_Number=0 - ANA_Para(:,1)=100, 10, 10000 - ! Kana Kstep_ana Kstep_save - $end - -!--------------define of BC_Para ------------------- -! BcData_inlet=nint(Para%BC_para(1)) ! inlet: (0 free-stream; 1 1d data; 2 2d data) -! BcData_upper=nint(Para%Bc_para(2)) ! upper boundary: (0 free-stream, 1 1d data , 2 2d data) -! bc_upper_nonref=nint(Para%Bc_para(3)) ! upper boundary: 0 auto, 1 Non-Reflection, 2 Dirichlet -! bc_outlet=nint(Para%Bc_para(4)) ! outlet: 0 Non-Reflection, 1 1st order extrapolation, 2 2nd order extrapolation -! Tw=Para%Bc_para(5) ! wall temperature -! Wall_Xinit=Para%Bc_para(6) ! x location of the wall leading -! bc_dis_type=nint(Para%Bc_para(7)) ! wall disturbance type (0 none ; 1 multi-wave blow-and-suction, Ref: Rai MM, AIAA 95-0583) -! bc_dis_A=Para%Bc_para(8) ! Amplitude of wall disturbance -! bc_dis_Xbegin=Para%Bc_para(9) ! Initial location of wall disturbance -! bc_dis_Xend=Para%Bc_para(10) ! End location of wall disturbance -! bc_dis_mt=nint(Para%Bc_para(11)) ! multi-frequency -! bc_dis_mz=nint(Para%Bc_para(12)) ! multi-wavenumber -! bc_dis_ZL=Para%Bc_para(13) ! Spanwise Length -! bc_dis_freq=Para%Bc_para(14) ! base frequancy of disturbance diff --git a/cases/compression-ramp-Ma6/opencfd2-omp6.in b/cases/compression-ramp-Ma6/opencfd2-omp6.in deleted file mode 100644 index 3a66128..0000000 --- a/cases/compression-ramp-Ma6/opencfd2-omp6.in +++ /dev/null @@ -1,46 +0,0 @@ - $control_opencfd - nx_global=2500 - ny_global=220 - nz_global=240 - npx0=48 - npy0=2 - npz0=2 - Iflag_Gridtype=20 ! 2D-plane type mesh - Scheme_Invis="OMP6" - Scheme_Vis="CD6" - Ma=6.0 - Re=10000.0 - Ref_Amu_T0=79.0 - Istep_show=1 - Istep_save=10000 - dt=0.01 - End_time=10000.0 - IF_Scheme_Character=1 - Iperiodic_Z=1 - Periodic_KSpan= 0., 0., 24.0 - BoundaryCondition="BC_BOUNDARYLAYER" - ! BcData_inlet BcData_upper bc_upper_nonref bc_outlet Tw Wall_Xinit bc_dis_type bc_dis_A bc_dis_Xbegin bc_dis_Xend bc_dis_mt bc_dis_mz bc_dis_ZL bc_dis_freq - BC_Para=1, 0, 0, 0, 3.72, -1000., 1, 0.2, -430.0 -400.0 5 10 24.0 -1.0 - NFiltering=1 - ! Nstep_Filtering IF_X IF_Y IF_Z ib ie jb je kb ke F_scheme s0 rth - Filter_Para(:,1)= 2, 1 0 0 100 2500 2 220 1 240 2 1.0 1.E-5 - ANA_Number=0 - ANA_Para(:,1)=100, 10, 10000 - ! Kana Kstep_ana Kstep_save - $end - -!--------------define of BC_Para ------------------- -! BcData_inlet=nint(Para%BC_para(1)) ! inlet: (0 free-stream; 1 1d data; 2 2d data) -! BcData_upper=nint(Para%Bc_para(2)) ! upper boundary: (0 free-stream, 1 1d data , 2 2d data) -! bc_upper_nonref=nint(Para%Bc_para(3)) ! upper boundary: 0 auto, 1 Non-Reflection, 2 Dirichlet -! bc_outlet=nint(Para%Bc_para(4)) ! outlet: 0 Non-Reflection, 1 1st order extrapolation, 2 2nd order extrapolation -! Tw=Para%Bc_para(5) ! wall temperature -! Wall_Xinit=Para%Bc_para(6) ! x location of the wall leading -! bc_dis_type=nint(Para%Bc_para(7)) ! wall disturbance type (0 none ; 1 multi-wave blow-and-suction, Ref: Rai MM, AIAA 95-0583) -! bc_dis_A=Para%Bc_para(8) ! Amplitude of wall disturbance -! bc_dis_Xbegin=Para%Bc_para(9) ! Initial location of wall disturbance -! bc_dis_Xend=Para%Bc_para(10) ! End location of wall disturbance -! bc_dis_mt=nint(Para%Bc_para(11)) ! multi-frequency -! bc_dis_mz=nint(Para%Bc_para(12)) ! multi-wavenumber -! bc_dis_ZL=Para%Bc_para(13) ! Spanwise Length -! bc_dis_freq=Para%Bc_para(14) ! base frequancy of disturbance diff --git a/cases/compression-ramp-Ma6/opencfd2.in b/cases/compression-ramp-Ma6/opencfd2.in deleted file mode 100644 index 7caf4b7..0000000 --- a/cases/compression-ramp-Ma6/opencfd2.in +++ /dev/null @@ -1,50 +0,0 @@ - $control_opencfd - nx_global=2500 - ny_global=220 - nz_global=240 - npx0=48 - npy0=2 - npz0=4 - Iflag_Gridtype=20 ! 2D-plane type mesh - Scheme_Invis="HYBRID" -! shock_sensor seta1 seta2 Num_patch ib ie jb je kb ke - Hybrid_para=1, 0.01, 0.05, 1, 2460, 2500, 1, 220, 1, 240 ! dp2< .02: UD7L ; >=0.1 WENO5 -! Scheme_Invis="OMP6" - Scheme_Vis="CD6" - Ma=6.0 - Re=10000.0 - Ref_Amu_T0=79.0 - Istep_show=1 - Istep_save=10000 - dt=0.01 - End_time=10000.0 - IF_Scheme_Character=1 - Iperiodic_Z=1 - Periodic_KSpan= 0., 0., 24.0 - BoundaryCondition="BC_BOUNDARYLAYER" - ! BcData_inlet BcData_upper bc_upper_nonref bc_outlet Tw Wall_Xinit bc_dis_type bc_dis_A bc_dis_Xbegin bc_dis_Xend bc_dis_mt bc_dis_mz bc_dis_ZL bc_dis_freq - BC_Para=1, 0, 0, 0, 3.72, -1000., 1, 0.2, -430.0 -400.0 5 10 24.0 -1.0 - NFiltering=2 - ! Nstep_Filtering IF_X IF_Y IF_Z ib ie jb je kb ke F_scheme s0 rth - Filter_Para(:,1)= 20, 1, 0, 0, 100, 2500, 2, 220, 1, 240, 2, 1.0, 1.E-5 - Filter_Para(:,2)= 4, 1, 0, 0, 1200, 2500, 2, 220, 1, 240, 2, 1.0, 1.E-5 - ANA_Number=0 - ANA_Para(:,1)=100, 10, 10000 - ! Kana Kstep_ana Kstep_save - $end - -!--------------define of BC_Para ------------------- -! BcData_inlet=nint(Para%BC_para(1)) ! inlet: (0 free-stream; 1 1d data; 2 2d data) -! BcData_upper=nint(Para%Bc_para(2)) ! upper boundary: (0 free-stream, 1 1d data , 2 2d data) -! bc_upper_nonref=nint(Para%Bc_para(3)) ! upper boundary: 0 auto, 1 Non-Reflection, 2 Dirichlet -! bc_outlet=nint(Para%Bc_para(4)) ! outlet: 0 Non-Reflection, 1 1st order extrapolation, 2 2nd order extrapolation -! Tw=Para%Bc_para(5) ! wall temperature -! Wall_Xinit=Para%Bc_para(6) ! x location of the wall leading -! bc_dis_type=nint(Para%Bc_para(7)) ! wall disturbance type (0 none ; 1 multi-wave blow-and-suction, Ref: Rai MM, AIAA 95-0583) -! bc_dis_A=Para%Bc_para(8) ! Amplitude of wall disturbance -! bc_dis_Xbegin=Para%Bc_para(9) ! Initial location of wall disturbance -! bc_dis_Xend=Para%Bc_para(10) ! End location of wall disturbance -! bc_dis_mt=nint(Para%Bc_para(11)) ! multi-frequency -! bc_dis_mz=nint(Para%Bc_para(12)) ! multi-wavenumber -! bc_dis_ZL=Para%Bc_para(13) ! Spanwise Length -! bc_dis_freq=Para%Bc_para(14) ! base frequancy of disturbance diff --git a/cases/compression-ramp-Ma6/readme.txt b/cases/compression-ramp-Ma6/readme.txt deleted file mode 100644 index 100684c..0000000 --- a/cases/compression-ramp-Ma6/readme.txt +++ /dev/null @@ -1,11 +0,0 @@ -DNS of Mach 6, 34° Compression-Ramp flow -Ref: 童福林,李欣,于长平,李新亮,高超声速激波湍流边界层干扰直接数值模拟研究,力学学报,50(2),197-208,2018 ------------------------------------ -1) Mesh generation: run mesh-conner-4.f90 -2) Initial data - 1)运行: init3d-1.2.f90 (initial as zero flow) - 2)或者以已有的结果为初值(可以使用Interploation-corner3d-1.0.f90 对已有的结果进行插值, 插值到现有网格) - ln -s opencfd0.dat opencfd.dat -3) run opencfd-2 - mpirun -n 192 ./opencfd-beta-4.out - diff --git a/cases/compression-ramp-Ma6/testR.f90 b/cases/compression-ramp-Ma6/testR.f90 deleted file mode 100644 index 60dbe88..0000000 --- a/cases/compression-ramp-Ma6/testR.f90 +++ /dev/null @@ -1,103 +0,0 @@ -! OpenCFD Post-analysis code ----------------------------------------- -! Copyright by Li Xinliang, Email : lixl@imech.ac.cn -! LHD, Institute of Mechanics, CAS - implicit none - real*8,allocatable,dimension(:,:,:):: x,y,z,R - integer:: nx,ny,nz,i,j,k - print*, "Post-processing code for OpenCFD2, output tecplot-type data" - print*, "Please input nx, ny, nz" - read(*,*) nx,ny,nz - - allocate(x(nx,ny,nz),y(nx,ny,nz),z(nx,ny,nz)) - allocate(R(nx,ny,nz)) - call read_mesh(nx,ny,nz,x,y,z) - - open(77,file="Rhybrid.dat",form="unformatted" ) - call read3d(77,nx,ny,nz,R) - close(77) - k=nz/2 - open(44,file='R2d.dat') - write(44,*) 'variables= x,y,z,R' - write(44,*) 'zone i=',nx, 'j=',ny - do j=1,ny - do i=1,nx - write(44,'(10f16.8)') x(i,j,k),y(i,j,k),z(i,j,k), R(i,j,k) - enddo - enddo - close(44) - - deallocate(x,y,z,R) - end -!================================== - subroutine read3d(no,nx,ny,nz,u) - implicit none - integer:: no,nx,ny,nz,k - real*8:: u(nx,ny,nz) - print*, "read 3d data ..." - do k=1,nz - read (no) u(:,:,k) - enddo - end - - - -!-------------------------------------------- - subroutine read_mesh(nx,ny,nz,x,y,z) - implicit none - integer:: nx,ny,nz,mesh_type,i,j,k - integer,parameter:: GRID1D=10, GRID2D_PLANE=20, GRID2D_AXIAL_SYMM=21, GRID3D=30, GRID_AND_JACOBIAN3D=31 - real*8:: x(nx,ny,nz),y(nx,ny,nz),z(nx,ny,nz) - real*8,allocatable:: x1d(:),y1d(:),z1d(:),x2d(:,:),y2d(:,:) - allocate(x1d(nx),y1d(ny),z1d(nz),x2d(nx,ny),y2d(nx,ny)) - print*, "read mesh ......" - print*, "pleas input mesh_type, 10: 1D mesh; 20: 2D-plane mesh; 21: 2D-AxialSymmetry mesh; 30: 3D mesh" - read(*,*) mesh_type - - open(56,file='OCFD-grid.dat',form='unformatted') - if(mesh_type ==GRID1D) then - read(56) x1d - read(56) y1d - read(56) z1d - do k=1,nz - do j=1,ny - do i=1,nx - x(i,j,k)=x1d(i) - y(i,j,k)=y1d(j) - z(i,j,k)=z1d(k) - enddo - enddo - enddo - else if( mesh_type ==GRID2D_PLANE) then - read(56) x2d - read(56) y2d - read(56) z1d - do k=1,nz - do j=1,ny - do i=1,nx - x(i,j,k)=x2d(i,j) - y(i,j,k)=y2d(i,j) - z(i,j,k)=z1d(k) - enddo - enddo - enddo - else if( mesh_type ==GRID2D_AXIAL_SYMM) then - read(56) x2d - read(56) y2d - read(56) z1d - do k=1,nz - do j=1,ny - do i=1,nx - x(i,j,k)=x2d(i,j) - y(i,j,k)=y2d(i,j)*cos(z1d(k)) - z(i,j,k)=y2d(i,j)*sin(z1d(k)) - enddo - enddo - enddo - else - call read3d(56,nx,ny,nz,x) - call read3d(56,nx,ny,nz,y) - call read3d(56,nx,ny,nz,z) - endif - close(56) - deallocate(x1d,y1d,z1d,x2d,y2d) - end diff --git a/cases/flatplate-Ma2.25/Grid-and-init.f90 b/cases/flatplate-Ma2.25/Grid-and-init.f90 deleted file mode 100644 index ea07880..0000000 --- a/cases/flatplate-Ma2.25/Grid-and-init.f90 +++ /dev/null @@ -1,54 +0,0 @@ -! ----- Init 3D ---- - implicit none - integer,parameter:: nx=2193,ny=72,nz=128 - real*8,allocatable,dimension(:,:,:):: u - real*8,allocatable,dimension(:):: x1d, y1d, z1d - real*8:: Lz=0.175 - integer:: i,j,k - - allocate(u(nx,ny,nz)) - allocate(x1d(nx),y1d(ny),z1d(nz)) - open(99,file="ocfd-grid.dat",form="unformatted") - read(99) x1d - read(99) y1d - close(99) - - do k=1,nz - z1d(k)=(k-1.d0)*Lz/nz - enddo - - - open(99,file="OCFD-grid.dat",form="unformatted") - write(99) x1d - write(99) y1d - write(99) z1d - close(99) - - deallocate(x1d,y1d,z1d) - -!--------------------------------------------------------- - open(99,file="opencfd0.dat",form="unformatted") - write(99) 0,0.d0 - u(:,:,:)=1.d0 ! density - call write3d(99,nx,ny,nz,u) - u(:,:,:)=1.d0 - call write3d(99,nx,ny,nz,u) - u(:,:,:)=0.d0 - call write3d(99,nx,ny,nz,u) - u(:,:,:)=0.d0 - call write3d(99,nx,ny,nz,u) - u(:,:,:)=1.d0 - call write3d(99,nx,ny,nz,u) - close(99) - deallocate(u) - end - - subroutine write3d(no,nx,ny,nz,u) - implicit none - integer:: no,nx,ny,nz,k - real*8:: u(nx,ny,nz) - do k=1,nz - write(no) u(:,:,k) - enddo - end - diff --git a/cases/flatplate-Ma2.25/Grid-and-init.out b/cases/flatplate-Ma2.25/Grid-and-init.out deleted file mode 100644 index c127b26..0000000 Binary files a/cases/flatplate-Ma2.25/Grid-and-init.out and /dev/null differ diff --git a/cases/flatplate-Ma2.25/data/cf-1.11.3d-omp6.dat b/cases/flatplate-Ma2.25/data/cf-1.11.3d-omp6.dat deleted file mode 100644 index 876d1d3..0000000 --- a/cases/flatplate-Ma2.25/data/cf-1.11.3d-omp6.dat +++ /dev/null @@ -1,2193 +0,0 @@ - 4.0031857074841266 3.9928496699608371E-004 - 4.0089407907598247 3.9932667254459145E-004 - 4.0146927820747917 3.9901841486382163E-004 - 4.0204416798001343 3.9875447905037090E-004 - 4.0261874823069546 3.9847108976341059E-004 - 4.0319301879663589 3.9819380081075676E-004 - 4.0376697951494522 3.9791585221065538E-004 - 4.0434063022273383 3.9763735788058129E-004 - 4.0491397075711228 3.9736095939433349E-004 - 4.0548700095519097 3.9708499151495800E-004 - 4.0605972065408045 3.9680928878580053E-004 - 4.0663212969089120 3.9653433931230545E-004 - 4.0720422790273361 3.9626023348720418E-004 - 4.0777601512671815 3.9598692531885428E-004 - 4.0834749119995539 3.9571434369997308E-004 - 4.0891865595955590 3.9544243234239629E-004 - 4.0948950924262988 3.9517125602549962E-004 - 4.1006005088628799 3.9490091599930202E-004 - 4.1063028072764070 3.9463113122716937E-004 - 4.1120019860379839 3.9436230693337199E-004 - 4.1176980435187165 3.9409469029566020E-004 - 4.1233909780897093 3.9382581980891931E-004 - 4.1290807881220664 3.9356059853981184E-004 - 4.1347674719868932 3.9329593895293509E-004 - 4.1404510280552946 3.9302329987558416E-004 - 4.1461314546983745 3.9277536385183993E-004 - 4.1518087502872385 3.9249890273425646E-004 - 4.1574829131929913 3.9223938088254079E-004 - 4.1631539417867369 3.9198950928690581E-004 - 4.1688218344395818 3.9170179997423594E-004 - 4.1744865895226280 3.9145199279870351E-004 - 4.1801482054069830 3.9119652225248812E-004 - 4.1858066804637506 3.9093079643151432E-004 - 4.1914620130640348 3.9067402507505096E-004 - 4.1971142015789411 3.9041627053047165E-004 - 4.2027632443795735 3.9015780792903083E-004 - 4.2084091398370376 3.8990101233104683E-004 - 4.2140518863224390 3.8964454430687315E-004 - 4.2196914822068807 3.8938854476384819E-004 - 4.2253279258614675 3.8913319816865196E-004 - 4.2309612156573060 3.8887833304261909E-004 - 4.2365913499654990 3.8862396275902023E-004 - 4.2422183271571523 3.8837006250384202E-004 - 4.2478421456033706 3.8811654814377124E-004 - 4.2534628036752586 3.8786349399266346E-004 - 4.2590802997439212 3.8761078612019540E-004 - 4.2646946321804622 3.8735819202721284E-004 - 4.2703057993559872 3.8710615879485554E-004 - 4.2759137996416010 3.8685436052525874E-004 - 4.2815186314084084 3.8660207996576117E-004 - 4.2871202930275141 3.8635060115986775E-004 - 4.2927187828700228 3.8609945634700759E-004 - 4.2983140993070386 3.8584662059616096E-004 - 4.3039062407096678 3.8559541769218777E-004 - 4.3094952054490134 3.8534939582997741E-004 - 4.3150809918961812 3.8510401218709556E-004 - 4.3206635984222768 3.8485380241170495E-004 - 4.3262430233984031 3.8460008757795376E-004 - 4.3318192651956657 3.8434632419188534E-004 - 4.3373923221851687 3.8409307972438471E-004 - 4.3429621927380193 3.8383948229578683E-004 - 4.3485288752253188 3.8358528046483829E-004 - 4.3540923680181747 3.8333061539009427E-004 - 4.3596526694876907 3.8307542706231219E-004 - 4.3652097780049717 3.8281952773545983E-004 - 4.3707636919411215 3.8256281582715093E-004 - 4.3763144096672466 3.8230529156283810E-004 - 4.3818619295544510 3.8204701805249043E-004 - 4.3874062499738393 3.8178801105464888E-004 - 4.3929473692965155 3.8152810633848436E-004 - 4.3984852858935861 3.8126707956249973E-004 - 4.4040199981361550 3.8100485904763592E-004 - 4.4095515043953259 3.8074145387751937E-004 - 4.4150798030422056 3.8047674994430862E-004 - 4.4206048924478978 3.8021048444962757E-004 - 4.4261267709835064 3.7994231687993790E-004 - 4.4316454370201388 3.7967182799627527E-004 - 4.4371608889288972 3.7939847880444848E-004 - 4.4426731250808871 3.7912158133341441E-004 - 4.4481821438472124 3.7884031054943813E-004 - 4.4536879435989807 3.7855372586378212E-004 - 4.4591905227072939 3.7826068789459871E-004 - 4.4646898795432586 3.7795992253763816E-004 - 4.4701860124779778 3.7765015816833541E-004 - 4.4756789198825579 3.7732998523083759E-004 - 4.4811686001281030 3.7699813559661415E-004 - 4.4866550515857178 3.7665351658777469E-004 - 4.4921382726265069 3.7629431145480270E-004 - 4.4976182616215752 3.7591871168630054E-004 - 4.5030950169420274 3.7552610849636689E-004 - 4.5085685369589692 3.7511627848285808E-004 - 4.5140388200435044 3.7469066490010248E-004 - 4.5195058645667370 3.7425256413573411E-004 - 4.5249696688997734 3.7379803588127755E-004 - 4.5304302314137175 3.7331371160469543E-004 - 4.5358875504796750 3.7279773730736004E-004 - 4.5413416244687497 3.7227116490836271E-004 - 4.5467924517520455 3.7175133350204659E-004 - 4.5522400307006690 3.7123359532260545E-004 - 4.5576843596857248 3.7071766641124130E-004 - 4.5631254370783161 3.7022001704293704E-004 - 4.5685632612495493 3.6974292500088708E-004 - 4.5739978305705282 3.6927015401719873E-004 - 4.5794291434123577 3.6880785885593371E-004 - 4.5848571981461426 3.6839418648096329E-004 - 4.5902819931429892 3.6805600752337441E-004 - 4.5957035267739990 3.6778325855124075E-004 - 4.6011217974102800 3.6755965269907973E-004 - 4.6065368034229355 3.6738645626370237E-004 - 4.6119485431830691 3.6725434688384431E-004 - 4.6173570150617884 3.6714353469135099E-004 - 4.6227622174301954 3.6707253924681373E-004 - 4.6281641486593967 3.6707027594336239E-004 - 4.6335628071204962 3.6708652823868736E-004 - 4.6389581911845994 3.6702235683730878E-004 - 4.6443502992228103 3.6685947720868308E-004 - 4.6497391296062336 3.6666451713655905E-004 - 4.6551246807059750 3.6645455065266496E-004 - 4.6605069508931383 3.6617108573371216E-004 - 4.6658859385388283 3.6580369684764404E-004 - 4.6712616420141506 3.6540055547083837E-004 - 4.6766340596902092 3.6495513877399618E-004 - 4.6820031899381087 3.6439664397365837E-004 - 4.6873690311289549 3.6369468716694571E-004 - 4.6927315816338524 3.6289683036420527E-004 - 4.6980908398239043 3.6206537387800550E-004 - 4.7034468040702180 3.6123993989669483E-004 - 4.7087994727438955 3.6045223998608053E-004 - 4.7141488442160435 3.5974173189346262E-004 - 4.7194949168577658 3.5915011054235292E-004 - 4.7248376890401680 3.5870372693399128E-004 - 4.7301771591343549 3.5840843838946487E-004 - 4.7355133255114303 3.5825644779490754E-004 - 4.7408461865424991 3.5823985707713170E-004 - 4.7461757405986669 3.5834949543012211E-004 - 4.7515019860510375 3.5857355509573467E-004 - 4.7568249212707165 3.5891276407833708E-004 - 4.7621445446288080 3.5941872127664363E-004 - 4.7674608544964174 3.6004190097137494E-004 - 4.7727738492446488 3.6068900732414365E-004 - 4.7780835272446076 3.6135503195591843E-004 - 4.7833898868673987 3.6197992429828023E-004 - 4.7886929264841260 3.6250726016237811E-004 - 4.7939926444658951 3.6293399218114992E-004 - 4.7992890391838090 3.6328590445008696E-004 - 4.8045821090089751 3.6355281028203819E-004 - 4.8098718523124964 3.6371038266991068E-004 - 4.8151582674654776 3.6377882313926263E-004 - 4.8204413528390253 3.6380018653600974E-004 - 4.8257211068042416 3.6378501330707201E-004 - 4.8309975277322348 3.6367284318502879E-004 - 4.8362706139941061 3.6345271239167289E-004 - 4.8415403639609620 3.6323565905678397E-004 - 4.8468067760039064 3.6306760987653768E-004 - 4.8520698484940450 3.6285922491490738E-004 - 4.8573295798024816 3.6255782292977934E-004 - 4.8625859683003227 3.6226425742843897E-004 - 4.8678390123586706 3.6212603688865310E-004 - 4.8730887103486324 3.6215174593152326E-004 - 4.8783350606413123 3.6219936305311975E-004 - 4.8835780616078139 3.6217337071418535E-004 - 4.8888177116192431 3.6213140729500997E-004 - 4.8940540090467035 3.6220542993011223E-004 - 4.8992869522613010 3.6239671183957309E-004 - 4.9045165396341392 3.6250863298898739E-004 - 4.9097427695363249 3.6253357368810614E-004 - 4.9149656403389610 3.6265853890380951E-004 - 4.9201851504131531 3.6280562146255010E-004 - 4.9254012981300059 3.6270172033227971E-004 - 4.9306140818606234 3.6247434655188446E-004 - 4.9358234999761113 3.6250873682115470E-004 - 4.9410295508475741 3.6273763494584890E-004 - 4.9462322328461168 3.6287295739622976E-004 - 4.9514315443428432 3.6281843563292247E-004 - 4.9566274837088589 3.6271788078810546E-004 - 4.9618200493152687 3.6283750856608217E-004 - 4.9670092395331773 3.6315866601734943E-004 - 4.9721950527336887 3.6346256285436262E-004 - 4.9773774872879102 3.6370449508904795E-004 - 4.9825565415669422 3.6393406106933443E-004 - 4.9877322139418929 3.6419519511793645E-004 - 4.9929045027838663 3.6453370627989655E-004 - 4.9980734064639663 3.6498440152700755E-004 - 5.0032389233532992 3.6550240216137633E-004 - 5.0084010518229682 3.6596477008256915E-004 - 5.0135597902440798 3.6632026892966316E-004 - 5.0187151369877370 3.6662140547609408E-004 - 5.0238670904250453 3.6692756063988431E-004 - 5.0290156489271096 3.6724661609487000E-004 - 5.0341608108650338 3.6758651533616023E-004 - 5.0393025746099243 3.6793798608914207E-004 - 5.0444409385328850 3.6820239384154031E-004 - 5.0495759010050199 3.6831689805421020E-004 - 5.0547074603974345 3.6836694260605779E-004 - 5.0598356150812336 3.6844228293694982E-004 - 5.0649603634275220 3.6854304890884126E-004 - 5.0700817038074053 3.6860222001572812E-004 - 5.0751996345919865 3.6857828183813036E-004 - 5.0803141541523713 3.6851210677825636E-004 - 5.0854252608596635 3.6843562271830424E-004 - 5.0905329530849706 3.6829462758207563E-004 - 5.0956372291993945 3.6804641980171885E-004 - 5.1007380875740402 3.6784182621483005E-004 - 5.1058355265800150 3.6784071132566263E-004 - 5.1109295445884211 3.6795612349833191E-004 - 5.1160201399703640 3.6788208312220013E-004 - 5.1211073110969485 3.6749669670972830E-004 - 5.1261910563392794 3.6706248808458705E-004 - 5.1312713740684615 3.6683386894391227E-004 - 5.1363482626555985 3.6681581658567938E-004 - 5.1414217204717971 3.6684706658361488E-004 - 5.1464917458881621 3.6680947120300902E-004 - 5.1515583372757963 3.6674617773618562E-004 - 5.1566214930058054 3.6674703925837737E-004 - 5.1616812114492951 3.6681924627153902E-004 - 5.1667374909773685 3.6692568183602128E-004 - 5.1717903299611319 3.6705033785279842E-004 - 5.1768397267716875 3.6720476375051399E-004 - 5.1818856797801436 3.6741266771299477E-004 - 5.1869281873576032 3.6770515498346846E-004 - 5.1919672478751711 3.6808520299721841E-004 - 5.1970028597039519 3.6845977388835744E-004 - 5.2020350212150506 3.6878441216025123E-004 - 5.2070637307795726 3.6916112416010490E-004 - 5.2120889867686211 3.6967326544864711E-004 - 5.2171107875533025 3.7030328154721024E-004 - 5.2221291315047207 3.7095900149664880E-004 - 5.2271440169939796 3.7148783249834222E-004 - 5.2321554423921857 3.7187433495659090E-004 - 5.2371634060704437 3.7237993614229979E-004 - 5.2421679063998567 3.7311203920033687E-004 - 5.2471689417515313 3.7387489458300669E-004 - 5.2521665104965711 3.7448944567751582E-004 - 5.2571606110060802 3.7493752268500806E-004 - 5.2621512416511660 3.7525965907578886E-004 - 5.2671384008029305 3.7557809609609837E-004 - 5.2721220868324803 3.7592066855154102E-004 - 5.2771022981109184 3.7614149927128900E-004 - 5.2820790330093521 3.7629545179187308E-004 - 5.2870522898988845 3.7640381874883119E-004 - 5.2920220671506204 3.7646103168321305E-004 - 5.2969883631356645 3.7658643434093408E-004 - 5.3019511762251215 3.7674660253089200E-004 - 5.3069105047900962 3.7684288511282690E-004 - 5.3118663472016943 3.7683840325820959E-004 - 5.3168187018310196 3.7667672694214786E-004 - 5.3217675670491769 3.7641158075129715E-004 - 5.3267129412272727 3.7612364483654296E-004 - 5.3316548227364091 3.7578940867204929E-004 - 5.3365932099476918 3.7551831648992447E-004 - 5.3415281012322264 3.7532017315389634E-004 - 5.3464594949611168 3.7506153926797489E-004 - 5.3513873895054678 3.7469731335843122E-004 - 5.3563117832363849 3.7434770221362793E-004 - 5.3612326745249721 3.7413753047138250E-004 - 5.3661500617423350 3.7409042303499093E-004 - 5.3710639432595775 3.7433884318394968E-004 - 5.3759743174478043 3.7491732463228590E-004 - 5.3808811826781220 3.7567764701930450E-004 - 5.3857845373216318 3.7658099598227132E-004 - 5.3906843797494419 3.7774728717673975E-004 - 5.3955807083326555 3.7920856785497492E-004 - 5.4004735214423771 3.8085244717892631E-004 - 5.4053628174497117 3.8266397163131235E-004 - 5.4102485947257657 3.8453361935221182E-004 - 5.4151308516416421 3.8638804350245304E-004 - 5.4200095865684457 3.8840652936849890E-004 - 5.4248847978772821 3.9064454613022969E-004 - 5.4297564839392543 3.9281620467700748E-004 - 5.4346246431254697 3.9464098591126845E-004 - 5.4394892738070313 3.9611929556623550E-004 - 5.4443503743550448 3.9759928088258363E-004 - 5.4492079431406131 3.9906086129828065E-004 - 5.4540619785348436 4.0013106586398698E-004 - 5.4589124789088395 4.0097693387125115E-004 - 5.4637594426337062 4.0203261439455756E-004 - 5.4686028680805476 4.0335171214899156E-004 - 5.4734427536204695 4.0420303015292302E-004 - 5.4782790976245757 4.0428484312045364E-004 - 5.4831118984639708 4.0424224107255821E-004 - 5.4879411545097607 4.0461228553246876E-004 - 5.4927668641330500 4.0522825167589794E-004 - 5.4975890257049436 4.0556233051550390E-004 - 5.5024076375965443 4.0548187450583061E-004 - 5.5072226981789605 4.0529576194381145E-004 - 5.5120342058232925 4.0521460046706945E-004 - 5.5168421589006487 4.0511199430380757E-004 - 5.5216465557821319 4.0485513802141214E-004 - 5.5264473948388479 4.0440277907974472E-004 - 5.5312446744419015 4.0397065668413255E-004 - 5.5360383929623964 4.0358171655027931E-004 - 5.5408285487714384 4.0290494752170724E-004 - 5.5456151402401312 4.0180152106595386E-004 - 5.5503981657395816 4.0095636656864566E-004 - 5.5551776236408923 4.0167808850136665E-004 - 5.5599535123151682 4.0449331521297006E-004 - 5.5647258301335150 4.0858532065949938E-004 - 5.5694945754670373 4.1294559221842850E-004 - 5.5742597466868400 4.1773987499221451E-004 - 5.5790213421640260 4.2425127834223918E-004 - 5.5837793602697037 4.3253211369972082E-004 - 5.5885337993749742 4.4128277218780890E-004 - 5.5932846578509450 4.5098388900544263E-004 - 5.5980319340687199 4.5968426451368583E-004 - 5.6027756263994011 4.6083794068241149E-004 - 5.6075157332140977 4.5370377586323338E-004 - 5.6122522528839127 4.4863731013438458E-004 - 5.6169851837799492 4.5598667836430393E-004 - 5.6217145242733153 4.7135890638876044E-004 - 5.6264402727351124 4.8054583462770855E-004 - 5.6311624275364469 4.7669802272531605E-004 - 5.6358809870484246 4.6069816231341472E-004 - 5.6405959496421483 4.4170585098354185E-004 - 5.6453073136887237 4.3929211295849275E-004 - 5.6500150775592548 4.7936862747385834E-004 - 5.6547192396248471 5.3983363873539452E-004 - 5.6594197982566055 5.6205858207931795E-004 - 5.6641167518256355 5.3122979439049775E-004 - 5.6688100987030392 4.8577387762646526E-004 - 5.6734998372599241 4.6574525629745455E-004 - 5.6781859658673941 4.5931112247776475E-004 - 5.6828684828965530 4.4544220043033552E-004 - 5.6875473867185065 4.4123069825344191E-004 - 5.6922226757043592 4.8047072970713352E-004 - 5.6968943482252161 5.2946172293665559E-004 - 5.7015624026521818 5.3610388884561269E-004 - 5.7062268373563612 5.0115146507595661E-004 - 5.7108876507088588 4.5871954388959694E-004 - 5.7155448410807796 4.3490963132438565E-004 - 5.7201984068432274 4.4418748249930399E-004 - 5.7248483463673079 4.7528568232428912E-004 - 5.7294946580241266 5.0067534846639410E-004 - 5.7341373401847866 5.0670382448655558E-004 - 5.7387763912203935 4.9548646822643132E-004 - 5.7434118095020521 4.7725229459180305E-004 - 5.7480435934008671 4.6101919398642915E-004 - 5.7526717412879442 4.5386958756167371E-004 - 5.7572962515343864 4.6381306414271538E-004 - 5.7619171225112993 4.8649932155223253E-004 - 5.7665343525897876 5.0408394140374739E-004 - 5.7711479401409562 5.0399130705178967E-004 - 5.7757578835359098 4.8990819557711359E-004 - 5.7803641811457531 4.7497585891417637E-004 - 5.7849668313415910 4.6561322491757759E-004 - 5.7895658324945281 4.6034030378539024E-004 - 5.7941611829756692 4.5942162194310585E-004 - 5.7987528811561200 4.6396010974904164E-004 - 5.8033409254069834 4.7178355513033550E-004 - 5.8079253140993661 4.8023588315790176E-004 - 5.8125060456043709 4.9036242102039405E-004 - 5.8170831182931035 5.0448111421653378E-004 - 5.8216565305366696 5.2358467098187207E-004 - 5.8262262807061731 5.4488538756104787E-004 - 5.8307923671727178 5.6472161410188427E-004 - 5.8353547883074111 5.8252588631849968E-004 - 5.8399135424813551 5.9860902338176045E-004 - 5.8444686280656555 6.1200164354326201E-004 - 5.8490200434314161 6.2196922230537050E-004 - 5.8535677869497436 6.2811366730386681E-004 - 5.8581118569917425 6.2902069607962254E-004 - 5.8626522519285160 6.2787186607004262E-004 - 5.8671889701311706 6.3142538619183667E-004 - 5.8717220099708101 6.3949024178738931E-004 - 5.8762513698185392 6.3888224342125539E-004 - 5.8807770480454638 6.2755871315361977E-004 - 5.8852990430226866 6.2127938943644953E-004 - 5.8898173531213143 6.2936889017278254E-004 - 5.8943319767124507 6.5814627018229090E-004 - 5.8988429121671997 6.9233463645428333E-004 - 5.9033501578566678 7.1145405479712336E-004 - 5.9078537121519599 7.2852406303444933E-004 - 5.9123535734241788 7.4878787153215352E-004 - 5.9168497400444320 7.5680774193904435E-004 - 5.9213422103838216 7.4900033222600635E-004 - 5.9258309828134532 7.3594279577053287E-004 - 5.9303160557044325 7.2241689601525074E-004 - 5.9347974274278625 6.9826178642667437E-004 - 5.9392750963548497 6.5957684179600632E-004 - 5.9437490608564980 6.2103126272818000E-004 - 5.9482193193039139 5.9795421159459107E-004 - 5.9526858700681995 6.0015457015711964E-004 - 5.9571487115204613 6.3977908492811124E-004 - 5.9616078420318015 7.0841260291036113E-004 - 5.9660632599733292 7.6701197966238686E-004 - 5.9705149637161457 7.8187018724768062E-004 - 5.9749629516313574 7.7281575296191552E-004 - 5.9794072220900674 7.7551341954177309E-004 - 5.9838477734633821 7.8509771983736887E-004 - 5.9882846041224065 7.7458520670816409E-004 - 5.9927177124382442 7.5204149379877547E-004 - 5.9971470967820011 7.4845364528264345E-004 - 6.0015727555247800 7.7381714365446679E-004 - 6.0059946870376884 8.3781025075076014E-004 - 6.0104128896918283 9.1801670641320930E-004 - 6.0148273618583055 9.6823242203952602E-004 - 6.0192381019082255 9.7634216192032898E-004 - 6.0236451082126941 9.5219842078508507E-004 - 6.0280483791428132 9.2473022894887279E-004 - 6.0324479130696886 9.2204229173364850E-004 - 6.0368437083644260 9.5591910913646490E-004 - 6.0412357633981291 1.0081157854678687E-003 - 6.0456240765419036 1.0500882443138940E-003 - 6.0500086461668552 1.0686968505076902E-003 - 6.0543894706440842 1.0541459148231686E-003 - 6.0587665483446997 1.0182234833003812E-003 - 6.0631398776398058 1.0026146534495961E-003 - 6.0675094569005061 1.0239465815351815E-003 - 6.0718752844979065 1.0939149185264950E-003 - 6.0762373588031107 1.1907940174528033E-003 - 6.0805956781872244 1.2274344033285415E-003 - 6.0849502410213514 1.2039128566859764E-003 - 6.0893010456765957 1.1891503762812134E-003 - 6.0936480905240664 1.1690030434853011E-003 - 6.0979913739348639 1.1230691208623507E-003 - 6.1023308942800938 1.1148653293731835E-003 - 6.1066666499308617 1.1724068359518479E-003 - 6.1109986392582716 1.2473044503418104E-003 - 6.1153268606334290 1.2825335678489391E-003 - 6.1196513124274379 1.2655548600957293E-003 - 6.1239719930114056 1.2058579833319047E-003 - 6.1282889007564307 1.1278923143104135E-003 - 6.1326020340336242 1.0794936785958624E-003 - 6.1369113912140900 1.0884697546475297E-003 - 6.1412169706689319 1.1367907594516111E-003 - 6.1455187707692520 1.1955611205046095E-003 - 6.1498167898861595 1.2642960310852592E-003 - 6.1541110263907548 1.2886472388060871E-003 - 6.1584014786541452 1.2091510177230291E-003 - 6.1626881450474364 1.0827746712916810E-003 - 6.1669710239417324 1.0474940037108937E-003 - 6.1712501137081368 1.1873745827112483E-003 - 6.1755254127177537 1.3792545517785583E-003 - 6.1797969193416922 1.4080666669678593E-003 - 6.1840646319510526 1.3202552862225897E-003 - 6.1883285489169406 1.3023081700067613E-003 - 6.1925886686104619 1.3493997015256484E-003 - 6.1968449894027220 1.3707280999293548E-003 - 6.2010975096648231 1.4185286105142265E-003 - 6.2053462277678726 1.5579406749850610E-003 - 6.2095911420829726 1.7126617687640480E-003 - 6.2138322509812305 1.7232977092592292E-003 - 6.2180695528337502 1.6087970644296603E-003 - 6.2223030460116373 1.5231290190822712E-003 - 6.2265327288859922 1.5335454799996623E-003 - 6.2307585998279258 1.5487610707795999E-003 - 6.2349806572085402 1.5116323271733682E-003 - 6.2391988993989376 1.4795969298108994E-003 - 6.2434133247702270 1.4966826891331618E-003 - 6.2476239316935107 1.4949734202609347E-003 - 6.2518307185398942 1.4227884357348515E-003 - 6.2560336836804815 1.3491373089854462E-003 - 6.2602328254863782 1.3370410503779837E-003 - 6.2644281423286898 1.3332845838542663E-003 - 6.2686196325785204 1.3043452854635449E-003 - 6.2728072946069737 1.2833762069621834E-003 - 6.2769911267851537 1.3213289882519842E-003 - 6.2811711274841677 1.4014889645407804E-003 - 6.2853472950751215 1.4264335782453266E-003 - 6.2895196279291170 1.3927213324784983E-003 - 6.2936881244172582 1.3442495620227025E-003 - 6.2978527829106525 1.2942029850686325E-003 - 6.3020136017804038 1.2564705660692685E-003 - 6.3061705793976177 1.2457424953354879E-003 - 6.3103237141333963 1.2594983729447905E-003 - 6.3144730043588471 1.2379492604370234E-003 - 6.3186184484450738 1.1808481831142672E-003 - 6.3227600447631804 1.1531838527567323E-003 - 6.3268977916842744 1.2122996301303993E-003 - 6.3310316875794559 1.3353085847367979E-003 - 6.3351617308198342 1.4203214231931066E-003 - 6.3392879197765115 1.3802896749485524E-003 - 6.3434102528205933 1.3178995942450867E-003 - 6.3475287283231836 1.3951366848087671E-003 - 6.3516433446553897 1.5799910993277398E-003 - 6.3557541001883138 1.7189623289269088E-003 - 6.3598609932930614 1.7244383014613327E-003 - 6.3639640223407383 1.6255092729527147E-003 - 6.3680631857024483 1.5417530208679338E-003 - 6.3721584817492953 1.5276672540067509E-003 - 6.3762499088523832 1.5735936621488549E-003 - 6.3803374653828211 1.6840739078036356E-003 - 6.3844211497117112 1.7822057172916113E-003 - 6.3885009602101572 1.7961869209264674E-003 - 6.3925768952492668 1.7616218518326547E-003 - 6.3966489532001400 1.7273641475517843E-003 - 6.4007171324338863 1.6918447727427496E-003 - 6.4047814313216076 1.6521899198544937E-003 - 6.4088418482344096 1.5883711851655536E-003 - 6.4128983815433998 1.5361588199734634E-003 - 6.4169510296196783 1.5877686828430415E-003 - 6.4209997908343510 1.7188385043810689E-003 - 6.4250446635585234 1.8172330162617514E-003 - 6.4290856461633012 1.8734905161220134E-003 - 6.4331227370197883 1.8756146087959503E-003 - 6.4371559344990903 1.8298544904090494E-003 - 6.4411852369723110 1.7831993228577335E-003 - 6.4452106428105544 1.7875279738028276E-003 - 6.4492321503849261 1.8202487145418207E-003 - 6.4532497580665336 1.8533031669086340E-003 - 6.4572634642264752 1.8844347692867091E-003 - 6.4612732672358621 1.9186207179644815E-003 - 6.4652791654657964 1.9657340116387228E-003 - 6.4692811572873836 2.0322989250115856E-003 - 6.4732792410717259 2.0791199873498030E-003 - 6.4772734151899307 2.1018544739638480E-003 - 6.4812636780131019 2.1078411199960323E-003 - 6.4852500279123433 2.1048871010923035E-003 - 6.4892324632587624 2.1120139887598225E-003 - 6.4932109824234630 2.0844931640098732E-003 - 6.4971855837775472 1.9742625189738709E-003 - 6.5011562656921242 1.8741554806226356E-003 - 6.5051230265382944 1.8718438735239159E-003 - 6.5090858646871652 1.9302277930720506E-003 - 6.5130447785098404 2.0072051770063937E-003 - 6.5169997663774257 2.0677307861207521E-003 - 6.5209508266610250 2.1056089335601889E-003 - 6.5248979577317421 2.1093931372638325E-003 - 6.5288411579606844 2.0512602602371834E-003 - 6.5327804257189541 1.9658680490674996E-003 - 6.5367157593776586 1.9072681569142146E-003 - 6.5406471573078999 1.8964861412319308E-003 - 6.5445746178807838 1.8873161702508752E-003 - 6.5484981394674158 1.8510470679917364E-003 - 6.5524177204388998 1.8448859364584727E-003 - 6.5563333591663415 1.9011349600011225E-003 - 6.5602450540208448 1.9779633594308546E-003 - 6.5641528033735153 2.0910250621549338E-003 - 6.5680566055954568 2.2500057791679435E-003 - 6.5719564590577750 2.3341913551850587E-003 - 6.5758523621315721 2.2923682305156299E-003 - 6.5797443131879572 2.2294998159874276E-003 - 6.5836323105980306 2.1860531928532289E-003 - 6.5875163527329015 2.1594268240104283E-003 - 6.5913964379636703 2.1736877303235726E-003 - 6.5952725646614461 2.2703627305815086E-003 - 6.5991447311973292 2.3326380150228998E-003 - 6.6030129359424272 2.2379982619656100E-003 - 6.6068771772678438 2.0789959997866750E-003 - 6.6107374535446866 2.0206908864186159E-003 - 6.6145937631440557 2.0678704366662551E-003 - 6.6184461044370586 2.1691520656634830E-003 - 6.6222944757947992 2.2487231383111058E-003 - 6.6261388755883850 2.2280435565518565E-003 - 6.6299793021889162 2.1544992115146498E-003 - 6.6338157539675002 2.1019060730737820E-003 - 6.6376482292952428 2.0848501450100288E-003 - 6.6414767265432459 2.1243514169042061E-003 - 6.6453012440826154 2.1846715303003908E-003 - 6.6491217802844567 2.2183242749158273E-003 - 6.6529383335198737 2.1948980482370244E-003 - 6.6567509021599740 2.1318778835574741E-003 - 6.6605594845758578 2.1056382601147353E-003 - 6.6643640791386343 2.1425779878519974E-003 - 6.6681646842194038 2.1613473827456963E-003 - 6.6719612981892737 2.1492960518893723E-003 - 6.6757539194193498 2.1479039346172118E-003 - 6.6795425462807341 2.1592413558010688E-003 - 6.6833271771445339 2.1497886555358818E-003 - 6.6871078103818515 2.1367778731455544E-003 - 6.6908844443637943 2.1571267632975880E-003 - 6.6946570774614642 2.1952809847118615E-003 - 6.6984257080459706 2.2103000000034466E-003 - 6.7021903344884119 2.2002696145301997E-003 - 6.7059509551598975 2.1682140668527606E-003 - 6.7097075684315310 2.0645544215486178E-003 - 6.7134601726744165 1.9317877434534868E-003 - 6.7172087662596596 1.8936689117545538E-003 - 6.7209533475583640 1.9585401277921353E-003 - 6.7246939149416356 2.0192381018233102E-003 - 6.7284304667805799 2.0405131566920694E-003 - 6.7321630014462990 2.0173138539604516E-003 - 6.7358915173099003 1.9707295404632840E-003 - 6.7396160127424878 1.9700381627330184E-003 - 6.7433364861151652 2.0705974523718479E-003 - 6.7470529357990365 2.2118119478235399E-003 - 6.7507653601652091 2.2947681919732233E-003 - 6.7544737575847869 2.3391790343978290E-003 - 6.7581781264288754 2.3703607644601963E-003 - 6.7618784650685768 2.3673109457287996E-003 - 6.7655747718749986 2.3535743941656391E-003 - 6.7692670452192427 2.3448191188131721E-003 - 6.7729552834724167 2.3397741606152270E-003 - 6.7766394850056244 2.3505378581086017E-003 - 6.7803196481899697 2.3759206559925182E-003 - 6.7839957713965582 2.3400757042429171E-003 - 6.7876678529964956 2.2289204569919791E-003 - 6.7913358913608839 2.1529092016657936E-003 - 6.7949998848608288 2.1495298885404325E-003 - 6.7986598318674378 2.1747398968063165E-003 - 6.8023157307518129 2.1793705839908231E-003 - 6.8059675798850598 2.1617067381149882E-003 - 6.8096153776382842 2.1455605553236863E-003 - 6.8132591223825880 2.1550897943072860E-003 - 6.8168988124890788 2.2290828520453838E-003 - 6.8205344463288586 2.3290024119569743E-003 - 6.8241660222730367 2.4390709998626772E-003 - 6.8277935386927116 2.5567725269169872E-003 - 6.8314169939589924 2.6430706637622357E-003 - 6.8350363864429866 2.7038645907584112E-003 - 6.8386517145157910 2.7374447520164438E-003 - 6.8422629765485166 2.6774685856731512E-003 - 6.8458701709122654 2.5288515223564961E-003 - 6.8494732959781430 2.4126263170829421E-003 - 6.8530723501172552 2.4144516931037014E-003 - 6.8566673317007059 2.4868901257263610E-003 - 6.8602582390995988 2.5174445171729839E-003 - 6.8638450706850413 2.4761051831592323E-003 - 6.8674278248281340 2.4385872987193447E-003 - 6.8710064998999858 2.4656302120441235E-003 - 6.8745810942716989 2.4981654752534907E-003 - 6.8781516063143791 2.4845564340370513E-003 - 6.8817180343991318 2.4619171802457360E-003 - 6.8852803768970592 2.3985408298771785E-003 - 6.8888386321792687 2.3022220353708239E-003 - 6.8923927986168643 2.1999951457976697E-003 - 6.8959428745809515 2.1234151050522820E-003 - 6.8994888584426342 2.1027037467586294E-003 - 6.9030307485730162 2.1484915654292991E-003 - 6.9065685433432034 2.2420105711209773E-003 - 6.9101022411243012 2.3354568644890256E-003 - 6.9136318402874117 2.4176098042921271E-003 - 6.9171573392036443 2.5132935623205285E-003 - 6.9206787362440991 2.5678613977682058E-003 - 6.9241960297798819 2.5399358863371479E-003 - 6.9277092181821018 2.4953443106533859E-003 - 6.9312182998218574 2.4496653389831529E-003 - 6.9347232730702562 2.3906332291626785E-003 - 6.9382241362984054 2.3284590401610990E-003 - 6.9417208878774037 2.3201588626283807E-003 - 6.9452135261783621 2.4225830896461480E-003 - 6.9487020495723826 2.5065060663830812E-003 - 6.9521864564305691 2.4664054797547343E-003 - 6.9556667451240273 2.4080187727719450E-003 - 6.9591429140238628 2.3523039913596494E-003 - 6.9626149615011794 2.2671753500176015E-003 - 6.9660828859270829 2.1889630646442278E-003 - 6.9695466856726753 2.0952386881563450E-003 - 6.9730063591090641 2.0041208237026181E-003 - 6.9764619046073548 1.9699832125959003E-003 - 6.9799133205386497 2.0158696734813518E-003 - 6.9833606052740542 2.1405651357577237E-003 - 6.9868037571846724 2.2914457460614379E-003 - 6.9902427746416116 2.4040049796966406E-003 - 6.9936776560159757 2.4886203920154296E-003 - 6.9971083996788668 2.5578758951808550E-003 - 7.0005350040013923 2.5755033384329030E-003 - 7.0039574673546561 2.5446098416980123E-003 - 7.0073757881097656 2.4889779072574986E-003 - 7.0107899646378193 2.4011675527009875E-003 - 7.0141999953099283 2.2991420794418018E-003 - 7.0176058784971929 2.2248449470324847E-003 - 7.0210076125707221 2.1943043906402461E-003 - 7.0244051959016183 2.1929813817574430E-003 - 7.0277986268609851 2.2370722011642958E-003 - 7.0311879038199283 2.3236294393473773E-003 - 7.0345730251495517 2.4001421371280625E-003 - 7.0379539892209646 2.4394986924402822E-003 - 7.0413307944052672 2.3967665797123175E-003 - 7.0447034390735652 2.3851047698493270E-003 - 7.0480719215969643 2.5047202746955265E-003 - 7.0514362403465682 2.6389071693853714E-003 - 7.0547963936934810 2.6437151409471403E-003 - 7.0581523800088100 2.5383557956991146E-003 - 7.0615041976636572 2.4492857322549683E-003 - 7.0648518450291302 2.4145118281190497E-003 - 7.0681953204763310 2.3828284664848152E-003 - 7.0715346223763653 2.3440589359749074E-003 - 7.0748697491003405 2.3257716561169307E-003 - 7.0782006990193551 2.3137016080091678E-003 - 7.0815274705045219 2.2602123187960206E-003 - 7.0848500619269394 2.1910455209550681E-003 - 7.0881684716577151 2.1769846980108916E-003 - 7.0914826980679528 2.2337309223163732E-003 - 7.0947927395287600 2.3166635641835446E-003 - 7.0980985944112369 2.3712125139323677E-003 - 7.1014002610864893 2.3734550640422594E-003 - 7.1046977379256262 2.3424396311181217E-003 - 7.1079910232997463 2.3081280789003593E-003 - 7.1112801155799588 2.2883595311379685E-003 - 7.1145650131373692 2.2637125777385785E-003 - 7.1178457143430762 2.2493579545237999E-003 - 7.1211222175681907 2.2621465835281343E-003 - 7.1243945211838149 2.2875998178413432E-003 - 7.1276626235610543 2.3034622982560232E-003 - 7.1309265230710128 2.2837019849164786E-003 - 7.1341862180847961 2.2145107806207111E-003 - 7.1374417069735081 2.1673425390704684E-003 - 7.1406929881082561 2.2179953605804860E-003 - 7.1439400598601388 2.3143545468532964E-003 - 7.1471829206002688 2.3747492798215177E-003 - 7.1504215686997430 2.3568736066994210E-003 - 7.1536560025296723 2.2638641124814673E-003 - 7.1568862204611605 2.1821897217784640E-003 - 7.1601122208653116 2.1664541472780855E-003 - 7.1633340021132277 2.1926966084554697E-003 - 7.1665515625760143 2.2252433500676225E-003 - 7.1697649006247808 2.2780548757915255E-003 - 7.1729740146306291 2.3191767919781858E-003 - 7.1761789029646614 2.3131055531907694E-003 - 7.1793795639979869 2.2798557865789677E-003 - 7.1825759961017077 2.2482312437548113E-003 - 7.1857681976469276 2.2211534383491304E-003 - 7.1889561670047541 2.1935228727863517E-003 - 7.1921399025462911 2.1693119155539392E-003 - 7.1953194026426424 2.1672985894825247E-003 - 7.1984946656649136 2.2045079014081591E-003 - 7.2016656899842104 2.2564893759320801E-003 - 7.2048324739716350 2.2731481475718124E-003 - 7.2079950159982928 2.2483466306721820E-003 - 7.2111533144352897 2.2420380871736637E-003 - 7.2143073676537313 2.2563542164820700E-003 - 7.2174571740247195 2.2730479277434149E-003 - 7.2206027319193637 2.2921794403672974E-003 - 7.2237440397087624 2.3104807867562627E-003 - 7.2268810957640248 2.3048961229352283E-003 - 7.2300138984562565 2.2692442639340640E-003 - 7.2331424461565579 2.2375849505735551E-003 - 7.2362667372360381 2.2398230953622656E-003 - 7.2393867700657992 2.2647669993649676E-003 - 7.2425025430169434 2.2838836256445514E-003 - 7.2456140544605834 2.3023791582485529E-003 - 7.2487213027678159 2.3331826059356129E-003 - 7.2518242863097520 2.3628998900891238E-003 - 7.2549230034574919 2.3526409503574633E-003 - 7.2580174525821430 2.3211950777754613E-003 - 7.2611076320548094 2.3471749679119490E-003 - 7.2641935402465947 2.4456769135089086E-003 - 7.2672751755286029 2.5791358448393311E-003 - 7.2703525362719432 2.6940136912296489E-003 - 7.2734256208477142 2.7245783452172173E-003 - 7.2764944276270285 2.6733832947583923E-003 - 7.2795589549809847 2.5956439731177460E-003 - 7.2826192012806885 2.4906398816411622E-003 - 7.2856751648972438 2.3563214921597454E-003 - 7.2887268442017579 2.2664751258703623E-003 - 7.2917742375653347 2.2572181879106858E-003 - 7.2948173433590817 2.2787863809628000E-003 - 7.2978561599540974 2.3029333025801789E-003 - 7.3008906857214928 2.3572790734118615E-003 - 7.3039209190323682 2.4293669840424843E-003 - 7.3069468582578310 2.4537912726999341E-003 - 7.3099685017689850 2.4276271871315077E-003 - 7.3129858479369325 2.3890267365964920E-003 - 7.3159988951327843 2.3531108845280561E-003 - 7.3190076417276391 2.3489136875137909E-003 - 7.3220120860926059 2.3617126598540874E-003 - 7.3250122265987869 2.3506090085317244E-003 - 7.3280080616172860 2.3309253925990329E-003 - 7.3309995895192124 2.3024496545249080E-003 - 7.3339868086756681 2.2679879191657877E-003 - 7.3369697174577588 2.2251525102588657E-003 - 7.3399483142365849 2.1826788314734664E-003 - 7.3429225973832573 2.1513831247173400E-003 - 7.3458925652688762 2.1374737337580348E-003 - 7.3488582162645510 2.1413140492811266E-003 - 7.3518195487413820 2.1515053244997367E-003 - 7.3547765610704765 2.1756064108728536E-003 - 7.3577292516229367 2.2383879724840977E-003 - 7.3606776187698699 2.2986778374275720E-003 - 7.3636216608823801 2.3244618670491060E-003 - 7.3665613763315729 2.3625838810244272E-003 - 7.3694967634885522 2.3817463561538925E-003 - 7.3724278207244236 2.3479530778246121E-003 - 7.3753545464102892 2.2920472838342705E-003 - 7.3782769389172564 2.2545782899650903E-003 - 7.3811949966164292 2.2710285378567709E-003 - 7.3841087178789131 2.3384369352452291E-003 - 7.3870181010758103 2.3894169382435758E-003 - 7.3899231445782299 2.3640876596026628E-003 - 7.3928238467572722 2.2984300462793490E-003 - 7.3957202059840448 2.2469082874612216E-003 - 7.3986122206296514 2.2036404197993994E-003 - 7.4014998890651977 2.1439925362207513E-003 - 7.4043832096617859 2.0868651911899808E-003 - 7.4072621807905250 2.0613540447645060E-003 - 7.4101368008225172 2.0681931729322044E-003 - 7.4130070681288665 2.0659845825364226E-003 - 7.4158729810806765 2.0487685035838459E-003 - 7.4187345380490566 2.0684876942382007E-003 - 7.4215917374051088 2.1199327058879481E-003 - 7.4244445775199370 2.1474438331326013E-003 - 7.4272930567646469 2.1161784877310520E-003 - 7.4301371735103459 2.0542472944733124E-003 - 7.4329769261281342 2.0375029118564550E-003 - 7.4358123129891212 2.1155112321929476E-003 - 7.4386433324644052 2.2447857930262402E-003 - 7.4414699829250956 2.3283673095018079E-003 - 7.4442922627422980 2.3256092850202081E-003 - 7.4471101702871163 2.2739417638701367E-003 - 7.4499237039306543 2.2363559031223458E-003 - 7.4527328620440159 2.2389554528372529E-003 - 7.4555376429983085 2.2712035673499551E-003 - 7.4583380451646342 2.3176663777492151E-003 - 7.4611340669140986 2.3392786205587539E-003 - 7.4639257066178075 2.3172603527275249E-003 - 7.4667129626468647 2.2590202275718403E-003 - 7.4694958333723740 2.1980549219929955E-003 - 7.4722743171654447 2.1798690174486789E-003 - 7.4750484123971752 2.1958569877791366E-003 - 7.4778181174386749 2.1867699907922328E-003 - 7.4805834306610457 2.1357007548553934E-003 - 7.4833443504353969 2.1146737320566927E-003 - 7.4861008751328271 2.1612567029816380E-003 - 7.4888530031244436 2.2141792464060511E-003 - 7.4916007327813539 2.2243823334174438E-003 - 7.4943440624746582 2.1993699162676330E-003 - 7.4970829905754641 2.1693555632193422E-003 - 7.4998175154548754 2.1923373533229021E-003 - 7.5025476354839995 2.2648700909337523E-003 - 7.5052733490339367 2.3247222651346516E-003 - 7.5079946544757945 2.3635048114730847E-003 - 7.5107115501806767 2.3840954263767370E-003 - 7.5134240345196908 2.3623996520244109E-003 - 7.5161321058639352 2.2977849878179140E-003 - 7.5188357625845228 2.2365780161793755E-003 - 7.5215350030525521 2.2052742639721589E-003 - 7.5242298256391322 2.2092057020788023E-003 - 7.5269202287153618 2.2357370760899701E-003 - 7.5296062106523536 2.2642090868897988E-003 - 7.5322877698212061 2.2778015656998922E-003 - 7.5349649045930267 2.2749489240840664E-003 - 7.5376376133389194 2.2858406787595511E-003 - 7.5403058944299914 2.3041885532899919E-003 - 7.5429697462373433 2.2972127834924019E-003 - 7.5456291671320823 2.2790222189550632E-003 - 7.5482841554853124 2.2706658694616722E-003 - 7.5509347096681392 2.2522209655393114E-003 - 7.5535808280516683 2.2228916143262720E-003 - 7.5562225090070037 2.1937524798939403E-003 - 7.5588597509052473 2.1680512190782549E-003 - 7.5614925521175067 2.1457180216756799E-003 - 7.5641209110148875 2.1241924705555997E-003 - 7.5667448259684917 2.0655306615360290E-003 - 7.5693642953494269 1.9821790713917325E-003 - 7.5719793175287968 1.9729492752478990E-003 - 7.5745898908777036 2.0521926556589655E-003 - 7.5771960137672565 2.1429700758289253E-003 - 7.5797976845685593 2.1989233217086430E-003 - 7.5823949016527123 2.2484867095097314E-003 - 7.5849876633908266 2.2870420922497495E-003 - 7.5875759681540025 2.2820411430258870E-003 - 7.5901598143133455 2.2339985629114103E-003 - 7.5927392002399632 2.1886353601626744E-003 - 7.5953141243049558 2.2079997058282114E-003 - 7.5978845848794325 2.2744864950687625E-003 - 7.6004505803344937 2.3291144935002890E-003 - 7.6030121090412486 2.3352029205780315E-003 - 7.6055691693707992 2.3276709847140065E-003 - 7.6081217596942494 2.3630580834873090E-003 - 7.6106698783827085 2.4403290745875742E-003 - 7.6132135238072784 2.5098782519585930E-003 - 7.6157526943390614 2.5096111281257879E-003 - 7.6182873883491649 2.4470210078532447E-003 - 7.6208176042086944 2.3867777697197030E-003 - 7.6233433402887538 2.3515362878638760E-003 - 7.6258645949604471 2.3213318641927224E-003 - 7.6283813665948799 2.3084927741809000E-003 - 7.6308936535631560 2.3586896926821020E-003 - 7.6334014542363811 2.4395968567503816E-003 - 7.6359047669856608 2.4790073131986017E-003 - 7.6384035901820990 2.4529566272331418E-003 - 7.6408979221967996 2.3896576603103128E-003 - 7.6433877614008665 2.3291859430463707E-003 - 7.6458731061654106 2.2838282239341290E-003 - 7.6483539548615269 2.2504824225308400E-003 - 7.6508303058603282 2.2227911728207135E-003 - 7.6533021575329165 2.1948064262860925E-003 - 7.6557695082503940 2.1717374642991954E-003 - 7.6582323563838699 2.1570520270170483E-003 - 7.6606907003044480 2.1415229879834762E-003 - 7.6631445383832286 2.1428115369517076E-003 - 7.6655938689913228 2.1992742067783204E-003 - 7.6680386904998343 2.3068635615316889E-003 - 7.6704790012798636 2.4265979028040186E-003 - 7.6729147997025180 2.5086729791697860E-003 - 7.6753460841389014 2.5088299932636161E-003 - 7.6777728529601212 2.4542957243322439E-003 - 7.6801951045372796 2.4013946146151542E-003 - 7.6826128372414821 2.3558623230391543E-003 - 7.6850260494438345 2.2997163856769060E-003 - 7.6874347395154388 2.2405305029962602E-003 - 7.6898389058274041 2.2139550391183779E-003 - 7.6922385467508292 2.2349290867510040E-003 - 7.6946336606568231 2.2918423368348969E-003 - 7.6970242459164915 2.3674556708968841E-003 - 7.6994103009009365 2.4106510286288027E-003 - 7.7017918239812637 2.4098495766030274E-003 - 7.7041688135285789 2.3681057158826844E-003 - 7.7065412679139840 2.2795779519336986E-003 - 7.7089091855085865 2.2092477928550023E-003 - 7.7112725646834903 2.2250016817359358E-003 - 7.7136314038098011 2.3101819020903062E-003 - 7.7159857012586208 2.3977262846660357E-003 - 7.7183354554010570 2.4263306343335110E-003 - 7.7206806646082153 2.3845372995733604E-003 - 7.7230213272511961 2.3206391537411264E-003 - 7.7253574417011102 2.2902085431588510E-003 - 7.7276890063290544 2.3196892037587076E-003 - 7.7300160195061416 2.3715343282851059E-003 - 7.7323384796034702 2.3930219075475232E-003 - 7.7346563849921495 2.3675227093174437E-003 - 7.7369697340432833 2.3331875679805172E-003 - 7.7392785251279754 2.3347489301945488E-003 - 7.7415827566173299 2.3592396295716231E-003 - 7.7438824268824522 2.3759594571008242E-003 - 7.7461775342944463 2.3618850792765972E-003 - 7.7484680772244197 2.3288729089181465E-003 - 7.7507540540434761 2.3204639176899809E-003 - 7.7530354631227194 2.3417471522570311E-003 - 7.7553123028332536 2.3555303713134229E-003 - 7.7575845715461860 2.3405801668025220E-003 - 7.7598522676326169 2.3024654622372086E-003 - 7.7621153894636556 2.2566335555935838E-003 - 7.7643739354104042 2.2282428447810356E-003 - 7.7666279038439701 2.2305112878925316E-003 - 7.7688772931354553 2.2401659874942718E-003 - 7.7711221016559655 2.2391664824151628E-003 - 7.7733623277766064 2.2285493382281684E-003 - 7.7755979698684818 2.2002666085695149E-003 - 7.7778290263026975 2.1680891051720779E-003 - 7.7800554954503571 2.1526895171614163E-003 - 7.7822773756825665 2.1513019313553080E-003 - 7.7844946653704277 2.1484822083616397E-003 - 7.7867073628850481 2.1489994797617099E-003 - 7.7889154665975333 2.1632236870878729E-003 - 7.7911189748789873 2.1680482718114177E-003 - 7.7933178861005103 2.1570438938219925E-003 - 7.7955121986332134 2.1514299005386058E-003 - 7.7977019108481986 2.1492154615238542E-003 - 7.7998870211165716 2.1312176239081195E-003 - 7.8020675278094362 2.1079653415900178E-003 - 7.8042434292978964 2.0989294765255150E-003 - 7.8064147239530595 2.1002998992080894E-003 - 7.8085814101460276 2.1071838797437300E-003 - 7.8107434862479082 2.1228904403978468E-003 - 7.8129009506298033 2.1388146605654909E-003 - 7.8150538016628186 2.1483090743179925E-003 - 7.8172020377180615 2.1512220275112489E-003 - 7.8193456571666324 2.1418504310572544E-003 - 7.8214846583796387 2.1353627403596295E-003 - 7.8236190397281842 2.1564725331270763E-003 - 7.8257487995833728 2.1995521795198526E-003 - 7.8278739363163137 2.2345542745840436E-003 - 7.8299944482981072 2.2514857681794403E-003 - 7.8321103338998590 2.2698514086026914E-003 - 7.8342215914926747 2.2980783103151207E-003 - 7.8363282194476582 2.3158856190470091E-003 - 7.8384302161359152 2.3196395639674718E-003 - 7.8405275799285477 2.3267145050176949E-003 - 7.8426203091966649 2.3392689144363572E-003 - 7.8447084023113689 2.3420625302246400E-003 - 7.8467918576437654 2.3296285884091901E-003 - 7.8488706735649565 2.3073102757223767E-003 - 7.8509448484460513 2.2849787037410598E-003 - 7.8530143806581520 2.2707005533733368E-003 - 7.8550792685723643 2.2712817957560257E-003 - 7.8571395105597919 2.2755650833981614E-003 - 7.8591951049915387 2.2698277667858370E-003 - 7.8612460502387140 2.2736177144933715E-003 - 7.8632923446724163 2.3167898711778934E-003 - 7.8653339866637548 2.3975584248725969E-003 - 7.8673709745838334 2.4732960462666722E-003 - 7.8694033068037577 2.5049406073825138E-003 - 7.8714309816946297 2.5112892527402015E-003 - 7.8734539976275553 2.5174548435864968E-003 - 7.8754723529736381 2.5257088554662219E-003 - 7.8774860461039857 2.5118899467790113E-003 - 7.8794950753897020 2.4482783042492086E-003 - 7.8814994392018924 2.3797238365106704E-003 - 7.8834991359116593 2.3778176912231971E-003 - 7.8854941638901082 2.4217845751315185E-003 - 7.8874845215083464 2.4572218777944195E-003 - 7.8894702071374745 2.4652688471958899E-003 - 7.8914512191486033 2.4589358182998955E-003 - 7.8934275559128295 2.4556327694577420E-003 - 7.8953992158012625 2.4521141419701700E-003 - 7.8973661971850078 2.4421257490535916E-003 - 7.8993284984351710 2.4160966469998430E-003 - 7.9012861179228508 2.3786680941419078E-003 - 7.9032390540191599 2.3452319002180994E-003 - 7.9051873050951968 2.3041049986442250E-003 - 7.9071308695220708 2.2593261398455131E-003 - 7.9090697456708803 2.2117225442686208E-003 - 7.9110039319127381 2.1763455235877822E-003 - 7.9129334266187445 2.2184569686120354E-003 - 7.9148582281600035 2.3326293388261088E-003 - 7.9167783349076224 2.4246350827475801E-003 - 7.9186937452327051 2.4236068921583611E-003 - 7.9206044575063572 2.3465695850735904E-003 - 7.9225104700996809 2.2421763816123409E-003 - 7.9244117813837818 2.1568491487003868E-003 - 7.9263083897297673 2.1135342774796766E-003 - 7.9282002935087394 2.1091340292976437E-003 - 7.9300874910918040 2.1310277078276153E-003 - 7.9319699808500630 2.1459809945573675E-003 - 7.9338477611546274 2.1317871601129450E-003 - 7.9357208303765958 2.1098566418539799E-003 - 7.9375891868870774 2.1127860166319395E-003 - 7.9394528290571742 2.1510124464164710E-003 - 7.9413117552579919 2.1959100617692747E-003 - 7.9431659638606327 2.2105895349231620E-003 - 7.9450154532362056 2.1927809325247975E-003 - 7.9468602217558146 2.1632149109103191E-003 - 7.9487002677905618 2.1409809911022474E-003 - 7.9505355897115546 2.1463495377905522E-003 - 7.9523661858898969 2.1783215090295737E-003 - 7.9541920546966907 2.2096736247292901E-003 - 7.9560131945030488 2.2264881228517136E-003 - 7.9578296036800662 2.2447165447071595E-003 - 7.9596412805988539 2.2576913080088745E-003 - 7.9614482236305140 2.2351343710693659E-003 - 7.9632504311461521 2.1781653649488300E-003 - 7.9650479015168720 2.1311160234058863E-003 - 7.9668406331137795 2.1420131871775399E-003 - 7.9686286243079820 2.1991918854978188E-003 - 7.9704118734705780 2.2583585276126678E-003 - 7.9721903789726785 2.2925432333290603E-003 - 7.9739641391853837 2.3035868999839379E-003 - 7.9757331524798012 2.3012914935134597E-003 - 7.9774974172270348 2.2875781471363731E-003 - 7.9792569317981901 2.2648743649532925E-003 - 7.9810116945643692 2.2454777586520826E-003 - 7.9827617038966778 2.2372530961286934E-003 - 7.9845069581662251 2.2404519148382734E-003 - 7.9862474557441097 2.2438990268004531E-003 - 7.9879831950014388 2.2434633124984674E-003 - 7.9897141743093201 2.2458980215146751E-003 - 7.9914403920388519 2.2477207132103900E-003 - 7.9931618465611436 2.2366206932718648E-003 - 7.9948785362473007 2.2038268214068769E-003 - 7.9965904594684254 2.1632119992079633E-003 - 7.9982976145956250 2.1417930128593658E-003 - 8.0000000000000000 2.1466879313306879E-003 - 8.0016999999999996 2.1678503000862525E-003 - 8.0033999999999992 2.1893249747459418E-003 - 8.0051000000000005 2.1959157684429886E-003 - 8.0068000000000001 2.1931195273827472E-003 - 8.0084999999999997 2.1894565120817106E-003 - 8.0101999999999993 2.1855122532490469E-003 - 8.0119000000000007 2.1704409471260755E-003 - 8.0136000000000003 2.1319039324795746E-003 - 8.0152999999999999 2.0899070277914425E-003 - 8.0169999999999995 2.0701860913287873E-003 - 8.0187000000000008 2.0730891356947451E-003 - 8.0204000000000004 2.0896977501656477E-003 - 8.0221000000000000 2.1221634221762335E-003 - 8.0237999999999996 2.1804831611877901E-003 - 8.0254999999999992 2.2419671511128897E-003 - 8.0272000000000006 2.2664357691382702E-003 - 8.0289000000000001 2.2522410801866632E-003 - 8.0305999999999997 2.2128302146497856E-003 - 8.0322999999999993 2.1647187385173228E-003 - 8.0340000000000007 2.1329003220390084E-003 - 8.0357000000000003 2.1219683908779356E-003 - 8.0373999999999999 2.1228419386698817E-003 - 8.0390999999999995 2.1167340762256138E-003 - 8.0408000000000008 2.0982069352075369E-003 - 8.0425000000000004 2.0744379442816816E-003 - 8.0442000000000000 2.0596388300855731E-003 - 8.0458999999999996 2.0582996309865425E-003 - 8.0475999999999992 2.0624753535612170E-003 - 8.0493000000000006 2.0737688199549695E-003 - 8.0510000000000002 2.1009005820585530E-003 - 8.0526999999999997 2.1433590659278873E-003 - 8.0543999999999993 2.1806992947548580E-003 - 8.0561000000000007 2.1916786057989105E-003 - 8.0578000000000003 2.1782305974686884E-003 - 8.0594999999999999 2.1554365371261558E-003 - 8.0611999999999995 2.1435424827771104E-003 - 8.0629000000000008 2.1519312046747716E-003 - 8.0646000000000004 2.1768617134592773E-003 - 8.0663000000000000 2.1974949493999891E-003 - 8.0679999999999996 2.1945440824933438E-003 - 8.0696999999999992 2.1810022134239925E-003 - 8.0714000000000006 2.1720666094129015E-003 - 8.0731000000000002 2.1689643241711168E-003 - 8.0747999999999998 2.1666750247437269E-003 - 8.0764999999999993 2.1568734917071096E-003 - 8.0782000000000007 2.1321061625949075E-003 - 8.0799000000000003 2.0980740008500359E-003 - 8.0815999999999999 2.0875448613125089E-003 - 8.0832999999999995 2.1276597295354564E-003 - 8.0850000000000009 2.1954926445134663E-003 - 8.0867000000000004 2.2252261666860854E-003 - 8.0884000000000000 2.2104311312005909E-003 - 8.0900999999999996 2.2118599398923042E-003 - 8.0917999999999992 2.2688610714982935E-003 - 8.0935000000000006 2.3549116526035098E-003 - 8.0952000000000002 2.4192043640794444E-003 - 8.0968999999999998 2.4322710664384673E-003 - 8.0985999999999994 2.4026509583459327E-003 - 8.1003000000000007 2.3659977345237004E-003 - 8.1020000000000003 2.3639333212145202E-003 - 8.1036999999999999 2.3998601761623306E-003 - 8.1053999999999995 2.4267049626090502E-003 - 8.1071000000000009 2.4061023297787367E-003 - 8.1088000000000005 2.3617940870427974E-003 - 8.1105000000000000 2.3438762649051446E-003 - 8.1121999999999996 2.3557359485052716E-003 - 8.1138999999999992 2.3630125694214096E-003 - 8.1156000000000006 2.3574120976716287E-003 - 8.1173000000000002 2.3495530015442607E-003 - 8.1189999999999998 2.3499077736396988E-003 - 8.1206999999999994 2.3487947739646285E-003 - 8.1224000000000007 2.3424642486188532E-003 - 8.1241000000000003 2.3388018127324908E-003 - 8.1257999999999999 2.3414421612205408E-003 - 8.1274999999999995 2.3676241406642507E-003 - 8.1292000000000009 2.4223334588641802E-003 - 8.1309000000000005 2.4875112918003521E-003 - 8.1326000000000001 2.5211609342232740E-003 - 8.1342999999999996 2.4951135558416168E-003 - 8.1359999999999992 2.4503901801791049E-003 - 8.1377000000000006 2.4479379811800164E-003 - 8.1394000000000002 2.4773487630175839E-003 - 8.1410999999999998 2.4924952685892359E-003 - 8.1427999999999994 2.4866893628199991E-003 - 8.1445000000000007 2.4526017616730077E-003 - 8.1462000000000003 2.3856264455184200E-003 - 8.1478999999999999 2.3019010746811895E-003 - 8.1495999999999995 2.2364244472651037E-003 - 8.1512999999999991 2.2070585976307943E-003 - 8.1530000000000005 2.2128997721600954E-003 - 8.1547000000000001 2.2229277101766883E-003 - 8.1563999999999997 2.2015132654953804E-003 - 8.1580999999999992 2.1587371330283132E-003 - 8.1598000000000006 2.1396367642140717E-003 - 8.1615000000000002 2.1582856180585850E-003 - 8.1631999999999998 2.1936136048470818E-003 - 8.1648999999999994 2.2356622755359806E-003 - 8.1666000000000007 2.2847498197663737E-003 - 8.1683000000000003 2.3294251598919699E-003 - 8.1699999999999999 2.3502329773588595E-003 - 8.1716999999999995 2.3291933648467182E-003 - 8.1734000000000009 2.2866203810392267E-003 - 8.1751000000000005 2.2512006808075944E-003 - 8.1768000000000001 2.2279514715113150E-003 - 8.1784999999999997 2.1959842815407245E-003 - 8.1801999999999992 2.1364655224450592E-003 - 8.1819000000000006 2.0466838269337525E-003 - 8.1836000000000002 1.9624969996099328E-003 - 8.1852999999999998 1.9129412529138830E-003 - 8.1869999999999994 1.8947310416387269E-003 - 8.1887000000000008 1.8919508439385797E-003 - 8.1904000000000003 1.8954378631604659E-003 - 8.1920999999999999 1.9164593831682236E-003 - 8.1937999999999995 1.9654081201744564E-003 - 8.1954999999999991 2.0260421736903651E-003 - 8.1972000000000005 2.0792221291429896E-003 - 8.1989000000000001 2.1126588997109454E-003 - 8.2005999999999997 2.1075389622795563E-003 - 8.2022999999999993 2.0567817901131565E-003 - 8.2040000000000006 1.9800270565774503E-003 - 8.2057000000000002 1.9148558476936983E-003 - 8.2073999999999998 1.9001716604421055E-003 - 8.2090999999999994 1.9382274768696846E-003 - 8.2108000000000008 1.9997597784963466E-003 - 8.2125000000000004 2.0539340796584026E-003 - 8.2141999999999999 2.0861085472264527E-003 - 8.2158999999999995 2.1124582738912072E-003 - 8.2175999999999991 2.1502052376910141E-003 - 8.2193000000000005 2.2048980816458019E-003 - 8.2210000000000001 2.2673842347709621E-003 - 8.2226999999999997 2.3104784416954779E-003 - 8.2243999999999993 2.3166976945667465E-003 - 8.2261000000000006 2.2895872960613343E-003 - 8.2278000000000002 2.2547044800809452E-003 - 8.2294999999999998 2.2281844392141622E-003 - 8.2311999999999994 2.2022032648631603E-003 - 8.2329000000000008 2.1765966603238540E-003 - 8.2346000000000004 2.1656733781117293E-003 - 8.2363000000000000 2.1747388988487674E-003 - 8.2379999999999995 2.1873492822089748E-003 - 8.2396999999999991 2.1905276914440707E-003 - 8.2414000000000005 2.1901324952993710E-003 - 8.2431000000000001 2.2017258765414586E-003 - 8.2447999999999997 2.2388699820913779E-003 - 8.2464999999999993 2.2855690901409094E-003 - 8.2482000000000006 2.3133245881097639E-003 - 8.2499000000000002 2.3226451548845513E-003 - 8.2515999999999998 2.3282468028100532E-003 - 8.2532999999999994 2.3307396434840617E-003 - 8.2550000000000008 2.3153826925714710E-003 - 8.2567000000000004 2.2705419029529529E-003 - 8.2584000000000000 2.2251063197686223E-003 - 8.2600999999999996 2.2041386410435924E-003 - 8.2617999999999991 2.2029444019660629E-003 - 8.2635000000000005 2.1969540137578678E-003 - 8.2652000000000001 2.1829313894833678E-003 - 8.2668999999999997 2.1785059880319066E-003 - 8.2685999999999993 2.2123786169408288E-003 - 8.2703000000000007 2.2733066166289663E-003 - 8.2720000000000002 2.3140322917976483E-003 - 8.2736999999999998 2.3009486251314385E-003 - 8.2753999999999994 2.2573144653446724E-003 - 8.2771000000000008 2.2388474261066512E-003 - 8.2788000000000004 2.2529318857244232E-003 - 8.2805000000000000 2.2868246326859291E-003 - 8.2821999999999996 2.3287791193602001E-003 - 8.2838999999999992 2.3717533097229460E-003 - 8.2856000000000005 2.4041655065832239E-003 - 8.2873000000000001 2.4222448623544639E-003 - 8.2889999999999997 2.4210468700465956E-003 - 8.2906999999999993 2.4097774431963721E-003 - 8.2924000000000007 2.3970639324989895E-003 - 8.2941000000000003 2.3920427105358537E-003 - 8.2957999999999998 2.3994692369956232E-003 - 8.2974999999999994 2.4123448006594115E-003 - 8.2992000000000008 2.4025735074525226E-003 - 8.3009000000000004 2.3579869588690270E-003 - 8.3026000000000000 2.2910041259938101E-003 - 8.3042999999999996 2.2200467023292679E-003 - 8.3059999999999992 2.1562041288626546E-003 - 8.3077000000000005 2.1299945983299330E-003 - 8.3094000000000001 2.1525184012079891E-003 - 8.3110999999999997 2.2029503906630162E-003 - 8.3127999999999993 2.2587864733280370E-003 - 8.3145000000000007 2.2959517974321724E-003 - 8.3162000000000003 2.3102327775774336E-003 - 8.3178999999999998 2.3125284161985967E-003 - 8.3195999999999994 2.3148522385434407E-003 - 8.3213000000000008 2.3167076627165937E-003 - 8.3230000000000004 2.3004050817355512E-003 - 8.3247000000000000 2.2553096834210264E-003 - 8.3263999999999996 2.1836734818157606E-003 - 8.3280999999999992 2.1141180362443828E-003 - 8.3298000000000005 2.1255757644130227E-003 - 8.3315000000000001 2.2453282289645053E-003 - 8.3331999999999997 2.4027634941078970E-003 - 8.3348999999999993 2.5203242829076175E-003 - 8.3366000000000007 2.5605450780014109E-003 - 8.3383000000000003 2.5440380536398818E-003 - 8.3399999999999999 2.5003126218272869E-003 - 8.3416999999999994 2.4378356412739065E-003 - 8.3434000000000008 2.3628175114271980E-003 - 8.3451000000000004 2.3027666523325473E-003 - 8.3468000000000000 2.2648889817965816E-003 - 8.3484999999999996 2.2196178203439205E-003 - 8.3501999999999992 2.1470554788742334E-003 - 8.3519000000000005 2.0876163032333131E-003 - 8.3536000000000001 2.0890431574096522E-003 - 8.3552999999999997 2.1391188726918847E-003 - 8.3569999999999993 2.1902209758826929E-003 - 8.3587000000000007 2.2191970036135834E-003 - 8.3604000000000003 2.2189963235723343E-003 - 8.3620999999999999 2.1978303012777224E-003 - 8.3637999999999995 2.1853803216942405E-003 - 8.3655000000000008 2.1999948337768291E-003 - 8.3672000000000004 2.2262501393632362E-003 - 8.3689000000000000 2.2472116221241780E-003 - 8.3705999999999996 2.2464158734737433E-003 - 8.3722999999999992 2.2251473955654643E-003 - 8.3740000000000006 2.2015114850673450E-003 - 8.3757000000000001 2.1859729499883128E-003 - 8.3773999999999997 2.1786029430369736E-003 - 8.3790999999999993 2.1771131630089072E-003 - 8.3808000000000007 2.1899891807224525E-003 - 8.3825000000000003 2.2130455494644573E-003 - 8.3841999999999999 2.2242460548663663E-003 - 8.3858999999999995 2.2282604293536352E-003 - 8.3876000000000008 2.2317748851804070E-003 - 8.3893000000000004 2.2210337405685517E-003 - 8.3910000000000000 2.1926002773344417E-003 - 8.3926999999999996 2.1603932121372861E-003 - 8.3943999999999992 2.1413311690910396E-003 - 8.3961000000000006 2.1437773648373382E-003 - 8.3978000000000002 2.1673528020374490E-003 - 8.3994999999999997 2.1940234817180754E-003 - 8.4011999999999993 2.2088734532683969E-003 - 8.4029000000000007 2.2129084484175257E-003 - 8.4046000000000003 2.1997047744684458E-003 - 8.4062999999999999 2.1576978533518558E-003 - 8.4079999999999995 2.0967744824428197E-003 - 8.4097000000000008 2.0554869225003752E-003 - 8.4114000000000004 2.0583081540541618E-003 - 8.4131000000000000 2.0918246196098222E-003 - 8.4147999999999996 2.1291511545697287E-003 - 8.4164999999999992 2.1549763090917512E-003 - 8.4182000000000006 2.1646284037512113E-003 - 8.4199000000000002 2.1732966698483069E-003 - 8.4215999999999998 2.1898494322122051E-003 - 8.4232999999999993 2.1966102936299249E-003 - 8.4250000000000007 2.1752430754280096E-003 - 8.4267000000000003 2.1248841956934294E-003 - 8.4283999999999999 2.0710906361126303E-003 - 8.4300999999999995 2.0454172196609447E-003 - 8.4317999999999991 2.0504603182251581E-003 - 8.4335000000000004 2.0562484914727090E-003 - 8.4352000000000000 2.0484620700307178E-003 - 8.4368999999999996 2.0427787410971158E-003 - 8.4385999999999992 2.0529339636105423E-003 - 8.4403000000000006 2.0723109806297835E-003 - 8.4420000000000002 2.0839588559806443E-003 - 8.4436999999999998 2.0751612022951358E-003 - 8.4453999999999994 2.0568166996779939E-003 - 8.4471000000000007 2.0566483648688898E-003 - 8.4488000000000003 2.0779821584655960E-003 - 8.4504999999999999 2.0876413126068925E-003 - 8.4521999999999995 2.0755850986197704E-003 - 8.4539000000000009 2.0691499968025556E-003 - 8.4556000000000004 2.0882820125893609E-003 - 8.4573000000000000 2.1224421035664375E-003 - 8.4589999999999996 2.1432864454452374E-003 - 8.4606999999999992 2.1346430725782154E-003 - 8.4624000000000006 2.1009800160197876E-003 - 8.4641000000000002 2.0586830778295253E-003 - 8.4657999999999998 2.0204326453674855E-003 - 8.4674999999999994 1.9936371322786155E-003 - 8.4692000000000007 1.9815900981269112E-003 - 8.4709000000000003 1.9964487509725377E-003 - 8.4725999999999999 2.0408316715800840E-003 - 8.4742999999999995 2.1007252033569215E-003 - 8.4759999999999991 2.1573344370692700E-003 - 8.4777000000000005 2.1980564682384917E-003 - 8.4794000000000000 2.2173412232111551E-003 - 8.4810999999999996 2.2115525182751137E-003 - 8.4827999999999992 2.1925733821469427E-003 - 8.4845000000000006 2.1872558150089249E-003 - 8.4862000000000002 2.1960203235490959E-003 - 8.4878999999999998 2.2009613399213380E-003 - 8.4895999999999994 2.1986117398111668E-003 - 8.4913000000000007 2.2011284640532707E-003 - 8.4930000000000003 2.2159396866957928E-003 - 8.4946999999999999 2.2276795450845493E-003 - 8.4963999999999995 2.2277162689756593E-003 - 8.4981000000000009 2.2299917260863184E-003 - 8.4998000000000005 2.2492949133746335E-003 - 8.5015000000000001 2.2568844147512865E-003 - 8.5031999999999996 2.2184110369726502E-003 - 8.5048999999999992 2.1627757803673467E-003 - 8.5066000000000006 2.1315208363943379E-003 - 8.5083000000000002 2.1277375167970914E-003 - 8.5099999999999998 2.1233843766660806E-003 - 8.5116999999999994 2.1098480941370286E-003 - 8.5134000000000007 2.0944513183020329E-003 - 8.5151000000000003 2.0807043624801441E-003 - 8.5167999999999999 2.0617895476372221E-003 - 8.5184999999999995 2.0324998164535698E-003 - 8.5201999999999991 2.0035862448747862E-003 - 8.5219000000000005 1.9889442394873860E-003 - 8.5236000000000001 1.9906200932434666E-003 - 8.5252999999999997 1.9806562308585245E-003 - 8.5269999999999992 1.9497230505400578E-003 - 8.5287000000000006 1.9425529611651383E-003 - 8.5304000000000002 1.9914142050413155E-003 - 8.5320999999999998 2.0559027687412842E-003 - 8.5337999999999994 2.0931183432411041E-003 - 8.5355000000000008 2.1104162465218406E-003 - 8.5372000000000003 2.1119648585263269E-003 - 8.5388999999999999 2.1051079423990270E-003 - 8.5405999999999995 2.0984895468693105E-003 - 8.5423000000000009 2.0914618720316094E-003 - 8.5440000000000005 2.0901831450908202E-003 - 8.5457000000000001 2.0980689702604699E-003 - 8.5473999999999997 2.1032285101751733E-003 - 8.5490999999999993 2.0978575887342821E-003 - 8.5508000000000006 2.0825640055699896E-003 - 8.5525000000000002 2.0788992812850325E-003 - 8.5541999999999998 2.0905777641276459E-003 - 8.5558999999999994 2.1041961361453177E-003 - 8.5576000000000008 2.1076424015190123E-003 - 8.5593000000000004 2.1136990711590623E-003 - 8.5609999999999999 2.1344380057899967E-003 - 8.5626999999999995 2.1597962453783369E-003 - 8.5643999999999991 2.1677815217054737E-003 - 8.5661000000000005 2.1470511352280394E-003 - 8.5678000000000001 2.0948930422142278E-003 - 8.5694999999999997 2.0349262542800608E-003 - 8.5711999999999993 2.0010394941006896E-003 - 8.5729000000000006 1.9931145385931122E-003 - 8.5746000000000002 1.9997273123307136E-003 - 8.5762999999999998 2.0253175578432794E-003 - 8.5779999999999994 2.0663369788330647E-003 - 8.5797000000000008 2.1052087723317696E-003 - 8.5814000000000004 2.1366034906302052E-003 - 8.5831000000000000 2.1641641976508021E-003 - 8.5847999999999995 2.1897893945339321E-003 - 8.5865000000000009 2.2082108221727331E-003 - 8.5882000000000005 2.2073451103123325E-003 - 8.5899000000000001 2.1700830226962908E-003 - 8.5915999999999997 2.1102702854026577E-003 - 8.5932999999999993 2.0549641994969071E-003 - 8.5950000000000006 2.0310735327796221E-003 - 8.5967000000000002 2.0394895823958171E-003 - 8.5983999999999998 2.0514558689837298E-003 - 8.6000999999999994 2.0564651701560225E-003 - 8.6018000000000008 2.0425607126569167E-003 - 8.6035000000000004 1.9979896761650384E-003 - 8.6052000000000000 1.9469208775411057E-003 - 8.6068999999999996 1.9394528603338976E-003 - 8.6085999999999991 1.9866520952041616E-003 - 8.6103000000000005 2.0385882153516385E-003 - 8.6120000000000001 2.0519956347862527E-003 - 8.6136999999999997 2.0413817979173417E-003 - 8.6153999999999993 2.0406494105133931E-003 - 8.6171000000000006 2.0639329395191791E-003 - 8.6188000000000002 2.1086888093987746E-003 - 8.6204999999999998 2.1447723022116737E-003 - 8.6221999999999994 2.1461479162074196E-003 - 8.6239000000000008 2.1161864442051444E-003 - 8.6256000000000004 2.0794762385330265E-003 - 8.6273000000000000 2.0599151917714189E-003 - 8.6289999999999996 2.0565589251150839E-003 - 8.6306999999999992 2.0512119955752566E-003 - 8.6324000000000005 2.0436273008282188E-003 - 8.6341000000000001 2.0533662175067006E-003 - 8.6357999999999997 2.0890540020884786E-003 - 8.6374999999999993 2.1248372298256586E-003 - 8.6392000000000007 2.1244342148605843E-003 - 8.6409000000000002 2.1016834108536862E-003 - 8.6425999999999998 2.1017377365238257E-003 - 8.6442999999999994 2.1370158734645198E-003 - 8.6460000000000008 2.1658369022341754E-003 - 8.6477000000000004 2.1604906752349441E-003 - 8.6494000000000000 2.1288622687901573E-003 - 8.6510999999999996 2.0854441505983984E-003 - 8.6527999999999992 2.0502152020764179E-003 - 8.6545000000000005 2.0427896534528311E-003 - 8.6562000000000001 2.0715781993198806E-003 - 8.6578999999999997 2.1346308239386640E-003 - 8.6595999999999993 2.2141382153175893E-003 - 8.6613000000000007 2.2926839120720071E-003 - 8.6630000000000003 2.3437315379289817E-003 - 8.6646999999999998 2.3450185848390573E-003 - 8.6663999999999994 2.3050525604207278E-003 - 8.6680999999999990 2.2492644234655126E-003 - 8.6698000000000004 2.1940128413476582E-003 - 8.6715000000000000 2.1828850301973388E-003 - 8.6731999999999996 2.2461721527926729E-003 - 8.6748999999999992 2.3410718426563081E-003 - 8.6766000000000005 2.3928074353000957E-003 - 8.6783000000000001 2.3672356363547546E-003 - 8.6799999999999997 2.3009460677222652E-003 - 8.6816999999999993 2.2562571719147982E-003 - 8.6834000000000007 2.2406660622015118E-003 - 8.6851000000000003 2.2072618835819028E-003 - 8.6867999999999999 2.1521229224990245E-003 - 8.6884999999999994 2.0989778000253430E-003 - 8.6902000000000008 2.0664929677156941E-003 - 8.6919000000000004 2.0659707912801190E-003 - 8.6936000000000000 2.0975132350442641E-003 - 8.6952999999999996 2.1399697116494722E-003 - 8.6969999999999992 2.1764026204762091E-003 - 8.6987000000000005 2.1867881513982293E-003 - 8.7004000000000001 2.1738953927876864E-003 - 8.7020999999999997 2.1656209013654233E-003 - 8.7037999999999993 2.1582748536555772E-003 - 8.7055000000000007 2.1383540793044396E-003 - 8.7072000000000003 2.1250643885662546E-003 - 8.7088999999999999 2.1349138271573973E-003 - 8.7105999999999995 2.1586306535107637E-003 - 8.7122999999999990 2.1894117680690372E-003 - 8.7140000000000004 2.2229130957253651E-003 - 8.7157000000000000 2.2563319418010203E-003 - 8.7173999999999996 2.2782765666315668E-003 - 8.7190999999999992 2.2785683745045813E-003 - 8.7208000000000006 2.2707801652215348E-003 - 8.7225000000000001 2.2685133597795683E-003 - 8.7241999999999997 2.2806484260620660E-003 - 8.7258999999999993 2.2988886648820871E-003 - 8.7276000000000007 2.2914500185280450E-003 - 8.7293000000000003 2.2558896312250935E-003 - 8.7309999999999999 2.2334273141003912E-003 - 8.7326999999999995 2.2317202474277215E-003 - 8.7344000000000008 2.2080541093533797E-003 - 8.7361000000000004 2.1610423049088392E-003 - 8.7378000000000000 2.1478745097591070E-003 - 8.7394999999999996 2.1843760935690267E-003 - 8.7411999999999992 2.2016908287872997E-003 - 8.7429000000000006 2.1681219593072277E-003 - 8.7446000000000002 2.1077610649668770E-003 - 8.7462999999999997 2.0572597064968698E-003 - 8.7479999999999993 2.0356639794240922E-003 - 8.7497000000000007 2.0347314606381523E-003 - 8.7514000000000003 2.0432271318181830E-003 - 8.7530999999999999 2.0682740538246402E-003 - 8.7547999999999995 2.0884868393573571E-003 - 8.7564999999999991 2.0898388244230620E-003 - 8.7582000000000004 2.1002630157625508E-003 - 8.7599000000000000 2.1664848710197886E-003 - 8.7615999999999996 2.3003761864796171E-003 - 8.7632999999999992 2.4081714309023812E-003 - 8.7650000000000006 2.3785206549822710E-003 - 8.7667000000000002 2.2362453379865537E-003 - 8.7683999999999997 2.1285150849062800E-003 - 8.7700999999999993 2.1008199027636866E-003 - 8.7718000000000007 2.0850032474439097E-003 - 8.7735000000000003 2.0665938252600515E-003 - 8.7751999999999999 2.0679447230881106E-003 - 8.7768999999999995 2.0834874244414180E-003 - 8.7786000000000008 2.0921542890558575E-003 - 8.7803000000000004 2.0730625246296011E-003 - 8.7820000000000000 2.0353022229877087E-003 - 8.7836999999999996 1.9952359942465125E-003 - 8.7853999999999992 1.9653739784726127E-003 - 8.7871000000000006 1.9610482698394888E-003 - 8.7888000000000002 1.9833848782397140E-003 - 8.7904999999999998 2.0075240532906862E-003 - 8.7921999999999993 2.0187966441826918E-003 - 8.7939000000000007 2.0278171283815531E-003 - 8.7956000000000003 2.0518656608434693E-003 - 8.7972999999999999 2.0916346385334329E-003 - 8.7989999999999995 2.1223849172853589E-003 - 8.8006999999999991 2.1310943713669173E-003 - 8.8024000000000004 2.1268477421973664E-003 - 8.8041000000000000 2.1180570120831188E-003 - 8.8057999999999996 2.1013704482914001E-003 - 8.8074999999999992 2.0859108464595620E-003 - 8.8092000000000006 2.0887660486506297E-003 - 8.8109000000000002 2.1082544907278342E-003 - 8.8125999999999998 2.1283626055906540E-003 - 8.8142999999999994 2.1333530598653680E-003 - 8.8160000000000007 2.1249304907267198E-003 - 8.8177000000000003 2.1131748513991263E-003 - 8.8193999999999999 2.1031691140712626E-003 - 8.8210999999999995 2.0968122366251149E-003 - 8.8228000000000009 2.1021191051869468E-003 - 8.8245000000000005 2.1291742977459700E-003 - 8.8262000000000000 2.1831764090982416E-003 - 8.8278999999999996 2.2489832589899440E-003 - 8.8295999999999992 2.3078885949747705E-003 - 8.8313000000000006 2.3539084688777097E-003 - 8.8330000000000002 2.3753980010788197E-003 - 8.8346999999999998 2.3713216498659514E-003 - 8.8363999999999994 2.3545154133437756E-003 - 8.8381000000000007 2.3225584471147326E-003 - 8.8398000000000003 2.2693890645788264E-003 - 8.8414999999999999 2.2239683765411231E-003 - 8.8431999999999995 2.2171620891029216E-003 - 8.8448999999999991 2.2408865150060557E-003 - 8.8466000000000005 2.2581239623259840E-003 - 8.8483000000000001 2.2412978062764655E-003 - 8.8499999999999996 2.2017310835882389E-003 - 8.8516999999999992 2.1805940329529048E-003 - 8.8534000000000006 2.2004081931339850E-003 - 8.8551000000000002 2.2343446015268102E-003 - 8.8567999999999998 2.2357028164879844E-003 - 8.8584999999999994 2.2071128317585078E-003 - 8.8602000000000007 2.1952836111378956E-003 - 8.8619000000000003 2.2257179666230107E-003 - 8.8635999999999999 2.2614161472952446E-003 - 8.8652999999999995 2.2513021396423634E-003 - 8.8670000000000009 2.1641094068519579E-003 - 8.8687000000000005 2.0252581578183316E-003 - 8.8704000000000001 1.9234930883270695E-003 - 8.8720999999999997 1.9228520162802435E-003 - 8.8737999999999992 1.9956553266268586E-003 - 8.8755000000000006 2.0464695067571865E-003 - 8.8772000000000002 2.0161676853373712E-003 - 8.8788999999999998 1.9718885090518664E-003 - 8.8805999999999994 1.9698834390643166E-003 - 8.8823000000000008 1.9837745101904270E-003 - 8.8840000000000003 1.9739582630296255E-003 - 8.8856999999999999 1.9480817985837254E-003 - 8.8873999999999995 1.9347358880445716E-003 - 8.8890999999999991 1.9470546573488975E-003 - 8.8908000000000005 1.9623667248330114E-003 - 8.8925000000000001 1.9648004544590360E-003 - 8.8941999999999997 1.9706662975273368E-003 - 8.8958999999999993 1.9937840733039564E-003 - 8.8976000000000006 2.0082151597000759E-003 - 8.8993000000000002 1.9874950516826141E-003 - 8.9009999999999998 1.9586683701208409E-003 - 8.9026999999999994 1.9718228244332146E-003 - 8.9044000000000008 2.0323608527979889E-003 - 8.9061000000000003 2.0940777697377052E-003 - 8.9077999999999999 2.1428480245071070E-003 - 8.9094999999999995 2.1784492190052790E-003 - 8.9111999999999991 2.1920435975651608E-003 - 8.9129000000000005 2.1861758889026692E-003 - 8.9146000000000001 2.1819240599897211E-003 - 8.9162999999999997 2.1880445762060808E-003 - 8.9179999999999993 2.1788291417204173E-003 - 8.9197000000000006 2.1380590878740868E-003 - 8.9214000000000002 2.0995242075349026E-003 - 8.9230999999999998 2.0947393482080479E-003 - 8.9247999999999994 2.1164285783305328E-003 - 8.9265000000000008 2.1306789901788369E-003 - 8.9282000000000004 2.1296537975355307E-003 - 8.9298999999999999 2.1112104798016512E-003 - 8.9315999999999995 2.0745481054685717E-003 - 8.9332999999999991 2.0234567785320061E-003 - 8.9350000000000005 1.9791504141034510E-003 - 8.9367000000000001 1.9671014883924330E-003 - 8.9383999999999997 2.0014058914996319E-003 - 8.9400999999999993 2.0697749201602431E-003 - 8.9418000000000006 2.1432543645095023E-003 - 8.9435000000000002 2.2059177032351372E-003 - 8.9451999999999998 2.2535281733248318E-003 - 8.9468999999999994 2.2882677363218152E-003 - 8.9486000000000008 2.3173133227683039E-003 - 8.9503000000000004 2.3402395965285991E-003 - 8.9520000000000000 2.3481666039771878E-003 - 8.9536999999999995 2.3372911746547338E-003 - 8.9553999999999991 2.2980295863000615E-003 - 8.9571000000000005 2.2307782296126246E-003 - 8.9588000000000001 2.1577962104826474E-003 - 8.9604999999999997 2.0946608819177588E-003 - 8.9621999999999993 2.0472885235015650E-003 - 8.9639000000000006 2.0249613019354888E-003 - 8.9656000000000002 2.0231611474425862E-003 - 8.9672999999999998 2.0209815550474024E-003 - 8.9689999999999994 2.0089533487607229E-003 - 8.9707000000000008 1.9888432648308696E-003 - 8.9724000000000004 1.9713666433232749E-003 - 8.9741000000000000 1.9673726946762959E-003 - 8.9757999999999996 1.9786209406206993E-003 - 8.9774999999999991 2.0035142025400222E-003 - 8.9792000000000005 2.0409263368713088E-003 - 8.9809000000000001 2.0888825274321099E-003 - 8.9825999999999997 2.1442933653717977E-003 - 8.9842999999999993 2.1948845997749786E-003 - 8.9860000000000007 2.2237002965897327E-003 - 8.9877000000000002 2.2240103739670763E-003 - 8.9893999999999998 2.2035496426907448E-003 - 8.9910999999999994 2.1765903676967176E-003 - 8.9927999999999990 2.1578071291448514E-003 - 8.9945000000000004 2.1645626740399585E-003 - 8.9962000000000000 2.1981835393505358E-003 - 8.9978999999999996 2.2296359198630197E-003 - 8.9995999999999992 2.2285448960700149E-003 - 9.0013000000000005 2.1923383315244319E-003 - 9.0030000000000001 2.1525654016517235E-003 - 9.0046999999999997 2.1421441941492439E-003 - 9.0063999999999993 2.1600792943590654E-003 - 9.0081000000000007 2.1890596970895538E-003 - 9.0098000000000003 2.2043895230378901E-003 - 9.0114999999999998 2.1978155411598948E-003 - 9.0131999999999994 2.1823455603151294E-003 - 9.0149000000000008 2.1632908325351662E-003 - 9.0166000000000004 2.1329558222652981E-003 - 9.0183000000000000 2.1038110397812934E-003 - 9.0199999999999996 2.1035110708116675E-003 - 9.0216999999999992 2.1385029419285152E-003 - 9.0234000000000005 2.1762258192833030E-003 - 9.0251000000000001 2.1848308212561638E-003 - 9.0267999999999997 2.1788564308954806E-003 - 9.0284999999999993 2.1756091176625553E-003 - 9.0302000000000007 2.1816965377902298E-003 - 9.0319000000000003 2.2032863661525610E-003 - 9.0335999999999999 2.2273517540686797E-003 - 9.0352999999999994 2.2367449955570029E-003 - 9.0369999999999990 2.2294246238107438E-003 - 9.0387000000000004 2.2137186913544073E-003 - 9.0404000000000000 2.1869815519350399E-003 - 9.0420999999999996 2.1517535281631727E-003 - 9.0437999999999992 2.1133284362187458E-003 - 9.0455000000000005 2.0842495394015059E-003 - 9.0472000000000001 2.0678871676017671E-003 - 9.0488999999999997 2.0583281670624176E-003 - 9.0505999999999993 2.0611371574927001E-003 - 9.0523000000000007 2.0819902397775009E-003 - 9.0540000000000003 2.1012792859607917E-003 - 9.0556999999999999 2.1070357611427362E-003 - 9.0573999999999995 2.1110334477404888E-003 - 9.0591000000000008 2.1283433454794823E-003 - 9.0608000000000004 2.1603299239855139E-003 - 9.0625000000000000 2.1844444874847594E-003 - 9.0641999999999996 2.1951431483377549E-003 - 9.0658999999999992 2.2122386127691406E-003 - 9.0676000000000005 2.2347197021499701E-003 - 9.0693000000000001 2.2514615070451972E-003 - 9.0709999999999997 2.2605306044905524E-003 - 9.0726999999999993 2.2543171881181097E-003 - 9.0744000000000007 2.2247988218758669E-003 - 9.0761000000000003 2.1759891467562440E-003 - 9.0777999999999999 2.1197422989746532E-003 - 9.0794999999999995 2.0778244025400051E-003 - 9.0811999999999991 2.0556689610083385E-003 - 9.0829000000000004 2.0446342890257591E-003 - 9.0846000000000000 2.0478000221183005E-003 - 9.0862999999999996 2.0785421069140536E-003 - 9.0879999999999992 2.1241518067468350E-003 - 9.0897000000000006 2.1569717795459067E-003 - 9.0914000000000001 2.1727465008435768E-003 - 9.0930999999999997 2.1826900098840312E-003 - 9.0947999999999993 2.1881486060577942E-003 - 9.0965000000000007 2.1794268264066947E-003 - 9.0982000000000003 2.1595975106803379E-003 - 9.0998999999999999 2.1380183421775686E-003 - 9.1015999999999995 2.1261709498880282E-003 - 9.1033000000000008 2.1327542813464558E-003 - 9.1050000000000004 2.1514496460358174E-003 - 9.1067000000000000 2.1666749734967354E-003 - 9.1083999999999996 2.1746982643042847E-003 - 9.1100999999999992 2.1806018588778498E-003 - 9.1118000000000006 2.1892294135963148E-003 - 9.1135000000000002 2.1962823800854166E-003 - 9.1151999999999997 2.1993696525038076E-003 - 9.1168999999999993 2.2084606968341752E-003 - 9.1186000000000007 2.2223366904294004E-003 - 9.1203000000000003 2.2235118234177707E-003 - 9.1219999999999999 2.2006292828106932E-003 - 9.1236999999999995 2.1572454243366707E-003 - 9.1253999999999991 2.1019520696635235E-003 - 9.1271000000000004 2.0472954384878239E-003 - 9.1288000000000000 2.0073291046722322E-003 - 9.1304999999999996 1.9932447005962311E-003 - 9.1321999999999992 2.0018058126063686E-003 - 9.1339000000000006 2.0252779439731898E-003 - 9.1356000000000002 2.0713862303367880E-003 - 9.1372999999999998 2.1352418679603346E-003 - 9.1389999999999993 2.1849047239572883E-003 - 9.1407000000000007 2.2040391391210056E-003 - 9.1424000000000003 2.2051693837170051E-003 - 9.1440999999999999 2.2005429637005519E-003 - 9.1457999999999995 2.1964546977734202E-003 - 9.1475000000000009 2.1985202469919597E-003 - 9.1492000000000004 2.2007940518581062E-003 - 9.1509000000000000 2.1915732968246430E-003 - 9.1525999999999996 2.1753069598174518E-003 - 9.1542999999999992 2.1729757103940606E-003 - 9.1560000000000006 2.2020325113674276E-003 - 9.1577000000000002 2.2560129053348903E-003 - 9.1593999999999998 2.3222926236112743E-003 - 9.1610999999999994 2.3950457212992176E-003 - 9.1628000000000007 2.4440837333326655E-003 - 9.1645000000000003 2.4326239843824506E-003 - 9.1661999999999999 2.3748215239182287E-003 - 9.1678999999999995 2.3193232248792353E-003 - 9.1695999999999991 2.2911401605571371E-003 - 9.1713000000000005 2.2803404015621213E-003 - 9.1730000000000000 2.2657211014940723E-003 - 9.1746999999999996 2.2433520614710658E-003 - 9.1763999999999992 2.2242823959303798E-003 - 9.1781000000000006 2.2076368473555926E-003 - 9.1798000000000002 2.1839672088476512E-003 - 9.1814999999999998 2.1602773762882969E-003 - 9.1831999999999994 2.1616350634651826E-003 - 9.1848999999999990 2.1998438243273559E-003 - 9.1866000000000003 2.2399072249663981E-003 - 9.1882999999999999 2.2520027110473928E-003 - 9.1899999999999995 2.2358993672135091E-003 - 9.1917000000000009 2.1824077011620389E-003 - 9.1934000000000005 2.1041213160336537E-003 - 9.1951000000000001 2.0617202144815137E-003 - 9.1967999999999996 2.0520149139748702E-003 - 9.1984999999999992 2.0700655241601383E-003 - 9.2002000000000006 2.1036905446706268E-003 - 9.2019000000000002 2.1374131579182947E-003 - 9.2035999999999998 2.1679311728894412E-003 - 9.2052999999999994 2.1898477745666742E-003 - 9.2070000000000007 2.1683086875906987E-003 - 9.2087000000000003 2.0913975746373243E-003 - 9.2103999999999999 2.0225535713019188E-003 - 9.2120999999999995 2.0129316642873143E-003 - 9.2137999999999991 2.0371644493770704E-003 - 9.2155000000000005 2.0533485959475036E-003 - 9.2172000000000001 2.0518594446044336E-003 - 9.2188999999999997 2.0619765242078894E-003 - 9.2205999999999992 2.0897563711511778E-003 - 9.2223000000000006 2.1153520318168838E-003 - 9.2240000000000002 2.1220414732825150E-003 - 9.2256999999999998 2.1178342591754384E-003 - 9.2273999999999994 2.1281699873562493E-003 - 9.2290999999999990 2.1629065432845324E-003 - 9.2308000000000003 2.2081928439263406E-003 - 9.2324999999999999 2.2596544428491643E-003 - 9.2341999999999995 2.3106458505663852E-003 - 9.2359000000000009 2.3394282484126470E-003 - 9.2376000000000005 2.3348975271561389E-003 - 9.2393000000000001 2.3061066507612496E-003 - 9.2409999999999997 2.2640640668239271E-003 - 9.2426999999999992 2.2119732898855989E-003 - 9.2444000000000006 2.1607448609963454E-003 - 9.2461000000000002 2.1275941978417087E-003 - 9.2477999999999998 2.1203062571546615E-003 - 9.2494999999999994 2.1353167109649700E-003 - 9.2512000000000008 2.1595844223398432E-003 - 9.2529000000000003 2.1873787293811725E-003 - 9.2545999999999999 2.2007299604768853E-003 - 9.2562999999999995 2.1928880632429326E-003 - 9.2579999999999991 2.1801614613570809E-003 - 9.2597000000000005 2.1652550557094913E-003 - 9.2614000000000001 2.1352953989842833E-003 - 9.2630999999999997 2.1062330337662011E-003 - 9.2647999999999993 2.1038809019087628E-003 - 9.2665000000000006 2.1393202378107651E-003 - 9.2682000000000002 2.1985055096816466E-003 - 9.2698999999999998 2.2570265824467086E-003 - 9.2715999999999994 2.2960002110214129E-003 - 9.2732999999999990 2.3105495251950366E-003 - 9.2750000000000004 2.2948494827424665E-003 - 9.2766999999999999 2.2520615383901901E-003 - 9.2783999999999995 2.2209558556230300E-003 - 9.2801000000000009 2.2308307703107185E-003 - 9.2818000000000005 2.2373653659492920E-003 - 9.2835000000000001 2.1966794847731405E-003 - 9.2851999999999997 2.1481873891678045E-003 - 9.2868999999999993 2.1494247051927168E-003 - 9.2886000000000006 2.1876615786330647E-003 - 9.2903000000000002 2.2184847611891644E-003 - 9.2919999999999998 2.2252957893492895E-003 - 9.2936999999999994 2.2121862716293845E-003 - 9.2954000000000008 2.1894715101123713E-003 - 9.2971000000000004 2.1634893513075132E-003 - 9.2988000000000000 2.1358735666368567E-003 - 9.3004999999999995 2.0961008762537575E-003 - 9.3021999999999991 2.0227463253690383E-003 - 9.3039000000000005 1.9523793056401043E-003 - 9.3056000000000001 1.9538028610075939E-003 - 9.3072999999999997 2.0257810751393205E-003 - 9.3089999999999993 2.0947829805460158E-003 - 9.3107000000000006 2.1103987674615360E-003 - 9.3124000000000002 2.0856211054431431E-003 - 9.3140999999999998 2.0643229343357159E-003 - 9.3157999999999994 2.0448745615436296E-003 - 9.3174999999999990 1.9961643969229918E-003 - 9.3192000000000004 1.9365539979969398E-003 - 9.3209000000000000 1.9112476362021387E-003 - 9.3225999999999996 1.9276134210111534E-003 - 9.3243000000000009 1.9655251691125470E-003 - 9.3260000000000005 2.0014027168794128E-003 - 9.3277000000000001 2.0274960107594382E-003 - 9.3293999999999997 2.0475547889490645E-003 - 9.3310999999999993 2.0617515142784572E-003 - 9.3328000000000007 2.0459143404141901E-003 - 9.3345000000000002 1.9961093847732443E-003 - 9.3361999999999998 1.9447213676009648E-003 - 9.3378999999999994 1.9277046719783620E-003 - 9.3396000000000008 1.9670793653052939E-003 - 9.3413000000000004 2.0500603168240711E-003 - 9.3430000000000000 2.1210026125885488E-003 - 9.3446999999999996 2.1284683126727407E-003 - 9.3463999999999992 2.0698788896738049E-003 - 9.3481000000000005 1.9912127473391476E-003 - 9.3498000000000001 1.9447698590719788E-003 - 9.3514999999999997 1.9422653314653919E-003 - 9.3531999999999993 1.9541549097274562E-003 - 9.3549000000000007 1.9705403565486650E-003 - 9.3566000000000003 1.9934750623512953E-003 - 9.3582999999999998 2.0179912308762086E-003 - 9.3599999999999994 2.0298793796040410E-003 - 9.3616999999999990 2.0219864115925551E-003 - 9.3634000000000004 2.0194118743287540E-003 - 9.3651000000000000 2.0420705312470073E-003 - 9.3667999999999996 2.0605068499404697E-003 - 9.3684999999999992 2.0391402271459358E-003 - 9.3702000000000005 1.9789862130653907E-003 - 9.3719000000000001 1.9123982302504735E-003 - 9.3735999999999997 1.8629303310896675E-003 - 9.3752999999999993 1.8293917685483997E-003 - 9.3770000000000007 1.8116810299459913E-003 - 9.3787000000000003 1.8231608658226650E-003 - 9.3803999999999998 1.8600815720465169E-003 - 9.3820999999999994 1.9071696812632891E-003 - 9.3838000000000008 1.9498688513545507E-003 - 9.3855000000000004 1.9763338610605109E-003 - 9.3872000000000000 1.9923913767150459E-003 - 9.3888999999999996 2.0123347189589169E-003 - 9.3905999999999992 2.0345848280875784E-003 - 9.3923000000000005 2.0452699206445599E-003 - 9.3940000000000001 2.0424072933992593E-003 - 9.3956999999999997 2.0432667775367088E-003 - 9.3973999999999993 2.0565123720530662E-003 - 9.3991000000000007 2.0700309491128387E-003 - 9.4008000000000003 2.0708041375878221E-003 - 9.4024999999999999 2.0555569971628168E-003 - 9.4041999999999994 2.0312488707511997E-003 - 9.4058999999999990 2.0109890883514632E-003 - 9.4076000000000004 1.9875435271786797E-003 - 9.4093000000000000 1.9444212435270705E-003 - 9.4109999999999996 1.8916184244559379E-003 - 9.4126999999999992 1.8531494934138357E-003 - 9.4144000000000005 1.8529499820930176E-003 - 9.4161000000000001 1.8989918016238717E-003 - 9.4177999999999997 1.9731178605684975E-003 - 9.4194999999999993 2.0420699904537907E-003 - 9.4212000000000007 2.0861348082749777E-003 - 9.4229000000000003 2.1045232238190337E-003 - 9.4245999999999999 2.1036858704057818E-003 - 9.4262999999999995 2.0971891471581829E-003 - 9.4280000000000008 2.1041682587361822E-003 - 9.4297000000000004 2.1351276158355129E-003 - 9.4314000000000000 2.1878167043213330E-003 - 9.4330999999999996 2.2199125082471073E-003 - 9.4347999999999992 2.2037934165774335E-003 - 9.4365000000000006 2.1588401257133846E-003 - 9.4382000000000001 2.1118204891407838E-003 - 9.4398999999999997 2.0710697190640362E-003 - 9.4415999999999993 2.0288081994709840E-003 - 9.4433000000000007 1.9724383148908473E-003 - 9.4450000000000003 1.9141717552636436E-003 - 9.4466999999999999 1.8952913797105038E-003 - 9.4483999999999995 1.9356503326101635E-003 - 9.4500999999999991 2.0160978496292252E-003 - 9.4518000000000004 2.0976039200083234E-003 - 9.4535000000000000 2.1535054233144521E-003 - 9.4551999999999996 2.1749019334688924E-003 - 9.4568999999999992 2.1636525162862128E-003 - 9.4586000000000006 2.1334648072736826E-003 - 9.4603000000000002 2.0997482536529023E-003 - 9.4619999999999997 2.0779657057132619E-003 - 9.4636999999999993 2.0651756233605787E-003 - 9.4653999999999989 2.0447333080816821E-003 - 9.4671000000000003 2.0180808724487185E-003 - 9.4687999999999999 2.0054500986405898E-003 - 9.4704999999999995 2.0221657561980133E-003 - 9.4722000000000008 2.0638022392266337E-003 - 9.4739000000000004 2.1133953736490038E-003 - 9.4756000000000000 2.1615345311340327E-003 - 9.4772999999999996 2.2027001576079208E-003 - 9.4789999999999992 2.2367917560548057E-003 - 9.4807000000000006 2.2582529779027567E-003 - 9.4824000000000002 2.2550341112283390E-003 - 9.4840999999999998 2.2221568662765998E-003 - 9.4857999999999993 2.1706291381430277E-003 - 9.4875000000000007 2.1206460744768374E-003 - 9.4892000000000003 2.0897590229971906E-003 - 9.4908999999999999 2.0706066636173542E-003 - 9.4925999999999995 2.0422228170615714E-003 - 9.4942999999999991 2.0002149706523538E-003 - 9.4960000000000004 1.9703524610780393E-003 - 9.4977000000000000 1.9732106443580946E-003 - 9.4993999999999996 2.0087269223602574E-003 - 9.5010999999999992 2.0606621985092516E-003 - 9.5028000000000006 2.1121123669110690E-003 - 9.5045000000000002 2.1483067047952946E-003 - 9.5061999999999998 2.1599024359336312E-003 - 9.5078999999999994 2.1503730842781931E-003 - 9.5095999999999989 2.1297400637601081E-003 - 9.5113000000000003 2.1075934972572576E-003 - 9.5129999999999999 2.0905590095164819E-003 - 9.5146999999999995 2.0824107691824289E-003 - 9.5164000000000009 2.0828258002098866E-003 - 9.5181000000000004 2.0721080817270058E-003 - 9.5198000000000000 2.0191940829614309E-003 - 9.5214999999999996 1.9319106237512297E-003 - 9.5231999999999992 1.8638505231547951E-003 - 9.5249000000000006 1.8665259376346660E-003 - 9.5266000000000002 1.9324901266251637E-003 - 9.5282999999999998 2.0046473878746291E-003 - 9.5299999999999994 2.0338532353975174E-003 - 9.5317000000000007 2.0193481821180982E-003 - 9.5334000000000003 1.9816565161614248E-003 - 9.5350999999999999 1.9279567258422736E-003 - 9.5367999999999995 1.8662939616714846E-003 - 9.5384999999999991 1.8267124075848722E-003 - 9.5402000000000005 1.8423260589884099E-003 - 9.5419000000000000 1.9192042067808167E-003 - 9.5435999999999996 2.0284782649025767E-003 - 9.5452999999999992 2.1182956822516459E-003 - 9.5470000000000006 2.1586124197465677E-003 - 9.5487000000000002 2.1412948982014865E-003 - 9.5503999999999998 2.0831919191118603E-003 - 9.5520999999999994 2.0183097846208503E-003 - 9.5537999999999990 1.9763388336276051E-003 - 9.5555000000000003 1.9661070786769169E-003 - 9.5571999999999999 1.9780200495520717E-003 - 9.5588999999999995 1.9928385122370616E-003 - 9.5606000000000009 1.9933142634950352E-003 - 9.5623000000000005 1.9874501618190083E-003 - 9.5640000000000001 1.9974965883662321E-003 - 9.5656999999999996 2.0367442716867747E-003 - 9.5673999999999992 2.1002810067040764E-003 - 9.5691000000000006 2.1788552645887176E-003 - 9.5708000000000002 2.2464777091856050E-003 - 9.5724999999999998 2.2730883303360943E-003 - 9.5741999999999994 2.2425856049609221E-003 - 9.5759000000000007 2.1657791699633017E-003 - 9.5776000000000003 2.0764313481078244E-003 - 9.5792999999999999 2.0116244637265403E-003 - 9.5809999999999995 1.9808132304418094E-003 - 9.5826999999999991 1.9640774748685488E-003 - 9.5844000000000005 1.9448382044123273E-003 - 9.5861000000000001 1.9253825920600449E-003 - 9.5877999999999997 1.9155797419876516E-003 - 9.5894999999999992 1.9280131013776583E-003 - 9.5912000000000006 1.9654446545132515E-003 - 9.5929000000000002 2.0043221684290439E-003 - 9.5945999999999998 2.0089197877831786E-003 - 9.5962999999999994 1.9748828406811283E-003 - 9.5979999999999990 1.9270934858966985E-003 - 9.5997000000000003 1.8880496014739854E-003 - 9.6013999999999999 1.8714429921535495E-003 - 9.6030999999999995 1.9004977048598679E-003 - 9.6048000000000009 1.9997917452012435E-003 - 9.6065000000000005 2.1453183320266048E-003 - 9.6082000000000001 2.2557436680204629E-003 - 9.6098999999999997 2.2739683340524184E-003 - 9.6115999999999993 2.2078060429755217E-003 - 9.6133000000000006 2.1169045571471272E-003 - 9.6150000000000002 2.0614392147794494E-003 - 9.6166999999999998 2.0529669867288022E-003 - 9.6183999999999994 2.0553030451402289E-003 - 9.6201000000000008 2.0409850561749310E-003 - 9.6218000000000004 2.0056146200873978E-003 - 9.6234999999999999 1.9611389188635112E-003 - 9.6251999999999995 1.9387674865898644E-003 - 9.6268999999999991 1.9506807757885419E-003 - 9.6286000000000005 1.9652339096898385E-003 - 9.6303000000000001 1.9486931680666130E-003 - 9.6319999999999997 1.8948965101739561E-003 - 9.6336999999999993 1.8274895364928793E-003 - 9.6354000000000006 1.7847562447824111E-003 - 9.6371000000000002 1.7873419831742105E-003 - 9.6387999999999998 1.8201836786038807E-003 - 9.6404999999999994 1.8656758288565199E-003 - 9.6421999999999990 1.9108725640641299E-003 - 9.6439000000000004 1.9295049937420796E-003 - 9.6456000000000000 1.9144578875882026E-003 - 9.6472999999999995 1.9030074220347962E-003 - 9.6489999999999991 1.9338177413007196E-003 - 9.6507000000000005 2.0051797690799544E-003 - 9.6524000000000001 2.0748005302973784E-003 - 9.6540999999999997 2.1052388332331623E-003 - 9.6557999999999993 2.0871836285244329E-003 - 9.6575000000000006 2.0389231862212235E-003 - 9.6592000000000002 1.9993449634063839E-003 - 9.6608999999999998 1.9947836189952938E-003 - 9.6625999999999994 2.0245927746989586E-003 - 9.6643000000000008 2.0712026645347396E-003 - 9.6660000000000004 2.1185909635410552E-003 - 9.6677000000000000 2.1484547702126612E-003 - 9.6693999999999996 2.1371609941916560E-003 - 9.6710999999999991 2.0749540126015834E-003 - 9.6728000000000005 2.0005202951058529E-003 - 9.6745000000000001 1.9519757992066578E-003 - 9.6761999999999997 1.9289184132877139E-003 - 9.6778999999999993 1.9205260562986247E-003 - 9.6796000000000006 1.9155664297141411E-003 - 9.6813000000000002 1.9062353844891548E-003 - 9.6829999999999998 1.8852626342533343E-003 - 9.6846999999999994 1.8553747899812205E-003 - 9.6863999999999990 1.8351778113511591E-003 - 9.6881000000000004 1.8262416344261507E-003 - 9.6898000000000000 1.8303691291417612E-003 - 9.6914999999999996 1.8505216925212052E-003 - 9.6931999999999992 1.8802920618713518E-003 - 9.6949000000000005 1.9023213930588736E-003 - 9.6966000000000001 1.9092137944249883E-003 - 9.6982999999999997 1.9077968668793476E-003 - 9.6999999999999993 1.9044875664480305E-003 - 9.7017509999999980 1.9037422756849691E-003 - 9.7035545299999963 1.9067427491403974E-003 - 9.7054121658999950 1.9052503457090786E-003 - 9.7073255308769930 1.8986030836127036E-003 - 9.7092962968033003 1.8954931666792187E-003 - 9.7113261857073976 1.8970077368092803E-003 - 9.7134169712786171 1.8961911058636141E-003 - 9.7155704804169734 1.8881260880585329E-003 - 9.7177885948294804 1.8748632710520778E-003 - 9.7200732526743625 1.8723989640512153E-003 - 9.7224264502545914 1.9082448041693348E-003 - 9.7248502437622264 1.9782346047048844E-003 - 9.7273467510750908 2.0125970944100176E-003 - 9.7299181536073416 1.9970660087767268E-003 - 9.7325666982155603 1.9823899902682287E-003 - 9.7352946991620257 1.9768812418985756E-003 - 9.7381045401368844 1.9627657744511924E-003 - 9.7409986763409897 1.9608944038348361E-003 - 9.7439796366312184 1.9626263783071992E-003 - 9.7470500257301538 1.9782526820430009E-003 - 9.7502125265020574 2.0195485793736648E-003 - 9.7534699022971179 2.0210151411291194E-003 - 9.7568249993660299 1.9932271187564229E-003 - 9.7602807493470092 2.0023923941914737E-003 - 9.7638401718274181 2.0515514749884539E-003 - 9.7675063769822401 2.0814976292532661E-003 - 9.7712825682917064 2.1086249768855932E-003 - 9.7751720453404563 2.1499378292695183E-003 - 9.7791782067006690 2.1747337780575211E-003 - 9.7833045529016882 2.1641371507728916E-003 - 9.7875546894887382 2.1686076482507169E-003 - 9.7919323301733989 2.1838472617768563E-003 - 9.7964413000785999 2.1292556485937369E-003 - 9.8010855390809564 2.0027641518343565E-003 - 9.8058691052533842 1.9292154743209078E-003 - 9.8107961784109854 1.9462999485941376E-003 - 9.8158710637633142 1.9706680363872262E-003 - 9.8210981956762122 1.9569675974539331E-003 - 9.8264821415464976 1.9396808142621025E-003 - 9.8320276057928915 1.9310287735669763E-003 - 9.8377394339666768 1.8810237234450399E-003 - 9.8436226169856749 1.8496669730566570E-003 - 9.8496822954952421 1.8476191171047877E-003 - 9.8559237643600959 1.7788419749767972E-003 - 9.8623524772908944 1.6863196719481127E-003 - 9.8689740516096176 1.6440176728512474E-003 - 9.8757942731579025 1.6337402656721909E-003 - 9.8828191013526361 1.6787417668522951E-003 - 9.8900546743932125 1.7413820774429096E-003 - 9.8975073146250061 1.7775863151850350E-003 - 9.9051835340637542 1.7635910118369595E-003 - 9.9130900400856650 1.6994370648766102E-003 - 9.9212337412882334 1.6416014675099818E-003 - 9.9296217535268791 1.6205471683217222E-003 - 9.9382614061326837 1.6528484453679883E-003 - 9.9471602483166617 1.7234390473797648E-003 - 9.9563260557661586 1.7585806819213712E-003 - 9.9657668374391406 1.7575798795753561E-003 - 9.9754908425623121 1.7374396375605921E-003 - 9.9855065678391792 1.7099994307568397E-003 - 9.9958227648743527 1.6847109418315915E-003 - 10.006448447820581 1.6568948427470023E-003 - 10.017392901255196 1.6286128833169773E-003 - 10.028665688292849 1.6275795485138269E-003 - 10.040276658941631 1.6013416443260702E-003 - 10.052235958709876 1.5305837158288607E-003 - 10.064554037471169 1.5147098540969179E-003 - 10.077241658595300 1.5490609449175746E-003 - 10.090309908353156 1.6087227684531992E-003 - 10.103770205603746 1.6512421631501707E-003 - 10.117634311771855 1.6169242659877616E-003 - 10.131914341125007 1.5461756317440790E-003 - 10.146622771358754 1.5085724475050095E-003 - 10.161772454499513 1.5358629157683627E-003 - 10.177376628134494 1.5826763419812284E-003 - 10.193448926978526 1.6018479414736195E-003 - 10.210003394787879 1.6311987445098725E-003 - 10.227054496631514 1.6043455292053292E-003 - 10.244617131530457 1.4466735673897592E-003 - 10.262706645476369 1.3640866038899522E-003 - 10.281338844840658 1.3753902815237865E-003 - 10.300530010185875 1.3883313366926794E-003 - 10.320296910491450 1.4161060445814159E-003 - 10.340656817806192 1.4187835179770422E-003 - 10.361627522340376 1.4053560125481795E-003 - 10.383227348010585 1.4068693575187050E-003 - 10.405475168450902 1.3908224740321706E-003 - 10.428390423504428 1.3625374039193587E-003 - 10.451993136209561 1.3219119169222110E-003 - 10.476303930295847 1.3161013353151735E-003 - 10.501344048204722 1.3610701588795207E-003 - 10.527135369650862 1.3494624004994401E-003 - 10.553700430740387 1.2775757916049886E-003 - 10.581062443662596 1.2304274505946309E-003 - 10.609245316972471 1.1872430991344421E-003 - 10.638273676481642 1.1313903778143808E-003 - 10.668172886776089 1.1526541982268170E-003 - 10.698969073379370 1.2273569495922533E-003 - 10.730689145580749 1.2588422787243459E-003 - 10.763360819948170 1.2148102331579807E-003 - 10.797012644546614 1.1491648693635656E-003 - 10.831674023883011 1.1737600073418685E-003 - 10.867375244599499 1.2732039494298152E-003 - 10.904147501937482 1.2814924414188697E-003 - 10.942022926995604 1.1657009318646065E-003 - 10.981034614805468 1.0814611944295720E-003 - 11.021216653249628 1.0955527523392183E-003 - 11.062604152847111 1.0689158134430800E-003 - 11.105233277432520 1.0187968453262263E-003 - 11.149141275755490 1.0265023153221305E-003 - 11.194366514028149 1.0009314731577082E-003 - 11.240948509448987 9.7721418708799409E-004 - 11.288927964732451 9.9805200052353361E-004 - 11.338346803674419 1.0280785152495995E-003 - 11.389248207784645 9.9207225724417983E-004 - 11.441676654018178 9.0464238700786986E-004 - 11.495677953638717 8.5924464281277263E-004 - 11.551299292247872 8.8627020842711312E-004 - 11.608589271015303 9.2586410819863352E-004 - 11.667597949145756 9.1464876409145526E-004 - 11.728376887620124 9.1398445203395200E-004 - 11.790979194248722 9.2009763651158469E-004 - 11.855459570076178 8.3317701293483392E-004 - 11.921874357178458 6.8902364541933948E-004 - 11.990281587893806 6.5247326422052674E-004 - 12.060741035530615 6.9742726158579190E-004 - 12.133314266596528 6.9872537231358640E-004 - 12.208064694594420 6.3310641865570064E-004 - 12.285057635432247 5.7793803667236822E-004 - 12.364360364495210 5.0519410088605335E-004 - 12.446042175430062 4.4787819377566931E-004 - 12.530174440692958 4.5950052675761285E-004 - 12.616830673913741 4.6809240627834097E-004 - 12.706086594131147 4.5630135533223525E-004 - 12.798020191955075 4.4322712443169295E-004 - 12.892711797713721 4.3681328194203909E-004 - 12.990244151645127 4.3219061763428594E-004 - 13.090702476194476 4.2868301732905818E-004 - 13.194174550480305 4.2743480801236500E-004 - 13.300750786994708 4.2712977728916505E-004 - 13.410524310604544 4.2754966530489635E-004 - 13.523591039922675 4.2778893136582595E-004 - 13.640049771120349 4.2713159078947596E-004 - 13.760002264253954 4.2657620506466470E-004 - 13.883553332181567 4.2663799511112154E-004 - 14.010810932147010 4.2692847073012765E-004 - 14.141886260111416 4.2696067026149430E-004 - 14.276893847914756 4.2659518620701719E-004 - 14.415951663352196 4.2625241749050648E-004 - 14.559181213252760 4.2628214521914985E-004 - 14.706707649650340 4.2655071133271868E-004 - 14.858659879139847 4.2671523450522631E-004 - 15.015170675514039 4.2661904033501613E-004 - 15.176376795779458 4.2642876973881199E-004 - 15.342419099652840 4.2635747080910002E-004 - 15.513442672642423 4.2641094028334913E-004 - 15.689596952821692 4.2649837102189103E-004 - 15.871035861406337 4.2661672745427184E-004 - 16.057917937248522 4.2668120575170885E-004 - 16.250406475365974 4.2665742457314172E-004 diff --git a/cases/flatplate-Ma2.25/data/cf-hybrid-character.dat b/cases/flatplate-Ma2.25/data/cf-hybrid-character.dat deleted file mode 100644 index a29c189..0000000 --- a/cases/flatplate-Ma2.25/data/cf-hybrid-character.dat +++ /dev/null @@ -1,2193 +0,0 @@ - 4.0031857074841266 3.9928496699608371E-004 - 4.0089407907598247 4.0030276532104005E-004 - 4.0146927820747917 4.0008635442226917E-004 - 4.0204416798001343 3.9985325547371508E-004 - 4.0261874823069546 3.9956744866845453E-004 - 4.0319301879663589 3.9930612116875308E-004 - 4.0376697951494522 3.9902461815891256E-004 - 4.0434063022273383 3.9875704936509618E-004 - 4.0491397075711228 3.9847615662438787E-004 - 4.0548700095519097 3.9820662696714684E-004 - 4.0605972065408045 3.9792767305065282E-004 - 4.0663212969089120 3.9765761201301849E-004 - 4.0720422790273361 3.9737995793460366E-004 - 4.0777601512671815 3.9711005224069278E-004 - 4.0834749119995539 3.9683378515256436E-004 - 4.0891865595955590 3.9656484559970074E-004 - 4.0948950924262988 3.9628973200968922E-004 - 4.1006005088628799 3.9602212886860318E-004 - 4.1063028072764070 3.9574794808899447E-004 - 4.1120019860379839 3.9548200223006309E-004 - 4.1176980435187165 3.9520855408125356E-004 - 4.1233909780897093 3.9494456059183938E-004 - 4.1290807881220664 3.9467184342294409E-004 - 4.1347674719868932 3.9440971627642150E-004 - 4.1404510280552946 3.9413799205146753E-004 - 4.1461314546983745 3.9387702312391928E-004 - 4.1518087502872385 3.9360799454254015E-004 - 4.1574829131929913 3.9334408353350147E-004 - 4.1631539417867369 3.9308398678110124E-004 - 4.1688218344395818 3.9281379267810522E-004 - 4.1744865895226280 3.9255828971585736E-004 - 4.1801482054069830 3.9229009930408763E-004 - 4.1858066804637506 3.9203396074248900E-004 - 4.1914620130640348 3.9176862171299865E-004 - 4.1971142015789411 3.9151205269285692E-004 - 4.2027632443795735 3.9124923585781736E-004 - 4.2084091398370376 3.9099270949358817E-004 - 4.2140518863224390 3.9073193945882764E-004 - 4.2196914822068807 3.9047559978113664E-004 - 4.2253279258614675 3.9021638761430982E-004 - 4.2309612156573060 3.8996033049072123E-004 - 4.2365913499654990 3.8970243530812328E-004 - 4.2422183271571523 3.8944684108430306E-004 - 4.2478421456033706 3.8918999475624208E-004 - 4.2534628036752586 3.8893471015823139E-004 - 4.2590802997439212 3.8867852903388912E-004 - 4.2646946321804622 3.8842342612820812E-004 - 4.2703057993559872 3.8816766207605986E-004 - 4.2759137996416010 3.8791262347426367E-004 - 4.2815186314084084 3.8765705809394797E-004 - 4.2871202930275141 3.8740191218677007E-004 - 4.2927187828700228 3.8714623122484677E-004 - 4.2983140993070386 3.8689065295608420E-004 - 4.3039062407096678 3.8663450336130908E-004 - 4.3094952054490134 3.8637823008919855E-004 - 4.3150809918961812 3.8612137306659363E-004 - 4.3206635984222768 3.8586420303592074E-004 - 4.3262430233984031 3.8560638840783599E-004 - 4.3318192651956657 3.8534808493921136E-004 - 4.3373923221851687 3.8508903162296117E-004 - 4.3429621927380193 3.8482934739041412E-004 - 4.3485288752253188 3.8456877841062937E-004 - 4.3540923680181747 3.8430746884852724E-004 - 4.3596526694876907 3.8404515788987485E-004 - 4.3652097780049717 3.8378202883117534E-004 - 4.3707636919411215 3.8351782957067669E-004 - 4.3763144096672466 3.8325268559892420E-004 - 4.3818619295544510 3.8298639553135586E-004 - 4.3874062499738393 3.8271891894187598E-004 - 4.3929473692965155 3.8245017274275066E-004 - 4.3984852858935861 3.8217989285523106E-004 - 4.4040199981361550 3.8190805357658721E-004 - 4.4095515043953259 3.8163417139052834E-004 - 4.4150798030422056 3.8135807539179474E-004 - 4.4206048924478978 3.8107914333913103E-004 - 4.4261267709835064 3.8079683858868605E-004 - 4.4316454370201388 3.8051044105526021E-004 - 4.4371608889288972 3.8021894937720135E-004 - 4.4426731250808871 3.7992148183838774E-004 - 4.4481821438472124 3.7961669129864310E-004 - 4.4536879435989807 3.7930347688429849E-004 - 4.4591905227072939 3.7898039018895781E-004 - 4.4646898795432586 3.7864600997580052E-004 - 4.4701860124779778 3.7829874655077698E-004 - 4.4756789198825579 3.7793694216208874E-004 - 4.4811686001281030 3.7755898067495092E-004 - 4.4866550515857178 3.7716327421958613E-004 - 4.4921382726265069 3.7674880427052837E-004 - 4.4976182616215752 3.7631440081240566E-004 - 4.5030950169420274 3.7585988408731207E-004 - 4.5085685369589692 3.7538577363004376E-004 - 4.5140388200435044 3.7489455442700118E-004 - 4.5195058645667370 3.7438953644454437E-004 - 4.5249696688997734 3.7387262842302182E-004 - 4.5304302314137175 3.7334939109797820E-004 - 4.5358875504796750 3.7282682859369803E-004 - 4.5413416244687497 3.7231204760570743E-004 - 4.5467924517520455 3.7181312801657491E-004 - 4.5522400307006690 3.7133836433040723E-004 - 4.5576843596857248 3.7089661902851829E-004 - 4.5631254370783161 3.7049471744951198E-004 - 4.5685632612495493 3.7013911219557018E-004 - 4.5739978305705282 3.6983240252660423E-004 - 4.5794291434123577 3.6957616568857342E-004 - 4.5848571981461426 3.6936755089219048E-004 - 4.5902819931429892 3.6920015574901197E-004 - 4.5957035267739990 3.6906668865954235E-004 - 4.6011217974102800 3.6895339666824430E-004 - 4.6065368034229355 3.6884754642296926E-004 - 4.6119485431830691 3.6873477949854840E-004 - 4.6173570150617884 3.6859709421779537E-004 - 4.6227622174301954 3.6842162991042429E-004 - 4.6281641486593967 3.6819471383594382E-004 - 4.6335628071204962 3.6790195295715775E-004 - 4.6389581911845994 3.6754318182429614E-004 - 4.6443502992228103 3.6710615434463974E-004 - 4.6497391296062336 3.6660250555323144E-004 - 4.6551246807059750 3.6603340385776172E-004 - 4.6605069508931383 3.6541242065384554E-004 - 4.6658859385388283 3.6476805912355595E-004 - 4.6712616420141506 3.6410462281707875E-004 - 4.6766340596902092 3.6346593340795395E-004 - 4.6820031899381087 3.6287122894914780E-004 - 4.6873690311289549 3.6233913412852571E-004 - 4.6927315816338524 3.6190395698495965E-004 - 4.6980908398239043 3.6157824920590048E-004 - 4.7034468040702180 3.6135435374235576E-004 - 4.7087994727438955 3.6126481939059284E-004 - 4.7141488442160435 3.6127766276835492E-004 - 4.7194949168577658 3.6137738302942878E-004 - 4.7248376890401680 3.6158415777945001E-004 - 4.7301771591343549 3.6183657703774553E-004 - 4.7355133255114303 3.6213338528073727E-004 - 4.7408461865424991 3.6249413249466085E-004 - 4.7461757405986669 3.6286298103031697E-004 - 4.7515019860510375 3.6323997227371966E-004 - 4.7568249212707165 3.6366766412615048E-004 - 4.7621445446288080 3.6407552752363903E-004 - 4.7674608544964174 3.6446274563757802E-004 - 4.7727738492446488 3.6484239622334519E-004 - 4.7780835272446076 3.6516888742229794E-004 - 4.7833898868673987 3.6542838999727552E-004 - 4.7886929264841260 3.6562343509820370E-004 - 4.7939926444658951 3.6572442178456219E-004 - 4.7992890391838090 3.6573724100504419E-004 - 4.8045821090089751 3.6567051423168671E-004 - 4.8098718523124964 3.6552125834194663E-004 - 4.8151582674654776 3.6530997567397702E-004 - 4.8204413528390253 3.6503029536806710E-004 - 4.8257211068042416 3.6472800607678039E-004 - 4.8309975277322348 3.6440202112065909E-004 - 4.8362706139941061 3.6405469378615260E-004 - 4.8415403639609620 3.6374749978254606E-004 - 4.8468067760039064 3.6344607913417189E-004 - 4.8520698484940450 3.6318287679369037E-004 - 4.8573295798024816 3.6299156254870961E-004 - 4.8625859683003227 3.6282807876224791E-004 - 4.8678390123586706 3.6272963945478280E-004 - 4.8730887103486324 3.6269714533059748E-004 - 4.8783350606413123 3.6269141441535062E-004 - 4.8835780616078139 3.6274327213638044E-004 - 4.8888177116192431 3.6283721291968283E-004 - 4.8940540090467035 3.6294421376124224E-004 - 4.8992869522613010 3.6308382095260445E-004 - 4.9045165396341392 3.6325910709689201E-004 - 4.9097427695363249 3.6343072683737678E-004 - 4.9149656403389610 3.6360205934936367E-004 - 4.9201851504131531 3.6380595917787003E-004 - 4.9254012981300059 3.6402517642728042E-004 - 4.9306140818606234 3.6423330540059722E-004 - 4.9358234999761113 3.6442878168378804E-004 - 4.9410295508475741 3.6464285993557277E-004 - 4.9462322328461168 3.6487091869364855E-004 - 4.9514315443428432 3.6510610233947882E-004 - 4.9566274837088589 3.6536165496346880E-004 - 4.9618200493152687 3.6561767142260772E-004 - 4.9670092395331773 3.6590853972635006E-004 - 4.9721950527336887 3.6621609395576552E-004 - 4.9773774872879102 3.6652539150530607E-004 - 4.9825565415669422 3.6687331356367241E-004 - 4.9877322139418929 3.6721007842441250E-004 - 4.9929045027838663 3.6755083359028671E-004 - 4.9980734064639663 3.6790122725651711E-004 - 5.0032389233532992 3.6821029340187278E-004 - 5.0084010518229682 3.6852795390720816E-004 - 5.0135597902440798 3.6881757690542205E-004 - 5.0187151369877370 3.6904914124645120E-004 - 5.0238670904250453 3.6928635937159631E-004 - 5.0290156489271096 3.6948282948652100E-004 - 5.0341608108650338 3.6960751927636457E-004 - 5.0393025746099243 3.6971522326811196E-004 - 5.0444409385328850 3.6979881937738914E-004 - 5.0495759010050199 3.6983915534597822E-004 - 5.0547074603974345 3.6983181712889226E-004 - 5.0598356150812336 3.6977580366517833E-004 - 5.0649603634275220 3.6971421754514552E-004 - 5.0700817038074053 3.6963509220162464E-004 - 5.0751996345919865 3.6951200219971080E-004 - 5.0803141541523713 3.6937163048734740E-004 - 5.0854252608596635 3.6922026530051313E-004 - 5.0905329530849706 3.6907295233432644E-004 - 5.0956372291993945 3.6892190004989131E-004 - 5.1007380875740402 3.6876239205496208E-004 - 5.1058355265800150 3.6861648029753779E-004 - 5.1109295445884211 3.6849766239577828E-004 - 5.1160201399703640 3.6837564713341613E-004 - 5.1211073110969485 3.6826598574222152E-004 - 5.1261910563392794 3.6820697315201453E-004 - 5.1312713740684615 3.6816989266179079E-004 - 5.1363482626555985 3.6814857406578612E-004 - 5.1414217204717971 3.6815735413842028E-004 - 5.1464917458881621 3.6821537886783020E-004 - 5.1515583372757963 3.6830645117285401E-004 - 5.1566214930058054 3.6842615915484630E-004 - 5.1616812114492951 3.6859132009797757E-004 - 5.1667374909773685 3.6879330543303484E-004 - 5.1717903299611319 3.6902962588545733E-004 - 5.1768397267716875 3.6931097001325920E-004 - 5.1818856797801436 3.6962364475598398E-004 - 5.1869281873576032 3.6997187493199873E-004 - 5.1919672478751711 3.7036151701929005E-004 - 5.1970028597039519 3.7076864719553214E-004 - 5.2020350212150506 3.7121478120721358E-004 - 5.2070637307795726 3.7167337535158791E-004 - 5.2120889867686211 3.7215592442249200E-004 - 5.2171107875533025 3.7266592331969327E-004 - 5.2221291315047207 3.7314776565075563E-004 - 5.2271440169939796 3.7365698090673002E-004 - 5.2321554423921857 3.7416443275054061E-004 - 5.2371634060704437 3.7461341830663227E-004 - 5.2421679063998567 3.7507782748730321E-004 - 5.2471689417515313 3.7550667206744353E-004 - 5.2521665104965711 3.7585634160050579E-004 - 5.2571606110060802 3.7618235439826147E-004 - 5.2621512416511660 3.7645335929761494E-004 - 5.2671384008029305 3.7665984456040962E-004 - 5.2721220868324803 3.7678052052056123E-004 - 5.2771022981109184 3.7683083020353540E-004 - 5.2820790330093521 3.7684389279312206E-004 - 5.2870522898988845 3.7675675140865980E-004 - 5.2920220671506204 3.7658898407642253E-004 - 5.2969883631356645 3.7641272649585231E-004 - 5.3019511762251215 3.7615334972384022E-004 - 5.3069105047900962 3.7582168783013251E-004 - 5.3118663472016943 3.7549600936691351E-004 - 5.3168187018310196 3.7520932486069893E-004 - 5.3217675670491769 3.7493797801262498E-004 - 5.3267129412272727 3.7468334067900210E-004 - 5.3316548227364091 3.7446219336564462E-004 - 5.3365932099476918 3.7438365108931554E-004 - 5.3415281012322264 3.7444306187321805E-004 - 5.3464594949611168 3.7458191104182707E-004 - 5.3513873895054678 3.7492241481280295E-004 - 5.3563117832363849 3.7544371097051747E-004 - 5.3612326745249721 3.7609340108514712E-004 - 5.3661500617423350 3.7699539078776730E-004 - 5.3710639432595775 3.7809793700725784E-004 - 5.3759743174478043 3.7929365230663514E-004 - 5.3808811826781220 3.8071341296127393E-004 - 5.3857845373216318 3.8223816306285068E-004 - 5.3906843797494419 3.8383028645487928E-004 - 5.3955807083326555 3.8555236090723102E-004 - 5.4004735214423771 3.8732795444241310E-004 - 5.4053628174497117 3.8909463201476516E-004 - 5.4102485947257657 3.9071329166377099E-004 - 5.4151308516416421 3.9232428323859192E-004 - 5.4200095865684457 3.9390612987327318E-004 - 5.4248847978772821 3.9521580520276479E-004 - 5.4297564839392543 3.9635814264832076E-004 - 5.4346246431254697 3.9741097863463471E-004 - 5.4394892738070313 3.9827118480857075E-004 - 5.4443503743550448 3.9895145417349280E-004 - 5.4492079431406131 3.9945232300972369E-004 - 5.4540619785348436 3.9986628735044408E-004 - 5.4589124789088395 4.0015065461773328E-004 - 5.4637594426337062 4.0034386018196916E-004 - 5.4686028680805476 4.0048335723221959E-004 - 5.4734427536204695 4.0056832257243525E-004 - 5.4782790976245757 4.0060882209297643E-004 - 5.4831118984639708 4.0061711671357644E-004 - 5.4879411545097607 4.0060211752394192E-004 - 5.4927668641330500 4.0051748031032323E-004 - 5.4975890257049436 4.0045480554946753E-004 - 5.5024076375965443 4.0034685107703680E-004 - 5.5072226981789605 4.0027075670421913E-004 - 5.5120342058232925 4.0026613323405848E-004 - 5.5168421589006487 4.0031212525955284E-004 - 5.5216465557821319 4.0045738260092203E-004 - 5.5264473948388479 4.0090949687924919E-004 - 5.5312446744419015 4.0163169782803316E-004 - 5.5360383929623964 4.0248658391140932E-004 - 5.5408285487714384 4.0373927884012283E-004 - 5.5456151402401312 4.0576993755830665E-004 - 5.5503981657395816 4.0800209004253325E-004 - 5.5551776236408923 4.1007631461814739E-004 - 5.5599535123151682 4.1247156083271786E-004 - 5.5647258301335150 4.1592504369263787E-004 - 5.5694945754670373 4.2033197801239045E-004 - 5.5742597466868400 4.2394035796198117E-004 - 5.5790213421640260 4.2750852878457797E-004 - 5.5837793602697037 4.3236469272946073E-004 - 5.5885337993749742 4.3558114767160909E-004 - 5.5932846578509450 4.3541070683076667E-004 - 5.5980319340687199 4.3669389891482099E-004 - 5.6027756263994011 4.4296613411909331E-004 - 5.6075157332140977 4.5127534256212635E-004 - 5.6122522528839127 4.5772097323082075E-004 - 5.6169851837799492 4.5931298107752230E-004 - 5.6217145242733153 4.5531824586542027E-004 - 5.6264402727351124 4.4966441639118836E-004 - 5.6311624275364469 4.4779944728486694E-004 - 5.6358809870484246 4.5326909166108428E-004 - 5.6405959496421483 4.6343914924929164E-004 - 5.6453073136887237 4.6950725317793286E-004 - 5.6500150775592548 4.6888527187596867E-004 - 5.6547192396248471 4.6498355186863106E-004 - 5.6594197982566055 4.5841697716120531E-004 - 5.6641167518256355 4.5211981989299032E-004 - 5.6688100987030392 4.4941058789669500E-004 - 5.6734998372599241 4.5511683201224180E-004 - 5.6781859658673941 4.6810859511851660E-004 - 5.6828684828965530 4.7496206034251603E-004 - 5.6875473867185065 4.6695127604450313E-004 - 5.6922226757043592 4.5262163221723549E-004 - 5.6968943482252161 4.4875024800561782E-004 - 5.7015624026521818 4.6077445635548617E-004 - 5.7062268373563612 4.7000639012637980E-004 - 5.7108876507088588 4.6225223318408577E-004 - 5.7155448410807796 4.5520120927225222E-004 - 5.7201984068432274 4.5814958631929371E-004 - 5.7248483463673079 4.6819444993095432E-004 - 5.7294946580241266 4.6902736894693616E-004 - 5.7341373401847866 4.6133952079157936E-004 - 5.7387763912203935 4.6641707837627048E-004 - 5.7434118095020521 4.7034261426733058E-004 - 5.7480435934008671 4.5670661534576244E-004 - 5.7526717412879442 4.5106074983513212E-004 - 5.7572962515343864 4.5166141239300967E-004 - 5.7619171225112993 4.6853475822456191E-004 - 5.7665343525897876 5.0243966455032713E-004 - 5.7711479401409562 5.1108495697945692E-004 - 5.7757578835359098 5.0917967109695905E-004 - 5.7803641811457531 5.0797490229086888E-004 - 5.7849668313415910 5.2400147520649846E-004 - 5.7895658324945281 5.3225838221614347E-004 - 5.7941611829756692 5.0623101508688226E-004 - 5.7987528811561200 5.0659344938869754E-004 - 5.8033409254069834 5.4399414876963724E-004 - 5.8079253140993661 5.8194449648117164E-004 - 5.8125060456043709 6.2083364993409298E-004 - 5.8170831182931035 6.3795506953361004E-004 - 5.8216565305366696 6.2377359661269132E-004 - 5.8262262807061731 6.2213519108982648E-004 - 5.8307923671727178 6.1298334223560888E-004 - 5.8353547883074111 5.9942062780945658E-004 - 5.8399135424813551 6.2992829045506319E-004 - 5.8444686280656555 6.5780267085245798E-004 - 5.8490200434314161 6.6496201283924178E-004 - 5.8535677869497436 6.7860838198818667E-004 - 5.8581118569917425 6.6146896119550960E-004 - 5.8626522519285160 6.3620421401238021E-004 - 5.8671889701311706 6.4040127814154037E-004 - 5.8717220099708101 6.5612086366293040E-004 - 5.8762513698185392 6.7735180835427672E-004 - 5.8807770480454638 6.7834976050936346E-004 - 5.8852990430226866 6.4958349124600234E-004 - 5.8898173531213143 6.1838001883981748E-004 - 5.8943319767124507 6.0606498185419931E-004 - 5.8988429121671997 5.9144630933221211E-004 - 5.9033501578566678 5.9461618100161210E-004 - 5.9078537121519599 6.2223809040621908E-004 - 5.9123535734241788 6.4380289545425270E-004 - 5.9168497400444320 6.5032078219415159E-004 - 5.9213422103838216 6.6052670080879602E-004 - 5.9258309828134532 6.6444036251249515E-004 - 5.9303160557044325 6.5871968660552211E-004 - 5.9347974274278625 6.6487940080684372E-004 - 5.9392750963548497 6.7540838891137051E-004 - 5.9437490608564980 6.8177013745460971E-004 - 5.9482193193039139 6.6663405483382188E-004 - 5.9526858700681995 6.4479350320925145E-004 - 5.9571487115204613 6.6481501488583705E-004 - 5.9616078420318015 7.1176505297538737E-004 - 5.9660632599733292 7.0449239574209570E-004 - 5.9705149637161457 6.7284185337077604E-004 - 5.9749629516313574 6.9058545144539101E-004 - 5.9794072220900674 7.4145860673946787E-004 - 5.9838477734633821 7.9824147122976050E-004 - 5.9882846041224065 8.6979706572893375E-004 - 5.9927177124382442 8.6293887926502976E-004 - 5.9971470967820011 7.9726478392830357E-004 - 6.0015727555247800 7.8844598388091546E-004 - 6.0059946870376884 7.9838972078486857E-004 - 6.0104128896918283 8.2594140802913951E-004 - 6.0148273618583055 8.8758105912025093E-004 - 6.0192381019082255 9.5148539645550033E-004 - 6.0236451082126941 9.8322591916748139E-004 - 6.0280483791428132 9.2421908234257958E-004 - 6.0324479130696886 8.5629254421581166E-004 - 6.0368437083644260 8.3603010960570762E-004 - 6.0412357633981291 8.5535722612520694E-004 - 6.0456240765419036 9.0903041883924011E-004 - 6.0500086461668552 9.5914186195488306E-004 - 6.0543894706440842 1.0270413434611541E-003 - 6.0587665483446997 1.0846236595245817E-003 - 6.0631398776398058 1.0871152751823657E-003 - 6.0675094569005061 1.0734021921818514E-003 - 6.0718752844979065 1.0657595072582006E-003 - 6.0762373588031107 1.0620038537991550E-003 - 6.0805956781872244 1.0454603871998614E-003 - 6.0849502410213514 1.0365433457681492E-003 - 6.0893010456765957 1.0171587267641517E-003 - 6.0936480905240664 1.0354909724525382E-003 - 6.0979913739348639 1.1201416190057625E-003 - 6.1023308942800938 1.1937099731468709E-003 - 6.1066666499308617 1.1574961319440402E-003 - 6.1109986392582716 1.0440802885212906E-003 - 6.1153268606334290 9.7473841711456929E-004 - 6.1196513124274379 9.7356986955055892E-004 - 6.1239719930114056 9.9495249493446051E-004 - 6.1282889007564307 1.0511127035286317E-003 - 6.1326020340336242 1.1105045769379933E-003 - 6.1369113912140900 1.1306026131559148E-003 - 6.1412169706689319 1.0885111932564815E-003 - 6.1455187707692520 9.9652953130098575E-004 - 6.1498167898861595 9.8454050632772573E-004 - 6.1541110263907548 1.0874408846941598E-003 - 6.1584014786541452 1.1501511595702085E-003 - 6.1626881450474364 1.0965852796772277E-003 - 6.1669710239417324 1.0164295075754783E-003 - 6.1712501137081368 9.6710170709618948E-004 - 6.1755254127177537 9.5832373285103427E-004 - 6.1797969193416922 9.9941057755362087E-004 - 6.1840646319510526 1.0978194216292024E-003 - 6.1883285489169406 1.1634359165747447E-003 - 6.1925886686104619 1.1838855873507294E-003 - 6.1968449894027220 1.2393250152505657E-003 - 6.2010975096648231 1.2503873923802552E-003 - 6.2053462277678726 1.1803247862033283E-003 - 6.2095911420829726 1.1210715675604448E-003 - 6.2138322509812305 1.1194969709625870E-003 - 6.2180695528337502 1.1063639538913370E-003 - 6.2223030460116373 1.0723168439594228E-003 - 6.2265327288859922 1.0585642593655634E-003 - 6.2307585998279258 1.0715065068517629E-003 - 6.2349806572085402 1.1433080922515146E-003 - 6.2391988993989376 1.2119771968566299E-003 - 6.2434133247702270 1.2531619231680056E-003 - 6.2476239316935107 1.2160889977201766E-003 - 6.2518307185398942 1.1410242088636916E-003 - 6.2560336836804815 1.1332581300929298E-003 - 6.2602328254863782 1.1922638418793055E-003 - 6.2644281423286898 1.2787754090410948E-003 - 6.2686196325785204 1.3073012293660701E-003 - 6.2728072946069737 1.3160329046378665E-003 - 6.2769911267851537 1.3755706879478647E-003 - 6.2811711274841677 1.3858206083749510E-003 - 6.2853472950751215 1.3013682466150253E-003 - 6.2895196279291170 1.2708511751680616E-003 - 6.2936881244172582 1.3187779445243016E-003 - 6.2978527829106525 1.3429817129225489E-003 - 6.3020136017804038 1.4039098919588378E-003 - 6.3061705793976177 1.4933045302245303E-003 - 6.3103237141333963 1.5368984756431573E-003 - 6.3144730043588471 1.4830548586792849E-003 - 6.3186184484450738 1.4220020028233300E-003 - 6.3227600447631804 1.4679715998978111E-003 - 6.3268977916842744 1.5334942294936472E-003 - 6.3310316875794559 1.5813394308311233E-003 - 6.3351617308198342 1.5725622715899762E-003 - 6.3392879197765115 1.5010116485123228E-003 - 6.3434102528205933 1.4453674299767054E-003 - 6.3475287283231836 1.3727993521711482E-003 - 6.3516433446553897 1.2804990810079903E-003 - 6.3557541001883138 1.2838074958925587E-003 - 6.3598609932930614 1.3759379721207884E-003 - 6.3639640223407383 1.4920453881674771E-003 - 6.3680631857024483 1.6042442400214317E-003 - 6.3721584817492953 1.6636300580748790E-003 - 6.3762499088523832 1.6862908830839187E-003 - 6.3803374653828211 1.6531009753454949E-003 - 6.3844211497117112 1.5928712320938665E-003 - 6.3885009602101572 1.6144570797062686E-003 - 6.3925768952492668 1.7632326715302301E-003 - 6.3966489532001400 1.8844592516654558E-003 - 6.4007171324338863 1.8495491192275090E-003 - 6.4047814313216076 1.7757311560506782E-003 - 6.4088418482344096 1.7359101818748008E-003 - 6.4128983815433998 1.6637480864396422E-003 - 6.4169510296196783 1.5786572728603099E-003 - 6.4209997908343510 1.6069572168430355E-003 - 6.4250446635585234 1.7476878224367239E-003 - 6.4290856461633012 1.8656292125994354E-003 - 6.4331227370197883 1.8718543012823758E-003 - 6.4371559344990903 1.8456716492001055E-003 - 6.4411852369723110 1.8742613846834857E-003 - 6.4452106428105544 1.9559641240937150E-003 - 6.4492321503849261 1.9633108942591895E-003 - 6.4532497580665336 1.9149051341088828E-003 - 6.4572634642264752 1.9189388181080527E-003 - 6.4612732672358621 1.9537916094011032E-003 - 6.4652791654657964 1.9875282134889311E-003 - 6.4692811572873836 1.9752560006745931E-003 - 6.4732792410717259 1.9347476595512661E-003 - 6.4772734151899307 1.8520337707441836E-003 - 6.4812636780131019 1.7487460685780853E-003 - 6.4852500279123433 1.6832547600766142E-003 - 6.4892324632587624 1.7196124799658328E-003 - 6.4932109824234630 1.8272943824710719E-003 - 6.4971855837775472 1.8983998908641123E-003 - 6.5011562656921242 1.9310323457655636E-003 - 6.5051230265382944 1.9170889777953557E-003 - 6.5090858646871652 1.9601308881174321E-003 - 6.5130447785098404 2.0951144196301903E-003 - 6.5169997663774257 2.2467942626737676E-003 - 6.5209508266610250 2.3488577045378185E-003 - 6.5248979577317421 2.3526306513613864E-003 - 6.5288411579606844 2.3854027616682493E-003 - 6.5327804257189541 2.5055447422994738E-003 - 6.5367157593776586 2.5306744178957633E-003 - 6.5406471573078999 2.4214566410778364E-003 - 6.5445746178807838 2.3399858718793627E-003 - 6.5484981394674158 2.3085476837164868E-003 - 6.5524177204388998 2.3333009055349027E-003 - 6.5563333591663415 2.3844825065561393E-003 - 6.5602450540208448 2.3037807410460119E-003 - 6.5641528033735153 2.1586181362001295E-003 - 6.5680566055954568 2.0563489859200972E-003 - 6.5719564590577750 1.9978893983181719E-003 - 6.5758523621315721 2.0716363092766776E-003 - 6.5797443131879572 2.1803697447383254E-003 - 6.5836323105980306 2.2197765232022807E-003 - 6.5875163527329015 2.2544203044090418E-003 - 6.5913964379636703 2.2725860645853376E-003 - 6.5952725646614461 2.2519926245564851E-003 - 6.5991447311973292 2.2091524715041311E-003 - 6.6030129359424272 2.1467594694486278E-003 - 6.6068771772678438 2.0546037733114521E-003 - 6.6107374535446866 1.9214131742065906E-003 - 6.6145937631440557 1.8756506632993382E-003 - 6.6184461044370586 1.9436076196237186E-003 - 6.6222944757947992 2.0804771726717348E-003 - 6.6261388755883850 2.2212656539384902E-003 - 6.6299793021889162 2.3659529159034687E-003 - 6.6338157539675002 2.4739194355465721E-003 - 6.6376482292952428 2.5398716854158859E-003 - 6.6414767265432459 2.6215504358032657E-003 - 6.6453012440826154 2.6506632895822156E-003 - 6.6491217802844567 2.5520830952784250E-003 - 6.6529383335198737 2.4752983316558915E-003 - 6.6567509021599740 2.4980784959562543E-003 - 6.6605594845758578 2.4506145462375333E-003 - 6.6643640791386343 2.2971365286274456E-003 - 6.6681646842194038 2.2305486389372180E-003 - 6.6719612981892737 2.2218208787762607E-003 - 6.6757539194193498 2.2850627764544993E-003 - 6.6795425462807341 2.4015405872300872E-003 - 6.6833271771445339 2.3874135390660961E-003 - 6.6871078103818515 2.3125521430832374E-003 - 6.6908844443637943 2.2404013308434663E-003 - 6.6946570774614642 2.2185347554097663E-003 - 6.6984257080459706 2.2711851226533395E-003 - 6.7021903344884119 2.3287719230838215E-003 - 6.7059509551598975 2.3897112081545011E-003 - 6.7097075684315310 2.4903906397030456E-003 - 6.7134601726744165 2.5854532303796625E-003 - 6.7172087662596596 2.5923625036397865E-003 - 6.7209533475583640 2.5740518310418329E-003 - 6.7246939149416356 2.5904610892912910E-003 - 6.7284304667805799 2.6482378320872480E-003 - 6.7321630014462990 2.6339351540180058E-003 - 6.7358915173099003 2.5272345692200055E-003 - 6.7396160127424878 2.4252419469088181E-003 - 6.7433364861151652 2.3921675705232213E-003 - 6.7470529357990365 2.4531927198483592E-003 - 6.7507653601652091 2.5281158786831224E-003 - 6.7544737575847869 2.5387969444982993E-003 - 6.7581781264288754 2.5041388239565535E-003 - 6.7618784650685768 2.4968813847811881E-003 - 6.7655747718749986 2.5127124767726191E-003 - 6.7692670452192427 2.5013982115192628E-003 - 6.7729552834724167 2.4804174015651652E-003 - 6.7766394850056244 2.4500459428031061E-003 - 6.7803196481899697 2.4222438491739379E-003 - 6.7839957713965582 2.4429619705623675E-003 - 6.7876678529964956 2.5283325937959021E-003 - 6.7913358913608839 2.6486196992130551E-003 - 6.7949998848608288 2.6325720158570389E-003 - 6.7986598318674378 2.4576537406755328E-003 - 6.8023157307518129 2.3221915112952149E-003 - 6.8059675798850598 2.2092749029225377E-003 - 6.8096153776382842 2.0803717111051250E-003 - 6.8132591223825880 2.0180253281078604E-003 - 6.8168988124890788 2.0315292982739613E-003 - 6.8205344463288586 2.1217840827092026E-003 - 6.8241660222730367 2.2201710776326385E-003 - 6.8277935386927116 2.3083805958516788E-003 - 6.8314169939589924 2.3905744152584365E-003 - 6.8350363864429866 2.4290837641643692E-003 - 6.8386517145157910 2.4445257985162339E-003 - 6.8422629765485166 2.4722086669937051E-003 - 6.8458701709122654 2.5138650609483012E-003 - 6.8494732959781430 2.5840259938702875E-003 - 6.8530723501172552 2.6323435483689619E-003 - 6.8566673317007059 2.5924561815181312E-003 - 6.8602582390995988 2.5090594638024245E-003 - 6.8638450706850413 2.4579889094142483E-003 - 6.8674278248281340 2.4647629289936959E-003 - 6.8710064998999858 2.5158404123559784E-003 - 6.8745810942716989 2.5523834433269542E-003 - 6.8781516063143791 2.5427128584994099E-003 - 6.8817180343991318 2.4958292205754817E-003 - 6.8852803768970592 2.4423774117419703E-003 - 6.8888386321792687 2.4052742377610368E-003 - 6.8923927986168643 2.3805156954193503E-003 - 6.8959428745809515 2.3777637320874104E-003 - 6.8994888584426342 2.3337593080264493E-003 - 6.9030307485730162 2.2886232056078338E-003 - 6.9065685433432034 2.2499214637009472E-003 - 6.9101022411243012 2.1616050467029246E-003 - 6.9136318402874117 2.1800843324700481E-003 - 6.9171573392036443 2.2778132048819327E-003 - 6.9206787362440991 2.3700813949928731E-003 - 6.9241960297798819 2.4223297117027588E-003 - 6.9277092181821018 2.4448890106616313E-003 - 6.9312182998218574 2.4567526170033555E-003 - 6.9347232730702562 2.3988840690663859E-003 - 6.9382241362984054 2.3635258601965720E-003 - 6.9417208878774037 2.3612404263925642E-003 - 6.9452135261783621 2.3557041301182271E-003 - 6.9487020495723826 2.3327623721131111E-003 - 6.9521864564305691 2.2873499491904551E-003 - 6.9556667451240273 2.3058010260061258E-003 - 6.9591429140238628 2.3408282810352182E-003 - 6.9626149615011794 2.3396428808782023E-003 - 6.9660828859270829 2.3801608878927889E-003 - 6.9695466856726753 2.4229847910703433E-003 - 6.9730063591090641 2.4010982023920432E-003 - 6.9764619046073548 2.4173362451612450E-003 - 6.9799133205386497 2.4592017175017653E-003 - 6.9833606052740542 2.4508475063178747E-003 - 6.9868037571846724 2.3963247577630221E-003 - 6.9902427746416116 2.3903361012081602E-003 - 6.9936776560159757 2.4573533413479003E-003 - 6.9971083996788668 2.4424801188271815E-003 - 7.0005350040013923 2.4283426616650929E-003 - 7.0039574673546561 2.4992373851694472E-003 - 7.0073757881097656 2.5981636988303886E-003 - 7.0107899646378193 2.7039623355762728E-003 - 7.0141999953099283 2.7756061085486227E-003 - 7.0176058784971929 2.7152099821197016E-003 - 7.0210076125707221 2.5758788869136191E-003 - 7.0244051959016183 2.5402239637848799E-003 - 7.0277986268609851 2.6113247803911410E-003 - 7.0311879038199283 2.6359905537505272E-003 - 7.0345730251495517 2.5457120848259842E-003 - 7.0379539892209646 2.4525565231040352E-003 - 7.0413307944052672 2.4156820122837020E-003 - 7.0447034390735652 2.4046660342553422E-003 - 7.0480719215969643 2.3834313175190003E-003 - 7.0514362403465682 2.3185187340745788E-003 - 7.0547963936934810 2.2634267931096754E-003 - 7.0581523800088100 2.2837279720639017E-003 - 7.0615041976636572 2.3766843144996451E-003 - 7.0648518450291302 2.4506213003835718E-003 - 7.0681953204763310 2.4532549056607376E-003 - 7.0715346223763653 2.4232483394429852E-003 - 7.0748697491003405 2.4422115300116692E-003 - 7.0782006990193551 2.5391547959213450E-003 - 7.0815274705045219 2.5861467721471553E-003 - 7.0848500619269394 2.6117137061756244E-003 - 7.0881684716577151 2.6500433724468177E-003 - 7.0914826980679528 2.6888625328511102E-003 - 7.0947927395287600 2.6801508555269250E-003 - 7.0980985944112369 2.6216046580115507E-003 - 7.1014002610864893 2.5503082322731073E-003 - 7.1046977379256262 2.4686167906128420E-003 - 7.1079910232997463 2.4062812522475255E-003 - 7.1112801155799588 2.4076672169565743E-003 - 7.1145650131373692 2.4172635569523915E-003 - 7.1178457143430762 2.3848513659165856E-003 - 7.1211222175681907 2.3384499101977464E-003 - 7.1243945211838149 2.3460359702193174E-003 - 7.1276626235610543 2.4259080574945864E-003 - 7.1309265230710128 2.4980584459412705E-003 - 7.1341862180847961 2.5003747502914159E-003 - 7.1374417069735081 2.3908200714046392E-003 - 7.1406929881082561 2.3092988940311924E-003 - 7.1439400598601388 2.3034409351089550E-003 - 7.1471829206002688 2.3244369262716688E-003 - 7.1504215686997430 2.3800351542822961E-003 - 7.1536560025296723 2.4244050255733084E-003 - 7.1568862204611605 2.4930082328330043E-003 - 7.1601122208653116 2.6275912286252722E-003 - 7.1633340021132277 2.6615517120031585E-003 - 7.1665515625760143 2.6006027697655499E-003 - 7.1697649006247808 2.5768534844520688E-003 - 7.1729740146306291 2.5738233051158157E-003 - 7.1761789029646614 2.5737419805050839E-003 - 7.1793795639979869 2.5031727075975349E-003 - 7.1825759961017077 2.3777773265840213E-003 - 7.1857681976469276 2.3888765310850078E-003 - 7.1889561670047541 2.4781550296156742E-003 - 7.1921399025462911 2.5186105873701817E-003 - 7.1953194026426424 2.5528929816948419E-003 - 7.1984946656649136 2.4939281700301426E-003 - 7.2016656899842104 2.4559521579930097E-003 - 7.2048324739716350 2.4762769030297321E-003 - 7.2079950159982928 2.4658287841307970E-003 - 7.2111533144352897 2.4800796861209583E-003 - 7.2143073676537313 2.4851527492089640E-003 - 7.2174571740247195 2.4409812498091040E-003 - 7.2206027319193637 2.4045532166808588E-003 - 7.2237440397087624 2.3971933432318194E-003 - 7.2268810957640248 2.3734631142522306E-003 - 7.2300138984562565 2.2978398068151189E-003 - 7.2331424461565579 2.2225719896918758E-003 - 7.2362667372360381 2.2304651841427853E-003 - 7.2393867700657992 2.2808192746822729E-003 - 7.2425025430169434 2.2589686274945330E-003 - 7.2456140544605834 2.2165729003237890E-003 - 7.2487213027678159 2.2068820932600593E-003 - 7.2518242863097520 2.1975608446235051E-003 - 7.2549230034574919 2.1745464740916113E-003 - 7.2580174525821430 2.1449757520807500E-003 - 7.2611076320548094 2.1678415023038801E-003 - 7.2641935402465947 2.2091204811422976E-003 - 7.2672751755286029 2.2887731867188921E-003 - 7.2703525362719432 2.4103397838141204E-003 - 7.2734256208477142 2.5431933221526089E-003 - 7.2764944276270285 2.6176499065448181E-003 - 7.2795589549809847 2.5811189437085929E-003 - 7.2826192012806885 2.5026583084870615E-003 - 7.2856751648972438 2.4595164207395197E-003 - 7.2887268442017579 2.4704482828039444E-003 - 7.2917742375653347 2.5277920653684160E-003 - 7.2948173433590817 2.6082220147947994E-003 - 7.2978561599540974 2.6711474006723768E-003 - 7.3008906857214928 2.6410111846672433E-003 - 7.3039209190323682 2.5574375610097392E-003 - 7.3069468582578310 2.5106302399102980E-003 - 7.3099685017689850 2.5014151295422241E-003 - 7.3129858479369325 2.5150853050170457E-003 - 7.3159988951327843 2.5207850513418581E-003 - 7.3190076417276391 2.4974054998673887E-003 - 7.3220120860926059 2.4575329825681528E-003 - 7.3250122265987869 2.4450577427190278E-003 - 7.3280080616172860 2.4739052057641698E-003 - 7.3309995895192124 2.5369964612127140E-003 - 7.3339868086756681 2.5582819080241367E-003 - 7.3369697174577588 2.4992213592686381E-003 - 7.3399483142365849 2.4518786965782090E-003 - 7.3429225973832573 2.4289912264194714E-003 - 7.3458925652688762 2.4172399549893032E-003 - 7.3488582162645510 2.4319490086712656E-003 - 7.3518195487413820 2.4577319106552364E-003 - 7.3547765610704765 2.4348986897633602E-003 - 7.3577292516229367 2.4062695683094108E-003 - 7.3606776187698699 2.4089980860320494E-003 - 7.3636216608823801 2.4722012784531510E-003 - 7.3665613763315729 2.5759106699734962E-003 - 7.3694967634885522 2.6065033717434048E-003 - 7.3724278207244236 2.5268671418813677E-003 - 7.3753545464102892 2.4307701797136832E-003 - 7.3782769389172564 2.4005634616291582E-003 - 7.3811949966164292 2.4124885792215236E-003 - 7.3841087178789131 2.4269057283654873E-003 - 7.3870181010758103 2.4043884161720564E-003 - 7.3899231445782299 2.3642888887315141E-003 - 7.3928238467572722 2.3709160948285021E-003 - 7.3957202059840448 2.3641944458546930E-003 - 7.3986122206296514 2.3748981478567454E-003 - 7.4014998890651977 2.4190034544306978E-003 - 7.4043832096617859 2.4329147935225016E-003 - 7.4072621807905250 2.4618799224481484E-003 - 7.4101368008225172 2.4916151753372438E-003 - 7.4130070681288665 2.4957577357460669E-003 - 7.4158729810806765 2.4892593966022274E-003 - 7.4187345380490566 2.4471522948179975E-003 - 7.4215917374051088 2.4079141484867838E-003 - 7.4244445775199370 2.3975257571027531E-003 - 7.4272930567646469 2.3930338220777472E-003 - 7.4301371735103459 2.4395368980191221E-003 - 7.4329769261281342 2.5045865764700363E-003 - 7.4358123129891212 2.5143439371481673E-003 - 7.4386433324644052 2.4802642467765495E-003 - 7.4414699829250956 2.4508395462913769E-003 - 7.4442922627422980 2.4798142117482230E-003 - 7.4471101702871163 2.5388238646719694E-003 - 7.4499237039306543 2.4708317779615582E-003 - 7.4527328620440159 2.3551500717369140E-003 - 7.4555376429983085 2.3485136050335250E-003 - 7.4583380451646342 2.3940036449896260E-003 - 7.4611340669140986 2.4183518062845808E-003 - 7.4639257066178075 2.3843814412476323E-003 - 7.4667129626468647 2.3753969694979937E-003 - 7.4694958333723740 2.3773561233551435E-003 - 7.4722743171654447 2.3519142046654761E-003 - 7.4750484123971752 2.3664786807107547E-003 - 7.4778181174386749 2.3154476093354684E-003 - 7.4805834306610457 2.2562157343520234E-003 - 7.4833443504353969 2.2778028747163343E-003 - 7.4861008751328271 2.3051534142742337E-003 - 7.4888530031244436 2.3057494531831934E-003 - 7.4916007327813539 2.2983339953246153E-003 - 7.4943440624746582 2.3446144340957915E-003 - 7.4970829905754641 2.4376299689624487E-003 - 7.4998175154548754 2.4782708686052167E-003 - 7.5025476354839995 2.4771746438708815E-003 - 7.5052733490339367 2.4278424577904192E-003 - 7.5079946544757945 2.3666460224564443E-003 - 7.5107115501806767 2.3860545105062018E-003 - 7.5134240345196908 2.4159331974053029E-003 - 7.5161321058639352 2.4344115236084561E-003 - 7.5188357625845228 2.4720773704415074E-003 - 7.5215350030525521 2.4710669527574620E-003 - 7.5242298256391322 2.4599507013020297E-003 - 7.5269202287153618 2.4327494440565039E-003 - 7.5296062106523536 2.4045438531712961E-003 - 7.5322877698212061 2.4675591719812333E-003 - 7.5349649045930267 2.5204650521820490E-003 - 7.5376376133389194 2.5205613479006234E-003 - 7.5403058944299914 2.5177752003505719E-003 - 7.5429697462373433 2.5077502645567992E-003 - 7.5456291671320823 2.5168053550705572E-003 - 7.5482841554853124 2.4872499718747126E-003 - 7.5509347096681392 2.4155394040369753E-003 - 7.5535808280516683 2.3394982125357509E-003 - 7.5562225090070037 2.3174667346060303E-003 - 7.5588597509052473 2.2925519868960027E-003 - 7.5614925521175067 2.2607967756939208E-003 - 7.5641209110148875 2.2584064217484380E-003 - 7.5667448259684917 2.3085319759311592E-003 - 7.5693642953494269 2.3728569835597796E-003 - 7.5719793175287968 2.4076341470741923E-003 - 7.5745898908777036 2.4574531964512507E-003 - 7.5771960137672565 2.4538156956831927E-003 - 7.5797976845685593 2.4167249691508024E-003 - 7.5823949016527123 2.4071263971335442E-003 - 7.5849876633908266 2.3916899279451068E-003 - 7.5875759681540025 2.3903105128820941E-003 - 7.5901598143133455 2.3825045932752281E-003 - 7.5927392002399632 2.3390940857536302E-003 - 7.5953141243049558 2.2827481699919153E-003 - 7.5978845848794325 2.2229874755211460E-003 - 7.6004505803344937 2.2298107946781948E-003 - 7.6030121090412486 2.2849183217096541E-003 - 7.6055691693707992 2.3430663210815442E-003 - 7.6081217596942494 2.3638828818671144E-003 - 7.6106698783827085 2.3734693587866167E-003 - 7.6132135238072784 2.3736861086662876E-003 - 7.6157526943390614 2.3133078413043709E-003 - 7.6182873883491649 2.2595954812007777E-003 - 7.6208176042086944 2.2747760030816817E-003 - 7.6233433402887538 2.2902649650175678E-003 - 7.6258645949604471 2.2655101361740279E-003 - 7.6283813665948799 2.2440340367831982E-003 - 7.6308936535631560 2.2388339029460946E-003 - 7.6334014542363811 2.2589282827280622E-003 - 7.6359047669856608 2.2502116291010107E-003 - 7.6384035901820990 2.1970531882217533E-003 - 7.6408979221967996 2.1898802713786023E-003 - 7.6433877614008665 2.1839873572982028E-003 - 7.6458731061654106 2.1737136835304764E-003 - 7.6483539548615269 2.2021601612997634E-003 - 7.6508303058603282 2.2766212157696955E-003 - 7.6533021575329165 2.3759973066256389E-003 - 7.6557695082503940 2.4462058225050505E-003 - 7.6582323563838699 2.4708777750050153E-003 - 7.6606907003044480 2.5063621182828425E-003 - 7.6631445383832286 2.5546726202078265E-003 - 7.6655938689913228 2.5895020366272122E-003 - 7.6680386904998343 2.5856546639349601E-003 - 7.6704790012798636 2.5234284783255002E-003 - 7.6729147997025180 2.4199936130503870E-003 - 7.6753460841389014 2.3089826107978548E-003 - 7.6777728529601212 2.2622241188933485E-003 - 7.6801951045372796 2.2983343088697032E-003 - 7.6826128372414821 2.3607179613625096E-003 - 7.6850260494438345 2.3867623811081396E-003 - 7.6874347395154388 2.3700359712450748E-003 - 7.6898389058274041 2.3399067576268169E-003 - 7.6922385467508292 2.3354680186747907E-003 - 7.6946336606568231 2.3355564808216181E-003 - 7.6970242459164915 2.3674835361456661E-003 - 7.6994103009009365 2.4282064059453034E-003 - 7.7017918239812637 2.4313178180400160E-003 - 7.7041688135285789 2.3595594881306867E-003 - 7.7065412679139840 2.3102594148486830E-003 - 7.7089091855085865 2.3659769488959979E-003 - 7.7112725646834903 2.4119386988526075E-003 - 7.7136314038098011 2.3939487102059521E-003 - 7.7159857012586208 2.4098818016485180E-003 - 7.7183354554010570 2.4473196007955833E-003 - 7.7206806646082153 2.4464225673954064E-003 - 7.7230213272511961 2.4038106966189428E-003 - 7.7253574417011102 2.3249135065574341E-003 - 7.7276890063290544 2.2827397340234893E-003 - 7.7300160195061416 2.2992795103150021E-003 - 7.7323384796034702 2.2988705451167449E-003 - 7.7346563849921495 2.2956592692801809E-003 - 7.7369697340432833 2.3430789561628483E-003 - 7.7392785251279754 2.3638223125291347E-003 - 7.7415827566173299 2.3085843306276817E-003 - 7.7438824268824522 2.2935446555834337E-003 - 7.7461775342944463 2.3203146236723347E-003 - 7.7484680772244197 2.3660700930401230E-003 - 7.7507540540434761 2.4509651576239493E-003 - 7.7530354631227194 2.5507535524563474E-003 - 7.7553123028332536 2.5835726972188462E-003 - 7.7575845715461860 2.5358173462559346E-003 - 7.7598522676326169 2.5066568138172140E-003 - 7.7621153894636556 2.4759786736267705E-003 - 7.7643739354104042 2.4115675681019321E-003 - 7.7666279038439701 2.3742746263394066E-003 - 7.7688772931354553 2.3813284598148080E-003 - 7.7711221016559655 2.4435827647593254E-003 - 7.7733623277766064 2.4619974319534288E-003 - 7.7755979698684818 2.4320020628906831E-003 - 7.7778290263026975 2.4293383116322648E-003 - 7.7800554954503571 2.4034851601579519E-003 - 7.7822773756825665 2.3899700409298081E-003 - 7.7844946653704277 2.3920274257190786E-003 - 7.7867073628850481 2.3976619777614852E-003 - 7.7889154665975333 2.3944259100584400E-003 - 7.7911189748789873 2.3787557904224751E-003 - 7.7933178861005103 2.3589438283019215E-003 - 7.7955121986332134 2.3597305184930805E-003 - 7.7977019108481986 2.3480281837558368E-003 - 7.7998870211165716 2.3669031538110234E-003 - 7.8020675278094362 2.4122370972252606E-003 - 7.8042434292978964 2.4344418416174960E-003 - 7.8064147239530595 2.4277472507470100E-003 - 7.8085814101460276 2.3670688726465704E-003 - 7.8107434862479082 2.2958270818335298E-003 - 7.8129009506298033 2.2414675064214191E-003 - 7.8150538016628186 2.2213804661397637E-003 - 7.8172020377180615 2.2398998243604229E-003 - 7.8193456571666324 2.3094963834222751E-003 - 7.8214846583796387 2.3712556212081974E-003 - 7.8236190397281842 2.4195563133634478E-003 - 7.8257487995833728 2.4773280371916157E-003 - 7.8278739363163137 2.5256383768524670E-003 - 7.8299944482981072 2.5729106401192092E-003 - 7.8321103338998590 2.5645669859503898E-003 - 7.8342215914926747 2.4929419592401069E-003 - 7.8363282194476582 2.4564005887318589E-003 - 7.8384302161359152 2.4810449421803992E-003 - 7.8405275799285477 2.5606930552855146E-003 - 7.8426203091966649 2.6434117500193409E-003 - 7.8447084023113689 2.6593709132999538E-003 - 7.8467918576437654 2.6316372265150455E-003 - 7.8488706735649565 2.5823868422705930E-003 - 7.8509448484460513 2.5754178411119696E-003 - 7.8530143806581520 2.5949598768770761E-003 - 7.8550792685723643 2.5690221361414031E-003 - 7.8571395105597919 2.5168125959017461E-003 - 7.8591951049915387 2.4703306772861644E-003 - 7.8612460502387140 2.4494776487128823E-003 - 7.8632923446724163 2.4490670933255518E-003 - 7.8653339866637548 2.4387218228334659E-003 - 7.8673709745838334 2.4136984647219108E-003 - 7.8694033068037577 2.4043435477855966E-003 - 7.8714309816946297 2.3779143726549131E-003 - 7.8734539976275553 2.3010147576010922E-003 - 7.8754723529736381 2.1970684561062144E-003 - 7.8774860461039857 2.1206171919789232E-003 - 7.8794950753897020 2.1775310239148500E-003 - 7.8814994392018924 2.3027237145767437E-003 - 7.8834991359116593 2.3636828164585941E-003 - 7.8854941638901082 2.3929791896087314E-003 - 7.8874845215083464 2.4377538707192198E-003 - 7.8894702071374745 2.4094349351836595E-003 - 7.8914512191486033 2.3261570727119698E-003 - 7.8934275559128295 2.3036956242931013E-003 - 7.8953992158012625 2.3305196656485875E-003 - 7.8973661971850078 2.3676402663469422E-003 - 7.8993284984351710 2.4173084721130240E-003 - 7.9012861179228508 2.4526636854794964E-003 - 7.9032390540191599 2.4587321971599437E-003 - 7.9051873050951968 2.4753348373884650E-003 - 7.9071308695220708 2.5239276617812661E-003 - 7.9090697456708803 2.5846516927237094E-003 - 7.9110039319127381 2.5941401863492776E-003 - 7.9129334266187445 2.5819430310216173E-003 - 7.9148582281600035 2.5727467810466374E-003 - 7.9167783349076224 2.5424053449364450E-003 - 7.9186937452327051 2.5076826156612631E-003 - 7.9206044575063572 2.5023761485068767E-003 - 7.9225104700996809 2.5338573815646402E-003 - 7.9244117813837818 2.5548500525891492E-003 - 7.9263083897297673 2.5259082538587100E-003 - 7.9282002935087394 2.4849545758374421E-003 - 7.9300874910918040 2.4684357453278786E-003 - 7.9319699808500630 2.5216287558353012E-003 - 7.9338477611546274 2.6129291105726300E-003 - 7.9357208303765958 2.6389344804585340E-003 - 7.9375891868870774 2.5802247580392341E-003 - 7.9394528290571742 2.5339352148096234E-003 - 7.9413117552579919 2.4949160073042078E-003 - 7.9431659638606327 2.4912301018459918E-003 - 7.9450154532362056 2.5373559934180048E-003 - 7.9468602217558146 2.6063330084609786E-003 - 7.9487002677905618 2.7063676924951922E-003 - 7.9505355897115546 2.7615427258858155E-003 - 7.9523661858898969 2.7365349810837035E-003 - 7.9541920546966907 2.6623630907601174E-003 - 7.9560131945030488 2.6039159039390400E-003 - 7.9578296036800662 2.5985886233457008E-003 - 7.9596412805988539 2.6017111285645289E-003 - 7.9614482236305140 2.5843790827919837E-003 - 7.9632504311461521 2.5533983070953545E-003 - 7.9650479015168720 2.5266802997402642E-003 - 7.9668406331137795 2.4772871909805360E-003 - 7.9686286243079820 2.3984028433633470E-003 - 7.9704118734705780 2.3534365879219043E-003 - 7.9721903789726785 2.3357115863728763E-003 - 7.9739641391853837 2.3510671041585959E-003 - 7.9757331524798012 2.3881904451513516E-003 - 7.9774974172270348 2.3567406914189542E-003 - 7.9792569317981901 2.2921991584501818E-003 - 7.9810116945643692 2.2655402578857344E-003 - 7.9827617038966778 2.3082733714475338E-003 - 7.9845069581662251 2.3958982215460532E-003 - 7.9862474557441097 2.4750208883665826E-003 - 7.9879831950014388 2.5181401233276253E-003 - 7.9897141743093201 2.5202435342268309E-003 - 7.9914403920388519 2.5201114197051593E-003 - 7.9931618465611436 2.5772866084019827E-003 - 7.9948785362473007 2.6294987817804404E-003 - 7.9965904594684254 2.5856929318361843E-003 - 7.9982976145956250 2.4738025168452738E-003 - 8.0000000000000000 2.3710758604843034E-003 - 8.0016999999999996 2.3107397502807035E-003 - 8.0033999999999992 2.2547094036043480E-003 - 8.0051000000000005 2.2258558448639575E-003 - 8.0068000000000001 2.2726990984183793E-003 - 8.0084999999999997 2.3399991819194736E-003 - 8.0101999999999993 2.3815933947975796E-003 - 8.0119000000000007 2.4196350600661463E-003 - 8.0136000000000003 2.4422771509742028E-003 - 8.0152999999999999 2.4100560496635652E-003 - 8.0169999999999995 2.3571860920014970E-003 - 8.0187000000000008 2.3185017326654333E-003 - 8.0204000000000004 2.2942692654252328E-003 - 8.0221000000000000 2.2806028067548860E-003 - 8.0237999999999996 2.2569653617780859E-003 - 8.0254999999999992 2.2417672641822130E-003 - 8.0272000000000006 2.2496728881416491E-003 - 8.0289000000000001 2.2738712905907071E-003 - 8.0305999999999997 2.3165436795660414E-003 - 8.0322999999999993 2.3667789527687250E-003 - 8.0340000000000007 2.4115968571586086E-003 - 8.0357000000000003 2.4738930607965445E-003 - 8.0373999999999999 2.5503808157806692E-003 - 8.0390999999999995 2.5944222015357120E-003 - 8.0408000000000008 2.5994332367894300E-003 - 8.0425000000000004 2.5514769520592049E-003 - 8.0442000000000000 2.4579309519316738E-003 - 8.0458999999999996 2.4003564805860945E-003 - 8.0475999999999992 2.3856614211283417E-003 - 8.0493000000000006 2.3889413579205594E-003 - 8.0510000000000002 2.3905486611694796E-003 - 8.0526999999999997 2.3880742291915295E-003 - 8.0543999999999993 2.4178247125179742E-003 - 8.0561000000000007 2.4300084848178759E-003 - 8.0578000000000003 2.4078596226380471E-003 - 8.0594999999999999 2.3727577840256899E-003 - 8.0611999999999995 2.3428305127398403E-003 - 8.0629000000000008 2.3395785451227414E-003 - 8.0646000000000004 2.3668541330148386E-003 - 8.0663000000000000 2.4365975108942201E-003 - 8.0679999999999996 2.4953855327441567E-003 - 8.0696999999999992 2.5203249085339187E-003 - 8.0714000000000006 2.5740473881046924E-003 - 8.0731000000000002 2.6415980168204745E-003 - 8.0747999999999998 2.6726849809865084E-003 - 8.0764999999999993 2.6526186457752716E-003 - 8.0782000000000007 2.6044245217935664E-003 - 8.0799000000000003 2.5304894011468791E-003 - 8.0815999999999999 2.4658222724909763E-003 - 8.0832999999999995 2.4540822887411120E-003 - 8.0850000000000009 2.5111754629855692E-003 - 8.0867000000000004 2.5971805194115009E-003 - 8.0884000000000000 2.6518266913567487E-003 - 8.0900999999999996 2.6596322807494696E-003 - 8.0917999999999992 2.5917681090718669E-003 - 8.0935000000000006 2.4928953789091143E-003 - 8.0952000000000002 2.4075474996669392E-003 - 8.0968999999999998 2.3385052912153989E-003 - 8.0985999999999994 2.2910819737640763E-003 - 8.1003000000000007 2.2928011619220024E-003 - 8.1020000000000003 2.3397224130774800E-003 - 8.1036999999999999 2.3875391563782339E-003 - 8.1053999999999995 2.4140263806954067E-003 - 8.1071000000000009 2.4057374677182945E-003 - 8.1088000000000005 2.4030419717782064E-003 - 8.1105000000000000 2.4186274591099879E-003 - 8.1121999999999996 2.4166050181281444E-003 - 8.1138999999999992 2.3914781769240902E-003 - 8.1156000000000006 2.3462675924570855E-003 - 8.1173000000000002 2.3072826325628896E-003 - 8.1189999999999998 2.2943057759880112E-003 - 8.1206999999999994 2.2894676845812609E-003 - 8.1224000000000007 2.2859048943377216E-003 - 8.1241000000000003 2.2914705140656632E-003 - 8.1257999999999999 2.3048100568363451E-003 - 8.1274999999999995 2.3115952509852565E-003 - 8.1292000000000009 2.2949340387608749E-003 - 8.1309000000000005 2.2686830875948598E-003 - 8.1326000000000001 2.2706985642800396E-003 - 8.1342999999999996 2.2969831572850806E-003 - 8.1359999999999992 2.3178002375858621E-003 - 8.1377000000000006 2.3313310251827663E-003 - 8.1394000000000002 2.3456644131933258E-003 - 8.1410999999999998 2.3382196702899276E-003 - 8.1427999999999994 2.3010509911642772E-003 - 8.1445000000000007 2.2673033407605309E-003 - 8.1462000000000003 2.2372020693528089E-003 - 8.1478999999999999 2.1926721278087476E-003 - 8.1495999999999995 2.1895101822719167E-003 - 8.1512999999999991 2.2393860140958260E-003 - 8.1530000000000005 2.3124674540397727E-003 - 8.1547000000000001 2.3383140768768415E-003 - 8.1563999999999997 2.3071263962011449E-003 - 8.1580999999999992 2.2769002682363907E-003 - 8.1598000000000006 2.2494516142442058E-003 - 8.1615000000000002 2.2448752897154412E-003 - 8.1631999999999998 2.2461989429649353E-003 - 8.1648999999999994 2.2317541570230546E-003 - 8.1666000000000007 2.2341370153742394E-003 - 8.1683000000000003 2.2141287120925196E-003 - 8.1699999999999999 2.1772042384128588E-003 - 8.1716999999999995 2.1453183543024374E-003 - 8.1734000000000009 2.1309425316840967E-003 - 8.1751000000000005 2.1418167773751911E-003 - 8.1768000000000001 2.1584380082682402E-003 - 8.1784999999999997 2.1640925686979349E-003 - 8.1801999999999992 2.1762967241921649E-003 - 8.1819000000000006 2.2109965358094526E-003 - 8.1836000000000002 2.2576638933945051E-003 - 8.1852999999999998 2.3069988627917501E-003 - 8.1869999999999994 2.3243915721161009E-003 - 8.1887000000000008 2.3265843033495729E-003 - 8.1904000000000003 2.3337315465894932E-003 - 8.1920999999999999 2.3313187444410836E-003 - 8.1937999999999995 2.3026677045798372E-003 - 8.1954999999999991 2.2735987278450563E-003 - 8.1972000000000005 2.3039377443149771E-003 - 8.1989000000000001 2.3561159536435714E-003 - 8.2005999999999997 2.3702961141571174E-003 - 8.2022999999999993 2.3417810906693130E-003 - 8.2040000000000006 2.3414259124861095E-003 - 8.2057000000000002 2.3692794719923035E-003 - 8.2073999999999998 2.4056926554017247E-003 - 8.2090999999999994 2.4562966450908581E-003 - 8.2108000000000008 2.4594008864269159E-003 - 8.2125000000000004 2.4381377711517509E-003 - 8.2141999999999999 2.4259911821091062E-003 - 8.2158999999999995 2.4120644338907304E-003 - 8.2175999999999991 2.4191609146445481E-003 - 8.2193000000000005 2.4124181168549961E-003 - 8.2210000000000001 2.3429794055926404E-003 - 8.2226999999999997 2.2400072384690809E-003 - 8.2243999999999993 2.1623062309771013E-003 - 8.2261000000000006 2.1633499851024269E-003 - 8.2278000000000002 2.2282680972369314E-003 - 8.2294999999999998 2.2665841665547070E-003 - 8.2311999999999994 2.2200513061796062E-003 - 8.2329000000000008 2.1660841831877562E-003 - 8.2346000000000004 2.1593317982040450E-003 - 8.2363000000000000 2.1640998881503476E-003 - 8.2379999999999995 2.1437518086480450E-003 - 8.2396999999999991 2.1093331191387498E-003 - 8.2414000000000005 2.1036595799339311E-003 - 8.2431000000000001 2.1272731576773415E-003 - 8.2447999999999997 2.1561336080577497E-003 - 8.2464999999999993 2.1700419154856202E-003 - 8.2482000000000006 2.1739103906708124E-003 - 8.2499000000000002 2.1832039716937670E-003 - 8.2515999999999998 2.1952239341841871E-003 - 8.2532999999999994 2.1870280966974631E-003 - 8.2550000000000008 2.1814708355190082E-003 - 8.2567000000000004 2.1972374479806147E-003 - 8.2584000000000000 2.2329707445814576E-003 - 8.2600999999999996 2.2679516157586193E-003 - 8.2617999999999991 2.2581069562007065E-003 - 8.2635000000000005 2.2204564222220043E-003 - 8.2652000000000001 2.2087738653628979E-003 - 8.2668999999999997 2.2232239528540867E-003 - 8.2685999999999993 2.2310093740261741E-003 - 8.2703000000000007 2.2142416006522420E-003 - 8.2720000000000002 2.1856811617597320E-003 - 8.2736999999999998 2.1843816645794045E-003 - 8.2753999999999994 2.1977999327533219E-003 - 8.2771000000000008 2.2343877942132807E-003 - 8.2788000000000004 2.2571425281932098E-003 - 8.2805000000000000 2.2470948103773280E-003 - 8.2821999999999996 2.2046593019305542E-003 - 8.2838999999999992 2.1557497810130361E-003 - 8.2856000000000005 2.1333441898115694E-003 - 8.2873000000000001 2.1269862495862466E-003 - 8.2889999999999997 2.1222381156301841E-003 - 8.2906999999999993 2.1236916673119150E-003 - 8.2924000000000007 2.1474202948580786E-003 - 8.2941000000000003 2.2051580073157565E-003 - 8.2957999999999998 2.2633221964794858E-003 - 8.2974999999999994 2.2981341427692286E-003 - 8.2992000000000008 2.3043466600014295E-003 - 8.3009000000000004 2.2830083681724322E-003 - 8.3026000000000000 2.2494515985746017E-003 - 8.3042999999999996 2.2005250849903720E-003 - 8.3059999999999992 2.1837303640557383E-003 - 8.3077000000000005 2.2105372842592323E-003 - 8.3094000000000001 2.2363897558201032E-003 - 8.3110999999999997 2.2700489937443795E-003 - 8.3127999999999993 2.2878578493265990E-003 - 8.3145000000000007 2.2967039168420109E-003 - 8.3162000000000003 2.3200258723572007E-003 - 8.3178999999999998 2.3225682702339859E-003 - 8.3195999999999994 2.3105381307212780E-003 - 8.3213000000000008 2.2727304708569356E-003 - 8.3230000000000004 2.2510026971888507E-003 - 8.3247000000000000 2.2655340974417266E-003 - 8.3263999999999996 2.2653077934933576E-003 - 8.3280999999999992 2.2259582808136866E-003 - 8.3298000000000005 2.1653822294496021E-003 - 8.3315000000000001 2.1335914035283932E-003 - 8.3331999999999997 2.1415048013969703E-003 - 8.3348999999999993 2.1687178255019161E-003 - 8.3366000000000007 2.2067670579827337E-003 - 8.3383000000000003 2.2465755693501727E-003 - 8.3399999999999999 2.2959478987141196E-003 - 8.3416999999999994 2.3194756864459601E-003 - 8.3434000000000008 2.3356776240191224E-003 - 8.3451000000000004 2.3757000365575761E-003 - 8.3468000000000000 2.4037772110623288E-003 - 8.3484999999999996 2.3812858043696004E-003 - 8.3501999999999992 2.3260662018935552E-003 - 8.3519000000000005 2.2854827920253959E-003 - 8.3536000000000001 2.2813956780350555E-003 - 8.3552999999999997 2.2909095860511246E-003 - 8.3569999999999993 2.2930017405893197E-003 - 8.3587000000000007 2.2895642460573750E-003 - 8.3604000000000003 2.3027725504978038E-003 - 8.3620999999999999 2.2956733435288384E-003 - 8.3637999999999995 2.2642073436950150E-003 - 8.3655000000000008 2.2467841692666605E-003 - 8.3672000000000004 2.2297874399916828E-003 - 8.3689000000000000 2.2265161200670219E-003 - 8.3705999999999996 2.2376406098715772E-003 - 8.3722999999999992 2.2681489342482445E-003 - 8.3740000000000006 2.3192458699471518E-003 - 8.3757000000000001 2.3864520976433793E-003 - 8.3773999999999997 2.4199001073502277E-003 - 8.3790999999999993 2.3904196603267941E-003 - 8.3808000000000007 2.3380495765839148E-003 - 8.3825000000000003 2.2965679232734722E-003 - 8.3841999999999999 2.2875524420251803E-003 - 8.3858999999999995 2.3039407364473809E-003 - 8.3876000000000008 2.3234161692029850E-003 - 8.3893000000000004 2.3558447153660986E-003 - 8.3910000000000000 2.4211315504782229E-003 - 8.3926999999999996 2.4742064890125892E-003 - 8.3943999999999992 2.5130932210520995E-003 - 8.3961000000000006 2.5249455448906142E-003 - 8.3978000000000002 2.4875292101573894E-003 - 8.3994999999999997 2.4606644047419292E-003 - 8.4011999999999993 2.4423854638078268E-003 - 8.4029000000000007 2.4011147469108133E-003 - 8.4046000000000003 2.3726252718169315E-003 - 8.4062999999999999 2.3569665229379254E-003 - 8.4079999999999995 2.4005010506527205E-003 - 8.4097000000000008 2.4580731307883861E-003 - 8.4114000000000004 2.4648986152308837E-003 - 8.4131000000000000 2.4014027945224478E-003 - 8.4147999999999996 2.3030605112433523E-003 - 8.4164999999999992 2.2465007029266993E-003 - 8.4182000000000006 2.2409333538374386E-003 - 8.4199000000000002 2.2788192826485648E-003 - 8.4215999999999998 2.3492595524968970E-003 - 8.4232999999999993 2.4125431655187056E-003 - 8.4250000000000007 2.4372442868188468E-003 - 8.4267000000000003 2.4369378980671329E-003 - 8.4283999999999999 2.3865475509114273E-003 - 8.4300999999999995 2.3395033522799259E-003 - 8.4317999999999991 2.3442402477465716E-003 - 8.4335000000000004 2.3600114850613058E-003 - 8.4352000000000000 2.3747009406520601E-003 - 8.4368999999999996 2.3971695468796932E-003 - 8.4385999999999992 2.4008453857234319E-003 - 8.4403000000000006 2.3814121874933753E-003 - 8.4420000000000002 2.3812065953760235E-003 - 8.4436999999999998 2.3438273298644345E-003 - 8.4453999999999994 2.2720964411326412E-003 - 8.4471000000000007 2.2546506330278332E-003 - 8.4488000000000003 2.2850411357815273E-003 - 8.4504999999999999 2.3062884203605494E-003 - 8.4521999999999995 2.3086692553579004E-003 - 8.4539000000000009 2.2812491455666845E-003 - 8.4556000000000004 2.2310291471482916E-003 - 8.4573000000000000 2.2241103258307921E-003 - 8.4589999999999996 2.2604788371320874E-003 - 8.4606999999999992 2.3029626984557611E-003 - 8.4624000000000006 2.3437795400097989E-003 - 8.4641000000000002 2.3351260126672482E-003 - 8.4657999999999998 2.2915558167181317E-003 - 8.4674999999999994 2.2336050448185500E-003 - 8.4692000000000007 2.1843795119421000E-003 - 8.4709000000000003 2.1716037750984752E-003 - 8.4725999999999999 2.1518750119461382E-003 - 8.4742999999999995 2.1464444808483307E-003 - 8.4759999999999991 2.1511571770002759E-003 - 8.4777000000000005 2.1783755403936744E-003 - 8.4794000000000000 2.2513654065404874E-003 - 8.4810999999999996 2.3202209624977395E-003 - 8.4827999999999992 2.3392443160172092E-003 - 8.4845000000000006 2.3075800988873367E-003 - 8.4862000000000002 2.2498867718421366E-003 - 8.4878999999999998 2.1829806946573591E-003 - 8.4895999999999994 2.1638649625107141E-003 - 8.4913000000000007 2.1750675726783953E-003 - 8.4930000000000003 2.2102664246120072E-003 - 8.4946999999999999 2.2549399418657682E-003 - 8.4963999999999995 2.2755498972268891E-003 - 8.4981000000000009 2.2781044542102471E-003 - 8.4998000000000005 2.2942537274471138E-003 - 8.5015000000000001 2.3125355085135829E-003 - 8.5031999999999996 2.2766765901294271E-003 - 8.5048999999999992 2.2361911950893073E-003 - 8.5066000000000006 2.2108959210123190E-003 - 8.5083000000000002 2.1511562532464329E-003 - 8.5099999999999998 2.0938924724760092E-003 - 8.5116999999999994 2.0614617661584254E-003 - 8.5134000000000007 2.0660811238347003E-003 - 8.5151000000000003 2.1161623874889884E-003 - 8.5167999999999999 2.1726999678540289E-003 - 8.5184999999999995 2.2164229159915999E-003 - 8.5201999999999991 2.2531497877984453E-003 - 8.5219000000000005 2.3061728108868832E-003 - 8.5236000000000001 2.3695819795766073E-003 - 8.5252999999999997 2.4176620633284628E-003 - 8.5269999999999992 2.4358042845759190E-003 - 8.5287000000000006 2.4598768762503355E-003 - 8.5304000000000002 2.5222951193336948E-003 - 8.5320999999999998 2.5508229064546790E-003 - 8.5337999999999994 2.5143594666874806E-003 - 8.5355000000000008 2.4769689158177710E-003 - 8.5372000000000003 2.4572966896574235E-003 - 8.5388999999999999 2.4311369078320994E-003 - 8.5405999999999995 2.4033849156392703E-003 - 8.5423000000000009 2.3653227920870383E-003 - 8.5440000000000005 2.3394396800532980E-003 - 8.5457000000000001 2.3365376707438386E-003 - 8.5473999999999997 2.3719489983527490E-003 - 8.5490999999999993 2.4232252962689909E-003 - 8.5508000000000006 2.4232101039061097E-003 - 8.5525000000000002 2.4132452201218700E-003 - 8.5541999999999998 2.4054690888695202E-003 - 8.5558999999999994 2.3898746136440654E-003 - 8.5576000000000008 2.3608288121093677E-003 - 8.5593000000000004 2.3290127514453700E-003 - 8.5609999999999999 2.3218717328520122E-003 - 8.5626999999999995 2.3517733560781849E-003 - 8.5643999999999991 2.3912759514434665E-003 - 8.5661000000000005 2.4031204522459416E-003 - 8.5678000000000001 2.4020280132600186E-003 - 8.5694999999999997 2.4042298991830721E-003 - 8.5711999999999993 2.3847983686381569E-003 - 8.5729000000000006 2.3755348455325748E-003 - 8.5746000000000002 2.3791293521534152E-003 - 8.5762999999999998 2.3695851503665530E-003 - 8.5779999999999994 2.4023724037751746E-003 - 8.5797000000000008 2.4427514330249899E-003 - 8.5814000000000004 2.4180147381979689E-003 - 8.5831000000000000 2.3507525027073100E-003 - 8.5847999999999995 2.3193358245540544E-003 - 8.5865000000000009 2.3308506024236402E-003 - 8.5882000000000005 2.3309982482310394E-003 - 8.5899000000000001 2.3099672923962817E-003 - 8.5915999999999997 2.3153226835535140E-003 - 8.5932999999999993 2.3636877719279250E-003 - 8.5950000000000006 2.3564334013750337E-003 - 8.5967000000000002 2.3152494721722129E-003 - 8.5983999999999998 2.2964035849655316E-003 - 8.6000999999999994 2.2979966946484729E-003 - 8.6018000000000008 2.2880700949103731E-003 - 8.6035000000000004 2.2548703996953553E-003 - 8.6052000000000000 2.2622880943848306E-003 - 8.6068999999999996 2.2714865260624949E-003 - 8.6085999999999991 2.2857174802835092E-003 - 8.6103000000000005 2.3287305149927045E-003 - 8.6120000000000001 2.3496836878464582E-003 - 8.6136999999999997 2.3584963987800037E-003 - 8.6153999999999993 2.3433667715164596E-003 - 8.6171000000000006 2.3366594069785833E-003 - 8.6188000000000002 2.3390201491605956E-003 - 8.6204999999999998 2.3038719248351935E-003 - 8.6221999999999994 2.2791908897129001E-003 - 8.6239000000000008 2.2978066245640297E-003 - 8.6256000000000004 2.3474185865755260E-003 - 8.6273000000000000 2.3784733795667512E-003 - 8.6289999999999996 2.3763832619245217E-003 - 8.6306999999999992 2.3396314506999466E-003 - 8.6324000000000005 2.2876569671293166E-003 - 8.6341000000000001 2.2755962536560670E-003 - 8.6357999999999997 2.2876456881068419E-003 - 8.6374999999999993 2.2841690312810836E-003 - 8.6392000000000007 2.2665058732179058E-003 - 8.6409000000000002 2.2616177572336122E-003 - 8.6425999999999998 2.3031951680626524E-003 - 8.6442999999999994 2.3905653668126591E-003 - 8.6460000000000008 2.4622837920030131E-003 - 8.6477000000000004 2.4651407804502975E-003 - 8.6494000000000000 2.4226006451357755E-003 - 8.6510999999999996 2.3575023533808958E-003 - 8.6527999999999992 2.2959676585948890E-003 - 8.6545000000000005 2.2447324928412415E-003 - 8.6562000000000001 2.1919350711837766E-003 - 8.6578999999999997 2.1556408705315313E-003 - 8.6595999999999993 2.1563797194995120E-003 - 8.6613000000000007 2.2004104820005639E-003 - 8.6630000000000003 2.2505692702285227E-003 - 8.6646999999999998 2.2900457754797543E-003 - 8.6663999999999994 2.3048192165215182E-003 - 8.6680999999999990 2.2964663766601740E-003 - 8.6698000000000004 2.2682163010482878E-003 - 8.6715000000000000 2.2238186089360837E-003 - 8.6731999999999996 2.1751340867147500E-003 - 8.6748999999999992 2.1282068910006406E-003 - 8.6766000000000005 2.1134164678599443E-003 - 8.6783000000000001 2.1355884193499063E-003 - 8.6799999999999997 2.1807625102417539E-003 - 8.6816999999999993 2.2213166246824278E-003 - 8.6834000000000007 2.2742060251225715E-003 - 8.6851000000000003 2.3289844964976794E-003 - 8.6867999999999999 2.3530616233357615E-003 - 8.6884999999999994 2.3208542001051640E-003 - 8.6902000000000008 2.2503699412732771E-003 - 8.6919000000000004 2.2049388472577145E-003 - 8.6936000000000000 2.2040027979180264E-003 - 8.6952999999999996 2.2250190806287137E-003 - 8.6969999999999992 2.2589355210288296E-003 - 8.6987000000000005 2.2888630608351892E-003 - 8.7004000000000001 2.2960974994525444E-003 - 8.7020999999999997 2.3204757705821235E-003 - 8.7037999999999993 2.3460073876813950E-003 - 8.7055000000000007 2.3456260240403825E-003 - 8.7072000000000003 2.3179225273710614E-003 - 8.7088999999999999 2.3009491252975701E-003 - 8.7105999999999995 2.2778707612068159E-003 - 8.7122999999999990 2.2346923499004449E-003 - 8.7140000000000004 2.2146245996298229E-003 - 8.7157000000000000 2.2362514738577858E-003 - 8.7173999999999996 2.2788689252044784E-003 - 8.7190999999999992 2.3021005207812498E-003 - 8.7208000000000006 2.3033362487988075E-003 - 8.7225000000000001 2.2663433866731649E-003 - 8.7241999999999997 2.1799948389201874E-003 - 8.7258999999999993 2.0952564260345902E-003 - 8.7276000000000007 2.0947746684591745E-003 - 8.7293000000000003 2.1507352557201364E-003 - 8.7309999999999999 2.2211669138961117E-003 - 8.7326999999999995 2.2591176035525124E-003 - 8.7344000000000008 2.2578501646054595E-003 - 8.7361000000000004 2.2328754507812913E-003 - 8.7378000000000000 2.1955544719660203E-003 - 8.7394999999999996 2.1870016036651175E-003 - 8.7411999999999992 2.1781608752874837E-003 - 8.7429000000000006 2.1720334888102612E-003 - 8.7446000000000002 2.2053234933636151E-003 - 8.7462999999999997 2.2566030083716578E-003 - 8.7479999999999993 2.2995330895697911E-003 - 8.7497000000000007 2.3266937983787675E-003 - 8.7514000000000003 2.3124263073917360E-003 - 8.7530999999999999 2.2494554616779593E-003 - 8.7547999999999995 2.1699030330836777E-003 - 8.7564999999999991 2.1215112267154060E-003 - 8.7582000000000004 2.1313038324917025E-003 - 8.7599000000000000 2.1682865797196145E-003 - 8.7615999999999996 2.1976272657897025E-003 - 8.7632999999999992 2.2076261408971575E-003 - 8.7650000000000006 2.1878448287443904E-003 - 8.7667000000000002 2.1744990625018959E-003 - 8.7683999999999997 2.2035949741819384E-003 - 8.7700999999999993 2.2273334280445106E-003 - 8.7718000000000007 2.2203123607190639E-003 - 8.7735000000000003 2.1910875907433908E-003 - 8.7751999999999999 2.1890983745567159E-003 - 8.7768999999999995 2.1741740249428022E-003 - 8.7786000000000008 2.1011632501809012E-003 - 8.7803000000000004 2.0374947325549871E-003 - 8.7820000000000000 2.0235749954926243E-003 - 8.7836999999999996 2.0473083294311636E-003 - 8.7853999999999992 2.0796647624199082E-003 - 8.7871000000000006 2.1116135193020623E-003 - 8.7888000000000002 2.1536854215065257E-003 - 8.7904999999999998 2.2015828280939828E-003 - 8.7921999999999993 2.2584131207672915E-003 - 8.7939000000000007 2.2980292177833279E-003 - 8.7956000000000003 2.3091917656814214E-003 - 8.7972999999999999 2.2680984083944238E-003 - 8.7989999999999995 2.2264400832266748E-003 - 8.8006999999999991 2.2043568465351269E-003 - 8.8024000000000004 2.1546618777754474E-003 - 8.8041000000000000 2.1329574983789206E-003 - 8.8057999999999996 2.1258397366075853E-003 - 8.8074999999999992 2.1576414103869723E-003 - 8.8092000000000006 2.2272340209069652E-003 - 8.8109000000000002 2.2725664618932092E-003 - 8.8125999999999998 2.3040412449616778E-003 - 8.8142999999999994 2.2958079954343868E-003 - 8.8160000000000007 2.2756464220998044E-003 - 8.8177000000000003 2.2600941205412409E-003 - 8.8193999999999999 2.2437116604899156E-003 - 8.8210999999999995 2.2285588479188738E-003 - 8.8228000000000009 2.2426296000790332E-003 - 8.8245000000000005 2.2829412083521291E-003 - 8.8262000000000000 2.3086469425126445E-003 - 8.8278999999999996 2.2826700824807103E-003 - 8.8295999999999992 2.2497101937207580E-003 - 8.8313000000000006 2.2648467742804241E-003 - 8.8330000000000002 2.2944196359508382E-003 - 8.8346999999999998 2.3308937607933768E-003 - 8.8363999999999994 2.3729052095007833E-003 - 8.8381000000000007 2.3869432728808961E-003 - 8.8398000000000003 2.3791124966688346E-003 - 8.8414999999999999 2.3713743231847553E-003 - 8.8431999999999995 2.3514822489241107E-003 - 8.8448999999999991 2.3017417277342300E-003 - 8.8466000000000005 2.2521125418943264E-003 - 8.8483000000000001 2.2201013348475008E-003 - 8.8499999999999996 2.1702516791638473E-003 - 8.8516999999999992 2.1366195906170607E-003 - 8.8534000000000006 2.1557860184896428E-003 - 8.8551000000000002 2.2131494023418987E-003 - 8.8567999999999998 2.2642513422973195E-003 - 8.8584999999999994 2.2840742668061341E-003 - 8.8602000000000007 2.2875475027387105E-003 - 8.8619000000000003 2.2619606305944169E-003 - 8.8635999999999999 2.2318646858118002E-003 - 8.8652999999999995 2.2123657016290682E-003 - 8.8670000000000009 2.1898959064409404E-003 - 8.8687000000000005 2.1866120150762568E-003 - 8.8704000000000001 2.2341171265124094E-003 - 8.8720999999999997 2.3136654301962288E-003 - 8.8737999999999992 2.3657282017652578E-003 - 8.8755000000000006 2.3872698992412626E-003 - 8.8772000000000002 2.3838058111603660E-003 - 8.8788999999999998 2.3794470001972956E-003 - 8.8805999999999994 2.3713019795836231E-003 - 8.8823000000000008 2.3367792293672016E-003 - 8.8840000000000003 2.3240760736620361E-003 - 8.8856999999999999 2.3236822594816216E-003 - 8.8873999999999995 2.2986188176284290E-003 - 8.8890999999999991 2.2767110116683523E-003 - 8.8908000000000005 2.3019179239982908E-003 - 8.8925000000000001 2.3545560489632422E-003 - 8.8941999999999997 2.3808234481162730E-003 - 8.8958999999999993 2.3575818906763054E-003 - 8.8976000000000006 2.3115797523388664E-003 - 8.8993000000000002 2.2795642992255202E-003 - 8.9009999999999998 2.2747964436085166E-003 - 8.9026999999999994 2.2663386378060525E-003 - 8.9044000000000008 2.2519157171925690E-003 - 8.9061000000000003 2.2287271148552787E-003 - 8.9077999999999999 2.1978288805916926E-003 - 8.9094999999999995 2.2059074814638657E-003 - 8.9111999999999991 2.1931080027598774E-003 - 8.9129000000000005 2.1744393677404885E-003 - 8.9146000000000001 2.1581629686234696E-003 - 8.9162999999999997 2.1167330889708250E-003 - 8.9179999999999993 2.0808758304403071E-003 - 8.9197000000000006 2.0742934810975555E-003 - 8.9214000000000002 2.1337880455542676E-003 - 8.9230999999999998 2.2222783498028844E-003 - 8.9247999999999994 2.3282136033094020E-003 - 8.9265000000000008 2.4319438457643646E-003 - 8.9282000000000004 2.5026498916668181E-003 - 8.9298999999999999 2.5079922329772526E-003 - 8.9315999999999995 2.4423846673746526E-003 - 8.9332999999999991 2.3764347601757394E-003 - 8.9350000000000005 2.3717536988069128E-003 - 8.9367000000000001 2.4343635344482107E-003 - 8.9383999999999997 2.4998964619224111E-003 - 8.9400999999999993 2.5460638808543520E-003 - 8.9418000000000006 2.5531484352622914E-003 - 8.9435000000000002 2.5148082008302707E-003 - 8.9451999999999998 2.4603754846121186E-003 - 8.9468999999999994 2.3943919279968725E-003 - 8.9486000000000008 2.3338726713307300E-003 - 8.9503000000000004 2.3192913227436107E-003 - 8.9520000000000000 2.3095074828857194E-003 - 8.9536999999999995 2.2879726977805617E-003 - 8.9553999999999991 2.2822333205402110E-003 - 8.9571000000000005 2.2760047416180112E-003 - 8.9588000000000001 2.2680086310026128E-003 - 8.9604999999999997 2.2570660959244015E-003 - 8.9621999999999993 2.2301026945429538E-003 - 8.9639000000000006 2.1886625619644160E-003 - 8.9656000000000002 2.1236599245000563E-003 - 8.9672999999999998 2.0628170229271894E-003 - 8.9689999999999994 2.0148946833404252E-003 - 8.9707000000000008 2.0030809417836992E-003 - 8.9724000000000004 2.0165749407572938E-003 - 8.9741000000000000 2.0268952300755414E-003 - 8.9757999999999996 2.0370757632136535E-003 - 8.9774999999999991 2.0791463798938720E-003 - 8.9792000000000005 2.1393948365546417E-003 - 8.9809000000000001 2.1539496474209316E-003 - 8.9825999999999997 2.1487677354996978E-003 - 8.9842999999999993 2.1496850407109590E-003 - 8.9860000000000007 2.1759373315582311E-003 - 8.9877000000000002 2.2245945802943225E-003 - 8.9893999999999998 2.2887574668682201E-003 - 8.9910999999999994 2.3563178879295200E-003 - 8.9927999999999990 2.3971685595235094E-003 - 8.9945000000000004 2.3898367585511791E-003 - 8.9962000000000000 2.3295844710435349E-003 - 8.9978999999999996 2.2579351885480691E-003 - 8.9995999999999992 2.2004143772603804E-003 - 9.0013000000000005 2.1332630525366649E-003 - 9.0030000000000001 2.0902005949505883E-003 - 9.0046999999999997 2.1263721229263567E-003 - 9.0063999999999993 2.1709600072220502E-003 - 9.0081000000000007 2.2066935000400831E-003 - 9.0098000000000003 2.2285319702010503E-003 - 9.0114999999999998 2.1969643713389375E-003 - 9.0131999999999994 2.1431575635635115E-003 - 9.0149000000000008 2.0938204568024190E-003 - 9.0166000000000004 2.0655388829676660E-003 - 9.0183000000000000 2.0528844347071978E-003 - 9.0199999999999996 2.0448581080780358E-003 - 9.0216999999999992 2.0477644386331351E-003 - 9.0234000000000005 2.0639498099329239E-003 - 9.0251000000000001 2.1028617704160328E-003 - 9.0267999999999997 2.1473482072642096E-003 - 9.0284999999999993 2.1774542186719583E-003 - 9.0302000000000007 2.1987279164822531E-003 - 9.0319000000000003 2.2216636369121333E-003 - 9.0335999999999999 2.2294149659837625E-003 - 9.0352999999999994 2.2152094592097914E-003 - 9.0369999999999990 2.1769373489710780E-003 - 9.0387000000000004 2.1453772998619746E-003 - 9.0404000000000000 2.1681618754545886E-003 - 9.0420999999999996 2.2458249880510806E-003 - 9.0437999999999992 2.3257459066591715E-003 - 9.0455000000000005 2.3479647638720330E-003 - 9.0472000000000001 2.3519334182458594E-003 - 9.0488999999999997 2.3684056329282151E-003 - 9.0505999999999993 2.3911652154404773E-003 - 9.0523000000000007 2.4003840305291809E-003 - 9.0540000000000003 2.4174927966616514E-003 - 9.0556999999999999 2.4471464080555623E-003 - 9.0573999999999995 2.4711131000932276E-003 - 9.0591000000000008 2.5076659428818456E-003 - 9.0608000000000004 2.5251246652862884E-003 - 9.0625000000000000 2.5092732195732253E-003 - 9.0641999999999996 2.4536212283449224E-003 - 9.0658999999999992 2.3587737333380689E-003 - 9.0676000000000005 2.2809562459667884E-003 - 9.0693000000000001 2.2287098003018757E-003 - 9.0709999999999997 2.2020807943867408E-003 - 9.0726999999999993 2.1945613869894832E-003 - 9.0744000000000007 2.2169775297383046E-003 - 9.0761000000000003 2.2584514695945337E-003 - 9.0777999999999999 2.2983897478150031E-003 - 9.0794999999999995 2.3163438381647817E-003 - 9.0811999999999991 2.2921757594835273E-003 - 9.0829000000000004 2.2766516007839341E-003 - 9.0846000000000000 2.3032371087819206E-003 - 9.0862999999999996 2.3570705071141625E-003 - 9.0879999999999992 2.4402268328936583E-003 - 9.0897000000000006 2.4812297355291625E-003 - 9.0914000000000001 2.4321871121534837E-003 - 9.0930999999999997 2.3601908837514139E-003 - 9.0947999999999993 2.3376258818173148E-003 - 9.0965000000000007 2.3625320749242106E-003 - 9.0982000000000003 2.3941616644552834E-003 - 9.0998999999999999 2.4180618174493591E-003 - 9.1015999999999995 2.4658327887904755E-003 - 9.1033000000000008 2.4888945723771671E-003 - 9.1050000000000004 2.4978039848451206E-003 - 9.1067000000000000 2.5147169670785849E-003 - 9.1083999999999996 2.5300982633862231E-003 - 9.1100999999999992 2.5166132368152562E-003 - 9.1118000000000006 2.4495039209794251E-003 - 9.1135000000000002 2.3897058849083439E-003 - 9.1151999999999997 2.3764172627040339E-003 - 9.1168999999999993 2.3798216245689507E-003 - 9.1186000000000007 2.3742189090205789E-003 - 9.1203000000000003 2.3802695628156074E-003 - 9.1219999999999999 2.3937894004777516E-003 - 9.1236999999999995 2.4115342645196543E-003 - 9.1253999999999991 2.4093820189991970E-003 - 9.1271000000000004 2.3853895668357085E-003 - 9.1288000000000000 2.3679764833847254E-003 - 9.1304999999999996 2.3310109228171574E-003 - 9.1321999999999992 2.2671361090002519E-003 - 9.1339000000000006 2.2158508224402571E-003 - 9.1356000000000002 2.1818769546373216E-003 - 9.1372999999999998 2.1230749585850789E-003 - 9.1389999999999993 2.0612616508872430E-003 - 9.1407000000000007 2.0263563325676318E-003 - 9.1424000000000003 2.0596036775182044E-003 - 9.1440999999999999 2.1337891379545585E-003 - 9.1457999999999995 2.1803685669439955E-003 - 9.1475000000000009 2.1860324246878648E-003 - 9.1492000000000004 2.1758168415105675E-003 - 9.1509000000000000 2.1412768656291540E-003 - 9.1525999999999996 2.0815173256043987E-003 - 9.1542999999999992 2.0453292075791169E-003 - 9.1560000000000006 2.0469220810706438E-003 - 9.1577000000000002 2.0820812808535266E-003 - 9.1593999999999998 2.1188703217499710E-003 - 9.1610999999999994 2.1402282743787620E-003 - 9.1628000000000007 2.1918986807752485E-003 - 9.1645000000000003 2.2938158458875144E-003 - 9.1661999999999999 2.3942906281765410E-003 - 9.1678999999999995 2.3963727626677735E-003 - 9.1695999999999991 2.3015628218338996E-003 - 9.1713000000000005 2.2163341249640711E-003 - 9.1730000000000000 2.1843444761017261E-003 - 9.1746999999999996 2.1866528629588557E-003 - 9.1763999999999992 2.1911818552433331E-003 - 9.1781000000000006 2.2037504184717980E-003 - 9.1798000000000002 2.2381955996599386E-003 - 9.1814999999999998 2.2507649974134814E-003 - 9.1831999999999994 2.2551213270778706E-003 - 9.1848999999999990 2.2334239352289282E-003 - 9.1866000000000003 2.1649871120909031E-003 - 9.1882999999999999 2.0518428368043406E-003 - 9.1899999999999995 1.9287712752828244E-003 - 9.1917000000000009 1.8396798499129845E-003 - 9.1934000000000005 1.7961850103712339E-003 - 9.1951000000000001 1.8056333554775689E-003 - 9.1967999999999996 1.8230555068561298E-003 - 9.1984999999999992 1.8513071369141377E-003 - 9.2002000000000006 1.8876923242380091E-003 - 9.2019000000000002 1.9149963697239539E-003 - 9.2035999999999998 1.9491742711346370E-003 - 9.2052999999999994 1.9638833118826278E-003 - 9.2070000000000007 1.9813870628627339E-003 - 9.2087000000000003 1.9942871148389296E-003 - 9.2103999999999999 1.9999112054022920E-003 - 9.2120999999999995 2.0237556969530737E-003 - 9.2137999999999991 2.0703717208374146E-003 - 9.2155000000000005 2.1217971995874398E-003 - 9.2172000000000001 2.1649632704523057E-003 - 9.2188999999999997 2.2033402512701074E-003 - 9.2205999999999992 2.2113139787657281E-003 - 9.2223000000000006 2.1936365926434557E-003 - 9.2240000000000002 2.1170300884115175E-003 - 9.2256999999999998 1.9747482611252947E-003 - 9.2273999999999994 1.8815688822492590E-003 - 9.2290999999999990 1.9422189742262228E-003 - 9.2308000000000003 2.0940919706513134E-003 - 9.2324999999999999 2.2089999941629491E-003 - 9.2341999999999995 2.2662151765321169E-003 - 9.2359000000000009 2.2969590306781027E-003 - 9.2376000000000005 2.2951656116446295E-003 - 9.2393000000000001 2.2621125766756791E-003 - 9.2409999999999997 2.1812414410628225E-003 - 9.2426999999999992 2.1035035527522004E-003 - 9.2444000000000006 2.0428245869920560E-003 - 9.2461000000000002 1.9797282141510325E-003 - 9.2477999999999998 1.9627021043533695E-003 - 9.2494999999999994 1.9717942898269392E-003 - 9.2512000000000008 1.9690138182139167E-003 - 9.2529000000000003 1.9613624708933854E-003 - 9.2545999999999999 1.9523263209167130E-003 - 9.2562999999999995 1.9614935792058503E-003 - 9.2579999999999991 2.0057151838786921E-003 - 9.2597000000000005 2.0770201514111537E-003 - 9.2614000000000001 2.1273326401181586E-003 - 9.2630999999999997 2.1680559889514024E-003 - 9.2647999999999993 2.1818998471309962E-003 - 9.2665000000000006 2.1410431131768416E-003 - 9.2682000000000002 2.1229373238230843E-003 - 9.2698999999999998 2.1352229376863856E-003 - 9.2715999999999994 2.1630881333860128E-003 - 9.2732999999999990 2.1653182552132323E-003 - 9.2750000000000004 2.1538550785154056E-003 - 9.2766999999999999 2.1459468809425872E-003 - 9.2783999999999995 2.1284411955776218E-003 - 9.2801000000000009 2.1311605600275734E-003 - 9.2818000000000005 2.1211949825796507E-003 - 9.2835000000000001 2.0889307918161518E-003 - 9.2851999999999997 2.0475259868293887E-003 - 9.2868999999999993 1.9866032404110300E-003 - 9.2886000000000006 1.9509771230789695E-003 - 9.2903000000000002 1.9596072473592433E-003 - 9.2919999999999998 1.9577089401961942E-003 - 9.2936999999999994 1.9700824806085392E-003 - 9.2954000000000008 2.0269096846470195E-003 - 9.2971000000000004 2.0719330621542268E-003 - 9.2988000000000000 2.1005127613747464E-003 - 9.3004999999999995 2.1101239308837345E-003 - 9.3021999999999991 2.0652068616260244E-003 - 9.3039000000000005 2.0279010229195395E-003 - 9.3056000000000001 2.0546884543419719E-003 - 9.3072999999999997 2.1102859802315985E-003 - 9.3089999999999993 2.1528796258002236E-003 - 9.3107000000000006 2.1662768546674015E-003 - 9.3124000000000002 2.1713299378066063E-003 - 9.3140999999999998 2.1828370614911437E-003 - 9.3157999999999994 2.1763953384282314E-003 - 9.3174999999999990 2.1451347225437561E-003 - 9.3192000000000004 2.1420383507499982E-003 - 9.3209000000000000 2.1657438850102239E-003 - 9.3225999999999996 2.1719895759625876E-003 - 9.3243000000000009 2.1562117565305898E-003 - 9.3260000000000005 2.1391125733088985E-003 - 9.3277000000000001 2.1504241925664322E-003 - 9.3293999999999997 2.1793097067451467E-003 - 9.3310999999999993 2.1819843330066970E-003 - 9.3328000000000007 2.1619293041228284E-003 - 9.3345000000000002 2.1225411473574734E-003 - 9.3361999999999998 2.0724774923105331E-003 - 9.3378999999999994 2.0389489699473482E-003 - 9.3396000000000008 2.0244267246383131E-003 - 9.3413000000000004 2.0387080591615907E-003 - 9.3430000000000000 2.0559491678159400E-003 - 9.3446999999999996 2.0704434710623002E-003 - 9.3463999999999992 2.0956477344479313E-003 - 9.3481000000000005 2.1274771242515765E-003 - 9.3498000000000001 2.1350717239138443E-003 - 9.3514999999999997 2.1085466642561321E-003 - 9.3531999999999993 2.0732615988372552E-003 - 9.3549000000000007 2.0239608308632428E-003 - 9.3566000000000003 1.9870108745771720E-003 - 9.3582999999999998 2.0016548210181990E-003 - 9.3599999999999994 2.0292124126710994E-003 - 9.3616999999999990 2.0539438571386174E-003 - 9.3634000000000004 2.0992815992576198E-003 - 9.3651000000000000 2.1602321112352599E-003 - 9.3667999999999996 2.2203000265390879E-003 - 9.3684999999999992 2.2451705428324759E-003 - 9.3702000000000005 2.2686992343473413E-003 - 9.3719000000000001 2.2951671279947054E-003 - 9.3735999999999997 2.2724143670110135E-003 - 9.3752999999999993 2.2065300304078238E-003 - 9.3770000000000007 2.1326144550666451E-003 - 9.3787000000000003 2.0519924049103764E-003 - 9.3803999999999998 2.0162176764411512E-003 - 9.3820999999999994 2.0038982061377423E-003 - 9.3838000000000008 1.9721884473625660E-003 - 9.3855000000000004 1.9277118177634957E-003 - 9.3872000000000000 1.8970735143803692E-003 - 9.3888999999999996 1.9111823207641919E-003 - 9.3905999999999992 1.9427921587214468E-003 - 9.3923000000000005 1.9951320715530414E-003 - 9.3940000000000001 2.0561797784531635E-003 - 9.3956999999999997 2.0842364233261369E-003 - 9.3973999999999993 2.1109453258315340E-003 - 9.3991000000000007 2.1487971529897711E-003 - 9.4008000000000003 2.1543213159239284E-003 - 9.4024999999999999 2.1521790347432041E-003 - 9.4041999999999994 2.1698437583609741E-003 - 9.4058999999999990 2.1922625733525785E-003 - 9.4076000000000004 2.1989336335620129E-003 - 9.4093000000000000 2.2078323093020834E-003 - 9.4109999999999996 2.2250597685787177E-003 - 9.4126999999999992 2.2641910239241682E-003 - 9.4144000000000005 2.3031778117283234E-003 - 9.4161000000000001 2.3165993887310529E-003 - 9.4177999999999997 2.3177787985324892E-003 - 9.4194999999999993 2.3277157523479029E-003 - 9.4212000000000007 2.3576829552324091E-003 - 9.4229000000000003 2.3732356187476816E-003 - 9.4245999999999999 2.3710426185716772E-003 - 9.4262999999999995 2.3481585034772763E-003 - 9.4280000000000008 2.3207147879499182E-003 - 9.4297000000000004 2.3100839185383019E-003 - 9.4314000000000000 2.2904239453444414E-003 - 9.4330999999999996 2.2943784670588800E-003 - 9.4347999999999992 2.3327979207926515E-003 - 9.4365000000000006 2.3617713145702942E-003 - 9.4382000000000001 2.3829434172578804E-003 - 9.4398999999999997 2.3889724235096155E-003 - 9.4415999999999993 2.3792955214547444E-003 - 9.4433000000000007 2.3484771039488476E-003 - 9.4450000000000003 2.2768082635035423E-003 - 9.4466999999999999 2.1951456246821653E-003 - 9.4483999999999995 2.1336919280137891E-003 - 9.4500999999999991 2.1059932354257306E-003 - 9.4518000000000004 2.1091915427028951E-003 - 9.4535000000000000 2.0997203480972774E-003 - 9.4551999999999996 2.0623919022275507E-003 - 9.4568999999999992 2.0187141433661224E-003 - 9.4586000000000006 2.0121303644984657E-003 - 9.4603000000000002 2.0707170721845115E-003 - 9.4619999999999997 2.1358947119017022E-003 - 9.4636999999999993 2.1714356570076039E-003 - 9.4653999999999989 2.1796534342772601E-003 - 9.4671000000000003 2.1530116471202830E-003 - 9.4687999999999999 2.1127846063492277E-003 - 9.4704999999999995 2.0930619366797969E-003 - 9.4722000000000008 2.1174642993227596E-003 - 9.4739000000000004 2.1656244718013537E-003 - 9.4756000000000000 2.1596878719792787E-003 - 9.4772999999999996 2.1103398288761384E-003 - 9.4789999999999992 2.0631152118684411E-003 - 9.4807000000000006 2.0522764367706366E-003 - 9.4824000000000002 2.0678378021244453E-003 - 9.4840999999999998 2.0697687019795466E-003 - 9.4857999999999993 2.0717321483370525E-003 - 9.4875000000000007 2.1084262788474578E-003 - 9.4892000000000003 2.1630952534672861E-003 - 9.4908999999999999 2.2164565125987585E-003 - 9.4925999999999995 2.2415879738084407E-003 - 9.4942999999999991 2.2416996176503603E-003 - 9.4960000000000004 2.2193961483487814E-003 - 9.4977000000000000 2.1688420643685771E-003 - 9.4993999999999996 2.1537438018376623E-003 - 9.5010999999999992 2.1898122809302120E-003 - 9.5028000000000006 2.2518450351300670E-003 - 9.5045000000000002 2.2824252935126016E-003 - 9.5061999999999998 2.2577590510484357E-003 - 9.5078999999999994 2.2056286354885202E-003 - 9.5095999999999989 2.1454326476468143E-003 - 9.5113000000000003 2.1041787018418749E-003 - 9.5129999999999999 2.0755282884106128E-003 - 9.5146999999999995 2.0516323684807011E-003 - 9.5164000000000009 2.0540668840907431E-003 - 9.5181000000000004 2.0557811092679823E-003 - 9.5198000000000000 2.0633859192248144E-003 - 9.5214999999999996 2.0813003191661986E-003 - 9.5231999999999992 2.1168473465575256E-003 - 9.5249000000000006 2.1658722990104463E-003 - 9.5266000000000002 2.1586871457609483E-003 - 9.5282999999999998 2.1161104137365667E-003 - 9.5299999999999994 2.0922666185776572E-003 - 9.5317000000000007 2.1026244634291353E-003 - 9.5334000000000003 2.1225912358352949E-003 - 9.5350999999999999 2.1049546281803637E-003 - 9.5367999999999995 2.0360241025954820E-003 - 9.5384999999999991 1.9961511817966843E-003 - 9.5402000000000005 2.0266226483245582E-003 - 9.5419000000000000 2.0967638906274873E-003 - 9.5435999999999996 2.1964340803114209E-003 - 9.5452999999999992 2.2814021245582410E-003 - 9.5470000000000006 2.3052144533130784E-003 - 9.5487000000000002 2.2676456076890679E-003 - 9.5503999999999998 2.2174023705304803E-003 - 9.5520999999999994 2.1690632374220314E-003 - 9.5537999999999990 2.1130674992473099E-003 - 9.5555000000000003 2.0787125011868814E-003 - 9.5571999999999999 2.0569409018146487E-003 - 9.5588999999999995 2.0196219714191874E-003 - 9.5606000000000009 1.9925211544876797E-003 - 9.5623000000000005 2.0023180597488308E-003 - 9.5640000000000001 2.0397851763187566E-003 - 9.5656999999999996 2.0512858843414698E-003 - 9.5673999999999992 2.0224639000002145E-003 - 9.5691000000000006 1.9799186181680938E-003 - 9.5708000000000002 1.9565239152642320E-003 - 9.5724999999999998 1.9946418446234043E-003 - 9.5741999999999994 2.0237262415981989E-003 - 9.5759000000000007 2.0251049929358861E-003 - 9.5776000000000003 2.0157104927806643E-003 - 9.5792999999999999 2.0163580930407715E-003 - 9.5809999999999995 2.0325307683734220E-003 - 9.5826999999999991 2.0715698631797344E-003 - 9.5844000000000005 2.1687677215315808E-003 - 9.5861000000000001 2.2372930177617660E-003 - 9.5877999999999997 2.2514381240392478E-003 - 9.5894999999999992 2.2302929095250703E-003 - 9.5912000000000006 2.1994424000453261E-003 - 9.5929000000000002 2.1684112254476968E-003 - 9.5945999999999998 2.1479486001757327E-003 - 9.5962999999999994 2.1099378310001061E-003 - 9.5979999999999990 2.0492577079952857E-003 - 9.5997000000000003 2.0188276687868661E-003 - 9.6013999999999999 2.0110304735910366E-003 - 9.6030999999999995 2.0068292963525691E-003 - 9.6048000000000009 2.0227871529317422E-003 - 9.6065000000000005 2.0680674489087338E-003 - 9.6082000000000001 2.1039629304582994E-003 - 9.6098999999999997 2.1110865770936388E-003 - 9.6115999999999993 2.0969716269731578E-003 - 9.6133000000000006 2.0853936465974141E-003 - 9.6150000000000002 2.0782179035848773E-003 - 9.6166999999999998 2.0838735256710739E-003 - 9.6183999999999994 2.1103738249704141E-003 - 9.6201000000000008 2.1261590829668533E-003 - 9.6218000000000004 2.1042608548295953E-003 - 9.6234999999999999 2.0633359723476567E-003 - 9.6251999999999995 2.0762955170651977E-003 - 9.6268999999999991 2.1294755222108098E-003 - 9.6286000000000005 2.1769422568089299E-003 - 9.6303000000000001 2.2276828877073702E-003 - 9.6319999999999997 2.2734975917221936E-003 - 9.6336999999999993 2.2792977087400823E-003 - 9.6354000000000006 2.2429886971062976E-003 - 9.6371000000000002 2.1956080259239248E-003 - 9.6387999999999998 2.1551691258203938E-003 - 9.6404999999999994 2.1476019295473422E-003 - 9.6421999999999990 2.1672562108458115E-003 - 9.6439000000000004 2.2033651870241003E-003 - 9.6456000000000000 2.2200424802293296E-003 - 9.6472999999999995 2.1817751321631176E-003 - 9.6489999999999991 2.1337905899083201E-003 - 9.6507000000000005 2.0916114207618600E-003 - 9.6524000000000001 2.0576876436069302E-003 - 9.6540999999999997 2.0708051282403708E-003 - 9.6557999999999993 2.1233028110167061E-003 - 9.6575000000000006 2.1854253498019985E-003 - 9.6592000000000002 2.2374587136459729E-003 - 9.6608999999999998 2.2695263709031290E-003 - 9.6625999999999994 2.2538193973795015E-003 - 9.6643000000000008 2.2318190741354299E-003 - 9.6660000000000004 2.2220129090733762E-003 - 9.6677000000000000 2.2341459293373942E-003 - 9.6693999999999996 2.2444274670142955E-003 - 9.6710999999999991 2.2464755171805804E-003 - 9.6728000000000005 2.2661010121469978E-003 - 9.6745000000000001 2.2604085485973527E-003 - 9.6761999999999997 2.2347837017508594E-003 - 9.6778999999999993 2.1747368806514702E-003 - 9.6796000000000006 2.0910488084687736E-003 - 9.6813000000000002 2.0046411389822620E-003 - 9.6829999999999998 1.9867187637546335E-003 - 9.6846999999999994 2.0682692931715775E-003 - 9.6863999999999990 2.1863611853810408E-003 - 9.6881000000000004 2.2809007802602221E-003 - 9.6898000000000000 2.3208945694271235E-003 - 9.6914999999999996 2.3159267161354793E-003 - 9.6931999999999992 2.2510548582785278E-003 - 9.6949000000000005 2.1807591920980350E-003 - 9.6966000000000001 2.1356299470249901E-003 - 9.6982999999999997 2.1110226234238791E-003 - 9.6999999999999993 2.1043814409601484E-003 - 9.7017509999999980 2.0990208594254063E-003 - 9.7035545299999963 2.1313708917459380E-003 - 9.7054121658999950 2.1736144377815115E-003 - 9.7073255308769930 2.1412950936097416E-003 - 9.7092962968033003 2.1148877516087320E-003 - 9.7113261857073976 2.1647983378689944E-003 - 9.7134169712786171 2.2363413949410189E-003 - 9.7155704804169734 2.2812084976985918E-003 - 9.7177885948294804 2.2427854434132009E-003 - 9.7200732526743625 2.2195954771609327E-003 - 9.7224264502545914 2.2382562686445360E-003 - 9.7248502437622264 2.3036714515718396E-003 - 9.7273467510750908 2.3016428108848779E-003 - 9.7299181536073416 2.1864114781162758E-003 - 9.7325666982155603 2.1055349164733244E-003 - 9.7352946991620257 2.0239270456386261E-003 - 9.7381045401368844 1.9646568484000667E-003 - 9.7409986763409897 2.0023435737385169E-003 - 9.7439796366312184 2.0880981450550661E-003 - 9.7470500257301538 2.0683961258679230E-003 - 9.7502125265020574 2.0437711091888570E-003 - 9.7534699022971179 2.0994324384714645E-003 - 9.7568249993660299 2.1044027613136519E-003 - 9.7602807493470092 2.0407767451439871E-003 - 9.7638401718274181 2.0330773226695420E-003 - 9.7675063769822401 2.0848771876967719E-003 - 9.7712825682917064 2.0945755189922901E-003 - 9.7751720453404563 2.0988150519488952E-003 - 9.7791782067006690 2.1171291067984344E-003 - 9.7833045529016882 2.0919927125168138E-003 - 9.7875546894887382 2.1144370188696830E-003 - 9.7919323301733989 2.1495599641104929E-003 - 9.7964413000785999 2.0962751370490638E-003 - 9.8010855390809564 2.0420375330785236E-003 - 9.8058691052533842 2.0577036607454173E-003 - 9.8107961784109854 2.0616366714320336E-003 - 9.8158710637633142 2.0227369912993341E-003 - 9.8210981956762122 2.0082808552455483E-003 - 9.8264821415464976 2.0627261093301152E-003 - 9.8320276057928915 2.0249621882818783E-003 - 9.8377394339666768 1.9202677542243466E-003 - 9.8436226169856749 1.8799524784114761E-003 - 9.8496822954952421 1.9613298810256994E-003 - 9.8559237643600959 2.0421702321990073E-003 - 9.8623524772908944 2.0489981886004462E-003 - 9.8689740516096176 2.0587501461133886E-003 - 9.8757942731579025 2.0014752881924399E-003 - 9.8828191013526361 1.9716489376784803E-003 - 9.8900546743932125 1.9831740895746085E-003 - 9.8975073146250061 1.9579355694691971E-003 - 9.9051835340637542 2.0447399390569735E-003 - 9.9130900400856650 2.1715798180050854E-003 - 9.9212337412882334 2.0936322381654273E-003 - 9.9296217535268791 1.9425585361907288E-003 - 9.9382614061326837 1.9217412357557110E-003 - 9.9471602483166617 1.9972745739850369E-003 - 9.9563260557661586 2.0889188179018209E-003 - 9.9657668374391406 2.0470081866001792E-003 - 9.9754908425623121 2.0151372348176139E-003 - 9.9855065678391792 2.1151667466701835E-003 - 9.9958227648743527 2.1197622861677248E-003 - 10.006448447820581 2.0156722716370887E-003 - 10.017392901255196 1.9107970720713392E-003 - 10.028665688292849 1.9340860313836234E-003 - 10.040276658941631 1.9447449853238637E-003 - 10.052235958709876 1.9112245647884189E-003 - 10.064554037471169 1.9512486057260824E-003 - 10.077241658595300 1.9104169517456025E-003 - 10.090309908353156 1.7683739586985075E-003 - 10.103770205603746 1.6609130156162799E-003 - 10.117634311771855 1.6974834554135097E-003 - 10.131914341125007 1.7553911162222241E-003 - 10.146622771358754 1.7245725964656221E-003 - 10.161772454499513 1.6953614205555147E-003 - 10.177376628134494 1.6862118452092268E-003 - 10.193448926978526 1.7255153046865719E-003 - 10.210003394787879 1.7905772769708354E-003 - 10.227054496631514 1.7166150574726674E-003 - 10.244617131530457 1.5747964570948139E-003 - 10.262706645476369 1.5544625832662282E-003 - 10.281338844840658 1.5918375860220085E-003 - 10.300530010185875 1.5903999754259602E-003 - 10.320296910491450 1.6682045270540490E-003 - 10.340656817806192 1.6017921612186885E-003 - 10.361627522340376 1.5626532700954827E-003 - 10.383227348010585 1.6341040965007709E-003 - 10.405475168450902 1.5678089322103011E-003 - 10.428390423504428 1.5027576334763484E-003 - 10.451993136209561 1.6248868693481569E-003 - 10.476303930295847 1.6662933618740805E-003 - 10.501344048204722 1.6382588252059694E-003 - 10.527135369650862 1.6664875266055969E-003 - 10.553700430740387 1.6127980022406781E-003 - 10.581062443662596 1.5094111012241740E-003 - 10.609245316972471 1.5742268360955862E-003 - 10.638273676481642 1.4869532468769768E-003 - 10.668172886776089 1.3946629021471090E-003 - 10.698969073379370 1.3370584976294137E-003 - 10.730689145580749 1.3061618374327060E-003 - 10.763360819948170 1.4676398848736338E-003 - 10.797012644546614 1.5044983289468777E-003 - 10.831674023883011 1.3936291129841112E-003 - 10.867375244599499 1.4259681760356315E-003 - 10.904147501937482 1.4873180952316867E-003 - 10.942022926995604 1.4808195129502302E-003 - 10.981034614805468 1.3958835571725216E-003 - 11.021216653249628 1.3310328540313673E-003 - 11.062604152847111 1.3794965748467418E-003 - 11.105233277432520 1.3097155882181193E-003 - 11.149141275755490 1.2315974571352722E-003 - 11.194366514028149 1.2668458456156113E-003 - 11.240948509448987 1.2972418398314795E-003 - 11.288927964732451 1.3636965037825018E-003 - 11.338346803674419 1.3071189071237217E-003 - 11.389248207784645 1.1910463083546104E-003 - 11.441676654018178 1.1824908023191278E-003 - 11.495677953638717 1.2423687509525519E-003 - 11.551299292247872 1.2017072898410056E-003 - 11.608589271015303 1.2284034487256470E-003 - 11.667597949145756 1.2144912444628305E-003 - 11.728376887620124 1.1275212504210617E-003 - 11.790979194248722 1.2368896081529908E-003 - 11.855459570076178 1.2771180874486896E-003 - 11.921874357178458 1.1031098814317233E-003 - 11.990281587893806 9.5385671694077302E-004 - 12.060741035530615 1.0066296749124300E-003 - 12.133314266596528 1.0492336723654516E-003 - 12.208064694594420 9.3371580148194028E-004 - 12.285057635432247 8.9888202642313694E-004 - 12.364360364495210 9.3440624525890730E-004 - 12.446042175430062 7.3974338815430943E-004 - 12.530174440692958 6.5781793092985924E-004 - 12.616830673913741 7.2790915138995797E-004 - 12.706086594131147 6.2029457283560368E-004 - 12.798020191955075 4.7046501373503567E-004 - 12.892711797713721 4.4980362772918084E-004 - 12.990244151645127 4.7049837282232631E-004 - 13.090702476194476 4.5389532672611410E-004 - 13.194174550480305 4.3789551031083834E-004 - 13.300750786994708 4.3534093405499507E-004 - 13.410524310604544 4.3186831414040804E-004 - 13.523591039922675 4.3024070348927923E-004 - 13.640049771120349 4.2767161973190378E-004 - 13.760002264253954 4.2711797096869528E-004 - 13.883553332181567 4.2798523098911973E-004 - 14.010810932147010 4.2678634314809069E-004 - 14.141886260111416 4.2782439463443504E-004 - 14.276893847914756 4.2827052298863343E-004 - 14.415951663352196 4.2749451538419761E-004 - 14.559181213252760 4.2710972033504195E-004 - 14.706707649650340 4.2652521915960060E-004 - 14.858659879139847 4.2753308463617233E-004 - 15.015170675514039 4.2737302176057158E-004 - 15.176376795779458 4.2712300711160721E-004 - 15.342419099652840 4.2764602459436268E-004 - 15.513442672642423 4.2711517138894589E-004 - 15.689596952821692 4.2727188845567113E-004 - 15.871035861406337 4.2767722383400017E-004 - 16.057917937248522 4.2743081912467593E-004 - 16.250406475365974 4.2718094189276131E-004 diff --git a/cases/flatplate-Ma2.25/data/cf-omp6.dat b/cases/flatplate-Ma2.25/data/cf-omp6.dat deleted file mode 100644 index a08851b..0000000 --- a/cases/flatplate-Ma2.25/data/cf-omp6.dat +++ /dev/null @@ -1,2193 +0,0 @@ - 4.0031857074841266 3.9928496699608371E-004 - 4.0089407907598247 4.0030508489499186E-004 - 4.0146927820747917 4.0009595610615291E-004 - 4.0204416798001343 3.9985791481229692E-004 - 4.0261874823069546 3.9957531699854021E-004 - 4.0319301879663589 3.9930228272238579E-004 - 4.0376697951494522 3.9903188796579984E-004 - 4.0434063022273383 3.9875578756674325E-004 - 4.0491397075711228 3.9848124601453720E-004 - 4.0548700095519097 3.9820673945896700E-004 - 4.0605972065408045 3.9793169983813777E-004 - 4.0663212969089120 3.9765717508274641E-004 - 4.0720422790273361 3.9738321766367719E-004 - 4.0777601512671815 3.9710971968070786E-004 - 4.0834749119995539 3.9683669702317168E-004 - 4.0891865595955590 3.9656414617066950E-004 - 4.0948950924262988 3.9629220030136774E-004 - 4.1006005088628799 3.9602096120626461E-004 - 4.1063028072764070 3.9575007293899002E-004 - 4.1120019860379839 3.9548022488429080E-004 - 4.1176980435187165 3.9521134080082449E-004 - 4.1233909780897093 3.9494060093677249E-004 - 4.1290807881220664 3.9467514504122533E-004 - 4.1347674719868932 3.9440843656650827E-004 - 4.1404510280552946 3.9413175111588004E-004 - 4.1461314546983745 3.9388630020396642E-004 - 4.1518087502872385 3.9360004505829111E-004 - 4.1574829131929913 3.9333550357009646E-004 - 4.1631539417867369 3.9309624558891244E-004 - 4.1688218344395818 3.9280531330216912E-004 - 4.1744865895226280 3.9255080601781871E-004 - 4.1801482054069830 3.9229441460083300E-004 - 4.1858066804637506 3.9202581051270741E-004 - 4.1914620130640348 3.9176773035773583E-004 - 4.1971142015789411 3.9151124521978619E-004 - 4.2027632443795735 3.9125342497396844E-004 - 4.2084091398370376 3.9099517591785916E-004 - 4.2140518863224390 3.9073632160112820E-004 - 4.2196914822068807 3.9047819761850493E-004 - 4.2253279258614675 3.9022085572490016E-004 - 4.2309612156573060 3.8996369181805093E-004 - 4.2365913499654990 3.8970674745850706E-004 - 4.2422183271571523 3.8945020803042975E-004 - 4.2478421456033706 3.8919405732032588E-004 - 4.2534628036752586 3.8893819696940256E-004 - 4.2590802997439212 3.8868255111354586E-004 - 4.2646946321804622 3.8842705166444301E-004 - 4.2703057993559872 3.8817167306320715E-004 - 4.2759137996416010 3.8791642149428092E-004 - 4.2815186314084084 3.8766109593195615E-004 - 4.2871202930275141 3.8740555442754685E-004 - 4.2927187828700228 3.8715007219571908E-004 - 4.2983140993070386 3.8689443702680427E-004 - 4.3039062407096678 3.8663813218409404E-004 - 4.3094952054490134 3.8638179592060952E-004 - 4.3150809918961812 3.8612567599524076E-004 - 4.3206635984222768 3.8586837412163605E-004 - 4.3262430233984031 3.8560961711260600E-004 - 4.3318192651956657 3.8535088846981786E-004 - 4.3373923221851687 3.8509290525804378E-004 - 4.3429621927380193 3.8483546140414854E-004 - 4.3485288752253188 3.8457803223300289E-004 - 4.3540923680181747 3.8431848010412538E-004 - 4.3596526694876907 3.8405421244076869E-004 - 4.3652097780049717 3.8378714030161041E-004 - 4.3707636919411215 3.8352352049845280E-004 - 4.3763144096672466 3.8326568570887958E-004 - 4.3818619295544510 3.8300802041626135E-004 - 4.3874062499738393 3.8274314138978064E-004 - 4.3929473692965155 3.8246996388745702E-004 - 4.3984852858935861 3.8219557374536697E-004 - 4.4040199981361550 3.8192832477171784E-004 - 4.4095515043953259 3.8166796768430912E-004 - 4.4150798030422056 3.8140194209320983E-004 - 4.4206048924478978 3.8111517931997848E-004 - 4.4261267709835064 3.8080713620494624E-004 - 4.4316454370201388 3.8049353294296187E-004 - 4.4371608889288972 3.8018930961737781E-004 - 4.4426731250808871 3.7989561056015511E-004 - 4.4481821438472124 3.7960127357165104E-004 - 4.4536879435989807 3.7929267110928076E-004 - 4.4591905227072939 3.7896534915403082E-004 - 4.4646898795432586 3.7862571793886542E-004 - 4.4701860124779778 3.7827912917567491E-004 - 4.4756789198825579 3.7792128568800356E-004 - 4.4811686001281030 3.7754387999981909E-004 - 4.4866550515857178 3.7714519136112791E-004 - 4.4921382726265069 3.7673096546841879E-004 - 4.4976182616215752 3.7630305718877442E-004 - 4.5030950169420274 3.7585571612693659E-004 - 4.5085685369589692 3.7538934189769994E-004 - 4.5140388200435044 3.7491451874374513E-004 - 4.5195058645667370 3.7443334307745514E-004 - 4.5249696688997734 3.7392940360556808E-004 - 4.5304302314137175 3.7338914565096136E-004 - 4.5358875504796750 3.7282114524282126E-004 - 4.5413416244687497 3.7225073660921213E-004 - 4.5467924517520455 3.7171290516061205E-004 - 4.5522400307006690 3.7124220465651188E-004 - 4.5576843596857248 3.7085459581766755E-004 - 4.5631254370783161 3.7053853059683248E-004 - 4.5685632612495493 3.7026359004563883E-004 - 4.5739978305705282 3.6998539493300435E-004 - 4.5794291434123577 3.6968270484962585E-004 - 4.5848571981461426 3.6941104045467693E-004 - 4.5902819931429892 3.6923687488099399E-004 - 4.5957035267739990 3.6911297949996334E-004 - 4.6011217974102800 3.6895114251203989E-004 - 4.6065368034229355 3.6879968106166730E-004 - 4.6119485431830691 3.6874984011766058E-004 - 4.6173570150617884 3.6868910199330340E-004 - 4.6227622174301954 3.6840779170431984E-004 - 4.6281641486593967 3.6795147955419826E-004 - 4.6335628071204962 3.6759715401159145E-004 - 4.6389581911845994 3.6744761980360874E-004 - 4.6443502992228103 3.6726629989051752E-004 - 4.6497391296062336 3.6678742901706562E-004 - 4.6551246807059750 3.6605642371082328E-004 - 4.6605069508931383 3.6533727036261319E-004 - 4.6658859385388283 3.6475449054994806E-004 - 4.6712616420141506 3.6419625108195574E-004 - 4.6766340596902092 3.6354875745878081E-004 - 4.6820031899381087 3.6286147996347805E-004 - 4.6873690311289549 3.6226036238438454E-004 - 4.6927315816338524 3.6181419456649493E-004 - 4.6980908398239043 3.6151885115092406E-004 - 4.7034468040702180 3.6133539830925093E-004 - 4.7087994727438955 3.6122975886100769E-004 - 4.7141488442160435 3.6123322249584665E-004 - 4.7194949168577658 3.6139361557266186E-004 - 4.7248376890401680 3.6164114675424271E-004 - 4.7301771591343549 3.6191674534364070E-004 - 4.7355133255114303 3.6221070941838245E-004 - 4.7408461865424991 3.6246749876455477E-004 - 4.7461757405986669 3.6273685157567765E-004 - 4.7515019860510375 3.6312689826228765E-004 - 4.7568249212707165 3.6358903801109318E-004 - 4.7621445446288080 3.6403489068050760E-004 - 4.7674608544964174 3.6447249947551413E-004 - 4.7727738492446488 3.6487141343878956E-004 - 4.7780835272446076 3.6518715030572376E-004 - 4.7833898868673987 3.6543223180800731E-004 - 4.7886929264841260 3.6560899811989475E-004 - 4.7939926444658951 3.6570236035561571E-004 - 4.7992890391838090 3.6573991178984763E-004 - 4.8045821090089751 3.6569824623212515E-004 - 4.8098718523124964 3.6552669082013999E-004 - 4.8151582674654776 3.6526271697749906E-004 - 4.8204413528390253 3.6498474944443262E-004 - 4.8257211068042416 3.6471782675126616E-004 - 4.8309975277322348 3.6442119804160967E-004 - 4.8362706139941061 3.6407814050233133E-004 - 4.8415403639609620 3.6372397101664945E-004 - 4.8468067760039064 3.6341675264487712E-004 - 4.8520698484940450 3.6316452022708230E-004 - 4.8573295798024816 3.6293969219311695E-004 - 4.8625859683003227 3.6276475326677021E-004 - 4.8678390123586706 3.6267097158312260E-004 - 4.8730887103486324 3.6267051825169270E-004 - 4.8783350606413123 3.6272606270748364E-004 - 4.8835780616078139 3.6275005599244149E-004 - 4.8888177116192431 3.6277095364695583E-004 - 4.8940540090467035 3.6295069587446906E-004 - 4.8992869522613010 3.6321422173221039E-004 - 4.9045165396341392 3.6332467925644351E-004 - 4.9097427695363249 3.6334714158968597E-004 - 4.9149656403389610 3.6347813368247506E-004 - 4.9201851504131531 3.6371760187280881E-004 - 4.9254012981300059 3.6398067895878039E-004 - 4.9306140818606234 3.6425055559789418E-004 - 4.9358234999761113 3.6447670743085318E-004 - 4.9410295508475741 3.6464186534832074E-004 - 4.9462322328461168 3.6481980933008033E-004 - 4.9514315443428432 3.6502690602916815E-004 - 4.9566274837088589 3.6523279877516705E-004 - 4.9618200493152687 3.6544568164881313E-004 - 4.9670092395331773 3.6574199300806585E-004 - 4.9721950527336887 3.6613012200550254E-004 - 4.9773774872879102 3.6655859883049470E-004 - 4.9825565415669422 3.6699682653367274E-004 - 4.9877322139418929 3.6735440927694997E-004 - 4.9929045027838663 3.6758043608913795E-004 - 4.9980734064639663 3.6777171190404708E-004 - 5.0032389233532992 3.6804418250203382E-004 - 5.0084010518229682 3.6839029611467392E-004 - 5.0135597902440798 3.6874126977779707E-004 - 5.0187151369877370 3.6908354061176464E-004 - 5.0238670904250453 3.6938612857269462E-004 - 5.0290156489271096 3.6953626545501047E-004 - 5.0341608108650338 3.6955152791472189E-004 - 5.0393025746099243 3.6963534212074519E-004 - 5.0444409385328850 3.6978169962725475E-004 - 5.0495759010050199 3.6983320478961373E-004 - 5.0547074603974345 3.6978483870083850E-004 - 5.0598356150812336 3.6972553317323495E-004 - 5.0649603634275220 3.6970642963541321E-004 - 5.0700817038074053 3.6963866209010517E-004 - 5.0751996345919865 3.6948496726673053E-004 - 5.0803141541523713 3.6931901630419297E-004 - 5.0854252608596635 3.6916997035566391E-004 - 5.0905329530849706 3.6904337558514550E-004 - 5.0956372291993945 3.6888235083306319E-004 - 5.1007380875740402 3.6869256496144172E-004 - 5.1058355265800150 3.6854672985206055E-004 - 5.1109295445884211 3.6843964859836829E-004 - 5.1160201399703640 3.6832408655409631E-004 - 5.1211073110969485 3.6825324763820354E-004 - 5.1261910563392794 3.6828307667834500E-004 - 5.1312713740684615 3.6826048245837959E-004 - 5.1363482626555985 3.6812426633352072E-004 - 5.1414217204717971 3.6802667607891494E-004 - 5.1464917458881621 3.6806588649703062E-004 - 5.1515583372757963 3.6818476170515687E-004 - 5.1566214930058054 3.6830494940182329E-004 - 5.1616812114492951 3.6844828159793015E-004 - 5.1667374909773685 3.6867376000977703E-004 - 5.1717903299611319 3.6898251601451542E-004 - 5.1768397267716875 3.6931154162274155E-004 - 5.1818856797801436 3.6960722483421981E-004 - 5.1869281873576032 3.6989725530779720E-004 - 5.1919672478751711 3.7023837184480761E-004 - 5.1970028597039519 3.7064007120879520E-004 - 5.2020350212150506 3.7108882983982717E-004 - 5.2070637307795726 3.7155658389267384E-004 - 5.2120889867686211 3.7200432947546991E-004 - 5.2171107875533025 3.7244816980917052E-004 - 5.2221291315047207 3.7297770798642169E-004 - 5.2271440169939796 3.7361796403451966E-004 - 5.2321554423921857 3.7423383025795664E-004 - 5.2371634060704437 3.7468484975210420E-004 - 5.2421679063998567 3.7496484269401731E-004 - 5.2471689417515313 3.7515063810121757E-004 - 5.2521665104965711 3.7545920714692811E-004 - 5.2571606110060802 3.7603607762667560E-004 - 5.2621512416511660 3.7661159121932019E-004 - 5.2671384008029305 3.7687512429027657E-004 - 5.2721220868324803 3.7689466244837731E-004 - 5.2771022981109184 3.7686733120323185E-004 - 5.2820790330093521 3.7685665889325122E-004 - 5.2870522898988845 3.7683725255022486E-004 - 5.2920220671506204 3.7673424369719056E-004 - 5.2969883631356645 3.7642896522267457E-004 - 5.3019511762251215 3.7595015402429538E-004 - 5.3069105047900962 3.7552265644956684E-004 - 5.3118663472016943 3.7528702680735150E-004 - 5.3168187018310196 3.7519801573835548E-004 - 5.3217675670491769 3.7506739043544128E-004 - 5.3267129412272727 3.7480698599789145E-004 - 5.3316548227364091 3.7455398197513561E-004 - 5.3365932099476918 3.7449423959946506E-004 - 5.3415281012322264 3.7453930158278719E-004 - 5.3464594949611168 3.7455370967011186E-004 - 5.3513873895054678 3.7464607285943552E-004 - 5.3563117832363849 3.7501784851160940E-004 - 5.3612326745249721 3.7581375849083266E-004 - 5.3661500617423350 3.7698434378587680E-004 - 5.3710639432595775 3.7822580255956486E-004 - 5.3759743174478043 3.7937638625456805E-004 - 5.3808811826781220 3.8057089359694459E-004 - 5.3857845373216318 3.8191380854019270E-004 - 5.3906843797494419 3.8354448905957180E-004 - 5.3955807083326555 3.8530602473976403E-004 - 5.4004735214423771 3.8703693390261372E-004 - 5.4053628174497117 3.8881417004895568E-004 - 5.4102485947257657 3.9054689169387675E-004 - 5.4151308516416421 3.9215222977791333E-004 - 5.4200095865684457 3.9359046099966832E-004 - 5.4248847978772821 3.9485486550080989E-004 - 5.4297564839392543 3.9609091060973430E-004 - 5.4346246431254697 3.9721480964915491E-004 - 5.4394892738070313 3.9800786383287548E-004 - 5.4443503743550448 3.9861783069212797E-004 - 5.4492079431406131 3.9930119703807424E-004 - 5.4540619785348436 4.0000615932523145E-004 - 5.4589124789088395 4.0042063537504486E-004 - 5.4637594426337062 4.0044266517254279E-004 - 5.4686028680805476 4.0035418895142846E-004 - 5.4734427536204695 4.0047987180050453E-004 - 5.4782790976245757 4.0084495448436207E-004 - 5.4831118984639708 4.0114171014927189E-004 - 5.4879411545097607 4.0114958132306624E-004 - 5.4927668641330500 4.0088760313022296E-004 - 5.4975890257049436 4.0055054235459744E-004 - 5.5024076375965443 4.0034673062214421E-004 - 5.5072226981789605 4.0039099306949332E-004 - 5.5120342058232925 4.0058732203917624E-004 - 5.5168421589006487 4.0073314723420943E-004 - 5.5216465557821319 4.0076142170497245E-004 - 5.5264473948388479 4.0081521669772482E-004 - 5.5312446744419015 4.0114497021501611E-004 - 5.5360383929623964 4.0184825830478550E-004 - 5.5408285487714384 4.0301312867535257E-004 - 5.5456151402401312 4.0470455764082602E-004 - 5.5503981657395816 4.0685312338442544E-004 - 5.5551776236408923 4.0931497374801688E-004 - 5.5599535123151682 4.1198326547865256E-004 - 5.5647258301335150 4.1474115668350660E-004 - 5.5694945754670373 4.1745805815093567E-004 - 5.5742597466868400 4.2048451479814833E-004 - 5.5790213421640260 4.2420120275904396E-004 - 5.5837793602697037 4.2874005017925576E-004 - 5.5885337993749742 4.3403508988828029E-004 - 5.5932846578509450 4.3911407574086112E-004 - 5.5980319340687199 4.4293515779333839E-004 - 5.6027756263994011 4.4491854812853972E-004 - 5.6075157332140977 4.4504084287474462E-004 - 5.6122522528839127 4.4439888658600235E-004 - 5.6169851837799492 4.4348629875642557E-004 - 5.6217145242733153 4.4266174828964022E-004 - 5.6264402727351124 4.4306395247621362E-004 - 5.6311624275364469 4.4532992216676640E-004 - 5.6358809870484246 4.5552749376211827E-004 - 5.6405959496421483 4.7280988735655838E-004 - 5.6453073136887237 4.8008991205803148E-004 - 5.6500150775592548 4.7026735635669184E-004 - 5.6547192396248471 4.5475147385656888E-004 - 5.6594197982566055 4.4367490703645931E-004 - 5.6641167518256355 4.4031054413887048E-004 - 5.6688100987030392 4.4893708406269751E-004 - 5.6734998372599241 4.6670879413780400E-004 - 5.6781859658673941 4.7976162475130358E-004 - 5.6828684828965530 4.7910917260560670E-004 - 5.6875473867185065 4.6832873167735527E-004 - 5.6922226757043592 4.5596668278691504E-004 - 5.6968943482252161 4.4725012607480040E-004 - 5.7015624026521818 4.4248018698972934E-004 - 5.7062268373563612 4.3942126976994575E-004 - 5.7108876507088588 4.3631841285086086E-004 - 5.7155448410807796 4.3306403639459815E-004 - 5.7201984068432274 4.3026241948988732E-004 - 5.7248483463673079 4.2848554681984043E-004 - 5.7294946580241266 4.2852479997815360E-004 - 5.7341373401847866 4.3095346968704656E-004 - 5.7387763912203935 4.3618481707399456E-004 - 5.7434118095020521 4.4384474930942629E-004 - 5.7480435934008671 4.5160228028556928E-004 - 5.7526717412879442 4.5678182817013172E-004 - 5.7572962515343864 4.5824219777698005E-004 - 5.7619171225112993 4.5750547491227344E-004 - 5.7665343525897876 4.5829206919450316E-004 - 5.7711479401409562 4.6353362997100990E-004 - 5.7757578835359098 4.7489615819249306E-004 - 5.7803641811457531 4.9176757098789927E-004 - 5.7849668313415910 5.0991493832997718E-004 - 5.7895658324945281 5.2136750443207251E-004 - 5.7941611829756692 5.1624074616927692E-004 - 5.7987528811561200 4.9691035047817853E-004 - 5.8033409254069834 4.8144232550034798E-004 - 5.8079253140993661 4.8238057802878394E-004 - 5.8125060456043709 4.9594063249338920E-004 - 5.8170831182931035 5.1235813890726674E-004 - 5.8216565305366696 5.2590638258493739E-004 - 5.8262262807061731 5.3604810360068208E-004 - 5.8307923671727178 5.4551216874248977E-004 - 5.8353547883074111 5.5765704037020764E-004 - 5.8399135424813551 5.7292169891827167E-004 - 5.8444686280656555 5.8778175906265789E-004 - 5.8490200434314161 5.9879599013643601E-004 - 5.8535677869497436 6.0827920288190223E-004 - 5.8581118569917425 6.2013095767053899E-004 - 5.8626522519285160 6.3383749398749430E-004 - 5.8671889701311706 6.4714937008909183E-004 - 5.8717220099708101 6.5617231729812354E-004 - 5.8762513698185392 6.5646755361065709E-004 - 5.8807770480454638 6.4658913026267178E-004 - 5.8852990430226866 6.3022572230110846E-004 - 5.8898173531213143 6.1447960287578924E-004 - 5.8943319767124507 6.0347792251213932E-004 - 5.8988429121671997 6.0102854105175318E-004 - 5.9033501578566678 6.0981766122382116E-004 - 5.9078537121519599 6.2471243552551206E-004 - 5.9123535734241788 6.4169675143821003E-004 - 5.9168497400444320 6.6072116284018694E-004 - 5.9213422103838216 6.7632455853510604E-004 - 5.9258309828134532 6.8919617982120436E-004 - 5.9303160557044325 6.8197811983257016E-004 - 5.9347974274278625 6.3803959061460049E-004 - 5.9392750963548497 5.8121097932216891E-004 - 5.9437490608564980 5.4780817463995202E-004 - 5.9482193193039139 5.5681680671218101E-004 - 5.9526858700681995 5.9773254958180163E-004 - 5.9571487115204613 6.6632373212411830E-004 - 5.9616078420318015 7.3524621848298599E-004 - 5.9660632599733292 7.5336593363932317E-004 - 5.9705149637161457 7.2498572294522694E-004 - 5.9749629516313574 6.9067675550136154E-004 - 5.9794072220900674 6.8587961338913606E-004 - 5.9838477734633821 7.2618098835528747E-004 - 5.9882846041224065 7.7294385350608059E-004 - 5.9927177124382442 7.7564285216176465E-004 - 5.9971470967820011 7.5398763850088608E-004 - 6.0015727555247800 7.6225941820755360E-004 - 6.0059946870376884 7.9820535032013029E-004 - 6.0104128896918283 8.0563324016676933E-004 - 6.0148273618583055 7.8742170417693753E-004 - 6.0192381019082255 7.7743079226678632E-004 - 6.0236451082126941 7.8540271814235443E-004 - 6.0280483791428132 8.2741484342851827E-004 - 6.0324479130696886 9.1557743011942542E-004 - 6.0368437083644260 1.0384971536745058E-003 - 6.0412357633981291 1.1441681179572339E-003 - 6.0456240765419036 1.1621232285280779E-003 - 6.0500086461668552 1.0984730706045242E-003 - 6.0543894706440842 1.0768764462601413E-003 - 6.0587665483446997 1.1581276064694436E-003 - 6.0631398776398058 1.2353712230578290E-003 - 6.0675094569005061 1.2123604309879938E-003 - 6.0718752844979065 1.1456931078248850E-003 - 6.0762373588031107 1.1401835189482174E-003 - 6.0805956781872244 1.1656117283798512E-003 - 6.0849502410213514 1.1574079817445381E-003 - 6.0893010456765957 1.1146366492549276E-003 - 6.0936480905240664 1.1020535304561438E-003 - 6.0979913739348639 1.1609396339322237E-003 - 6.1023308942800938 1.2173281772887205E-003 - 6.1066666499308617 1.1871628065944393E-003 - 6.1109986392582716 1.1125604750308593E-003 - 6.1153268606334290 1.0603810371402425E-003 - 6.1196513124274379 1.0283862125607100E-003 - 6.1239719930114056 9.9927974549324163E-004 - 6.1282889007564307 9.5616305529387874E-004 - 6.1326020340336242 9.2143315611291799E-004 - 6.1369113912140900 9.3610556857647064E-004 - 6.1412169706689319 9.6997980254471281E-004 - 6.1455187707692520 9.6547276677467586E-004 - 6.1498167898861595 9.4055480759140068E-004 - 6.1541110263907548 1.0029681454108482E-003 - 6.1584014786541452 1.1132121776799501E-003 - 6.1626881450474364 1.1219410695787432E-003 - 6.1669710239417324 1.0407258341697684E-003 - 6.1712501137081368 9.9851288209846872E-004 - 6.1755254127177537 1.0902619677719157E-003 - 6.1797969193416922 1.2912882949316874E-003 - 6.1840646319510526 1.4661392426736984E-003 - 6.1883285489169406 1.5130059220279971E-003 - 6.1925886686104619 1.4167121287472365E-003 - 6.1968449894027220 1.2437541404211512E-003 - 6.2010975096648231 1.0795116339113284E-003 - 6.2053462277678726 9.8267695581899842E-004 - 6.2095911420829726 9.5904239699456711E-004 - 6.2138322509812305 1.0183092763195751E-003 - 6.2180695528337502 1.1377533854975677E-003 - 6.2223030460116373 1.2189631282271923E-003 - 6.2265327288859922 1.2265622509526123E-003 - 6.2307585998279258 1.2329475414653459E-003 - 6.2349806572085402 1.2811899866004060E-003 - 6.2391988993989376 1.3377667892667357E-003 - 6.2434133247702270 1.3581752557097213E-003 - 6.2476239316935107 1.3177189187977795E-003 - 6.2518307185398942 1.2338267377616360E-003 - 6.2560336836804815 1.1885689267161791E-003 - 6.2602328254863782 1.2194505557373548E-003 - 6.2644281423286898 1.2357177902634063E-003 - 6.2686196325785204 1.1861514413660790E-003 - 6.2728072946069737 1.1212561004371694E-003 - 6.2769911267851537 1.0959226962449766E-003 - 6.2811711274841677 1.1180230737181311E-003 - 6.2853472950751215 1.1713049798882931E-003 - 6.2895196279291170 1.2165276761386440E-003 - 6.2936881244172582 1.2534262569967247E-003 - 6.2978527829106525 1.3092547493159536E-003 - 6.3020136017804038 1.3616168470566696E-003 - 6.3061705793976177 1.3902017795845475E-003 - 6.3103237141333963 1.4175161394151630E-003 - 6.3144730043588471 1.4227952742874559E-003 - 6.3186184484450738 1.3538784437615446E-003 - 6.3227600447631804 1.2488251344053398E-003 - 6.3268977916842744 1.2198160842644740E-003 - 6.3310316875794559 1.3057693385994853E-003 - 6.3351617308198342 1.4070619100811101E-003 - 6.3392879197765115 1.4188290271679974E-003 - 6.3434102528205933 1.3337794543033306E-003 - 6.3475287283231836 1.2726002878136692E-003 - 6.3516433446553897 1.3119350305533161E-003 - 6.3557541001883138 1.3836400669047231E-003 - 6.3598609932930614 1.4388629325525395E-003 - 6.3639640223407383 1.4645864993693667E-003 - 6.3680631857024483 1.4701740001743465E-003 - 6.3721584817492953 1.4848588159816110E-003 - 6.3762499088523832 1.4909682050701224E-003 - 6.3803374653828211 1.4758898538425669E-003 - 6.3844211497117112 1.4683434923219642E-003 - 6.3885009602101572 1.4739823841643681E-003 - 6.3925768952492668 1.4783684255045124E-003 - 6.3966489532001400 1.4805593427133592E-003 - 6.4007171324338863 1.4889174790181415E-003 - 6.4047814313216076 1.5104866382895923E-003 - 6.4088418482344096 1.5775145988135724E-003 - 6.4128983815433998 1.6668024539688191E-003 - 6.4169510296196783 1.7182266642799759E-003 - 6.4209997908343510 1.7371078675793557E-003 - 6.4250446635585234 1.7671617746908899E-003 - 6.4290856461633012 1.8134458467475652E-003 - 6.4331227370197883 1.8648434940109193E-003 - 6.4371559344990903 1.9355798334494765E-003 - 6.4411852369723110 2.0242653885841960E-003 - 6.4452106428105544 2.0488408686801323E-003 - 6.4492321503849261 1.9676294768709319E-003 - 6.4532497580665336 1.8559369850681209E-003 - 6.4572634642264752 1.8032665111126719E-003 - 6.4612732672358621 1.7885959310720055E-003 - 6.4652791654657964 1.7496702885818850E-003 - 6.4692811572873836 1.7403093295071982E-003 - 6.4732792410717259 1.8078641606286158E-003 - 6.4772734151899307 1.8840903166868928E-003 - 6.4812636780131019 1.9091412680790230E-003 - 6.4852500279123433 1.9126400942184223E-003 - 6.4892324632587624 1.9372435715529640E-003 - 6.4932109824234630 1.9832652283820356E-003 - 6.4971855837775472 2.0250429740925444E-003 - 6.5011562656921242 2.0651432408705472E-003 - 6.5051230265382944 2.1476201978382404E-003 - 6.5090858646871652 2.2609390703014036E-003 - 6.5130447785098404 2.3231677327832869E-003 - 6.5169997663774257 2.2857115133606688E-003 - 6.5209508266610250 2.2180508343275277E-003 - 6.5248979577317421 2.2283803171543534E-003 - 6.5288411579606844 2.2634997570172206E-003 - 6.5327804257189541 2.2044903951485197E-003 - 6.5367157593776586 2.1194521286945936E-003 - 6.5406471573078999 2.1488617167263265E-003 - 6.5445746178807838 2.3070858538066278E-003 - 6.5484981394674158 2.4413048179520590E-003 - 6.5524177204388998 2.4408400855471068E-003 - 6.5563333591663415 2.3421393855660969E-003 - 6.5602450540208448 2.2259135674414436E-003 - 6.5641528033735153 2.1813520477239412E-003 - 6.5680566055954568 2.2100613126313198E-003 - 6.5719564590577750 2.2755051622357987E-003 - 6.5758523621315721 2.3588498384370556E-003 - 6.5797443131879572 2.3947735016860519E-003 - 6.5836323105980306 2.3238189008576307E-003 - 6.5875163527329015 2.1817082706676581E-003 - 6.5913964379636703 2.0882792506108109E-003 - 6.5952725646614461 2.0861310894085255E-003 - 6.5991447311973292 2.1101777728035147E-003 - 6.6030129359424272 2.1088306367471306E-003 - 6.6068771772678438 2.0770970385929305E-003 - 6.6107374535446866 2.0378800475718433E-003 - 6.6145937631440557 2.0340514012296414E-003 - 6.6184461044370586 2.1009532782712351E-003 - 6.6222944757947992 2.2078862389121961E-003 - 6.6261388755883850 2.2871407077445240E-003 - 6.6299793021889162 2.2909884848219000E-003 - 6.6338157539675002 2.2054483851263640E-003 - 6.6376482292952428 2.0759436342812762E-003 - 6.6414767265432459 2.0153055670320305E-003 - 6.6453012440826154 2.0649420720041550E-003 - 6.6491217802844567 2.1427072698346808E-003 - 6.6529383335198737 2.1881514781613124E-003 - 6.6567509021599740 2.2534679015370320E-003 - 6.6605594845758578 2.3467468834891653E-003 - 6.6643640791386343 2.3832849734572868E-003 - 6.6681646842194038 2.3747968007328877E-003 - 6.6719612981892737 2.3711853531307972E-003 - 6.6757539194193498 2.3685318802900484E-003 - 6.6795425462807341 2.4043210729355687E-003 - 6.6833271771445339 2.4881373295485057E-003 - 6.6871078103818515 2.5194252071681364E-003 - 6.6908844443637943 2.4276282746161990E-003 - 6.6946570774614642 2.2454138647295366E-003 - 6.6984257080459706 2.1451897911016629E-003 - 6.7021903344884119 2.1781068306356158E-003 - 6.7059509551598975 2.2761848895485760E-003 - 6.7097075684315310 2.3918952233505462E-003 - 6.7134601726744165 2.4837022453639119E-003 - 6.7172087662596596 2.5040103859901974E-003 - 6.7209533475583640 2.4752492002452302E-003 - 6.7246939149416356 2.4761705126558902E-003 - 6.7284304667805799 2.4928836146293179E-003 - 6.7321630014462990 2.4847199944984162E-003 - 6.7358915173099003 2.4677303654054702E-003 - 6.7396160127424878 2.4472312212694860E-003 - 6.7433364861151652 2.4185673151395867E-003 - 6.7470529357990365 2.3777646387000764E-003 - 6.7507653601652091 2.3400257764254239E-003 - 6.7544737575847869 2.3622251867857279E-003 - 6.7581781264288754 2.4394508144308371E-003 - 6.7618784650685768 2.4600614570335615E-003 - 6.7655747718749986 2.4095707457807074E-003 - 6.7692670452192427 2.3647536284895285E-003 - 6.7729552834724167 2.3334360798046142E-003 - 6.7766394850056244 2.3410745432654563E-003 - 6.7803196481899697 2.4460178581011335E-003 - 6.7839957713965582 2.5657165808069702E-003 - 6.7876678529964956 2.6019142836265384E-003 - 6.7913358913608839 2.5746266664555778E-003 - 6.7949998848608288 2.5415358464685087E-003 - 6.7986598318674378 2.5088506098012403E-003 - 6.8023157307518129 2.4483054727409571E-003 - 6.8059675798850598 2.3942674587068601E-003 - 6.8096153776382842 2.3957443618828410E-003 - 6.8132591223825880 2.4179391897984916E-003 - 6.8168988124890788 2.4216422461586151E-003 - 6.8205344463288586 2.3907326163679714E-003 - 6.8241660222730367 2.3396864535085524E-003 - 6.8277935386927116 2.3312482612460736E-003 - 6.8314169939589924 2.4114793392549538E-003 - 6.8350363864429866 2.5247613401192894E-003 - 6.8386517145157910 2.5748526374206539E-003 - 6.8422629765485166 2.5360626168084315E-003 - 6.8458701709122654 2.4655730877363416E-003 - 6.8494732959781430 2.3949971820083692E-003 - 6.8530723501172552 2.3272194560670502E-003 - 6.8566673317007059 2.3028498978107334E-003 - 6.8602582390995988 2.2899127185924575E-003 - 6.8638450706850413 2.2200326395076624E-003 - 6.8674278248281340 2.1528908135563592E-003 - 6.8710064998999858 2.1848054312005815E-003 - 6.8745810942716989 2.2704458626063547E-003 - 6.8781516063143791 2.2943224026822930E-003 - 6.8817180343991318 2.2320575391698637E-003 - 6.8852803768970592 2.1546802267107300E-003 - 6.8888386321792687 2.1683775389572122E-003 - 6.8923927986168643 2.2665138086457436E-003 - 6.8959428745809515 2.3405784099989240E-003 - 6.8994888584426342 2.3539183025414407E-003 - 6.9030307485730162 2.3779815034167514E-003 - 6.9065685433432034 2.4260794778453582E-003 - 6.9101022411243012 2.4524662942189603E-003 - 6.9136318402874117 2.4738776912353348E-003 - 6.9171573392036443 2.4653676970080901E-003 - 6.9206787362440991 2.4140763249373251E-003 - 6.9241960297798819 2.4157264776815913E-003 - 6.9277092181821018 2.4790531762391311E-003 - 6.9312182998218574 2.5226416691483794E-003 - 6.9347232730702562 2.4852104023647200E-003 - 6.9382241362984054 2.4049726850127640E-003 - 6.9417208878774037 2.3506463375398226E-003 - 6.9452135261783621 2.2627616617162030E-003 - 6.9487020495723826 2.1505738495065530E-003 - 6.9521864564305691 2.1682959847561865E-003 - 6.9556667451240273 2.3141326991103044E-003 - 6.9591429140238628 2.4608151253644856E-003 - 6.9626149615011794 2.5212785539186875E-003 - 6.9660828859270829 2.4936232535380824E-003 - 6.9695466856726753 2.4493441340021843E-003 - 6.9730063591090641 2.4312263930139715E-003 - 6.9764619046073548 2.4170465012948970E-003 - 6.9799133205386497 2.3940499571309909E-003 - 6.9833606052740542 2.3586273372492987E-003 - 6.9868037571846724 2.3346968806935535E-003 - 6.9902427746416116 2.3654440271960514E-003 - 6.9936776560159757 2.4074095630911858E-003 - 6.9971083996788668 2.3977415923453400E-003 - 7.0005350040013923 2.3524693228734548E-003 - 7.0039574673546561 2.2993141625023330E-003 - 7.0073757881097656 2.2306744055600701E-003 - 7.0107899646378193 2.1650526982294731E-003 - 7.0141999953099283 2.1374782987513942E-003 - 7.0176058784971929 2.1459584875584293E-003 - 7.0210076125707221 2.1780175334602039E-003 - 7.0244051959016183 2.2226014209256336E-003 - 7.0277986268609851 2.2534728403930684E-003 - 7.0311879038199283 2.2638139170176120E-003 - 7.0345730251495517 2.2852505179905150E-003 - 7.0379539892209646 2.3341513783489394E-003 - 7.0413307944052672 2.3991407704066882E-003 - 7.0447034390735652 2.4557643588823098E-003 - 7.0480719215969643 2.4960574282089027E-003 - 7.0514362403465682 2.5362266824311753E-003 - 7.0547963936934810 2.5731388214583284E-003 - 7.0581523800088100 2.5999887120502097E-003 - 7.0615041976636572 2.6265029176112242E-003 - 7.0648518450291302 2.6075348996944542E-003 - 7.0681953204763310 2.5120069215610391E-003 - 7.0715346223763653 2.4021331093268777E-003 - 7.0748697491003405 2.3237336336932699E-003 - 7.0782006990193551 2.2773278173047924E-003 - 7.0815274705045219 2.2587563672767210E-003 - 7.0848500619269394 2.2528328009312694E-003 - 7.0881684716577151 2.2491882003003965E-003 - 7.0914826980679528 2.2398706060126681E-003 - 7.0947927395287600 2.2193147240407293E-003 - 7.0980985944112369 2.1962658050323209E-003 - 7.1014002610864893 2.1925502836827866E-003 - 7.1046977379256262 2.2347488556102245E-003 - 7.1079910232997463 2.2935082532899087E-003 - 7.1112801155799588 2.2997171374601342E-003 - 7.1145650131373692 2.2669686185825743E-003 - 7.1178457143430762 2.2556142409865788E-003 - 7.1211222175681907 2.2885293505528373E-003 - 7.1243945211838149 2.3395190063857144E-003 - 7.1276626235610543 2.3520852359415669E-003 - 7.1309265230710128 2.3290542445568931E-003 - 7.1341862180847961 2.3060676579943354E-003 - 7.1374417069735081 2.2749951876889288E-003 - 7.1406929881082561 2.2520679883909680E-003 - 7.1439400598601388 2.2758274411541746E-003 - 7.1471829206002688 2.3126328242258705E-003 - 7.1504215686997430 2.3178743479025923E-003 - 7.1536560025296723 2.3001608170002451E-003 - 7.1568862204611605 2.2827937042576747E-003 - 7.1601122208653116 2.2960367730607508E-003 - 7.1633340021132277 2.3563877156996186E-003 - 7.1665515625760143 2.4121692671731625E-003 - 7.1697649006247808 2.4074325506615178E-003 - 7.1729740146306291 2.3482592160089825E-003 - 7.1761789029646614 2.3163299659147954E-003 - 7.1793795639979869 2.3756178223556870E-003 - 7.1825759961017077 2.4635628279061511E-003 - 7.1857681976469276 2.4924206026104498E-003 - 7.1889561670047541 2.4801518913380575E-003 - 7.1921399025462911 2.4775981728260565E-003 - 7.1953194026426424 2.4851803736514284E-003 - 7.1984946656649136 2.4826547360642659E-003 - 7.2016656899842104 2.4506497401097049E-003 - 7.2048324739716350 2.4033449220535060E-003 - 7.2079950159982928 2.3744263229493216E-003 - 7.2111533144352897 2.3707796504844375E-003 - 7.2143073676537313 2.4029801061038786E-003 - 7.2174571740247195 2.5000354416011101E-003 - 7.2206027319193637 2.5905145594248345E-003 - 7.2237440397087624 2.6020489779116679E-003 - 7.2268810957640248 2.5476585155269245E-003 - 7.2300138984562565 2.4462017639939057E-003 - 7.2331424461565579 2.3242090595642253E-003 - 7.2362667372360381 2.2180495056716939E-003 - 7.2393867700657992 2.1618074707019106E-003 - 7.2425025430169434 2.1868101047810870E-003 - 7.2456140544605834 2.2493194184503968E-003 - 7.2487213027678159 2.2886277712997989E-003 - 7.2518242863097520 2.2961537806538866E-003 - 7.2549230034574919 2.2736170840041000E-003 - 7.2580174525821430 2.2360736721303153E-003 - 7.2611076320548094 2.2260479001950835E-003 - 7.2641935402465947 2.2667521533524344E-003 - 7.2672751755286029 2.3155356696015483E-003 - 7.2703525362719432 2.3332956762120521E-003 - 7.2734256208477142 2.3519893164980956E-003 - 7.2764944276270285 2.3832715977162317E-003 - 7.2795589549809847 2.3715543596513943E-003 - 7.2826192012806885 2.3107207024855936E-003 - 7.2856751648972438 2.2483925866444020E-003 - 7.2887268442017579 2.2039937493921755E-003 - 7.2917742375653347 2.1875229347809427E-003 - 7.2948173433590817 2.2138732538447854E-003 - 7.2978561599540974 2.2680712923257873E-003 - 7.3008906857214928 2.2906882101587887E-003 - 7.3039209190323682 2.2844763484359877E-003 - 7.3069468582578310 2.3015698328871783E-003 - 7.3099685017689850 2.3089055113665441E-003 - 7.3129858479369325 2.2388956482664382E-003 - 7.3159988951327843 2.1159364742801027E-003 - 7.3190076417276391 2.0300176026479769E-003 - 7.3220120860926059 2.0280632167166183E-003 - 7.3250122265987869 2.1030690741682379E-003 - 7.3280080616172860 2.2082197029839059E-003 - 7.3309995895192124 2.2795437360248589E-003 - 7.3339868086756681 2.2631760578230783E-003 - 7.3369697174577588 2.1791216424841397E-003 - 7.3399483142365849 2.1039499369058271E-003 - 7.3429225973832573 2.0809152500136053E-003 - 7.3458925652688762 2.1310708989663364E-003 - 7.3488582162645510 2.2153341503561037E-003 - 7.3518195487413820 2.2462429341380766E-003 - 7.3547765610704765 2.2234598318372155E-003 - 7.3577292516229367 2.2314800488498188E-003 - 7.3606776187698699 2.2784762559886484E-003 - 7.3636216608823801 2.2889394385532560E-003 - 7.3665613763315729 2.2541753478363419E-003 - 7.3694967634885522 2.2112338431211852E-003 - 7.3724278207244236 2.1939519041896151E-003 - 7.3753545464102892 2.2210141728369426E-003 - 7.3782769389172564 2.2653653158250290E-003 - 7.3811949966164292 2.3059652954063883E-003 - 7.3841087178789131 2.3511926317153924E-003 - 7.3870181010758103 2.4009864871145908E-003 - 7.3899231445782299 2.4643332455885915E-003 - 7.3928238467572722 2.5347048991867494E-003 - 7.3957202059840448 2.5629743454737212E-003 - 7.3986122206296514 2.5238822003374245E-003 - 7.4014998890651977 2.4634519879363371E-003 - 7.4043832096617859 2.4428094921545829E-003 - 7.4072621807905250 2.4710536146125713E-003 - 7.4101368008225172 2.4957941482278024E-003 - 7.4130070681288665 2.4603751182808863E-003 - 7.4158729810806765 2.3818314815132057E-003 - 7.4187345380490566 2.3405834556121130E-003 - 7.4215917374051088 2.3625378444509459E-003 - 7.4244445775199370 2.4219480189770935E-003 - 7.4272930567646469 2.4813426676291339E-003 - 7.4301371735103459 2.4967547610547786E-003 - 7.4329769261281342 2.4448375692480880E-003 - 7.4358123129891212 2.3526648105672981E-003 - 7.4386433324644052 2.2861282714559425E-003 - 7.4414699829250956 2.2767119945644411E-003 - 7.4442922627422980 2.2799060101627994E-003 - 7.4471101702871163 2.2517933400599513E-003 - 7.4499237039306543 2.2058112771246949E-003 - 7.4527328620440159 2.1964006522686937E-003 - 7.4555376429983085 2.2203838639742036E-003 - 7.4583380451646342 2.2279675083170429E-003 - 7.4611340669140986 2.2175768431847145E-003 - 7.4639257066178075 2.2162643802834479E-003 - 7.4667129626468647 2.2458792119315696E-003 - 7.4694958333723740 2.2888290110143878E-003 - 7.4722743171654447 2.2888493653248640E-003 - 7.4750484123971752 2.2302125768339700E-003 - 7.4778181174386749 2.1530415213801626E-003 - 7.4805834306610457 2.0886856550474133E-003 - 7.4833443504353969 2.0379471891243928E-003 - 7.4861008751328271 2.0097707438662105E-003 - 7.4888530031244436 2.0063628135889040E-003 - 7.4916007327813539 2.0165484959247461E-003 - 7.4943440624746582 2.0439126210818094E-003 - 7.4970829905754641 2.0809030628949612E-003 - 7.4998175154548754 2.1054723988129095E-003 - 7.5025476354839995 2.1330609581343800E-003 - 7.5052733490339367 2.1840072689507640E-003 - 7.5079946544757945 2.2424498932593303E-003 - 7.5107115501806767 2.2861726393352730E-003 - 7.5134240345196908 2.3049073100394387E-003 - 7.5161321058639352 2.3007496440983289E-003 - 7.5188357625845228 2.2906997782978608E-003 - 7.5215350030525521 2.2880779386161396E-003 - 7.5242298256391322 2.2893162777746236E-003 - 7.5269202287153618 2.2744585790517293E-003 - 7.5296062106523536 2.2238197598798862E-003 - 7.5322877698212061 2.1517390893218058E-003 - 7.5349649045930267 2.0886631112650455E-003 - 7.5376376133389194 2.0539176692016708E-003 - 7.5403058944299914 2.0557254675488746E-003 - 7.5429697462373433 2.0777296341206635E-003 - 7.5456291671320823 2.0929889752572249E-003 - 7.5482841554853124 2.1065438991851064E-003 - 7.5509347096681392 2.1394179286172575E-003 - 7.5535808280516683 2.1870181928032558E-003 - 7.5562225090070037 2.2302736075801330E-003 - 7.5588597509052473 2.2839227130755846E-003 - 7.5614925521175067 2.3512100100043726E-003 - 7.5641209110148875 2.3888429581754400E-003 - 7.5667448259684917 2.3914224331587053E-003 - 7.5693642953494269 2.4063596109842535E-003 - 7.5719793175287968 2.4206449904871164E-003 - 7.5745898908777036 2.3650560809140341E-003 - 7.5771960137672565 2.2339749479680735E-003 - 7.5797976845685593 2.0983064106607626E-003 - 7.5823949016527123 2.0273446259163976E-003 - 7.5849876633908266 2.0349106413377394E-003 - 7.5875759681540025 2.0738587581621377E-003 - 7.5901598143133455 2.0962503290945446E-003 - 7.5927392002399632 2.0964599898366390E-003 - 7.5953141243049558 2.0976153508574123E-003 - 7.5978845848794325 2.1162052143219867E-003 - 7.6004505803344937 2.1468420900128665E-003 - 7.6030121090412486 2.1622843682043377E-003 - 7.6055691693707992 2.1392620478497049E-003 - 7.6081217596942494 2.1228946809650857E-003 - 7.6106698783827085 2.1658055025451854E-003 - 7.6132135238072784 2.2480594809155909E-003 - 7.6157526943390614 2.3183041555976430E-003 - 7.6182873883491649 2.3446931448064317E-003 - 7.6208176042086944 2.3475050454957540E-003 - 7.6233433402887538 2.3548457024044275E-003 - 7.6258645949604471 2.3592510483399606E-003 - 7.6283813665948799 2.3566560911588695E-003 - 7.6308936535631560 2.3698033110882118E-003 - 7.6334014542363811 2.4009841187706297E-003 - 7.6359047669856608 2.4253126638279885E-003 - 7.6384035901820990 2.4228824322046214E-003 - 7.6408979221967996 2.3900813047602748E-003 - 7.6433877614008665 2.3449506809422550E-003 - 7.6458731061654106 2.3240385811285442E-003 - 7.6483539548615269 2.3415514277512757E-003 - 7.6508303058603282 2.3674566346279895E-003 - 7.6533021575329165 2.3722895318787998E-003 - 7.6557695082503940 2.3640909207151340E-003 - 7.6582323563838699 2.3517157402147483E-003 - 7.6606907003044480 2.3305378962371493E-003 - 7.6631445383832286 2.2931425874653058E-003 - 7.6655938689913228 2.2419300030791906E-003 - 7.6680386904998343 2.2100724899284268E-003 - 7.6704790012798636 2.2132406327378569E-003 - 7.6729147997025180 2.2226054777547658E-003 - 7.6753460841389014 2.2425460643758924E-003 - 7.6777728529601212 2.3046544536346964E-003 - 7.6801951045372796 2.3953457997835685E-003 - 7.6826128372414821 2.4617233471233074E-003 - 7.6850260494438345 2.4613067079179048E-003 - 7.6874347395154388 2.4090766294627237E-003 - 7.6898389058274041 2.3517510292433478E-003 - 7.6922385467508292 2.3206834088928116E-003 - 7.6946336606568231 2.3047092305824588E-003 - 7.6970242459164915 2.2657336474436081E-003 - 7.6994103009009365 2.2032947370169012E-003 - 7.7017918239812637 2.1645678663595276E-003 - 7.7041688135285789 2.1893393894842996E-003 - 7.7065412679139840 2.2557541731509211E-003 - 7.7089091855085865 2.2976296856664596E-003 - 7.7112725646834903 2.2922210059259040E-003 - 7.7136314038098011 2.2705958203783259E-003 - 7.7159857012586208 2.2573382762421665E-003 - 7.7183354554010570 2.2640601930577994E-003 - 7.7206806646082153 2.2919774632775233E-003 - 7.7230213272511961 2.3152917115795051E-003 - 7.7253574417011102 2.3144800853019294E-003 - 7.7276890063290544 2.3109366227992891E-003 - 7.7300160195061416 2.3169037695346248E-003 - 7.7323384796034702 2.3187506699201186E-003 - 7.7346563849921495 2.3168858263128943E-003 - 7.7369697340432833 2.3235849342450677E-003 - 7.7392785251279754 2.3533024929885365E-003 - 7.7415827566173299 2.3891088297059355E-003 - 7.7438824268824522 2.3999368689778620E-003 - 7.7461775342944463 2.3870658927016603E-003 - 7.7484680772244197 2.3398098680619999E-003 - 7.7507540540434761 2.2531988748225548E-003 - 7.7530354631227194 2.1896200968879549E-003 - 7.7553123028332536 2.1965584604209986E-003 - 7.7575845715461860 2.2239240381702365E-003 - 7.7598522676326169 2.2117772723212752E-003 - 7.7621153894636556 2.1711314617403762E-003 - 7.7643739354104042 2.1660393808878554E-003 - 7.7666279038439701 2.2101851804269008E-003 - 7.7688772931354553 2.2513386859416922E-003 - 7.7711221016559655 2.2636518587655866E-003 - 7.7733623277766064 2.2577787812119113E-003 - 7.7755979698684818 2.2438399648599238E-003 - 7.7778290263026975 2.2430490228032025E-003 - 7.7800554954503571 2.2749256894788916E-003 - 7.7822773756825665 2.3045074699130602E-003 - 7.7844946653704277 2.3096577728043579E-003 - 7.7867073628850481 2.3157691101686395E-003 - 7.7889154665975333 2.3247349598024165E-003 - 7.7911189748789873 2.3345346699659626E-003 - 7.7933178861005103 2.3484839994676768E-003 - 7.7955121986332134 2.3505671226266137E-003 - 7.7977019108481986 2.3238524658975219E-003 - 7.7998870211165716 2.2923010259769203E-003 - 7.8020675278094362 2.2967792229280229E-003 - 7.8042434292978964 2.3455959880445939E-003 - 7.8064147239530595 2.3887929579072460E-003 - 7.8085814101460276 2.3952080820525980E-003 - 7.8107434862479082 2.3728137823111595E-003 - 7.8129009506298033 2.3366977382665382E-003 - 7.8150538016628186 2.3278129234841397E-003 - 7.8172020377180615 2.3582078790188978E-003 - 7.8193456571666324 2.3961869836487855E-003 - 7.8214846583796387 2.4255631173154936E-003 - 7.8236190397281842 2.4456730304190538E-003 - 7.8257487995833728 2.4613114961579505E-003 - 7.8278739363163137 2.4682891350389104E-003 - 7.8299944482981072 2.4506916804282065E-003 - 7.8321103338998590 2.4168926330203353E-003 - 7.8342215914926747 2.3991574860502871E-003 - 7.8363282194476582 2.3998801463425701E-003 - 7.8384302161359152 2.3688489956759083E-003 - 7.8405275799285477 2.2757749623213137E-003 - 7.8426203091966649 2.1631032712500042E-003 - 7.8447084023113689 2.0904555667781368E-003 - 7.8467918576437654 2.0725914850968515E-003 - 7.8488706735649565 2.1000151156158609E-003 - 7.8509448484460513 2.1532550971139690E-003 - 7.8530143806581520 2.1891571239082614E-003 - 7.8550792685723643 2.1786478137885081E-003 - 7.8571395105597919 2.1553289211546818E-003 - 7.8591951049915387 2.1483479284684966E-003 - 7.8612460502387140 2.1569281634097465E-003 - 7.8632923446724163 2.1771612940532691E-003 - 7.8653339866637548 2.1960299789984170E-003 - 7.8673709745838334 2.1887090004449627E-003 - 7.8694033068037577 2.1734665525504778E-003 - 7.8714309816946297 2.1790777961551871E-003 - 7.8734539976275553 2.1868653501781856E-003 - 7.8754723529736381 2.1821065464132658E-003 - 7.8774860461039857 2.1721544153916359E-003 - 7.8794950753897020 2.1590896531153425E-003 - 7.8814994392018924 2.1435449835289868E-003 - 7.8834991359116593 2.1341098124685572E-003 - 7.8854941638901082 2.1294197155495567E-003 - 7.8874845215083464 2.1254335923965501E-003 - 7.8894702071374745 2.1392548693467141E-003 - 7.8914512191486033 2.2030388004889555E-003 - 7.8934275559128295 2.2954121164637407E-003 - 7.8953992158012625 2.3441890770493777E-003 - 7.8973661971850078 2.3300830488724596E-003 - 7.8993284984351710 2.2858814637744564E-003 - 7.9012861179228508 2.2264630055057939E-003 - 7.9032390540191599 2.1465646038385062E-003 - 7.9051873050951968 2.0769795385866246E-003 - 7.9071308695220708 2.0560917594750479E-003 - 7.9090697456708803 2.0765455681111327E-003 - 7.9110039319127381 2.1059588727778025E-003 - 7.9129334266187445 2.1291918377655461E-003 - 7.9148582281600035 2.1459960938238769E-003 - 7.9167783349076224 2.1584421272595041E-003 - 7.9186937452327051 2.1691994326928383E-003 - 7.9206044575063572 2.1831738854516725E-003 - 7.9225104700996809 2.1939857723534762E-003 - 7.9244117813837818 2.1944607124122877E-003 - 7.9263083897297673 2.1892565602860707E-003 - 7.9282002935087394 2.1788838462718707E-003 - 7.9300874910918040 2.1638586952086427E-003 - 7.9319699808500630 2.1452963837547399E-003 - 7.9338477611546274 2.1331930230370157E-003 - 7.9357208303765958 2.1494363024607767E-003 - 7.9375891868870774 2.1937524881511412E-003 - 7.9394528290571742 2.2254272838322028E-003 - 7.9413117552579919 2.2020748758654167E-003 - 7.9431659638606327 2.1426112333290193E-003 - 7.9450154532362056 2.1006817007156284E-003 - 7.9468602217558146 2.0852766353195470E-003 - 7.9487002677905618 2.0868020822158466E-003 - 7.9505355897115546 2.1033417925030847E-003 - 7.9523661858898969 2.1246982807308140E-003 - 7.9541920546966907 2.1420099087144711E-003 - 7.9560131945030488 2.1493141032516423E-003 - 7.9578296036800662 2.1333578562796884E-003 - 7.9596412805988539 2.0934576459098317E-003 - 7.9614482236305140 2.0579134945998903E-003 - 7.9632504311461521 2.0575455287138479E-003 - 7.9650479015168720 2.0814267168992985E-003 - 7.9668406331137795 2.0916935696311261E-003 - 7.9686286243079820 2.0720013622874938E-003 - 7.9704118734705780 2.0461899171871716E-003 - 7.9721903789726785 2.0486109568573028E-003 - 7.9739641391853837 2.0886714156712633E-003 - 7.9757331524798012 2.1471503251451170E-003 - 7.9774974172270348 2.1957221871246662E-003 - 7.9792569317981901 2.2163351643088632E-003 - 7.9810116945643692 2.2132843686534444E-003 - 7.9827617038966778 2.2095640755060192E-003 - 7.9845069581662251 2.2178410375125785E-003 - 7.9862474557441097 2.2305133361889651E-003 - 7.9879831950014388 2.2398116699433889E-003 - 7.9897141743093201 2.2536758436676493E-003 - 7.9914403920388519 2.2839235000799551E-003 - 7.9931618465611436 2.3236023234545281E-003 - 7.9948785362473007 2.3490138471524303E-003 - 7.9965904594684254 2.3494389416433854E-003 - 7.9982976145956250 2.3366655542433269E-003 - 8.0000000000000000 2.3217609162934044E-003 - 8.0016999999999996 2.3010354474862168E-003 - 8.0033999999999992 2.2735997983090676E-003 - 8.0051000000000005 2.2543104666957769E-003 - 8.0068000000000001 2.2529541844463750E-003 - 8.0084999999999997 2.2677342406872488E-003 - 8.0101999999999993 2.2981094248044260E-003 - 8.0119000000000007 2.3313238524422693E-003 - 8.0136000000000003 2.3433441733527434E-003 - 8.0152999999999999 2.3217999727440900E-003 - 8.0169999999999995 2.2706662758124841E-003 - 8.0187000000000008 2.2002286000377506E-003 - 8.0204000000000004 2.1373697680422774E-003 - 8.0221000000000000 2.1080758333815032E-003 - 8.0237999999999996 2.1075745930348327E-003 - 8.0254999999999992 2.1124072876695585E-003 - 8.0272000000000006 2.1066415269445512E-003 - 8.0289000000000001 2.1028598014299683E-003 - 8.0305999999999997 2.1263272373700489E-003 - 8.0322999999999993 2.1815649053832679E-003 - 8.0340000000000007 2.2412073677230025E-003 - 8.0357000000000003 2.2626797952105000E-003 - 8.0373999999999999 2.2359945024101649E-003 - 8.0390999999999995 2.2001756640764917E-003 - 8.0408000000000008 2.1908136534072335E-003 - 8.0425000000000004 2.2062074485149990E-003 - 8.0442000000000000 2.2228883408643950E-003 - 8.0458999999999996 2.2237161972775174E-003 - 8.0475999999999992 2.2161332608504314E-003 - 8.0493000000000006 2.2125204787208203E-003 - 8.0510000000000002 2.2113865415679377E-003 - 8.0526999999999997 2.1994635766283211E-003 - 8.0543999999999993 2.1688234698161346E-003 - 8.0561000000000007 2.1392796605994979E-003 - 8.0578000000000003 2.1282362402560923E-003 - 8.0594999999999999 2.1166886631360372E-003 - 8.0611999999999995 2.0861625283597656E-003 - 8.0629000000000008 2.0642694310618465E-003 - 8.0646000000000004 2.0803716918184052E-003 - 8.0663000000000000 2.1137074518238156E-003 - 8.0679999999999996 2.1237000887691071E-003 - 8.0696999999999992 2.1012995494401432E-003 - 8.0714000000000006 2.0727562740337491E-003 - 8.0731000000000002 2.0611304164895473E-003 - 8.0747999999999998 2.0641920200240179E-003 - 8.0764999999999993 2.0703215494734034E-003 - 8.0782000000000007 2.0777867997345072E-003 - 8.0799000000000003 2.0809498118725535E-003 - 8.0815999999999999 2.0739375379799372E-003 - 8.0832999999999995 2.0776129888628553E-003 - 8.0850000000000009 2.1156477264983107E-003 - 8.0867000000000004 2.1744522548839788E-003 - 8.0884000000000000 2.2195256190614653E-003 - 8.0900999999999996 2.2292789985777261E-003 - 8.0917999999999992 2.2163613384176281E-003 - 8.0935000000000006 2.2011066766695142E-003 - 8.0952000000000002 2.2034417296933569E-003 - 8.0968999999999998 2.2416321729248141E-003 - 8.0985999999999994 2.2907251093237514E-003 - 8.1003000000000007 2.3183641536814376E-003 - 8.1020000000000003 2.3300235406755999E-003 - 8.1036999999999999 2.3396624345909680E-003 - 8.1053999999999995 2.3559716092300459E-003 - 8.1071000000000009 2.3691919312399511E-003 - 8.1088000000000005 2.3579863990688807E-003 - 8.1105000000000000 2.3280387594609435E-003 - 8.1121999999999996 2.3135009154884589E-003 - 8.1138999999999992 2.3283306718549011E-003 - 8.1156000000000006 2.3380117461726589E-003 - 8.1173000000000002 2.3001169369419997E-003 - 8.1189999999999998 2.2236780967181207E-003 - 8.1206999999999994 2.1659203881746513E-003 - 8.1224000000000007 2.1531444233682923E-003 - 8.1241000000000003 2.1636763206074280E-003 - 8.1257999999999999 2.1651936765786392E-003 - 8.1274999999999995 2.1476701946357428E-003 - 8.1292000000000009 2.1387116852411799E-003 - 8.1309000000000005 2.1659329803797697E-003 - 8.1326000000000001 2.2246624823493645E-003 - 8.1342999999999996 2.2815401882482636E-003 - 8.1359999999999992 2.3139778177737446E-003 - 8.1377000000000006 2.3225235541185704E-003 - 8.1394000000000002 2.3129047620457283E-003 - 8.1410999999999998 2.3011939372927330E-003 - 8.1427999999999994 2.2936558555434168E-003 - 8.1445000000000007 2.2781226745195826E-003 - 8.1462000000000003 2.2583701820368084E-003 - 8.1478999999999999 2.2540628253467114E-003 - 8.1495999999999995 2.2779767851832285E-003 - 8.1512999999999991 2.3239464200746230E-003 - 8.1530000000000005 2.3753097813589167E-003 - 8.1547000000000001 2.4168547060127569E-003 - 8.1563999999999997 2.4347176448145606E-003 - 8.1580999999999992 2.4428518668978363E-003 - 8.1598000000000006 2.4688802655165559E-003 - 8.1615000000000002 2.5037969182091701E-003 - 8.1631999999999998 2.5037218922109080E-003 - 8.1648999999999994 2.4516929799840966E-003 - 8.1666000000000007 2.3826775632838329E-003 - 8.1683000000000003 2.3337568157135451E-003 - 8.1699999999999999 2.3016447820103669E-003 - 8.1716999999999995 2.2610463199837418E-003 - 8.1734000000000009 2.2126543654012285E-003 - 8.1751000000000005 2.1833168450477738E-003 - 8.1768000000000001 2.1968319654100577E-003 - 8.1784999999999997 2.2603203443680611E-003 - 8.1801999999999992 2.3432565153110843E-003 - 8.1819000000000006 2.3986736266416371E-003 - 8.1836000000000002 2.4154889378467559E-003 - 8.1852999999999998 2.4136516415004831E-003 - 8.1869999999999994 2.3979908432607611E-003 - 8.1887000000000008 2.3590756405163127E-003 - 8.1904000000000003 2.3060354613319823E-003 - 8.1920999999999999 2.2805379252516557E-003 - 8.1937999999999995 2.3122626490183606E-003 - 8.1954999999999991 2.3579449689645482E-003 - 8.1972000000000005 2.3511397090165893E-003 - 8.1989000000000001 2.3054126568995735E-003 - 8.2005999999999997 2.2896424961569343E-003 - 8.2022999999999993 2.3192393037789268E-003 - 8.2040000000000006 2.3601549433821109E-003 - 8.2057000000000002 2.3899359887732236E-003 - 8.2073999999999998 2.4010988640954197E-003 - 8.2090999999999994 2.3909210459972545E-003 - 8.2108000000000008 2.3677573499298532E-003 - 8.2125000000000004 2.3419400612560153E-003 - 8.2141999999999999 2.3125736840200334E-003 - 8.2158999999999995 2.2708305472099906E-003 - 8.2175999999999991 2.2193369650981812E-003 - 8.2193000000000005 2.1758222075373328E-003 - 8.2210000000000001 2.1536543823142966E-003 - 8.2226999999999997 2.1496306151248647E-003 - 8.2243999999999993 2.1472893646810555E-003 - 8.2261000000000006 2.1357451938281724E-003 - 8.2278000000000002 2.1178837653111726E-003 - 8.2294999999999998 2.1063833047583651E-003 - 8.2311999999999994 2.1076747228394046E-003 - 8.2329000000000008 2.1117400123380659E-003 - 8.2346000000000004 2.1017780694806820E-003 - 8.2363000000000000 2.0785323588436932E-003 - 8.2379999999999995 2.0640300296348424E-003 - 8.2396999999999991 2.0619960402717087E-003 - 8.2414000000000005 2.0577299371811776E-003 - 8.2431000000000001 2.0493347525357862E-003 - 8.2447999999999997 2.0482281716016596E-003 - 8.2464999999999993 2.0646394846107318E-003 - 8.2482000000000006 2.0952870608865254E-003 - 8.2499000000000002 2.1269242027383705E-003 - 8.2515999999999998 2.1562918729287560E-003 - 8.2532999999999994 2.1870984915911716E-003 - 8.2550000000000008 2.2103131090469149E-003 - 8.2567000000000004 2.2166796359268898E-003 - 8.2584000000000000 2.2140771991899936E-003 - 8.2600999999999996 2.2181671963013064E-003 - 8.2617999999999991 2.2276602508133239E-003 - 8.2635000000000005 2.2265460970470425E-003 - 8.2652000000000001 2.2167990498294541E-003 - 8.2668999999999997 2.2227210249269199E-003 - 8.2685999999999993 2.2528742591123876E-003 - 8.2703000000000007 2.2849392565542767E-003 - 8.2720000000000002 2.2908752050723380E-003 - 8.2736999999999998 2.2713649489299911E-003 - 8.2753999999999994 2.2537746892937081E-003 - 8.2771000000000008 2.2597683332971599E-003 - 8.2788000000000004 2.2967717009957250E-003 - 8.2805000000000000 2.3553855705136318E-003 - 8.2821999999999996 2.4205681038169712E-003 - 8.2838999999999992 2.4716157108697033E-003 - 8.2856000000000005 2.4874207535630160E-003 - 8.2873000000000001 2.4583708028727896E-003 - 8.2889999999999997 2.3886341344936312E-003 - 8.2906999999999993 2.3090807696572462E-003 - 8.2924000000000007 2.2607441026460183E-003 - 8.2941000000000003 2.2527068202727817E-003 - 8.2957999999999998 2.2642587763009449E-003 - 8.2974999999999994 2.2755432586374137E-003 - 8.2992000000000008 2.2855871658206480E-003 - 8.3009000000000004 2.2973748340187807E-003 - 8.3026000000000000 2.2987862799120910E-003 - 8.3042999999999996 2.2790807026895382E-003 - 8.3059999999999992 2.2587300721030471E-003 - 8.3077000000000005 2.2598518578244445E-003 - 8.3094000000000001 2.2783824618952328E-003 - 8.3110999999999997 2.2972410928036912E-003 - 8.3127999999999993 2.2982663484372797E-003 - 8.3145000000000007 2.2767415584756521E-003 - 8.3162000000000003 2.2497383771702753E-003 - 8.3178999999999998 2.2417200761008721E-003 - 8.3195999999999994 2.2669113617304710E-003 - 8.3213000000000008 2.3089948276044732E-003 - 8.3230000000000004 2.3233771469374489E-003 - 8.3247000000000000 2.2752902769428152E-003 - 8.3263999999999996 2.1786994897061494E-003 - 8.3280999999999992 2.0795096457160017E-003 - 8.3298000000000005 2.0239261104289617E-003 - 8.3315000000000001 2.0313134688212742E-003 - 8.3331999999999997 2.0791157248714266E-003 - 8.3348999999999993 2.1274373057176637E-003 - 8.3366000000000007 2.1587252988680620E-003 - 8.3383000000000003 2.1759930059915907E-003 - 8.3399999999999999 2.1879237040267358E-003 - 8.3416999999999994 2.2057946044171215E-003 - 8.3434000000000008 2.2321800665189222E-003 - 8.3451000000000004 2.2571953072249044E-003 - 8.3468000000000000 2.2714786714371255E-003 - 8.3484999999999996 2.2633461274127365E-003 - 8.3501999999999992 2.2372665940516836E-003 - 8.3519000000000005 2.2096011858226319E-003 - 8.3536000000000001 2.1843253239517790E-003 - 8.3552999999999997 2.1656545809170835E-003 - 8.3569999999999993 2.1653330630450190E-003 - 8.3587000000000007 2.1851881502631988E-003 - 8.3604000000000003 2.2086682590544597E-003 - 8.3620999999999999 2.2256227082177783E-003 - 8.3637999999999995 2.2388736593642856E-003 - 8.3655000000000008 2.2501462245966271E-003 - 8.3672000000000004 2.2655716055951535E-003 - 8.3689000000000000 2.2925062126262718E-003 - 8.3705999999999996 2.3184361341872452E-003 - 8.3722999999999992 2.3323804589607425E-003 - 8.3740000000000006 2.3338087134969474E-003 - 8.3757000000000001 2.3203110272751741E-003 - 8.3773999999999997 2.2888669724522941E-003 - 8.3790999999999993 2.2369954728679799E-003 - 8.3808000000000007 2.1841435264404133E-003 - 8.3825000000000003 2.1472595849161445E-003 - 8.3841999999999999 2.1085238180646054E-003 - 8.3858999999999995 2.0646609725776498E-003 - 8.3876000000000008 2.0565395849034634E-003 - 8.3893000000000004 2.1144548911146031E-003 - 8.3910000000000000 2.2139819309652370E-003 - 8.3926999999999996 2.2932288565017086E-003 - 8.3943999999999992 2.3073800273221523E-003 - 8.3961000000000006 2.2753387938913767E-003 - 8.3978000000000002 2.2498595471939211E-003 - 8.3994999999999997 2.2551570898352285E-003 - 8.4011999999999993 2.2835693846725946E-003 - 8.4029000000000007 2.3265458972723746E-003 - 8.4046000000000003 2.3781700670103185E-003 - 8.4062999999999999 2.4141551354234236E-003 - 8.4079999999999995 2.4113944465561218E-003 - 8.4097000000000008 2.3736706082815285E-003 - 8.4114000000000004 2.3131206197654379E-003 - 8.4131000000000000 2.2464589529700178E-003 - 8.4147999999999996 2.1972242660054857E-003 - 8.4164999999999992 2.1733551730491168E-003 - 8.4182000000000006 2.1674421026393227E-003 - 8.4199000000000002 2.1792455831189357E-003 - 8.4215999999999998 2.2050890076131743E-003 - 8.4232999999999993 2.2279316638378669E-003 - 8.4250000000000007 2.2430586670955949E-003 - 8.4267000000000003 2.2573776903481823E-003 - 8.4283999999999999 2.2697100410699897E-003 - 8.4300999999999995 2.2689501588221399E-003 - 8.4317999999999991 2.2540265670841181E-003 - 8.4335000000000004 2.2436016904883289E-003 - 8.4352000000000000 2.2512346605000197E-003 - 8.4368999999999996 2.2606625072967863E-003 - 8.4385999999999992 2.2568586123131577E-003 - 8.4403000000000006 2.2534744589240326E-003 - 8.4420000000000002 2.2579418644924974E-003 - 8.4436999999999998 2.2598651477912768E-003 - 8.4453999999999994 2.2521734367260604E-003 - 8.4471000000000007 2.2407884064213606E-003 - 8.4488000000000003 2.2345929571697216E-003 - 8.4504999999999999 2.2370560297036417E-003 - 8.4521999999999995 2.2426415398796970E-003 - 8.4539000000000009 2.2424284594006316E-003 - 8.4556000000000004 2.2332433709076650E-003 - 8.4573000000000000 2.2130950548290809E-003 - 8.4589999999999996 2.1999041111025811E-003 - 8.4606999999999992 2.2164350626036984E-003 - 8.4624000000000006 2.2422884475424092E-003 - 8.4641000000000002 2.2382325202868572E-003 - 8.4657999999999998 2.1928466543342045E-003 - 8.4674999999999994 2.1183945231385208E-003 - 8.4692000000000007 2.0480757841399477E-003 - 8.4709000000000003 2.0178118683906476E-003 - 8.4725999999999999 2.0239112804402819E-003 - 8.4742999999999995 2.0328338368799177E-003 - 8.4759999999999991 2.0284762605719845E-003 - 8.4777000000000005 2.0201412955769622E-003 - 8.4794000000000000 2.0233375987075463E-003 - 8.4810999999999996 2.0513107311720858E-003 - 8.4827999999999992 2.1022110420908023E-003 - 8.4845000000000006 2.1617648313109680E-003 - 8.4862000000000002 2.2158961062701357E-003 - 8.4878999999999998 2.2580117133768514E-003 - 8.4895999999999994 2.2927329181272986E-003 - 8.4913000000000007 2.3147810662998663E-003 - 8.4930000000000003 2.3126845397958809E-003 - 8.4946999999999999 2.2839456746117466E-003 - 8.4963999999999995 2.2466543899174714E-003 - 8.4981000000000009 2.2278069555837425E-003 - 8.4998000000000005 2.2267475255545984E-003 - 8.5015000000000001 2.2182368132427559E-003 - 8.5031999999999996 2.1839462815096784E-003 - 8.5048999999999992 2.1420797882037066E-003 - 8.5066000000000006 2.1238553374160300E-003 - 8.5083000000000002 2.1306727965811228E-003 - 8.5099999999999998 2.1379897267666315E-003 - 8.5116999999999994 2.1357226003170990E-003 - 8.5134000000000007 2.1349305502795747E-003 - 8.5151000000000003 2.1465851671725006E-003 - 8.5167999999999999 2.1632641900735361E-003 - 8.5184999999999995 2.1603840423317453E-003 - 8.5201999999999991 2.1263198260625064E-003 - 8.5219000000000005 2.0878953760540856E-003 - 8.5236000000000001 2.0843838986229673E-003 - 8.5252999999999997 2.1223322797594610E-003 - 8.5269999999999992 2.1771010138396081E-003 - 8.5287000000000006 2.2184829119447332E-003 - 8.5304000000000002 2.2319167919960534E-003 - 8.5320999999999998 2.2211542320881702E-003 - 8.5337999999999994 2.2069365102956972E-003 - 8.5355000000000008 2.2165346485911717E-003 - 8.5372000000000003 2.2401833787486980E-003 - 8.5388999999999999 2.2425516756974548E-003 - 8.5405999999999995 2.2177168080315837E-003 - 8.5423000000000009 2.1811221522732029E-003 - 8.5440000000000005 2.1419815007349264E-003 - 8.5457000000000001 2.1038896394648247E-003 - 8.5473999999999997 2.0728739873710164E-003 - 8.5490999999999993 2.0534330460615772E-003 - 8.5508000000000006 2.0457253962483904E-003 - 8.5525000000000002 2.0498150555488246E-003 - 8.5541999999999998 2.0599096931833145E-003 - 8.5558999999999994 2.0635098538278229E-003 - 8.5576000000000008 2.0567105014629963E-003 - 8.5593000000000004 2.0460294243553378E-003 - 8.5609999999999999 2.0377146114829241E-003 - 8.5626999999999995 2.0368749302820391E-003 - 8.5643999999999991 2.0452252582021636E-003 - 8.5661000000000005 2.0619711219502829E-003 - 8.5678000000000001 2.0817352261876506E-003 - 8.5694999999999997 2.1008125114326199E-003 - 8.5711999999999993 2.1167402103896373E-003 - 8.5729000000000006 2.1323952608001181E-003 - 8.5746000000000002 2.1480961282698010E-003 - 8.5762999999999998 2.1495157746955124E-003 - 8.5779999999999994 2.1263687850818979E-003 - 8.5797000000000008 2.0981175489406065E-003 - 8.5814000000000004 2.0946890135159304E-003 - 8.5831000000000000 2.1175345007624588E-003 - 8.5847999999999995 2.1568693602745368E-003 - 8.5865000000000009 2.2021670652126657E-003 - 8.5882000000000005 2.2405663837898469E-003 - 8.5899000000000001 2.2662703801327568E-003 - 8.5915999999999997 2.2790900875906371E-003 - 8.5932999999999993 2.2758427861362504E-003 - 8.5950000000000006 2.2454145056505577E-003 - 8.5967000000000002 2.1800251994888815E-003 - 8.5983999999999998 2.0942353669816905E-003 - 8.6000999999999994 2.0193423895303033E-003 - 8.6018000000000008 1.9727672358668211E-003 - 8.6035000000000004 1.9526070334470321E-003 - 8.6052000000000000 1.9568192675950215E-003 - 8.6068999999999996 1.9821797348688703E-003 - 8.6085999999999991 2.0131508450750694E-003 - 8.6103000000000005 2.0144035134114892E-003 - 8.6120000000000001 1.9669804432163422E-003 - 8.6136999999999997 1.9194202384593541E-003 - 8.6153999999999993 1.9456598226848072E-003 - 8.6171000000000006 2.0386662084239853E-003 - 8.6188000000000002 2.1354910624995357E-003 - 8.6204999999999998 2.1849515867782376E-003 - 8.6221999999999994 2.1742194234992168E-003 - 8.6239000000000008 2.1342832156097343E-003 - 8.6256000000000004 2.1094476057848120E-003 - 8.6273000000000000 2.1132905692686733E-003 - 8.6289999999999996 2.1219847512696432E-003 - 8.6306999999999992 2.1081970343168493E-003 - 8.6324000000000005 2.0718674349767818E-003 - 8.6341000000000001 2.0335082248419422E-003 - 8.6357999999999997 2.0186736673167205E-003 - 8.6374999999999993 2.0352517528833651E-003 - 8.6392000000000007 2.0567870168630756E-003 - 8.6409000000000002 2.0620357347284103E-003 - 8.6425999999999998 2.0628545748019203E-003 - 8.6442999999999994 2.0597201880511889E-003 - 8.6460000000000008 2.0414145795601339E-003 - 8.6477000000000004 2.0188423738272286E-003 - 8.6494000000000000 2.0141547244550604E-003 - 8.6510999999999996 2.0328891717063843E-003 - 8.6527999999999992 2.0570505458651408E-003 - 8.6545000000000005 2.0671166043008094E-003 - 8.6562000000000001 2.0632044002165352E-003 - 8.6578999999999997 2.0648032085523785E-003 - 8.6595999999999993 2.0813138463884376E-003 - 8.6613000000000007 2.0990692911462966E-003 - 8.6630000000000003 2.1027587632196608E-003 - 8.6646999999999998 2.0873376402011997E-003 - 8.6663999999999994 2.0539003983599019E-003 - 8.6680999999999990 2.0091466056416881E-003 - 8.6698000000000004 1.9644045669411168E-003 - 8.6715000000000000 1.9348663943257584E-003 - 8.6731999999999996 1.9309870123997695E-003 - 8.6748999999999992 1.9409684767148360E-003 - 8.6766000000000005 1.9419964740279713E-003 - 8.6783000000000001 1.9269450987593919E-003 - 8.6799999999999997 1.9164774091256806E-003 - 8.6816999999999993 1.9300860773009988E-003 - 8.6834000000000007 1.9584687980546208E-003 - 8.6851000000000003 1.9845730244168695E-003 - 8.6867999999999999 2.0047140593535567E-003 - 8.6884999999999994 2.0264236762844879E-003 - 8.6902000000000008 2.0597032717489753E-003 - 8.6919000000000004 2.0986709555057196E-003 - 8.6936000000000000 2.1177231423424561E-003 - 8.6952999999999996 2.0996391937007980E-003 - 8.6969999999999992 2.0522590635570805E-003 - 8.6987000000000005 2.0071552699651562E-003 - 8.7004000000000001 1.9970534238115231E-003 - 8.7020999999999997 2.0131798647898477E-003 - 8.7037999999999993 2.0296005782780954E-003 - 8.7055000000000007 2.0390529353410932E-003 - 8.7072000000000003 2.0429062114028958E-003 - 8.7088999999999999 2.0425496971624023E-003 - 8.7105999999999995 2.0447020464315758E-003 - 8.7122999999999990 2.0448640178513150E-003 - 8.7140000000000004 2.0317188917101346E-003 - 8.7157000000000000 2.0106987845703293E-003 - 8.7173999999999996 1.9887516658338919E-003 - 8.7190999999999992 1.9670779313062502E-003 - 8.7208000000000006 1.9496512919392696E-003 - 8.7225000000000001 1.9450188283872112E-003 - 8.7241999999999997 1.9542876588142964E-003 - 8.7258999999999993 1.9634581253902181E-003 - 8.7276000000000007 1.9633129674570425E-003 - 8.7293000000000003 1.9584389103173634E-003 - 8.7309999999999999 1.9608270690542186E-003 - 8.7326999999999995 1.9717757684455774E-003 - 8.7344000000000008 1.9757712348917630E-003 - 8.7361000000000004 1.9614208885332914E-003 - 8.7378000000000000 1.9334317683177701E-003 - 8.7394999999999996 1.9098793576705496E-003 - 8.7411999999999992 1.9002770397723088E-003 - 8.7429000000000006 1.9030790405948016E-003 - 8.7446000000000002 1.9155050757618554E-003 - 8.7462999999999997 1.9460811727951557E-003 - 8.7479999999999993 2.0067717664790023E-003 - 8.7497000000000007 2.0854839245073300E-003 - 8.7514000000000003 2.1536611795946316E-003 - 8.7530999999999999 2.1899330666326857E-003 - 8.7547999999999995 2.1963182665077248E-003 - 8.7564999999999991 2.1919850233962168E-003 - 8.7582000000000004 2.2014364572817786E-003 - 8.7599000000000000 2.2316212737817378E-003 - 8.7615999999999996 2.2492224141014085E-003 - 8.7632999999999992 2.2347065803460988E-003 - 8.7650000000000006 2.2225876951250789E-003 - 8.7667000000000002 2.2289690158254008E-003 - 8.7683999999999997 2.2238002693091194E-003 - 8.7700999999999993 2.1850062155519532E-003 - 8.7718000000000007 2.1341091874422066E-003 - 8.7735000000000003 2.1060455176854140E-003 - 8.7751999999999999 2.1090557361894192E-003 - 8.7768999999999995 2.1237259293672996E-003 - 8.7786000000000008 2.1178956417270607E-003 - 8.7803000000000004 2.0805602030977482E-003 - 8.7820000000000000 2.0418099920766629E-003 - 8.7836999999999996 2.0243905933160348E-003 - 8.7853999999999992 2.0155386627684936E-003 - 8.7871000000000006 2.0028306869843042E-003 - 8.7888000000000002 1.9959948232005568E-003 - 8.7904999999999998 2.0109190042856546E-003 - 8.7921999999999993 2.0399019579556057E-003 - 8.7939000000000007 2.0622116881957734E-003 - 8.7956000000000003 2.0735560415364946E-003 - 8.7972999999999999 2.0732862249463360E-003 - 8.7989999999999995 2.0609946388990305E-003 - 8.8006999999999991 2.0478408809840227E-003 - 8.8024000000000004 2.0411773022482012E-003 - 8.8041000000000000 2.0339668470407270E-003 - 8.8057999999999996 2.0139131038253173E-003 - 8.8074999999999992 1.9775640316361011E-003 - 8.8092000000000006 1.9395760611614010E-003 - 8.8109000000000002 1.9163015117491320E-003 - 8.8125999999999998 1.9138603842634074E-003 - 8.8142999999999994 1.9326163805814358E-003 - 8.8160000000000007 1.9653574047796790E-003 - 8.8177000000000003 2.0049334858332187E-003 - 8.8193999999999999 2.0468008872690435E-003 - 8.8210999999999995 2.0770184627892253E-003 - 8.8228000000000009 2.0777432888983258E-003 - 8.8245000000000005 2.0555874094726804E-003 - 8.8262000000000000 2.0388060263371319E-003 - 8.8278999999999996 2.0435661514556628E-003 - 8.8295999999999992 2.0654789464685163E-003 - 8.8313000000000006 2.0904175441049649E-003 - 8.8330000000000002 2.1047405805685567E-003 - 8.8346999999999998 2.1036438523785320E-003 - 8.8363999999999994 2.0948566363933187E-003 - 8.8381000000000007 2.0859925131809271E-003 - 8.8398000000000003 2.0755557409588205E-003 - 8.8414999999999999 2.0681115454045818E-003 - 8.8431999999999995 2.0741423689140475E-003 - 8.8448999999999991 2.1064153261880487E-003 - 8.8466000000000005 2.1742169593956936E-003 - 8.8483000000000001 2.2620755331704194E-003 - 8.8499999999999996 2.3438089898490302E-003 - 8.8516999999999992 2.4085737898597998E-003 - 8.8534000000000006 2.4500485029928932E-003 - 8.8551000000000002 2.4541990157244133E-003 - 8.8567999999999998 2.4204817596754961E-003 - 8.8584999999999994 2.3748857187026466E-003 - 8.8602000000000007 2.3509854991962211E-003 - 8.8619000000000003 2.3577775435189774E-003 - 8.8635999999999999 2.3753806514604870E-003 - 8.8652999999999995 2.3805172567363119E-003 - 8.8670000000000009 2.3699636535249213E-003 - 8.8687000000000005 2.3534645112576842E-003 - 8.8704000000000001 2.3480315979712350E-003 - 8.8720999999999997 2.3595817768499480E-003 - 8.8737999999999992 2.3747888353520363E-003 - 8.8755000000000006 2.3597641641189353E-003 - 8.8772000000000002 2.3036663549495088E-003 - 8.8788999999999998 2.2513053698300462E-003 - 8.8805999999999994 2.2191562407013290E-003 - 8.8823000000000008 2.1803369663301168E-003 - 8.8840000000000003 2.1392809107505049E-003 - 8.8856999999999999 2.1222526203869643E-003 - 8.8873999999999995 2.1301479937593120E-003 - 8.8890999999999991 2.1542774738742393E-003 - 8.8908000000000005 2.1996624935639976E-003 - 8.8925000000000001 2.2527532622748422E-003 - 8.8941999999999997 2.2812926497166913E-003 - 8.8958999999999993 2.2775196435284059E-003 - 8.8976000000000006 2.2700842494999107E-003 - 8.8993000000000002 2.2712570690095945E-003 - 8.9009999999999998 2.2666246485859476E-003 - 8.9026999999999994 2.2576570781341243E-003 - 8.9044000000000008 2.2547344408887842E-003 - 8.9061000000000003 2.2484986269764315E-003 - 8.9077999999999999 2.2137927900494981E-003 - 8.9094999999999995 2.1456944184115459E-003 - 8.9111999999999991 2.0854804173429924E-003 - 8.9129000000000005 2.0692151502572083E-003 - 8.9146000000000001 2.0745978334004806E-003 - 8.9162999999999997 2.0832906141014245E-003 - 8.9179999999999993 2.1233883748488884E-003 - 8.9197000000000006 2.1963852910010660E-003 - 8.9214000000000002 2.2586583111334217E-003 - 8.9230999999999998 2.2685086148135957E-003 - 8.9247999999999994 2.2210379372944074E-003 - 8.9265000000000008 2.1568260449080032E-003 - 8.9282000000000004 2.1285006271363109E-003 - 8.9298999999999999 2.1491541279806694E-003 - 8.9315999999999995 2.1854982878369992E-003 - 8.9332999999999991 2.1968829896194977E-003 - 8.9350000000000005 2.1636770875297830E-003 - 8.9367000000000001 2.1037482547123024E-003 - 8.9383999999999997 2.0517465237863850E-003 - 8.9400999999999993 2.0124015848168391E-003 - 8.9418000000000006 1.9738396940162119E-003 - 8.9435000000000002 1.9547788092251963E-003 - 8.9451999999999998 1.9954067054490758E-003 - 8.9468999999999994 2.0716406088288433E-003 - 8.9486000000000008 2.1107477201716394E-003 - 8.9503000000000004 2.0940795381825940E-003 - 8.9520000000000000 2.0601394225860659E-003 - 8.9536999999999995 2.0437312974180845E-003 - 8.9553999999999991 2.0461809110118765E-003 - 8.9571000000000005 2.0511091060680629E-003 - 8.9588000000000001 2.0461228563771233E-003 - 8.9604999999999997 2.0321828846331423E-003 - 8.9621999999999993 2.0110005140662390E-003 - 8.9639000000000006 1.9892321608758370E-003 - 8.9656000000000002 1.9749750179563958E-003 - 8.9672999999999998 1.9694597142186992E-003 - 8.9689999999999994 1.9716906841991543E-003 - 8.9707000000000008 1.9880682915022299E-003 - 8.9724000000000004 2.0189634377410339E-003 - 8.9741000000000000 2.0477740590552226E-003 - 8.9757999999999996 2.0607260069523117E-003 - 8.9774999999999991 2.0699124282589076E-003 - 8.9792000000000005 2.0861111091129364E-003 - 8.9809000000000001 2.0994583134183961E-003 - 8.9825999999999997 2.1008496242155327E-003 - 8.9842999999999993 2.0842305786818688E-003 - 8.9860000000000007 2.0578085201981111E-003 - 8.9877000000000002 2.0482548456878134E-003 - 8.9893999999999998 2.0758703541285364E-003 - 8.9910999999999994 2.1193223594714408E-003 - 8.9927999999999990 2.1306916359996016E-003 - 8.9945000000000004 2.1025373801018769E-003 - 8.9962000000000000 2.0640453842621178E-003 - 8.9978999999999996 2.0234268360437430E-003 - 8.9995999999999992 1.9892520542285526E-003 - 9.0013000000000005 1.9963636237882131E-003 - 9.0030000000000001 2.0631265479207905E-003 - 9.0046999999999997 2.1673854999325749E-003 - 9.0063999999999993 2.2665360684448518E-003 - 9.0081000000000007 2.3151454385954132E-003 - 9.0098000000000003 2.3015818303650055E-003 - 9.0114999999999998 2.2667282455410042E-003 - 9.0131999999999994 2.2467929807869782E-003 - 9.0149000000000008 2.2304707704344775E-003 - 9.0166000000000004 2.1977772355638195E-003 - 9.0183000000000000 2.1604121371333130E-003 - 9.0199999999999996 2.1402778991910449E-003 - 9.0216999999999992 2.1369914990628774E-003 - 9.0234000000000005 2.1430963043013555E-003 - 9.0251000000000001 2.1596647954451511E-003 - 9.0267999999999997 2.1823994151395024E-003 - 9.0284999999999993 2.1957091057015652E-003 - 9.0302000000000007 2.1789599109412242E-003 - 9.0319000000000003 2.1336120836986053E-003 - 9.0335999999999999 2.0894681303528471E-003 - 9.0352999999999994 2.0678225515489163E-003 - 9.0369999999999990 2.0594512201188003E-003 - 9.0387000000000004 2.0453271165494172E-003 - 9.0404000000000000 2.0224533251413908E-003 - 9.0420999999999996 2.0110506659357275E-003 - 9.0437999999999992 2.0258152994529007E-003 - 9.0455000000000005 2.0596070073687464E-003 - 9.0472000000000001 2.0991493981712857E-003 - 9.0488999999999997 2.1351715106068384E-003 - 9.0505999999999993 2.1676567632125418E-003 - 9.0523000000000007 2.1982363327184263E-003 - 9.0540000000000003 2.2157359422740881E-003 - 9.0556999999999999 2.2060768934683804E-003 - 9.0573999999999995 2.1688802282917217E-003 - 9.0591000000000008 2.1107091739480245E-003 - 9.0608000000000004 2.0376518571704832E-003 - 9.0625000000000000 1.9648545024288189E-003 - 9.0641999999999996 1.9151037360100958E-003 - 9.0658999999999992 1.8976419103274951E-003 - 9.0676000000000005 1.8913223930183546E-003 - 9.0693000000000001 1.8655412886266827E-003 - 9.0709999999999997 1.8201429848910681E-003 - 9.0726999999999993 1.7921869969342249E-003 - 9.0744000000000007 1.8050056323654668E-003 - 9.0761000000000003 1.8483730808448670E-003 - 9.0777999999999999 1.9240586729949295E-003 - 9.0794999999999995 2.0282208720185570E-003 - 9.0811999999999991 2.1185299999773363E-003 - 9.0829000000000004 2.1648880019514084E-003 - 9.0846000000000000 2.1737402207072862E-003 - 9.0862999999999996 2.1584561997298091E-003 - 9.0879999999999992 2.1253796510787475E-003 - 9.0897000000000006 2.0800526462346315E-003 - 9.0914000000000001 2.0325500772747744E-003 - 9.0930999999999997 2.0010395203093872E-003 - 9.0947999999999993 2.0036214025913935E-003 - 9.0965000000000007 2.0275815929850210E-003 - 9.0982000000000003 2.0468828166408715E-003 - 9.0998999999999999 2.0723605096457823E-003 - 9.1015999999999995 2.1291515995302953E-003 - 9.1033000000000008 2.1884367737315881E-003 - 9.1050000000000004 2.2129236907717400E-003 - 9.1067000000000000 2.2214885815299329E-003 - 9.1083999999999996 2.2374245117349522E-003 - 9.1100999999999992 2.2561154218557261E-003 - 9.1118000000000006 2.2729744170994991E-003 - 9.1135000000000002 2.2908429541840438E-003 - 9.1151999999999997 2.3064817557216380E-003 - 9.1168999999999993 2.3077943824046428E-003 - 9.1186000000000007 2.2864449851763857E-003 - 9.1203000000000003 2.2433200199136988E-003 - 9.1219999999999999 2.1815475232402283E-003 - 9.1236999999999995 2.1286560224554173E-003 - 9.1253999999999991 2.1205950111763683E-003 - 9.1271000000000004 2.1543503200075528E-003 - 9.1288000000000000 2.2066502671028625E-003 - 9.1304999999999996 2.2455736793462839E-003 - 9.1321999999999992 2.2514996848046393E-003 - 9.1339000000000006 2.2438867757460265E-003 - 9.1356000000000002 2.2479841400306769E-003 - 9.1372999999999998 2.2592584428565207E-003 - 9.1389999999999993 2.2686530053098921E-003 - 9.1407000000000007 2.2750898264533898E-003 - 9.1424000000000003 2.2802093431551584E-003 - 9.1440999999999999 2.2750490819966533E-003 - 9.1457999999999995 2.2462261162462058E-003 - 9.1475000000000009 2.2064141925505257E-003 - 9.1492000000000004 2.1749968066591997E-003 - 9.1509000000000000 2.1576182624993699E-003 - 9.1525999999999996 2.1480432018157903E-003 - 9.1542999999999992 2.1321650051646752E-003 - 9.1560000000000006 2.1110323762733793E-003 - 9.1577000000000002 2.0912423117902222E-003 - 9.1593999999999998 2.0660379371701294E-003 - 9.1610999999999994 2.0229565990590682E-003 - 9.1628000000000007 1.9665442571565831E-003 - 9.1645000000000003 1.9074010680245302E-003 - 9.1661999999999999 1.8575885174889268E-003 - 9.1678999999999995 1.8207733506644648E-003 - 9.1695999999999991 1.7844080317277588E-003 - 9.1713000000000005 1.7549484585168424E-003 - 9.1730000000000000 1.7508356950902474E-003 - 9.1746999999999996 1.7570642940663835E-003 - 9.1763999999999992 1.7543690480774649E-003 - 9.1781000000000006 1.7691278053210515E-003 - 9.1798000000000002 1.8315043447669052E-003 - 9.1814999999999998 1.9212019212523546E-003 - 9.1831999999999994 1.9846692576715049E-003 - 9.1848999999999990 1.9879444717561400E-003 - 9.1866000000000003 1.9455829594594392E-003 - 9.1882999999999999 1.9020027549202525E-003 - 9.1899999999999995 1.8901005002065806E-003 - 9.1917000000000009 1.9148716274316336E-003 - 9.1934000000000005 1.9649983015092298E-003 - 9.1951000000000001 2.0191266947227021E-003 - 9.1967999999999996 2.0604837876289791E-003 - 9.1984999999999992 2.0834262193538365E-003 - 9.2002000000000006 2.0944167277955096E-003 - 9.2019000000000002 2.1052629287266001E-003 - 9.2035999999999998 2.1109540423577631E-003 - 9.2052999999999994 2.1021894480329900E-003 - 9.2070000000000007 2.0853528205267021E-003 - 9.2087000000000003 2.0757005978371372E-003 - 9.2103999999999999 2.0795843552945947E-003 - 9.2120999999999995 2.0887915284088757E-003 - 9.2137999999999991 2.0932706372718468E-003 - 9.2155000000000005 2.0913182525489999E-003 - 9.2172000000000001 2.0841784775613207E-003 - 9.2188999999999997 2.0688027584075258E-003 - 9.2205999999999992 2.0352930400235640E-003 - 9.2223000000000006 1.9959846658457502E-003 - 9.2240000000000002 1.9851211282600934E-003 - 9.2256999999999998 2.0083020215398003E-003 - 9.2273999999999994 2.0385494107308779E-003 - 9.2290999999999990 2.0537938112374595E-003 - 9.2308000000000003 2.0499082877560443E-003 - 9.2324999999999999 2.0348443196368652E-003 - 9.2341999999999995 2.0223525765787950E-003 - 9.2359000000000009 2.0304830415843341E-003 - 9.2376000000000005 2.0574735986393440E-003 - 9.2393000000000001 2.0692992032541970E-003 - 9.2409999999999997 2.0452993759930800E-003 - 9.2426999999999992 2.0098726489752063E-003 - 9.2444000000000006 2.0069577408993889E-003 - 9.2461000000000002 2.0326101617995384E-003 - 9.2477999999999998 2.0549599591675816E-003 - 9.2494999999999994 2.0643796984079737E-003 - 9.2512000000000008 2.0676204998464182E-003 - 9.2529000000000003 2.0740617684972614E-003 - 9.2545999999999999 2.0902757534226541E-003 - 9.2562999999999995 2.1161853702323179E-003 - 9.2579999999999991 2.1373954434047967E-003 - 9.2597000000000005 2.1388233595519396E-003 - 9.2614000000000001 2.1220239005532789E-003 - 9.2630999999999997 2.1044768044883679E-003 - 9.2647999999999993 2.0951987501642245E-003 - 9.2665000000000006 2.0842278638172709E-003 - 9.2682000000000002 2.0555809938740911E-003 - 9.2698999999999998 2.0110457210412306E-003 - 9.2715999999999994 1.9761265049594479E-003 - 9.2732999999999990 1.9520714183261371E-003 - 9.2750000000000004 1.9171792713848575E-003 - 9.2766999999999999 1.8693069249214932E-003 - 9.2783999999999995 1.8341195633093741E-003 - 9.2801000000000009 1.8187620598258134E-003 - 9.2818000000000005 1.8066466892752158E-003 - 9.2835000000000001 1.8073560915628061E-003 - 9.2851999999999997 1.8216598391243074E-003 - 9.2868999999999993 1.8204401200987916E-003 - 9.2886000000000006 1.7934578492828166E-003 - 9.2903000000000002 1.7621599780628502E-003 - 9.2919999999999998 1.7467979625965778E-003 - 9.2936999999999994 1.7588275953652149E-003 - 9.2954000000000008 1.7960834992891007E-003 - 9.2971000000000004 1.8476896605393543E-003 - 9.2988000000000000 1.9125799523699168E-003 - 9.3004999999999995 1.9752640994748450E-003 - 9.3021999999999991 1.9980100568825292E-003 - 9.3039000000000005 1.9669810243496625E-003 - 9.3056000000000001 1.9018676000129801E-003 - 9.3072999999999997 1.8267461340437663E-003 - 9.3089999999999993 1.7708024009178232E-003 - 9.3107000000000006 1.7583025502653712E-003 - 9.3124000000000002 1.7892931708180294E-003 - 9.3140999999999998 1.8443983463248929E-003 - 9.3157999999999994 1.8973043319645614E-003 - 9.3174999999999990 1.9366666740887406E-003 - 9.3192000000000004 1.9682001315677734E-003 - 9.3209000000000000 1.9975232185562271E-003 - 9.3225999999999996 2.0216011596557314E-003 - 9.3243000000000009 2.0315520849771870E-003 - 9.3260000000000005 2.0200851408981213E-003 - 9.3277000000000001 1.9932282936924606E-003 - 9.3293999999999997 1.9675362176354446E-003 - 9.3310999999999993 1.9552131813464547E-003 - 9.3328000000000007 1.9535252102522395E-003 - 9.3345000000000002 1.9545528563715557E-003 - 9.3361999999999998 1.9569209184437902E-003 - 9.3378999999999994 1.9606091391614609E-003 - 9.3396000000000008 1.9631230618222008E-003 - 9.3413000000000004 1.9588477219502527E-003 - 9.3430000000000000 1.9404398108501841E-003 - 9.3446999999999996 1.9064811643528022E-003 - 9.3463999999999992 1.8686449803368072E-003 - 9.3481000000000005 1.8452721163994474E-003 - 9.3498000000000001 1.8476425757776836E-003 - 9.3514999999999997 1.8637840300402336E-003 - 9.3531999999999993 1.8750034358441699E-003 - 9.3549000000000007 1.8796666630815470E-003 - 9.3566000000000003 1.8848053269219483E-003 - 9.3582999999999998 1.8911872254947820E-003 - 9.3599999999999994 1.8958918129181712E-003 - 9.3616999999999990 1.9016274303400847E-003 - 9.3634000000000004 1.9072224216157509E-003 - 9.3651000000000000 1.9072385813520200E-003 - 9.3667999999999996 1.8972539333340318E-003 - 9.3684999999999992 1.8769319872597927E-003 - 9.3702000000000005 1.8565951344157643E-003 - 9.3719000000000001 1.8464035002204956E-003 - 9.3735999999999997 1.8486629734558134E-003 - 9.3752999999999993 1.8613885199226321E-003 - 9.3770000000000007 1.8771761328210835E-003 - 9.3787000000000003 1.8935624000944700E-003 - 9.3803999999999998 1.9176175909231610E-003 - 9.3820999999999994 1.9532220286299336E-003 - 9.3838000000000008 1.9935566638723985E-003 - 9.3855000000000004 2.0266029438568045E-003 - 9.3872000000000000 2.0487923363960874E-003 - 9.3888999999999996 2.0600080454938169E-003 - 9.3905999999999992 2.0571228421558062E-003 - 9.3923000000000005 2.0385756417620779E-003 - 9.3940000000000001 2.0001331982162124E-003 - 9.3956999999999997 1.9427666837431800E-003 - 9.3973999999999993 1.8883546674857436E-003 - 9.3991000000000007 1.8604030829528603E-003 - 9.4008000000000003 1.8615940855610268E-003 - 9.4024999999999999 1.8806376830875020E-003 - 9.4041999999999994 1.9049368960404368E-003 - 9.4058999999999990 1.9273969044619221E-003 - 9.4076000000000004 1.9473629584753399E-003 - 9.4093000000000000 1.9734619952131295E-003 - 9.4109999999999996 2.0060467060531873E-003 - 9.4126999999999992 2.0261437710034640E-003 - 9.4144000000000005 2.0283811595652118E-003 - 9.4161000000000001 2.0346821703455453E-003 - 9.4177999999999997 2.0626805382129138E-003 - 9.4194999999999993 2.1047279646602335E-003 - 9.4212000000000007 2.1389441887913461E-003 - 9.4229000000000003 2.1550462080575160E-003 - 9.4245999999999999 2.1596002591278219E-003 - 9.4262999999999995 2.1633435536542161E-003 - 9.4280000000000008 2.1729960619605781E-003 - 9.4297000000000004 2.1930241806411019E-003 - 9.4314000000000000 2.2184800055993132E-003 - 9.4330999999999996 2.2309668690381943E-003 - 9.4347999999999992 2.2303481914235836E-003 - 9.4365000000000006 2.2311763157432146E-003 - 9.4382000000000001 2.2253564882108961E-003 - 9.4398999999999997 2.1883474994865374E-003 - 9.4415999999999993 2.1283985560361443E-003 - 9.4433000000000007 2.0757714272928349E-003 - 9.4450000000000003 2.0388780269193474E-003 - 9.4466999999999999 2.0107944261152514E-003 - 9.4483999999999995 1.9882100592523255E-003 - 9.4500999999999991 1.9825051996507264E-003 - 9.4518000000000004 1.9987813194942135E-003 - 9.4535000000000000 2.0152675242189923E-003 - 9.4551999999999996 2.0168894995869287E-003 - 9.4568999999999992 2.0191783373949860E-003 - 9.4586000000000006 2.0339797139473609E-003 - 9.4603000000000002 2.0487341051492395E-003 - 9.4619999999999997 2.0532604437579725E-003 - 9.4636999999999993 2.0458921714986457E-003 - 9.4653999999999989 2.0208904464250927E-003 - 9.4671000000000003 1.9837282561989233E-003 - 9.4687999999999999 1.9646307203881677E-003 - 9.4704999999999995 1.9747572524998883E-003 - 9.4722000000000008 1.9953163972724905E-003 - 9.4739000000000004 2.0065612894790905E-003 - 9.4756000000000000 1.9988432323049727E-003 - 9.4772999999999996 1.9774255480177142E-003 - 9.4789999999999992 1.9642647152746432E-003 - 9.4807000000000006 1.9790523339779306E-003 - 9.4824000000000002 2.0154149575711128E-003 - 9.4840999999999998 2.0523677293140725E-003 - 9.4857999999999993 2.0739499856739863E-003 - 9.4875000000000007 2.0758148266641478E-003 - 9.4892000000000003 2.0699994921363927E-003 - 9.4908999999999999 2.0689250822557522E-003 - 9.4925999999999995 2.0625584494907380E-003 - 9.4942999999999991 2.0412636193006227E-003 - 9.4960000000000004 2.0223567285491419E-003 - 9.4977000000000000 2.0225191638479165E-003 - 9.4993999999999996 2.0276223760948282E-003 - 9.5010999999999992 2.0158146680754811E-003 - 9.5028000000000006 1.9895206522182979E-003 - 9.5045000000000002 1.9712176690833347E-003 - 9.5061999999999998 1.9745048730511472E-003 - 9.5078999999999994 1.9915768943203254E-003 - 9.5095999999999989 2.0099952056056494E-003 - 9.5113000000000003 2.0334047056333941E-003 - 9.5129999999999999 2.0605563721253907E-003 - 9.5146999999999995 2.0764506006371989E-003 - 9.5164000000000009 2.0773560303217779E-003 - 9.5181000000000004 2.0785584364622195E-003 - 9.5198000000000000 2.0885274685094489E-003 - 9.5214999999999996 2.0927243469514648E-003 - 9.5231999999999992 2.0857776308482018E-003 - 9.5249000000000006 2.0821241975164354E-003 - 9.5266000000000002 2.0989028287842163E-003 - 9.5282999999999998 2.1398329038211862E-003 - 9.5299999999999994 2.1868524682260525E-003 - 9.5317000000000007 2.2232635415931866E-003 - 9.5334000000000003 2.2394126999055394E-003 - 9.5350999999999999 2.2239787935938514E-003 - 9.5367999999999995 2.1876440864590247E-003 - 9.5384999999999991 2.1572459685830427E-003 - 9.5402000000000005 2.1456728262565722E-003 - 9.5419000000000000 2.1457549066558699E-003 - 9.5435999999999996 2.1401676985015566E-003 - 9.5452999999999992 2.1246476151020291E-003 - 9.5470000000000006 2.1185369101571184E-003 - 9.5487000000000002 2.1297873060889196E-003 - 9.5503999999999998 2.1342637746215565E-003 - 9.5520999999999994 2.1170828434318415E-003 - 9.5537999999999990 2.1012530301584183E-003 - 9.5555000000000003 2.1018708297497264E-003 - 9.5571999999999999 2.0980940502765247E-003 - 9.5588999999999995 2.0691447322541343E-003 - 9.5606000000000009 2.0202398189388981E-003 - 9.5623000000000005 1.9785048508444455E-003 - 9.5640000000000001 1.9707449855367312E-003 - 9.5656999999999996 2.0026608813308948E-003 - 9.5673999999999992 2.0583452745822953E-003 - 9.5691000000000006 2.1086839956259013E-003 - 9.5708000000000002 2.1364702523198288E-003 - 9.5724999999999998 2.1523942318246465E-003 - 9.5741999999999994 2.1669404371799589E-003 - 9.5759000000000007 2.1815327930844830E-003 - 9.5776000000000003 2.2020876229059583E-003 - 9.5792999999999999 2.2317412502492143E-003 - 9.5809999999999995 2.2596669224735503E-003 - 9.5826999999999991 2.2593814736778365E-003 - 9.5844000000000005 2.2071958128261262E-003 - 9.5861000000000001 2.1212051886642940E-003 - 9.5877999999999997 2.0539654570283015E-003 - 9.5894999999999992 2.0311555546006642E-003 - 9.5912000000000006 2.0218185467147246E-003 - 9.5929000000000002 1.9865860254537401E-003 - 9.5945999999999998 1.9273365891907914E-003 - 9.5962999999999994 1.8806837253916566E-003 - 9.5979999999999990 1.8740466306476295E-003 - 9.5997000000000003 1.8987141612634383E-003 - 9.6013999999999999 1.9381299588294956E-003 - 9.6030999999999995 1.9836393254843219E-003 - 9.6048000000000009 2.0321229634514223E-003 - 9.6065000000000005 2.0793851941366633E-003 - 9.6082000000000001 2.1121637655286659E-003 - 9.6098999999999997 2.1309666833380942E-003 - 9.6115999999999993 2.1449568979438590E-003 - 9.6133000000000006 2.1291318039518845E-003 - 9.6150000000000002 2.0493854719829171E-003 - 9.6166999999999998 1.9461401515416831E-003 - 9.6183999999999994 1.9043260299596693E-003 - 9.6201000000000008 1.9418315495713773E-003 - 9.6218000000000004 2.0012760804979332E-003 - 9.6234999999999999 2.0255767908092964E-003 - 9.6251999999999995 2.0163394049041751E-003 - 9.6268999999999991 1.9986081646397734E-003 - 9.6286000000000005 1.9802091034916091E-003 - 9.6303000000000001 1.9701470749551586E-003 - 9.6319999999999997 1.9745189765489625E-003 - 9.6336999999999993 1.9911818845288138E-003 - 9.6354000000000006 2.0109000555835611E-003 - 9.6371000000000002 2.0283011072750627E-003 - 9.6387999999999998 2.0486149166154960E-003 - 9.6404999999999994 2.0759637805147506E-003 - 9.6421999999999990 2.1021366005710552E-003 - 9.6439000000000004 2.1116712040912589E-003 - 9.6456000000000000 2.1019814633024816E-003 - 9.6472999999999995 2.0870409721592087E-003 - 9.6489999999999991 2.0768293825114757E-003 - 9.6507000000000005 2.0772363026504209E-003 - 9.6524000000000001 2.0866154315728430E-003 - 9.6540999999999997 2.0929742107599989E-003 - 9.6557999999999993 2.0974202561192859E-003 - 9.6575000000000006 2.1114010914161938E-003 - 9.6592000000000002 2.1345534271761364E-003 - 9.6608999999999998 2.1574560298878828E-003 - 9.6625999999999994 2.1631793760412822E-003 - 9.6643000000000008 2.1315135008617807E-003 - 9.6660000000000004 2.0747014491523841E-003 - 9.6677000000000000 2.0327278456414013E-003 - 9.6693999999999996 2.0265496200903049E-003 - 9.6710999999999991 2.0354763556433230E-003 - 9.6728000000000005 2.0306216055958914E-003 - 9.6745000000000001 2.0125028716236983E-003 - 9.6761999999999997 1.9926571209537372E-003 - 9.6778999999999993 1.9761649769264905E-003 - 9.6796000000000006 1.9809141840790448E-003 - 9.6813000000000002 2.0132291965686624E-003 - 9.6829999999999998 2.0482342572403691E-003 - 9.6846999999999994 2.0592578555273860E-003 - 9.6863999999999990 2.0356309543902509E-003 - 9.6881000000000004 1.9893528372755568E-003 - 9.6898000000000000 1.9500565060603305E-003 - 9.6914999999999996 1.9378077219306690E-003 - 9.6931999999999992 1.9524138095499243E-003 - 9.6949000000000005 1.9832583883459898E-003 - 9.6966000000000001 2.0177280625265030E-003 - 9.6982999999999997 2.0463991642776084E-003 - 9.6999999999999993 2.0465111754369341E-003 - 9.7017509999999980 2.0045193470247260E-003 - 9.7035545299999963 1.9569285491826973E-003 - 9.7054121658999950 1.9442283440611926E-003 - 9.7073255308769930 1.9624243110971822E-003 - 9.7092962968033003 1.9911774667111999E-003 - 9.7113261857073976 2.0081064257653461E-003 - 9.7134169712786171 1.9875481049188852E-003 - 9.7155704804169734 1.9398580856772559E-003 - 9.7177885948294804 1.9050287642797326E-003 - 9.7200732526743625 1.8961479513747515E-003 - 9.7224264502545914 1.8885062867554055E-003 - 9.7248502437622264 1.8681267697182196E-003 - 9.7273467510750908 1.8606217219095879E-003 - 9.7299181536073416 1.8642700870960943E-003 - 9.7325666982155603 1.8562826751897632E-003 - 9.7352946991620257 1.8617776672892330E-003 - 9.7381045401368844 1.8881232361600280E-003 - 9.7409986763409897 1.9137635520072882E-003 - 9.7439796366312184 1.9474166960029185E-003 - 9.7470500257301538 1.9811316323325363E-003 - 9.7502125265020574 1.9707762973112885E-003 - 9.7534699022971179 1.9566845606499672E-003 - 9.7568249993660299 2.0134019255000852E-003 - 9.7602807493470092 2.0818917540880990E-003 - 9.7638401718274181 2.0768086898748524E-003 - 9.7675063769822401 1.9848750030151494E-003 - 9.7712825682917064 1.8569013022663506E-003 - 9.7751720453404563 1.7987556000668371E-003 - 9.7791782067006690 1.8324977166671805E-003 - 9.7833045529016882 1.8914143517990167E-003 - 9.7875546894887382 1.9235591289236480E-003 - 9.7919323301733989 1.9257057878554265E-003 - 9.7964413000785999 1.9446500083165304E-003 - 9.8010855390809564 1.9720296574252715E-003 - 9.8058691052533842 2.0164869485055840E-003 - 9.8107961784109854 2.0551174828825846E-003 - 9.8158710637633142 2.0477875357021061E-003 - 9.8210981956762122 2.0211791809426733E-003 - 9.8264821415464976 2.0051677068265929E-003 - 9.8320276057928915 2.0224222082709975E-003 - 9.8377394339666768 2.0347483325883157E-003 - 9.8436226169856749 2.0302595567333668E-003 - 9.8496822954952421 2.0316883596784817E-003 - 9.8559237643600959 2.0199731799998306E-003 - 9.8623524772908944 1.9630265042991568E-003 - 9.8689740516096176 1.9077586276267052E-003 - 9.8757942731579025 1.8706151947959645E-003 - 9.8828191013526361 1.8773144156760068E-003 - 9.8900546743932125 1.9324329033551788E-003 - 9.8975073146250061 1.9259332347566270E-003 - 9.9051835340637542 1.8418386013298411E-003 - 9.9130900400856650 1.7667758181936102E-003 - 9.9212337412882334 1.7573433942910399E-003 - 9.9296217535268791 1.8071875147196244E-003 - 9.9382614061326837 1.8670209590106450E-003 - 9.9471602483166617 1.8610077430731796E-003 - 9.9563260557661586 1.7886250265065485E-003 - 9.9657668374391406 1.7337846856967131E-003 - 9.9754908425623121 1.6978623147919242E-003 - 9.9855065678391792 1.6356767648615577E-003 - 9.9958227648743527 1.5632090256468628E-003 - 10.006448447820581 1.5291551097423093E-003 - 10.017392901255196 1.5557740277339863E-003 - 10.028665688292849 1.6083950902921031E-003 - 10.040276658941631 1.6160967194554020E-003 - 10.052235958709876 1.5963608251109418E-003 - 10.064554037471169 1.5700591130989848E-003 - 10.077241658595300 1.5339506440217945E-003 - 10.090309908353156 1.5398116339224634E-003 - 10.103770205603746 1.5538006685038939E-003 - 10.117634311771855 1.5192011268669364E-003 - 10.131914341125007 1.4776757266500927E-003 - 10.146622771358754 1.4454547542943734E-003 - 10.161772454499513 1.4148146981839550E-003 - 10.177376628134494 1.3779997462185411E-003 - 10.193448926978526 1.3605733446650631E-003 - 10.210003394787879 1.4307520710362233E-003 - 10.227054496631514 1.5091448757571968E-003 - 10.244617131530457 1.4858328766235481E-003 - 10.262706645476369 1.4683837768008289E-003 - 10.281338844840658 1.5187004993657124E-003 - 10.300530010185875 1.5305490412133636E-003 - 10.320296910491450 1.4602722505037290E-003 - 10.340656817806192 1.3733201329581058E-003 - 10.361627522340376 1.3333150544081287E-003 - 10.383227348010585 1.3127660684213505E-003 - 10.405475168450902 1.2953547064437452E-003 - 10.428390423504428 1.2892407907700103E-003 - 10.451993136209561 1.2692785309672383E-003 - 10.476303930295847 1.2711866924830818E-003 - 10.501344048204722 1.3183878472800027E-003 - 10.527135369650862 1.3569358558788067E-003 - 10.553700430740387 1.3704917585421637E-003 - 10.581062443662596 1.3575625754207012E-003 - 10.609245316972471 1.3201591612061890E-003 - 10.638273676481642 1.2796055726924072E-003 - 10.668172886776089 1.2080480670057852E-003 - 10.698969073379370 1.1655838648524347E-003 - 10.730689145580749 1.2363599832010751E-003 - 10.763360819948170 1.3266529794362385E-003 - 10.797012644546614 1.2893014885084343E-003 - 10.831674023883011 1.2335407414266713E-003 - 10.867375244599499 1.2672793497711826E-003 - 10.904147501937482 1.2748104308984809E-003 - 10.942022926995604 1.2313027593828349E-003 - 10.981034614805468 1.2025493956883866E-003 - 11.021216653249628 1.2279982205005884E-003 - 11.062604152847111 1.2534786628992090E-003 - 11.105233277432520 1.2570316857388971E-003 - 11.149141275755490 1.2223928352567361E-003 - 11.194366514028149 1.1145703679357683E-003 - 11.240948509448987 1.0216068826033166E-003 - 11.288927964732451 1.0652290247044074E-003 - 11.338346803674419 1.1803275772546994E-003 - 11.389248207784645 1.2013224165378080E-003 - 11.441676654018178 1.1721759157423968E-003 - 11.495677953638717 1.1399474875221222E-003 - 11.551299292247872 1.0192907658602922E-003 - 11.608589271015303 8.7382578601175119E-004 - 11.667597949145756 8.4782160546875620E-004 - 11.728376887620124 9.1351194369087749E-004 - 11.790979194248722 9.0535301144998204E-004 - 11.855459570076178 8.3242606103382246E-004 - 11.921874357178458 8.1958404636766084E-004 - 11.990281587893806 8.6958304538131161E-004 - 12.060741035530615 8.6728265294656415E-004 - 12.133314266596528 7.5667540334355631E-004 - 12.208064694594420 6.5065240117988450E-004 - 12.285057635432247 6.7287929091697229E-004 - 12.364360364495210 7.2818591675802118E-004 - 12.446042175430062 6.8893859912170759E-004 - 12.530174440692958 5.9857595265210613E-004 - 12.616830673913741 5.0701490445358903E-004 - 12.706086594131147 4.5292630787334989E-004 - 12.798020191955075 4.3312322933281873E-004 - 12.892711797713721 4.4669773863532101E-004 - 12.990244151645127 4.6073213294465945E-004 - 13.090702476194476 4.5531926061229556E-004 - 13.194174550480305 4.4374003695241002E-004 - 13.300750786994708 4.3597438280821281E-004 - 13.410524310604544 4.3226545961667451E-004 - 13.523591039922675 4.2984321751271358E-004 - 13.640049771120349 4.2779613351799585E-004 - 13.760002264253954 4.2749127204235013E-004 - 13.883553332181567 4.2803666114065261E-004 - 14.010810932147010 4.2786194322257147E-004 - 14.141886260111416 4.2736168773514462E-004 - 14.276893847914756 4.2733001529045349E-004 - 14.415951663352196 4.2758413434947372E-004 - 14.559181213252760 4.2767546156929589E-004 - 14.706707649650340 4.2761209334594850E-004 - 14.858659879139847 4.2760130584467885E-004 - 15.015170675514039 4.2759325659221924E-004 - 15.176376795779458 4.2741130138896662E-004 - 15.342419099652840 4.2708245044522779E-004 - 15.513442672642423 4.2688852372383518E-004 - 15.689596952821692 4.2703075842326745E-004 - 15.871035861406337 4.2727266688950496E-004 - 16.057917937248522 4.2734989166120233E-004 - 16.250406475365974 4.2732635642351040E-004 diff --git a/cases/flatplate-Ma2.25/data/readme.txt b/cases/flatplate-Ma2.25/data/readme.txt deleted file mode 100644 index 47cf18c..0000000 --- a/cases/flatplate-Ma2.25/data/readme.txt +++ /dev/null @@ -1,4 +0,0 @@ -Cf at t=10.0 --------------------- -cf-1.11.3d-omp6: old code (ver 1.11.3d), OMP6 scheme -cf-hybrid-character: new code (ver 2.0a), Hybrid scheme + character flux diff --git a/cases/flatplate-Ma2.25/flow1d-inlet.dat b/cases/flatplate-Ma2.25/flow1d-inlet.dat deleted file mode 100644 index 3ca1865..0000000 --- a/cases/flatplate-Ma2.25/flow1d-inlet.dat +++ /dev/null @@ -1,73 +0,0 @@ - variables=y,d,u,v,T - 0.0000000000 0.5285544685 0.0000000000 0.0000000000 1.9000000000 - 0.0001200000 0.5286968399 0.0089885444 -0.0000004733 1.8994883538 - 0.0002485275 0.5288831073 0.0186479616 -0.0000004272 1.8988197442 - 0.0003861886 0.5291233910 0.0290049250 0.0000000156 1.8979573752 - 0.0005336322 0.5294280236 0.0401021878 0.0000006400 1.8968654157 - 0.0006915536 0.5298090231 0.0519922304 0.0000015631 1.8955013409 - 0.0008606973 0.5302801804 0.0647329167 0.0000028032 1.8938172622 - 0.0010418608 0.5308577041 0.0783863345 0.0000044427 1.8917570063 - 0.0012358984 0.5315606453 0.0930191221 0.0000065412 1.8892554083 - 0.0014437247 0.5324113336 0.1087028971 0.0000091957 1.8862368122 - 0.0016663198 0.5334360736 0.1255145767 0.0000124998 1.8826134013 - 0.0019047331 0.5346658488 0.1435366563 0.0000165766 1.8782833145 - 0.0021600887 0.5361372827 0.1628574452 0.0000215610 1.8731284400 - 0.0024335906 0.5378937435 0.1835712259 0.0000276170 1.8670119418 - 0.0027265282 0.5399867547 0.2057782719 0.0000349327 1.8597754310 - 0.0030402829 0.5424777044 0.2295846475 0.0000437310 1.8512358242 - 0.0033763338 0.5454399903 0.2551016730 0.0000542711 1.8411818815 - 0.0037362654 0.5489616740 0.2824448911 0.0000668577 1.8293705161 - 0.0041217748 0.5531488034 0.3117322973 0.0000818463 1.8155230135 - 0.0045346795 0.5581295489 0.3430814949 0.0000996526 1.7993214564 - 0.0049769263 0.5640593495 0.3766053095 0.0001207601 1.7804058650 - 0.0054506005 0.5711272513 0.4124052156 0.0001457292 1.7583729120 - 0.0059579352 0.5795636205 0.4505616261 0.0001752036 1.7327775277 - 0.0065013226 0.5896492948 0.4911196014 0.0002099135 1.7031394336 - 0.0070833246 0.6017258056 0.5340680462 0.0002506721 1.6689580675 - 0.0077066852 0.6162051805 0.5793106042 0.0002983606 1.6297417970 - 0.0083743436 0.6335760149 0.6266274415 0.0003538834 1.5850593320 - 0.0090894476 0.6544003285 0.6756269038 0.0004180644 1.5346200386 - 0.0098553689 0.6792913819 0.7256814869 0.0004914749 1.4783879505 - 0.0106757187 0.7088484179 0.7758387078 0.0005742053 1.4167437884 - 0.0115543648 0.7434937759 0.8247173563 0.0006655533 1.3507269431 - 0.0124954499 0.7831371592 0.8704642695 0.0007634808 1.2823522266 - 0.0135034111 0.8266659251 0.9109150207 0.0008638633 1.2148298422 - 0.0145830009 0.8715007058 0.9440546374 0.0009602433 1.1523333503 - 0.0157393093 0.9137196015 0.9686569954 0.0010450940 1.0990902966 - 0.0169777881 0.9491241875 0.9847666840 0.0011123465 1.0580928580 - 0.0183042767 0.9748863603 0.9937212518 0.0011594723 1.0301332665 - 0.0197250292 0.9906966524 0.9976805017 0.0011879232 1.0136951197 - 0.0212467444 0.9985744784 0.9988972307 0.0012021611 1.0056996324 - 0.0228765968 1.0015753175 0.9990771755 0.0012078686 1.0026881977 - 0.0246222711 1.0023829891 0.9991086870 0.0012099188 1.0018821714 - 0.0264919978 1.0025839391 0.9992145660 0.0012110895 1.0016833774 - 0.0284945924 1.0027411158 0.9993205619 0.0012121920 1.0015285184 - 0.0306394970 1.0028821443 0.9993541192 0.0012131300 1.0013899893 - 0.0329368244 1.0029413067 0.9993340937 0.0012138236 1.0013334017 - 0.0353974063 1.0029330873 0.9993143959 0.0012144475 1.0013442771 - 0.0380328439 1.0029167587 0.9993182376 0.0012152034 1.0013634438 - 0.0408555630 1.0029227268 0.9993325392 0.0012161229 1.0013605551 - 0.0438788723 1.0029398955 0.9993394346 0.0012171171 1.0013467074 - 0.0471170264 1.0029488495 0.9993363966 0.0012181289 1.0013413050 - 0.0505852926 1.0029463653 0.9993309106 0.0012191840 1.0013475848 - 0.0543000234 1.0029414593 0.9993280856 0.0012203301 1.0013565635 - 0.0582787333 1.0029414072 0.9993275782 0.0012215804 1.0013609976 - 0.0625401813 1.0029468771 0.9993278932 0.0012229242 1.0013602443 - 0.0671044596 1.0029558357 0.9993291208 0.0012243615 1.0013563597 - 0.0719930881 1.0029670422 0.9993318006 0.0012259074 1.0013506107 - 0.0772291161 1.0029799017 0.9993355151 0.0012275756 1.0013436209 - 0.0828372308 1.0029935827 0.9993393257 0.0012293717 1.0013362533 - 0.0888438735 1.0030073139 0.9993427338 0.0012313012 1.0013293141 - 0.0952773650 1.0030208613 0.9993457558 0.0012333754 1.0013230761 - 0.1021680381 1.0030342864 0.9993484609 0.0012356087 1.0013175203 - 0.1095483815 1.0030475422 0.9993507819 0.0012380140 1.0013127401 - 0.1174531926 1.0030605045 0.9993526421 0.0012406047 1.0013089104 - 0.1259197413 1.0030731852 0.9993540399 0.0012433964 1.0013060748 - 0.1349879465 1.0030857399 0.9993550092 0.0012464070 1.0013041386 - 0.1447005634 1.0030983384 0.9993555773 0.0012496557 1.0013029982 - 0.1551033857 1.0031111120 0.9993557673 0.0012531634 1.0013025949 - 0.1662454614 1.0031241772 0.9993556032 0.0012569533 1.0013028924 - 0.1781793238 1.0031376417 0.9993551037 0.0012610503 1.0013038694 - 0.1909612394 1.0031516088 0.9993542796 0.0012654834 1.0013055235 - 0.2046514734 1.0031661959 0.9993531377 0.0012702818 1.0013078425 - 0.2193145732 1.0031815672 0.9993516792 0.0012754831 1.0013107976 diff --git a/cases/flatplate-Ma2.25/in/opencfd2-GhostCell.in b/cases/flatplate-Ma2.25/in/opencfd2-GhostCell.in deleted file mode 100644 index 4883bbb..0000000 --- a/cases/flatplate-Ma2.25/in/opencfd2-GhostCell.in +++ /dev/null @@ -1,50 +0,0 @@ - $control_opencfd - nx_global=2193 - ny_global=72 - nz_global=128 - npx0=48 - npy0=1 - npz0=2 - Iflag_Gridtype=10 ! 1D-plane type mesh -! Scheme_Invis="OMP6" - Scheme_Invis="HYBRID" -! Sensor seta1 seta2 patch - Hybrid_Para=1, 0.01, 0.02, 0 - Scheme_Vis="CD6" - Ma=2.25 - Re=635000.0 - Ref_Amu_T0=169.44 - Istep_show=10 - Istep_save=20000 - dt=0.0002 - End_time=20.0 - IF_Scheme_Character=1 - Iperiodic_Z=1 - Periodic_KSpan= 0., 0., 0.175 - BoundaryCondition="BC_BOUNDARYLAYER" - ! BcData_inlet BcData_upper bc_upper_nonref bc_outlet Tw Wall_Xinit bc_dis_type bc_dis_A bc_dis_Xbegin bc_dis_Xend bc_dis_mt bc_dis_mz bc_dis_ZL bc_dis_freq - BC_Para=1, 0, 0, 0, 1.9, 0., 1, 0.04, 4.5 5.0 5 10 0.175 7.854 - Scheme_boundary= 0, 0, 1, 0, 0, 0 ! 0: WENO5 remove-stencil type (default); -1: inner scheme (with Ghost Cell); 1 WENO5 (with Ghost Cell) - Ghost_cell=0,0,2, 0, 0, 0 ! 0: Non Ghost Cell; 1: 1st order exterpolation; 2: 2nd order exterpolation; -1: user define - ANA_Number=0 - ANA_Para(:,1)=100, 10, 10000 - ! Kana Kstep_ana Kstep_save - $end - - ! OpenCFD 2.2b - -!--------------define of BC_Para ------------------- -! BcData_inlet=nint(Para%BC_para(1)) ! inlet: (0 free-stream; 1 1d data; 2 2d data) -! BcData_upper=nint(Para%Bc_para(2)) ! upper boundary: (0 free-stream, 1 1d data , 2 2d data) -! bc_upper_nonref=nint(Para%Bc_para(3)) ! upper boundary: 0 auto, 1 Non-Reflection, 2 Dirichlet -! bc_outlet=nint(Para%Bc_para(4)) ! outlet: 0 Non-Reflection, 1 1st order extrapolation, 2 2nd order extrapolation -! Tw=Para%Bc_para(5) ! wall temperature -! Wall_Xinit=Para%Bc_para(6) ! x location of the wall leading -! bc_dis_type=nint(Para%Bc_para(7)) ! wall disturbance type (0 none ; 1 multi-wave blow-and-suction, Ref: Rai MM, AIAA 95-0583) -! bc_dis_A=Para%Bc_para(8) ! Amplitude of wall disturbance -! bc_dis_Xbegin=Para%Bc_para(9) ! Initial location of wall disturbance -! bc_dis_Xend=Para%Bc_para(10) ! End location of wall disturbance -! bc_dis_mt=nint(Para%Bc_para(11)) ! multi-frequency -! bc_dis_mz=nint(Para%Bc_para(12)) ! multi-wavenumber -! bc_dis_ZL=Para%Bc_para(13) ! Spanwise Length -! bc_dis_freq=Para%Bc_para(14) ! base frequancy of disturbance diff --git a/cases/flatplate-Ma2.25/in/opencfd2-OMP6.in b/cases/flatplate-Ma2.25/in/opencfd2-OMP6.in deleted file mode 100644 index 3a3ffc2..0000000 --- a/cases/flatplate-Ma2.25/in/opencfd2-OMP6.in +++ /dev/null @@ -1,43 +0,0 @@ - $control_opencfd - nx_global=2193 - ny_global=72 - nz_global=128 - npx0=32 - npy0=1 - npz0=2 - Iflag_Gridtype=10 ! 1D-plane type mesh - Scheme_Invis="OMP6" - Scheme_Vis="CD6" - Ma=2.25 - Re=635000.0 - Ref_Amu_T0=169.44 - Istep_show=10 - Istep_save=10000 - dt=0.0002 - End_time=20.0 - IF_Scheme_Character=0 - Iperiodic_Z=1 - Periodic_KSpan= 0., 0., 0.175 - BoundaryCondition="BC_BOUNDARYLAYER" - ! BcData_inlet BcData_upper bc_upper_nonref bc_outlet Tw Wall_Xinit bc_dis_type bc_dis_A bc_dis_Xbegin bc_dis_Xend bc_dis_mt bc_dis_mz bc_dis_ZL bc_dis_freq - BC_Para=1, 0, 0, 0, 1.9, 0., 1, 0.04, 4.5 5.0 5 10 0.175 7.854 - ANA_Number=0 - ANA_Para(:,1)=100, 10, 10000 - ! Kana Kstep_ana Kstep_save - $end - -!--------------define of BC_Para ------------------- -! BcData_inlet=nint(Para%BC_para(1)) ! inlet: (0 free-stream; 1 1d data; 2 2d data) -! BcData_upper=nint(Para%Bc_para(2)) ! upper boundary: (0 free-stream, 1 1d data , 2 2d data) -! bc_upper_nonref=nint(Para%Bc_para(3)) ! upper boundary: 0 auto, 1 Non-Reflection, 2 Dirichlet -! bc_outlet=nint(Para%Bc_para(4)) ! outlet: 0 Non-Reflection, 1 1st order extrapolation, 2 2nd order extrapolation -! Tw=Para%Bc_para(5) ! wall temperature -! Wall_Xinit=Para%Bc_para(6) ! x location of the wall leading -! bc_dis_type=nint(Para%Bc_para(7)) ! wall disturbance type (0 none ; 1 multi-wave blow-and-suction, Ref: Rai MM, AIAA 95-0583) -! bc_dis_A=Para%Bc_para(8) ! Amplitude of wall disturbance -! bc_dis_Xbegin=Para%Bc_para(9) ! Initial location of wall disturbance -! bc_dis_Xend=Para%Bc_para(10) ! End location of wall disturbance -! bc_dis_mt=nint(Para%Bc_para(11)) ! multi-frequency -! bc_dis_mz=nint(Para%Bc_para(12)) ! multi-wavenumber -! bc_dis_ZL=Para%Bc_para(13) ! Spanwise Length -! bc_dis_freq=Para%Bc_para(14) ! base frequancy of disturbance diff --git a/cases/flatplate-Ma2.25/in/opencfd2-hybrid.in b/cases/flatplate-Ma2.25/in/opencfd2-hybrid.in deleted file mode 100644 index 825e3f0..0000000 --- a/cases/flatplate-Ma2.25/in/opencfd2-hybrid.in +++ /dev/null @@ -1,45 +0,0 @@ - $control_opencfd - nx_global=2193 - ny_global=72 - nz_global=128 - npx0=32 - npy0=1 - npz0=2 - Iflag_Gridtype=10 ! 1D-plane type mesh - Scheme_Invis="HYBRID" - Hybrid_para=1, 0.01,0.1, 0 - UD7L_diss=0.2 - Scheme_Vis="CD6" - Ma=2.25 - Re=635000.0 - Ref_Amu_T0=169.44 - Istep_show=10 - Istep_save=10000 - dt=0.0002 - End_time=20.0 - IF_Scheme_Character=1 - Iperiodic_Z=1 - Periodic_KSpan= 0., 0., 0.175 - BoundaryCondition="BC_BOUNDARYLAYER" - ! BcData_inlet BcData_upper bc_upper_nonref bc_outlet Tw Wall_Xinit bc_dis_type bc_dis_A bc_dis_Xbegin bc_dis_Xend bc_dis_mt bc_dis_mz bc_dis_ZL bc_dis_freq - BC_Para=1, 0, 0, 0, 1.9, 0., 1, 0.04, 4.5 5.0 5 10 0.175 7.854 - ANA_Number=0 - ANA_Para(:,1)=100, 10, 10000 - ! Kana Kstep_ana Kstep_save - $end - -!--------------define of BC_Para ------------------- -! BcData_inlet=nint(Para%BC_para(1)) ! inlet: (0 free-stream; 1 1d data; 2 2d data) -! BcData_upper=nint(Para%Bc_para(2)) ! upper boundary: (0 free-stream, 1 1d data , 2 2d data) -! bc_upper_nonref=nint(Para%Bc_para(3)) ! upper boundary: 0 auto, 1 Non-Reflection, 2 Dirichlet -! bc_outlet=nint(Para%Bc_para(4)) ! outlet: 0 Non-Reflection, 1 1st order extrapolation, 2 2nd order extrapolation -! Tw=Para%Bc_para(5) ! wall temperature -! Wall_Xinit=Para%Bc_para(6) ! x location of the wall leading -! bc_dis_type=nint(Para%Bc_para(7)) ! wall disturbance type (0 none ; 1 multi-wave blow-and-suction, Ref: Rai MM, AIAA 95-0583) -! bc_dis_A=Para%Bc_para(8) ! Amplitude of wall disturbance -! bc_dis_Xbegin=Para%Bc_para(9) ! Initial location of wall disturbance -! bc_dis_Xend=Para%Bc_para(10) ! End location of wall disturbance -! bc_dis_mt=nint(Para%Bc_para(11)) ! multi-frequency -! bc_dis_mz=nint(Para%Bc_para(12)) ! multi-wavenumber -! bc_dis_ZL=Para%Bc_para(13) ! Spanwise Length -! bc_dis_freq=Para%Bc_para(14) ! base frequancy of disturbance diff --git a/cases/flatplate-Ma2.25/ocfd-grid.dat b/cases/flatplate-Ma2.25/ocfd-grid.dat deleted file mode 100644 index 3ea4526..0000000 Binary files a/cases/flatplate-Ma2.25/ocfd-grid.dat and /dev/null differ diff --git a/cases/flatplate-Ma2.25/opencfd2.in b/cases/flatplate-Ma2.25/opencfd2.in deleted file mode 100644 index 4883bbb..0000000 --- a/cases/flatplate-Ma2.25/opencfd2.in +++ /dev/null @@ -1,50 +0,0 @@ - $control_opencfd - nx_global=2193 - ny_global=72 - nz_global=128 - npx0=48 - npy0=1 - npz0=2 - Iflag_Gridtype=10 ! 1D-plane type mesh -! Scheme_Invis="OMP6" - Scheme_Invis="HYBRID" -! Sensor seta1 seta2 patch - Hybrid_Para=1, 0.01, 0.02, 0 - Scheme_Vis="CD6" - Ma=2.25 - Re=635000.0 - Ref_Amu_T0=169.44 - Istep_show=10 - Istep_save=20000 - dt=0.0002 - End_time=20.0 - IF_Scheme_Character=1 - Iperiodic_Z=1 - Periodic_KSpan= 0., 0., 0.175 - BoundaryCondition="BC_BOUNDARYLAYER" - ! BcData_inlet BcData_upper bc_upper_nonref bc_outlet Tw Wall_Xinit bc_dis_type bc_dis_A bc_dis_Xbegin bc_dis_Xend bc_dis_mt bc_dis_mz bc_dis_ZL bc_dis_freq - BC_Para=1, 0, 0, 0, 1.9, 0., 1, 0.04, 4.5 5.0 5 10 0.175 7.854 - Scheme_boundary= 0, 0, 1, 0, 0, 0 ! 0: WENO5 remove-stencil type (default); -1: inner scheme (with Ghost Cell); 1 WENO5 (with Ghost Cell) - Ghost_cell=0,0,2, 0, 0, 0 ! 0: Non Ghost Cell; 1: 1st order exterpolation; 2: 2nd order exterpolation; -1: user define - ANA_Number=0 - ANA_Para(:,1)=100, 10, 10000 - ! Kana Kstep_ana Kstep_save - $end - - ! OpenCFD 2.2b - -!--------------define of BC_Para ------------------- -! BcData_inlet=nint(Para%BC_para(1)) ! inlet: (0 free-stream; 1 1d data; 2 2d data) -! BcData_upper=nint(Para%Bc_para(2)) ! upper boundary: (0 free-stream, 1 1d data , 2 2d data) -! bc_upper_nonref=nint(Para%Bc_para(3)) ! upper boundary: 0 auto, 1 Non-Reflection, 2 Dirichlet -! bc_outlet=nint(Para%Bc_para(4)) ! outlet: 0 Non-Reflection, 1 1st order extrapolation, 2 2nd order extrapolation -! Tw=Para%Bc_para(5) ! wall temperature -! Wall_Xinit=Para%Bc_para(6) ! x location of the wall leading -! bc_dis_type=nint(Para%Bc_para(7)) ! wall disturbance type (0 none ; 1 multi-wave blow-and-suction, Ref: Rai MM, AIAA 95-0583) -! bc_dis_A=Para%Bc_para(8) ! Amplitude of wall disturbance -! bc_dis_Xbegin=Para%Bc_para(9) ! Initial location of wall disturbance -! bc_dis_Xend=Para%Bc_para(10) ! End location of wall disturbance -! bc_dis_mt=nint(Para%Bc_para(11)) ! multi-frequency -! bc_dis_mz=nint(Para%Bc_para(12)) ! multi-wavenumber -! bc_dis_ZL=Para%Bc_para(13) ! Spanwise Length -! bc_dis_freq=Para%Bc_para(14) ! base frequancy of disturbance diff --git a/cases/flatplate-Ma2.25/read-flatplate.f90 b/cases/flatplate-Ma2.25/read-flatplate.f90 deleted file mode 100644 index 96944c3..0000000 --- a/cases/flatplate-Ma2.25/read-flatplate.f90 +++ /dev/null @@ -1,223 +0,0 @@ - implicit none - real*8,dimension(:,:,:),allocatable:: x,y,z,d,u,v,w,T - real*8,dimension(:,:),allocatable:: d2d,u2d,v2d,T2d - real*8,dimension(:),allocatable:: x1,y1 - integer:: nx,ny,nz,i,j,k,it,i0,k0 - real*8:: Tw,T_inf,PI,Tsb,Amu_W,Re,Ama,gamma,time - real*8:: h1,h2,us1,us2,uy,taow,cf,Ue,De,sseta,ut,uvd,yp,us -!------------------------------------------------------ - nx=2193 - ny=72 - nz=128 - Re=635000.d0 - Ama=2.25d0 - gamma=1.4d0 - T_inf=169.44d0 - Tw=1.9d0 - - allocate(x(nx,ny,nz),y(nx,ny,nz),z(nx,ny,nz), & - d(nx,ny,nz),u(nx,ny,nz),v(nx,ny,nz),w(nx,ny,nz), & - T(nx,ny,nz),d2d(nx,ny),u2d(nx,ny),v2d(nx,ny),T2d(nx,ny)) - allocate(x1(nx),y1(ny)) - - Tsb=110.4/T_inf - Amu_w=1.0/Re*(1.0+Tsb)*sqrt(Tw**3)/(Tsb+Tw) - call read_mesh3d(nx,ny,nz,x,y,z) - - do i=1,nx - x1(i)=x(i,1,1) - enddo - do j=1,ny - y1(j)=y(1,j,1) - enddo - - print*, "x=",x1 - print*, "y=",y1 - - open(70,file='opencfd.dat',form='unformatted') - read(70) it,time - print*, it,time - call read3d(70,d,nx,ny,nz) - call read3d(70,u,nx,ny,nz) - call read3d(70,v,nx,ny,nz) - call read3d(70,w,nx,ny,nz) - call read3d(70,T,nx,ny,nz) - close(70) - print*, 'read data ok' -!-------- y/2 section -------------- - - call aver2d(nx,ny,nz,d,u,v,w,T,d2d,u2d,v2d,T2d) - - - -!-------Cf ---------- - - open(66,file='cf.dat') - h1=y1(2) - h2=y1(3) - do i=1,nx - us1=u2d(i,2) ; us2=u2d(i,3) - uy=(h2*h2*us1-h1*h1*us2)/(h2*h2*h1-h1*h1*h2) ! 2nd order - taow=Amu_w*uy - ! taow=Amu_w*u2d(i,2)/hs ! 1st order - Cf=taow*2.d0 - write(66,*) x(i,1,1),cf - enddo - close(66) - - Print*, "Computation of momentum thickness ..." - Ue=1.d0 - De=1.d0 - open(99,file="momentum-thickness.dat") - do i=1,nx - sseta=0.d0 - do j=1,ny-1 - us=u2d(i,j) -! sseta=sseta+(us/(De*Ue)*(1.d0-us/Ue))*(yy(j+1)-yy(j)) ! ??? - sseta=sseta+(d2d(i,j)*u2d(i,j)/(De*Ue)*(1.d0-u2d(i,j)/Ue))*(y1(j+1)-y1(j)) - enddo - write(99,*) i,x1(i),sseta - enddo - close(99) - - -!c--- section normal to the wall - print*, "please input i0" - read(*,*) i0 - print*, "x=", x1(i0) - us1=u2d(i0,2) ; us2=u2d(i0,3) - h1=y1(2) ; h2=y1(3) - uy=(h2*h2*us1-h1*h1*us2)/(h2*h2*h1-h1*h1*h2) ! 2nd order - taow=Amu_w*uy - ut=sqrt(taow/d2d(i0,1)) - uvd=0.d0 - open(55,file='us.dat') - do j=2,ny-1 - yp=y1(j)*d2d(i0,1)*ut/Amu_w - uvd=uvd+(sqrt(d2d(i0,j)/d2d(i0,1)) + sqrt(d2d(i0,j-1)/d2d(i0,1)))/2.d0 *(u2d(i0,j)-u2d(i0,j-1)) - write(55,"(4f16.8)") yp, u2d(i0,j)/ut,uvd/ut, 1.d0/(0.41)*log(yp)+5.1 - enddo - close(55) - print*, "Ret=", d2d(i0,1)*ut/Amu_w - - k0=nz/2 - call write_xy(k0,nx,ny,nz,x,y,z,d,u,v,w,T,gamma,Ama) - deallocate( x,y,z,d,u,v,w,T, d2d,u2d,v2d,T2d, x1,y1) - end -!c================================== - subroutine read3d(no,u,nx,ny,nz) - implicit none - integer:: no,nx,ny,nz,k - real*8:: u(nx,ny,nz) - do k=1,nz - read(no) u(:,:,k) - enddo - end -!c======================================== - - - subroutine write_xy(k0,nx,ny,nz,x,y,z,d,u,v,w,T,gamma,Ama) - implicit none - integer::nx,ny,nz,i,j,k0 - real*8,dimension(nx,ny,nz):: d,u,v,w,T,x,y,z - real*8:: gamma,Ama,p00,p - p00=1.d0/(gamma*Ama*Ama) - - open(44,file='flow2d_xy.dat') - write(44,*) 'variables= x,y,d,u,v,w,p,T' - write(44,*) 'zone i=',nx, 'j=',ny - do j=1,ny - do i=1,nx - p=d(i,j,k0)*T(i,j,k0)*p00 - write(44,'(8f16.8)') x(i,j,k0),y(i,j,k0), & - d(i,j,k0),u(i,j,k0),v(i,j,k0),w(i,j,k0),p, T(i,j,k0) - enddo - enddo - close(44) - end - - subroutine aver2d(nx,ny,nz,d,u,v,w,T,d2d,u2d,v2d,T2d) - implicit none - integer:: nx,ny,nz,i,j,k - real*8,dimension(nx,ny,nz):: d,u,v,w,T - real*8:: d2d(nx,ny),T2d(nx,ny),u2d(nx,ny),v2d(nx,ny) - do j=1,ny - do i=1,nx - d2d(i,j)=0.d0 - u2d(i,j)=0.d0 - v2d(i,j)=0.d0 - T2d(i,j)=0.d0 - do k=1,nz - d2d(i,j)=d2d(i,j)+d(i,j,k) - u2d(i,j)=u2d(i,j)+u(i,j,k) - v2d(i,j)=v2d(i,j)+v(i,j,k) - T2d(i,j)=T2d(i,j)+T(i,j,k) - enddo - d2d(i,j)=d2d(i,j)/nz - u2d(i,j)=u2d(i,j)/nz - v2d(i,j)=v2d(i,j)/nz - T2d(i,j)=T2d(i,j)/nz - enddo - enddo - end - -!--------------------------------------------------------- - subroutine read_mesh3d(nx,ny,nz,x,y,z) - implicit none - integer:: nx,ny,nz,mesh_type,i,j,k - integer,parameter:: GRID1D=10, GRID2D_PLANE=20, GRID2D_AXIAL_SYMM=21, GRID3D=30, GRID_AND_JACOBIAN3D=31 - real*8:: x(nx,ny,nz),y(nx,ny,nz),z(nx,ny,nz) - real*8,allocatable:: x1d(:),y1d(:),z1d(:),x2d(:,:),y2d(:,:) - allocate(x1d(nx),y1d(ny),z1d(nz),x2d(nx,ny),y2d(nx,ny)) - print*, "read mesh ......" - print*, "pleas input mesh_type, 10: 1D mesh; 20: 2D-plane mesh; 21: 2D-AxialSymmetry mesh; 30: 3D mesh" - read(*,*) mesh_type - - open(56,file='OCFD-grid.dat',form='unformatted') - if(mesh_type ==GRID1D) then - read(56) x1d - read(56) y1d - read(56) z1d - do k=1,nz - do j=1,ny - do i=1,nx - x(i,j,k)=x1d(i) - y(i,j,k)=y1d(j) - z(i,j,k)=z1d(k) - enddo - enddo - enddo - else if( mesh_type ==GRID2D_PLANE) then - read(56) x2d - read(56) y2d - read(56) z1d - do k=1,nz - do j=1,ny - do i=1,nx - x(i,j,k)=x2d(i,j) - y(i,j,k)=y2d(i,j) - z(i,j,k)=z1d(k) - enddo - enddo - enddo - else if( mesh_type ==GRID2D_AXIAL_SYMM) then - read(56) x2d - read(56) y2d - read(56) z1d - do k=1,nz - do j=1,ny - do i=1,nx - x(i,j,k)=x2d(i,j) - y(i,j,k)=y2d(i,j)*cos(z1d(k)) - z(i,j,k)=y2d(i,j)*sin(z1d(k)) - enddo - enddo - enddo - else - call read3d(56,nx,ny,nz,x) - call read3d(56,nx,ny,nz,y) - call read3d(56,nx,ny,nz,z) - endif - close(56) - deallocate(x1d,y1d,z1d,x2d,y2d) - end diff --git a/cases/flatplate-Ma2.25/readme.txt b/cases/flatplate-Ma2.25/readme.txt deleted file mode 100644 index 557a53b..0000000 --- a/cases/flatplate-Ma2.25/readme.txt +++ /dev/null @@ -1,15 +0,0 @@ -DNS of boundary layer transition of Mach 2.25 flate-plate ----------------------------------------- -Ref: - Li XL et al. Chinese Physics Letters 26(9), 094701, 2009 - Gao H. et al. Chinese Physics Letters 22(7), 1709, 2005 - Rai MM, et al. AIAA 95-0583 - Pirozzoli S. et al. Phys. Fluids 16, 530, 2004 ------------------------------------------ -1) Generate mesh and initial data - Compile and run Grid-and-init.f90 - 2) ln -s opencfd0.dat opencfd.dat - 3) mpirun -n 64 ./opencfd-beta-4.out (or new versions) - 4) rm opencfd.dat - ln -s OCFDxxxxxxxx.dat opencfd.dat - 5) compile and run read-flatplate.f90 diff --git a/cases/isotropic/Energy-spectrum-FFT3d-v1.1.f90 b/cases/isotropic/Energy-spectrum-FFT3d-v1.1.f90 deleted file mode 100644 index 33dd38b..0000000 --- a/cases/isotropic/Energy-spectrum-FFT3d-v1.1.f90 +++ /dev/null @@ -1,301 +0,0 @@ -! call FFTW for FFT -! ver 1.1 2011-9-25 -! get Kinetic Energy Spectrum using FFT3d - implicit none -! include 'fftw_f77.i' ! FFTW2.5 -! include "fftw3.f" ! since FFTW3.0 the include file became "fftw3.f" - integer,parameter::nx=128,ny=nx,nz=nx,Kmax=2*nx - real*8,parameter:: PI=3.1415926535d0 - doublecomplex CI,out - real*8,allocatable:: uu(:,:,:),ur(:,:,:),ui(:,:,:),Er(:,:,:) - real*8 Ek(0:Kmax),Ea,Ek1,Ek2,Ek3,Ek4,tt,urms,uxrms,le,tmp,Re - integer plan,ierr,nn(3),i,j,k,k1,k2,k3,kk,Istep,i1 - CI=(0.d0,1.d0) - - nn(1)=nx - nn(2)=ny - nn(3)=nz - - allocate(ur(nx,ny,nz),ui(nx,ny,nz),Er(nx,ny,nz)) - allocate(uu(nx,ny,nz)) -!-------------------------------------------------- - print*, "Comput 1-d Energy spectrum E(k) (shell-integrated energy spectrum)" - print*, "Comput integrate length le, eddy turn-over time tao" - print*, "please input Re ..." - read(*,*) Re - - urms=0.d0 -! call fftwnd_f77_create_plan(plan,3,nn,FFTW_FORWARD,FFTW_ESTIMATE+FFTW_IN_PLACE) - open(33,file='opencfd.dat',form='unformatted') - read(33) Istep,tt - print*, 'Istep=',Istep,'tt=',tt - call read3d(33,nx,ny,nz,uu) ! d - call read3d(33,nx,ny,nz,uu) ! u - - do k=1,nz - do j=1,ny - do i=1,nx - urms=urms+uu(i,j,k)**2 - enddo - enddo - enddo - - ! call fftwnd_f77_one(plan,uf,out) ! spectrum of u - ur=uu - ui=0.d0 - call FFT3D(nx,ny,nz,ur,ui,-1) - do k=1,nz - do j=1,ny - do i=1,nx - Er(i,j,k)=(ur(i,j,k)**2+ui(i,j,k)**2)/2.d0 - enddo - enddo - enddo - -!-----get RMS of ux ------------------- - do k=1,Nz -! k1=k-1 ; if(k1 .ge. Nz/2 ) k1=k1-Nz - do j=1,Ny -! j1=j-1 ; if(j1 .ge. Ny/2 ) j1=j1-Ny - do i=1,Nx - i1=i-1 ; if(i1 .ge. Nx/2 ) i1=i1-Nx - tmp=ur(i,j,k) - ur(i,j,k)=-ui(i,j,k)*i1 - ui(i,j,k)=tmp*i1 - enddo - enddo - enddo - - call FFT3D(nx,ny,nz,ur,ui,1) - uxrms=0.d0 - do k=1,nz - do j=1,ny - do i=1,nx - uxrms=uxrms+ur(i,j,k)**2 - enddo - enddo - enddo - uxrms=sqrt(uxrms/(nx*ny*nz)) -!------------------------------------- - call read3d(33,nx,ny,nz,uu) ! v - do k=1,nz - do j=1,ny - do i=1,nx - urms=urms+uu(i,j,k)**2 - enddo - enddo - enddo - ur=uu - ui=0.d0 - - - call FFT3D(nx,ny,nz,ur,ui,-1) - do k=1,nz - do j=1,ny - do i=1,nx - Er(i,j,k)=Er(i,j,k)+(ur(i,j,k)**2+ui(i,j,k)**2)/2.d0 - enddo - enddo - enddo - - ! call fftwnd_f77_one(plan,vf,out) ! spectrum of u - call read3d(33,nx,ny,nz,uu) ! w - - do k=1,nz - do j=1,ny - do i=1,nx - urms=urms+uu(i,j,k)**2 - enddo - enddo - enddo - - ur=uu - ui=0.d0 - call FFT3D(nx,ny,nz,ur,ui,-1) - do k=1,nz - do j=1,ny - do i=1,nx - Er(i,j,k)=Er(i,j,k)+(ur(i,j,k)**2+ui(i,j,k)**2)/2.d0 - enddo - enddo - enddo - - ! call fftwnd_f77_one(plan,wf,out) ! spectrum of u - -! Ek(k) is averaged Kinetic Energy Spectrum in the interval [k-0.5,k+0.5) (k=sqrt(k1**2+k2**2+k3**2)) -! uf=uf/(1.d0*nx*ny*nz) ! FFTW do not times 1.d0/(nx*ny*nz) -! vf=vf/(1.d0*nx*ny*nz) -! wf=wf/(1.d0*nx*ny*nz) -!-------------------------------- - urms=sqrt(urms/(3.d0*nx*ny*nz)) - print*, "statistics rms =", urms - - Ek=0.d0 - do k=1,nz - do j=1,ny - do i=1,nx - k3=k-1 - if(k3 .ge. nz/2) k3=k-1-nz - k2=j-1 - if(k2 .ge. ny/2) k2=j-1-ny - k1=i-1 - if(k1 .ge. nx/2) k1=i-1-nx - - kk=int(sqrt(dble(k1*k1+k2*k2+k3*k3))+0.5d0) - Ek(kk)=Ek(kk)+Er(i,j,k) - enddo - enddo - enddo - - open(66,file='Energy-spectrum.dat') - Ek1=0.d0 - Ek2=0.d0 - do k=1,Kmax - Ek1=Ek1+Ek(k) - Ek2=Ek2+Ek(k)/k - write(66,*) k, Ek(k) - enddo - close(66) - urms=sqrt(Ek1*2.d0/3.d0) - le= 3.d0/4.d0*PI*Ek2/Ek1 - print*, "urms=", urms, "uxrms=", uxrms - print*, "Integrated length le=", le - print*, "Taylor scale (lamda)=", urms/uxrms - print*, "Eddy turnover time tao=", le/urms - print*, "Re_lamda=", urms*(urms/uxrms)*Re - end - -! ----------------------------------------------- - subroutine read3d(file_no,nx,ny,nz,u) - implicit none - integer file_no,nx,ny,nz,k - real*8 u(nx,ny,nz),u2d(nx,ny) - do k=1,nz - read(file_no) u2d - u(:,:,k)=u2d - enddo - end - - -!C --------------- --------------------------------------------------- -!c FFT FOR 1-D PROBLERM -!c **************************************************************** - SUBROUTINE FFT(N,FR,FI,SIGN) - implicit double precision (a-h,o-z) - dimension FR(n),FI(n) - integer sign - MR=0 - NN=N-1 - DO 2 M=1,NN - L=N - 1 L=L/2 - IF(MR+L.GT.NN) GO TO 1 - MR=MOD(MR,L)+L - IF(MR.LE.M) GO TO 2 - TR=FR(M+1) - FR(M+1)=FR(MR+1) - FR(MR+1)=TR - TI=FI(M+1) - FI(M+1)=FI(MR+1) - FI(MR+1)=TI - 2 CONTINUE - L=1 - 3 ISTEP=2*L - EL=L - DO 4 M=1,L - A=3.1415926535897d0*dfloat(M-1)/EL - WRo=COS(A) - WIo=SIGN*SIN(A) - DO 4 I=M,N,ISTEP - J=I+L - TR=WRo*FR(J)-WIo*FI(J) - TI=WRo*FI(J)+WIo*FR(J) - FR(J)=FR(I)-TR - FI(J)=FI(I)-TI - FR(I)=FR(I)+TR - 4 FI(I)=FI(I)+TI - L=ISTEP - IF(L.LT.N) GO TO 3 - IF(SIGN.GT.0.0) RETURN - XN=1.d0/DFLOAT(N) - DO 10 I=1,N - FR(I)=FR(I)*XN - 10 FI(I)=FI(I)*XN - RETURN - END - - -!c---------------------------------------- - SUBROUTINE FFT2D(N1,N2,XR,XI,SIGN) - implicit double precision (a-h,o-z) - DIMENSION XR(n1,n2),XI(n1,n2) - dimension FR(2048),FI(2048) - integer sign - DO 4 I=1,N1 - DO 3 J=1,N2 - FR(J)=XR(I,J) - 3 FI(J)=XI(I,J) - call FFT(N2,FR,FI,SIGN) - DO 4 J=1,N2 - XR(I,J)=FR(J) - 4 XI(I,J)=FI(J) - DO 6 J=1,N2 - DO 5 I=1,N1 - FR(I)=XR(I,J) - 5 FI(I)=XI(I,J) - call FFT(N1,FR,FI,SIGN) - DO 6 I=1,N1 - XR(I,J)=FR(I) - 6 XI(I,J)=FI(I) - RETURN - END -!c ===================================== - SUBROUTINE FFT3D(N1,N2,N3,XR,XI,SIGN) - implicit double precision (a-h,o-z) - DIMENSION XR(n1,n2,n3),XI(n1,n2,n3) - dimension FR(2048),FI(2048) - integer sign - do i=1,n1 - do j=1,n2 - do k=1,n3 - FR(k)=XR(i,j,k) - FI(k)=XI(i,j,k) - enddo - call FFT(N3,FR,FI,SIGN) - do k=1,n3 - XR(i,j,k)=FR(k) - XI(i,j,k)=FI(k) - enddo - enddo - enddo - do i=1,n1 - do k=1,n3 - do j=1,n2 - FR(j)=XR(i,j,k) - FI(j)=XI(i,j,k) - enddo - call FFT(N2,FR,FI,SIGN) - do j=1,n2 - XR(i,j,k)=FR(j) - XI(i,j,k)=FI(j) - enddo - enddo - enddo - - do k=1,n3 - do j=1,n2 - do i=1,n1 - FR(i)=XR(i,j,k) - FI(i)=XI(i,j,k) - enddo - call FFT(N1,FR,FI,SIGN) - do i=1,n1 - XR(i,j,k)=FR(i) - XI(i,j,k)=FI(i) - enddo - enddo - enddo - - RETURN - END - diff --git a/cases/isotropic/Grid.f90 b/cases/isotropic/Grid.f90 deleted file mode 100644 index 75d4af8..0000000 --- a/cases/isotropic/Grid.f90 +++ /dev/null @@ -1,30 +0,0 @@ - ! Mesh for isotropic turbulence - implicit none - integer,parameter:: nx=128, ny=nx, nz=nx - real*8,parameter:: PI=3.1415926535897d0 - integer:: i,j,k - real*8:: xx(nx),yy(ny),zz(ny),hx - - !------------------------------------- - hx=2.d0*PI/nx - do i=1,nx - xx(i)=(i-1.d0)*hx - enddo - do j=1,ny - yy(j)=(j-1.d0)*hx - enddo - do k=1,nz - zz(k)=(k-1.d0)*hx - enddo - - open(99,file="OCFD-grid.dat",form="unformatted") - write(99) xx - write(99) yy - write(99) zz - close(99) - end - - - - - diff --git a/cases/isotropic/data/statis.lpk b/cases/isotropic/data/statis.lpk deleted file mode 100644 index 29c67c3..0000000 Binary files a/cases/isotropic/data/statis.lpk and /dev/null differ diff --git a/cases/isotropic/data/statistics-WENO7.dat b/cases/isotropic/data/statistics-WENO7.dat deleted file mode 100644 index 7f8493c..0000000 --- a/cases/isotropic/data/statistics-WENO7.dat +++ /dev/null @@ -1,52 +0,0 @@ - 0.050000000000 70.114525559536 69.678283987966 0.395148951628 0.570488561942 0.566939071664 0.569716672553 0.574782219589 -0.010675743495 2.984526105612 -0.476620803487 3.391641256366 0.487705752774 0.038530414139 1.000552550559 0.002000767568 1.000000000000 2.320006726812 0.244369580964 - 0.100000000000 65.898708065973 65.469276947885 0.388173729695 0.560471541976 0.556819210572 0.560379426765 0.564191734156 -0.002874562321 2.968262714595 -0.386330408390 3.216982879684 0.467033358235 0.072826914344 1.000893840430 0.002001072654 1.000000000000 2.382140510410 0.233747425116 - 0.150000000000 61.712393591025 61.296206116641 0.385311834117 0.556598115426 0.552844425925 0.557425053940 0.559504009145 0.008554208309 2.921094937859 -0.373051204469 3.322285006763 0.457201601337 0.072430200416 1.001819205638 0.002002518344 1.000000000000 2.506885905103 0.220530349945 - 0.200000000000 57.915639455359 57.529916243448 0.380809576870 0.550437129385 0.546771170078 0.551574009242 0.552947104267 0.016285022004 2.875678551500 -0.482227713114 3.560655004477 0.448148741868 0.065548867405 1.003027453370 0.002004453690 1.000000000000 2.609898151302 0.209499044936 - 0.250000000000 54.409163946792 54.020793961305 0.374603384278 0.541843328053 0.537975676536 0.543384564021 0.544148843153 0.017582894825 2.859317737855 -0.504286338698 3.652171654802 0.435331353968 0.061460627874 1.004401641773 0.002006618690 1.000000000000 2.689122302890 0.200056232458 - 0.300000000000 51.351121692286 50.964745699456 0.367415713780 0.531857566640 0.527855765149 0.533632230567 0.534062119304 0.014433230496 2.861059001990 -0.479730895051 3.646478985936 0.419544767128 0.059248775834 1.005943029362 0.002009025703 1.000000000000 2.741923014323 0.192512978078 - 0.350000000000 48.840461323851 48.434675000830 0.359396408279 0.520682607428 0.516356565556 0.522335296570 0.523328642630 0.011809743287 2.862993410988 -0.465701631144 3.660409894460 0.402168131556 0.057403198138 1.007609866002 0.002011622563 1.000000000000 2.759433207172 0.187124139919 - 0.400000000000 46.849201198848 46.388269452936 0.350795993347 0.508659245144 0.503654737321 0.510261481007 0.512023251022 0.014536578056 2.860164107217 -0.455401761574 3.654314664299 0.383967164974 0.055852933704 1.009333757470 0.002014302757 1.000000000000 2.741744287529 0.183698654762 - 0.450000000000 45.008431257492 44.536809218365 0.341945760463 0.496253864657 0.491053855391 0.497522600156 0.500141048106 0.022563696017 2.853111717816 -0.449628935189 3.664949021291 0.365619581058 0.054303923628 1.011067475090 0.002016995320 1.000000000000 2.712745408760 0.181017302179 - 0.500000000000 43.342021523837 42.892071053550 0.333032227227 0.483726619471 0.478704864318 0.484763802815 0.487667956209 0.029200242366 2.861224777352 -0.442697723756 3.671995066813 0.347443357639 0.053002099674 1.012771480749 0.002019637695 1.000000000000 2.673113155223 0.179081406780 - 0.550000000000 41.945296282235 41.482897691296 0.324185584780 0.471261774889 0.466066656485 0.472528613655 0.475143728155 0.030130368363 2.869479666757 -0.426808977899 3.663261610956 0.329797345250 0.051722925530 1.014421786983 0.002022194058 1.000000000000 2.618293531610 0.178003975054 - 0.600000000000 40.671163798349 40.186320208917 0.315437364092 0.458902454048 0.453431848041 0.460342080575 0.462881318514 0.026280830573 2.856253535312 -0.420152619436 3.621173200056 0.312867629085 0.050464063138 1.016000541324 0.002024636774 1.000000000000 2.557449340518 0.177298467210 - 0.650000000000 39.493028165422 39.002211443094 0.306922043746 0.446845668562 0.441292300370 0.448305849011 0.450883716623 0.022892939768 2.840795356236 -0.417884872932 3.576572909043 0.296797414952 0.049038016890 1.017504130515 0.002026962262 1.000000000000 2.494301839632 0.176920167944 - 0.700000000000 38.359604965475 37.886579509815 0.298710705957 0.435196902111 0.429830339731 0.436468705245 0.439237952833 0.021184967414 2.848125243574 -0.414495067006 3.579010482672 0.281660499647 0.047281536481 1.018930980153 0.002029168905 1.000000000000 2.433208168963 0.176651691875 - 0.750000000000 37.332178014261 36.862263485024 0.290739229178 0.423863504351 0.418528170874 0.424794197792 0.428211245379 0.023093582160 2.857483059345 -0.409784499805 3.573721017601 0.267377229042 0.045536701731 1.020275176915 0.002031245938 1.000000000000 2.369224477376 0.176651969820 - 0.800000000000 36.361035173699 35.875489529585 0.282990812315 0.412821750641 0.407309151732 0.413955195184 0.417139958171 0.030735472980 2.862351734404 -0.410663763347 3.571293067400 0.253795145382 0.044275069278 1.021531800158 0.002033183163 1.000000000000 2.305220107088 0.176689918017 - 0.850000000000 35.407336711989 34.913893908151 0.275640449649 0.402332691357 0.396725712981 0.403785054134 0.406424805249 0.039150992531 2.871521012536 -0.408968814738 3.575745858861 0.241091541619 0.042841428346 1.022715030901 0.002035007851 1.000000000000 2.246525200680 0.176595264928 - 0.900000000000 34.594335061890 34.077755029382 0.268558482877 0.392208979302 0.386352317310 0.394022095400 0.396184459035 0.042261244606 2.870464260165 -0.403505958547 3.560118087178 0.229118448186 0.041729275467 1.023824938262 0.002036718807 1.000000000000 2.183227551904 0.176963833648 - 0.950000000000 33.792529142287 33.268939488774 0.261660248347 0.382328156509 0.376404271199 0.384530367828 0.385980153144 0.036529971491 2.863997455382 -0.407559106630 3.557005502082 0.217789358650 0.041021260989 1.024860312672 0.002038311889 1.000000000000 2.122175180144 0.177367200748 - 1.000000000000 32.939579658027 32.440426850688 0.255066605391 0.372870540479 0.367220214063 0.375012316348 0.376314226202 0.028074958427 2.857707115046 -0.415124132225 3.577842252702 0.207212884429 0.040085715695 1.025830842639 0.002039804713 1.000000000000 2.069233499218 0.177466783812 - 1.050000000000 32.194187671833 31.695752065744 0.248764511228 0.363819530415 0.358186817766 0.365613647990 0.367590554990 0.021845669787 2.851833422829 -0.416593254357 3.589556089273 0.197306150606 0.039126200716 1.026741465489 0.002041205243 1.000000000000 2.014224487088 0.177828648228 - 1.100000000000 31.544862338596 31.048208819829 0.242633581541 0.354999999315 0.349410753215 0.356380386704 0.359138057093 0.019532860980 2.847680720350 -0.412587118965 3.570385952512 0.187921998303 0.038515238578 1.027591611906 0.002042510272 1.000000000000 1.955977337110 0.178637424159 - 1.150000000000 30.843718250730 30.386945349414 0.236712919795 0.346471791712 0.341340797964 0.347261433722 0.350747863361 0.020494658478 2.850635613524 -0.406954303141 3.563136621259 0.179127171605 0.037861851643 1.028388655677 0.002043733229 1.000000000000 1.904341493850 0.179243480786 - 1.200000000000 30.193505832262 29.755824288213 0.231157771892 0.338465198076 0.333558845984 0.338979747263 0.342793375282 0.028819033679 2.862351651594 -0.405226022742 3.559437798387 0.171016929217 0.036663704650 1.029142225856 0.002044892114 1.000000000000 1.855427961008 0.179774614264 - 1.250000000000 29.619269164563 29.178456651169 0.225898068876 0.330878490095 0.325954149186 0.331533285776 0.335084017337 0.035439303733 2.869654606568 -0.410582651451 3.581042793578 0.163460151876 0.035287122369 1.029852297241 0.002045985245 1.000000000000 1.806592632009 0.180424819304 - 1.300000000000 29.036084396209 28.602899641557 0.220761855166 0.323459410659 0.318633770826 0.324481921520 0.327203260569 0.032645102771 2.871698512356 -0.413473742589 3.575869600426 0.156214175453 0.034634021396 1.030513734799 0.002047000668 1.000000000000 1.760287266967 0.181012370427 - 1.350000000000 28.534590283592 28.092286863244 0.215789223887 0.316268436528 0.311366084336 0.317703571085 0.319676045829 0.026951783709 2.868668564645 -0.413498184984 3.546773285738 0.149333166308 0.034349257543 1.031131987808 0.002047948162 1.000000000000 1.711674192555 0.181907331249 - 1.400000000000 28.073945284055 27.615847588607 0.211059309662 0.309423834782 0.304374799308 0.310991994117 0.312840677877 0.019920679365 2.860604954704 -0.415229121363 3.559227333631 0.142951479864 0.033694126836 1.031715496681 0.002048843612 1.000000000000 1.664543959735 0.182857771660 - 1.450000000000 27.601086254327 27.162149824137 0.206489705362 0.302805071745 0.297989602672 0.304138084914 0.306226968812 0.012761304490 2.851567477458 -0.416318762681 3.588398482839 0.136935516319 0.033128857280 1.032263234701 0.002049683592 1.000000000000 1.620739777907 0.183860238845 - 1.500000000000 27.118364052267 26.730777772331 0.202088253428 0.296424636341 0.292188019344 0.297415666103 0.299621057334 0.008409173249 2.842206728735 -0.415892341963 3.592168570499 0.131265884953 0.032643771209 1.032778064311 0.002050472837 1.000000000000 1.580196458931 0.184906134735 - 1.550000000000 26.636718681091 26.296227645079 0.197832126747 0.290249644556 0.286539450243 0.291007608696 0.293162554960 0.011023676966 2.835746573323 -0.416568304858 3.586433283159 0.125883972051 0.032434706209 1.033261083048 0.002051212567 1.000000000000 1.541885060651 0.185837101322 - 1.600000000000 26.201972853146 25.875859095073 0.193798573948 0.284394905534 0.280855283081 0.285309081265 0.286985060576 0.018749983979 2.828298605798 -0.414484578037 3.578000077078 0.120885059235 0.031883432594 1.033718345165 0.002051913911 1.000000000000 1.504355564376 0.186694748058 - 1.650000000000 25.852156394453 25.520679508410 0.189927394365 0.278772298814 0.275197874611 0.280103981368 0.280980200708 0.026607803946 2.819257562568 -0.414102747395 3.584937192413 0.116192082608 0.031206652787 1.034149322758 0.002052574737 1.000000000000 1.464547557518 0.187906410549 - 1.700000000000 25.473432184344 25.156639074944 0.186199230864 0.273353990685 0.269954501364 0.274706192580 0.275369365801 0.026494953972 2.816551185532 -0.416763200917 3.586394816922 0.111748134168 0.030655740951 1.034555629544 0.002053197535 1.000000000000 1.428672347537 0.188954802569 - 1.750000000000 25.119412375722 24.819235020834 0.182697932030 0.268264212106 0.265058450745 0.269409207033 0.270295688729 0.022706019069 2.816742196613 -0.418427555534 3.587516953683 0.107625751673 0.029776407932 1.034942205517 0.002053791585 1.000000000000 1.394953185482 0.190012434470 - 1.800000000000 24.815086574177 24.506880542576 0.179246918786 0.263242917061 0.259973411852 0.264519975438 0.265204652812 0.020709097183 2.811946300286 -0.422288375746 3.594892680814 0.103620495188 0.029522298649 1.035303290111 0.002054344404 1.000000000000 1.359328245815 0.191251386597 - 1.850000000000 24.514614531715 24.170661055302 0.175871959847 0.258328765392 0.254704271244 0.259774472506 0.260469212637 0.019905320908 2.798277359625 -0.425886292630 3.590136299510 0.099786967051 0.029519326674 1.035642683894 0.002054862970 1.000000000000 1.324761206828 0.192264288788 - 1.900000000000 24.230817467210 23.861818250839 0.172663146779 0.253655107755 0.249792318721 0.255161339790 0.255967242542 0.018292232132 2.781392933437 -0.422490343124 3.558840924450 0.096233891123 0.029071206310 1.035965486372 0.002055357001 1.000000000000 1.291908903225 0.193351340870 - 1.950000000000 23.937032008050 23.582256779098 0.169609679595 0.249206304049 0.245512770802 0.250746522421 0.251318536525 0.017966568815 2.764476421008 -0.415988007261 3.533724072600 0.092913519528 0.028353219011 1.036272046062 0.002055826573 1.000000000000 1.262005572505 0.194541748587 - 2.000000000000 23.569363907404 23.271387285280 0.166583757229 0.244794251737 0.241699430658 0.246068963145 0.246584929886 0.020671320579 2.759534663620 -0.417996485631 3.539394058486 0.089662440213 0.028286199441 1.036559427881 0.002056265216 1.000000000000 1.236446814431 0.195479035440 - 2.050000000000 23.250204686628 23.006031790560 0.163666185010 0.240538591197 0.238012462709 0.241454008652 0.242129037637 0.025510753867 2.765724516021 -0.426542684593 3.550811698600 0.086575016426 0.028304954633 1.036832634104 0.002056682544 1.000000000000 1.209972453889 0.196708992791 - 2.100000000000 23.017718870599 22.796144903597 0.160968408149 0.236603911562 0.234326306749 0.237353215234 0.238115236982 0.029794571509 2.771257974221 -0.429718168932 3.546645655356 0.083755995419 0.027703073723 1.037096061549 0.002057086934 1.000000000000 1.182303330854 0.198194744643 - 2.150000000000 22.794940315605 22.567635127044 0.158407867454 0.232868652374 0.230546547020 0.233709058666 0.234332655277 0.029016128544 2.768786589405 -0.428775918643 3.555251446836 0.081115532544 0.026878539841 1.037347525021 0.002057473456 1.000000000000 1.156243646541 0.199392703873 - 2.200000000000 22.556005759475 22.318099463701 0.155826404168 0.229099917860 0.226683518725 0.230229648054 0.230367551071 0.025309791886 2.759497330122 -0.429751501109 3.563574092891 0.078514951314 0.026613479088 1.037583825122 0.002057835201 1.000000000000 1.130777291371 0.200466988906 - 2.250000000000 22.313186782463 22.076197085042 0.153258449136 0.225348720637 0.222955278336 0.226833313221 0.226238214176 0.021483686920 2.750090158357 -0.430397560580 3.551049768409 0.075984084225 0.026716461932 1.037807242206 0.002058176466 1.000000000000 1.105773008123 0.201628432507 - 2.300000000000 22.083738497078 21.842574651131 0.150836025806 0.221809898435 0.219387639713 0.223557400106 0.222463582480 0.015786680684 2.745230520623 -0.432124260530 3.531733157767 0.073629706839 0.026497368619 1.038022248740 0.002058505961 1.000000000000 1.082273740355 0.202709935142 - 2.350000000000 21.831777092402 21.598984251640 0.148492204240 0.218384760498 0.216056117779 0.220096239087 0.218981986390 0.008883961865 2.742206654936 -0.426879574191 3.520587297746 0.071374501330 0.026331945030 1.038226435402 0.002058818445 1.000000000000 1.061054077835 0.203624039804 - 2.400000000000 21.555945845436 21.351128466359 0.146227567188 0.215074345673 0.213030781261 0.216407462379 0.215769828664 0.004529362918 2.741217844725 -0.429394860561 3.533950389000 0.069219249841 0.026165360028 1.038420608142 0.002059115266 1.000000000000 1.042148189537 0.204415056707 - 2.450000000000 21.341945918208 21.165674825140 0.144059180187 0.211904118675 0.210153923507 0.212742994629 0.212804636239 0.001511445605 2.752004422621 -0.435868237651 3.565267922492 0.067188814919 0.025836857804 1.038606955181 0.002059400589 1.000000000000 1.021654255452 0.205699650723 - 2.500000000000 21.131237302141 20.983275086985 0.141952050000 0.208822686536 0.207360497322 0.209277919269 0.209821638288 0.002347375661 2.765715408679 -0.431539464682 3.552574439038 0.065258717504 0.025484320087 1.038785685047 0.002059674599 1.000000000000 1.001917165300 0.206963713671 - 2.550000000000 20.887321831934 20.762134614212 0.139815470287 0.205696229437 0.204463398399 0.206210940414 0.206408776903 0.009854237037 2.764455530068 -0.434619487230 3.551148778556 0.063336535940 0.025622409242 1.038953670729 0.002059930733 1.000000000000 0.983370750089 0.207920968140 - 2.600000000000 20.696674599018 20.575398948016 0.137759868749 0.202687728228 0.201500045343 0.203675523268 0.202881636604 0.019945060728 2.757970792674 -0.442079418552 3.573669248660 0.061511744219 0.025662517082 1.039114600824 0.002060176219 1.000000000000 0.963496117191 0.209134257781 diff --git a/cases/isotropic/data/statistics-hybrid-ud7l0.1.dat b/cases/isotropic/data/statistics-hybrid-ud7l0.1.dat deleted file mode 100644 index 72006fd..0000000 --- a/cases/isotropic/data/statistics-hybrid-ud7l0.1.dat +++ /dev/null @@ -1,100 +0,0 @@ - 0.050000000000 69.602761827373 69.945657124574 0.395171935626 0.570520529252 0.573331176435 0.564416622234 0.573764988099 0.014966399385 2.960359610049 -0.459217932159 3.336260575425 0.487813799672 0.038312192483 1.000547149855 0.002000760879 1.000000000000 2.337334627777 0.245292723439 - 0.100000000000 65.501118173364 65.888931438838 0.388343167409 0.560711148786 0.564030958091 0.555377446850 0.562686366429 0.012439525091 2.952760272000 -0.380643595799 3.183209432948 0.467601502617 0.072243491632 1.000872112341 0.002001044502 1.000000000000 2.398683355954 0.235141898447 - 0.150000000000 61.531014020320 61.900654105471 0.385741129979 0.557193438559 0.560540710392 0.552770891890 0.558240124850 0.012898343925 2.920234237029 -0.380720882228 3.317841840974 0.458478590352 0.071892673382 1.001726803466 0.002002379677 1.000000000000 2.519831415858 0.222451671514 - 0.200000000000 57.913830169708 58.235090494535 0.381915015432 0.551968884502 0.555030773219 0.547896222490 0.552955259074 0.014989564607 2.882466586552 -0.486658826771 3.593352001190 0.450771257395 0.065441706861 1.002786379838 0.002004081030 1.000000000000 2.625014020847 0.211439165205 - 0.250000000000 53.996753095933 54.314709808559 0.376777590232 0.544866168872 0.548074581340 0.540519256826 0.545976750634 0.016488852236 2.860379384448 -0.505867198741 3.663769723105 0.440189596183 0.061478126655 1.003951354230 0.002005921256 1.000000000000 2.740931360859 0.199959250774 - 0.300000000000 50.639579298031 50.922216686648 0.370815299077 0.536593865191 0.539588785190 0.532480164349 0.537687405425 0.015631519785 2.843806214291 -0.476125394536 3.652870494370 0.427124711646 0.059230791722 1.005249302524 0.002007952356 1.000000000000 2.831704386116 0.190552653673 - 0.350000000000 47.957391727956 48.150448401726 0.364005896352 0.527113217147 0.529235157493 0.523821042524 0.528267635347 0.012192927059 2.828367606333 -0.458675096934 3.648994308325 0.412283137161 0.057867009370 1.006665401161 0.002010158532 1.000000000000 2.882185624122 0.183622856579 - 0.400000000000 45.777134255219 45.890169010341 0.356679356898 0.516891999869 0.518168330543 0.514061794707 0.518434249476 0.011705578415 2.821192471147 -0.453281026726 3.650073857275 0.396599126101 0.056235969067 1.008170201378 0.002012502232 1.000000000000 2.900111188022 0.178671884265 - 0.450000000000 43.850729343003 43.943685733974 0.348941159047 0.506067055449 0.507139835030 0.503114611520 0.507933528360 0.013742826310 2.826430627502 -0.445591879272 3.607276805100 0.380416476777 0.054594893262 1.009714113454 0.002014903097 1.000000000000 2.898579033074 0.174961534339 - 0.500000000000 42.154197857931 42.272389773273 0.340989585742 0.494915516242 0.496303160078 0.492085354290 0.496345929813 0.013712784147 2.839915023973 -0.437509065356 3.575763053980 0.364055828027 0.053097570290 1.011262132821 0.002017306386 1.000000000000 2.880377742975 0.172304886499 - 0.550000000000 40.612946195476 40.760730394744 0.333036468406 0.483737376983 0.485497622117 0.481482467113 0.484223339435 0.012447537816 2.849543792243 -0.433405942396 3.559364752551 0.347876168248 0.051726333918 1.012784525309 0.002019667060 1.000000000000 2.852824217509 0.170181400991 - 0.600000000000 39.202073587061 39.361213444939 0.325133076866 0.472604282183 0.474522807695 0.470613760298 0.472668188277 0.013398923553 2.848071273774 -0.428239185599 3.539278194447 0.332133357910 0.050393015592 1.014265771888 0.002021962886 1.000000000000 2.817818949804 0.168400744032 - 0.650000000000 37.974609618954 38.104260674085 0.317307710710 0.461554201568 0.463130017352 0.459637357032 0.461888438915 0.012154249215 2.848000846744 -0.425812231372 3.525321445862 0.316945651516 0.049101316858 1.015689024857 0.002024166278 1.000000000000 2.771442765027 0.167107913321 - 0.700000000000 36.805302318124 36.872819904546 0.309593128582 0.450633777460 0.451460443812 0.448830677683 0.451604799141 0.010423541548 2.846435403253 -0.426179038797 3.528527413549 0.302283082987 0.048146368316 1.017045064131 0.002026261378 1.000000000000 2.722962289414 0.165797538059 - 0.750000000000 35.742802242970 35.745150301012 0.302179540844 0.440123591681 0.440152504796 0.438500730032 0.441711682148 0.011877798584 2.850048062708 -0.428330863027 3.528618364616 0.288398172747 0.046903559603 1.018339982116 0.002028262656 1.000000000000 2.672000309014 0.164727714780 - 0.800000000000 34.692472909439 34.667752538233 0.294972083551 0.429885293327 0.429578975468 0.428445484304 0.431625378161 0.013849355646 2.850093376517 -0.420248006896 3.499699927751 0.275208535081 0.045736586665 1.019566190974 0.002030156260 1.000000000000 2.623858745090 0.163720313173 - 0.850000000000 33.665123743913 33.640531362467 0.287916463989 0.419841360566 0.419534666345 0.418738950153 0.421246554269 0.012213985944 2.844544368874 -0.415380336559 3.488814754212 0.262661837680 0.044626622676 1.020724572916 0.002031942394 1.000000000000 2.576788864202 0.162812977102 - 0.900000000000 32.680712386807 32.665067287299 0.281170753024 0.410225807028 0.410029421359 0.409171264147 0.411473435925 0.010434312789 2.844865119493 -0.415848795605 3.495872258890 0.250881078309 0.043164644039 1.021822576527 0.002033635934 1.000000000000 2.532102220732 0.161932412523 - 0.950000000000 31.743220655007 31.739597860313 0.274600739614 0.400843420807 0.400797673294 0.399340207817 0.402386589634 0.005432385750 2.857230729263 -0.411813917900 3.492698944572 0.239583955833 0.042270358879 1.022857836715 0.002035229921 1.000000000000 2.487053070189 0.161153647302 - 1.000000000000 30.868814992508 30.877833135503 0.268255080113 0.391768379488 0.391882832319 0.389672296908 0.393739426850 -0.003798060933 2.860897841355 -0.414507388545 3.502079936628 0.228881680420 0.041457863210 1.023837993557 0.002036738849 1.000000000000 2.441200528457 0.160528734838 - 1.050000000000 30.065371355151 30.090622733836 0.262157371988 0.383037617976 0.383359324560 0.380448401616 0.385289621367 -0.013230785460 2.858544570887 -0.418712087297 3.507022379338 0.218802092028 0.040428140954 1.024769022793 0.002038172834 1.000000000000 2.394281858106 0.160114534244 - 1.100000000000 29.272742356306 29.328788333269 0.256152645813 0.374423913125 0.375140790066 0.371567237654 0.376546113630 -0.016365260958 2.864195043366 -0.427197089526 3.520960244326 0.209127629953 0.039897223291 1.025643776589 0.002039516607 1.000000000000 2.348207654260 0.159756224875 - 1.150000000000 28.526979849310 28.606035225396 0.250377231387 0.366130200597 0.367144838699 0.363368195357 0.367861649790 -0.014023010560 2.864544086661 -0.427956932624 3.528787834751 0.200027286220 0.039159471368 1.026474001743 0.002040792814 1.000000000000 2.302588839811 0.159448718048 - 1.200000000000 27.894109202234 27.959046626166 0.244866989016 0.358211082107 0.359044996706 0.355831174898 0.359744914270 -0.013899547012 2.855245744626 -0.421952816485 3.522224283852 0.191500671361 0.038083596716 1.027265729792 0.002042011915 1.000000000000 2.252720269331 0.159382858846 - 1.250000000000 27.347360280571 27.363698073996 0.239542945834 0.350551170142 0.350760595569 0.348729153513 0.352155293515 -0.011559103777 2.835006402431 -0.418398924696 3.524248214683 0.183427705373 0.037044875880 1.028016270635 0.002043167634 1.000000000000 2.199294710916 0.159487763885 - 1.300000000000 26.798436813042 26.771705032856 0.234381020680 0.343115784056 0.342773521715 0.341779624506 0.344787361847 -0.006711128325 2.826097863813 -0.425424644459 3.552394784139 0.175762957892 0.036118706179 1.028725109932 0.002044258190 1.000000000000 2.148998863157 0.159503817146 - 1.350000000000 26.262586024304 26.225847464336 0.229361907509 0.335877779096 0.335407921866 0.335159384321 0.337062843580 -0.005912340712 2.829191908049 -0.428317448442 3.569368078856 0.168450417584 0.035417598959 1.029394904049 0.002045287455 1.000000000000 2.100248596701 0.159699152944 - 1.400000000000 25.697915852706 25.700761787819 0.224493549917 0.328850113230 0.328886531984 0.328332767326 0.329330280863 -0.005336464651 2.831761442699 -0.422166379836 3.569595346073 0.161493269399 0.034828867774 1.030029473850 0.002046262011 1.000000000000 2.056538513738 0.159922379176 - 1.450000000000 25.166273574443 25.217739561142 0.219722753159 0.321955253321 0.322613664060 0.320948454368 0.322301208224 -0.003040822226 2.831633015051 -0.422897237346 3.584350802458 0.154839125835 0.034456640045 1.030628504168 0.002047180292 1.000000000000 2.011944638424 0.160349175568 - 1.500000000000 24.695640728738 24.754735462391 0.215092139590 0.315256722361 0.316011107001 0.313644297679 0.316108585405 -0.000548248396 2.832886433721 -0.428100412382 3.603093605896 0.148517855950 0.034087593055 1.031195041335 0.002048047809 1.000000000000 1.965026099840 0.160817765742 - 1.550000000000 24.314163604227 24.354282958467 0.210715964894 0.308924121460 0.309433858766 0.306912807906 0.310415131479 0.000961439878 2.831938670160 -0.426589731112 3.612834639467 0.142637991826 0.033171460621 1.031737630915 0.002048880807 1.000000000000 1.915700495987 0.161525175472 - 1.600000000000 23.911018412143 23.965218685485 0.206413832611 0.302691927888 0.303378054465 0.300335352207 0.304347896179 0.002635502575 2.836865044653 -0.429135427568 3.630139147614 0.136942007587 0.032813305692 1.032249074733 0.002049663897 1.000000000000 1.869480560241 0.162279330910 - 1.650000000000 23.470289538436 23.583085970011 0.202238368295 0.296638728355 0.298064351587 0.293990995041 0.297843151051 0.000357885217 2.839869445516 -0.433745910145 3.645013871233 0.131509551883 0.032621299073 1.032735000569 0.002050407848 1.000000000000 1.828508564315 0.163009546361 - 1.700000000000 23.080295733475 23.252120145914 0.198288302360 0.290910753712 0.293076478532 0.288111586093 0.291522025867 -0.001863289379 2.838097107226 -0.431905894023 3.645312476905 0.126473554074 0.031825348861 1.033201209548 0.002051123721 1.000000000000 1.787665771009 0.163943665133 - 1.750000000000 22.752941350744 22.933547086280 0.194525761159 0.285452653754 0.287718487682 0.282899622860 0.285719316526 -0.002577422617 2.841889369643 -0.429683956069 3.642620322000 0.121789438547 0.030528157209 1.033647113077 0.002051809855 1.000000000000 1.745394129000 0.164844422759 - 1.800000000000 22.436099437428 22.581737678510 0.190734156806 0.279945509936 0.281762705112 0.278012830775 0.280048405695 -0.005651381619 2.841715089644 -0.433510088865 3.652119837922 0.117181129922 0.030091017265 1.034065557652 0.002052451018 1.000000000000 1.701871850360 0.165560470991 - 1.850000000000 22.108159058131 22.224551025104 0.186948361392 0.274440969258 0.275885807977 0.272949213879 0.274480025540 -0.005995070345 2.842243625798 -0.436036359421 3.665695185534 0.112646054920 0.030496131381 1.034458178179 0.002053049984 1.000000000000 1.659379748589 0.166258391554 - 1.900000000000 21.819697042362 21.935657526139 0.183409299385 0.269295023632 0.270726188380 0.267751975818 0.269398663008 0.002491461452 2.842826451177 -0.430415880282 3.655430189696 0.108477943519 0.030149383869 1.034836906024 0.002053630380 1.000000000000 1.618399215945 0.167280227099 - 1.950000000000 21.504922447826 21.641904364573 0.180012381780 0.264353719031 0.266037597650 0.262868971337 0.264144973150 0.006838861017 2.836389842009 -0.436794459804 3.663311419837 0.104554112926 0.029553475098 1.035198256584 0.002054184474 1.000000000000 1.581952816382 0.168170374549 - 2.000000000000 21.194044963234 21.332394528924 0.176657131599 0.259468902259 0.261162652083 0.258176134047 0.259058847916 -0.000353029961 2.832946840960 -0.446161196583 3.664752297948 0.100733214195 0.029357306121 1.035537606162 0.002054702475 1.000000000000 1.545994104460 0.168928620963 - 2.050000000000 20.967736748064 21.071763083349 0.173406141708 0.254733506869 0.255997305318 0.253824919259 0.254373285936 -0.006488002812 2.840038385806 -0.450279882473 3.677988169634 0.097093209728 0.029153535371 1.035859924780 0.002055194085 1.000000000000 1.505801593179 0.170007327976 - 2.100000000000 20.750632307080 20.817515498576 0.170394541482 0.250347599731 0.251154517140 0.250017237890 0.249869068417 -0.007228791031 2.850546784934 -0.447276485781 3.679176135474 0.093792636933 0.028101107224 1.036173745016 0.002055676159 1.000000000000 1.469267355784 0.170938608383 - 2.150000000000 20.518000005354 20.552735115886 0.167437729503 0.246038959599 0.246455481212 0.246010650172 0.245650085903 -0.007518982420 2.860572524154 -0.444710408405 3.676992538131 0.090605733188 0.027385479304 1.036471924600 0.002056133879 1.000000000000 1.434899053879 0.171758062385 - 2.200000000000 20.332012334709 20.328516291268 0.164499404116 0.241754156083 0.241712587004 0.241929496657 0.241620280361 -0.013652073845 2.870005962059 -0.442817757748 3.680639179484 0.087477623299 0.027276946388 1.036753302479 0.002056564459 1.000000000000 1.397736180954 0.172931480416 - 2.250000000000 20.086868686557 20.097639952521 0.161672607231 0.237630815556 0.237758241326 0.237712725584 0.237421339146 -0.020416318500 2.883844216021 -0.443929195919 3.682079784321 0.084509306474 0.027174585415 1.037022953328 0.002056977815 1.000000000000 1.366670024076 0.173969017493 - 2.300000000000 19.842191707962 19.906472678409 0.158883940408 0.233560753557 0.234317399401 0.233170965465 0.233192053912 -0.019160015498 2.883107783077 -0.448243220033 3.669575400244 0.081630320422 0.027379736930 1.037278248069 0.002057368300 1.000000000000 1.336281790513 0.175350289935 - 2.350000000000 19.611498351587 19.727998841647 0.156181766465 0.229615523181 0.230979535278 0.228878296853 0.228982630280 -0.016472008429 2.871292064926 -0.455872919511 3.691168982486 0.078895143972 0.027506428874 1.037521653375 0.002057740594 1.000000000000 1.306474957136 0.176795991393 - 2.400000000000 19.444200211778 19.584814839829 0.153594800709 0.225837711592 0.227470902233 0.225297823644 0.224735166874 -0.016880625835 2.863094350972 -0.467284855508 3.716191704250 0.076330320908 0.027361979346 1.037755090942 0.002058098228 1.000000000000 1.274490920405 0.178479813855 - 2.450000000000 19.274861617961 19.425301252551 0.151130518321 0.222238535801 0.223973099959 0.222109581947 0.220620226830 -0.017545738727 2.848965606094 -0.467732537638 3.702093983175 0.073922639802 0.027006999066 1.037979503838 0.002058442827 1.000000000000 1.244826016372 0.179923215786 - 2.500000000000 19.089169536772 19.238042562148 0.148756008567 0.218769539044 0.220475683624 0.218822500979 0.216996588998 -0.019941425912 2.838223709358 -0.464471448355 3.708321060470 0.071625925735 0.026672419046 1.038193876578 0.002058772096 1.000000000000 1.217806801175 0.181043235603 - 2.550000000000 18.929607005513 19.053804877111 0.146407194059 0.215336281971 0.216749111508 0.215372682754 0.213877472359 -0.021433471344 2.836837677878 -0.467348592341 3.729772361383 0.069396648672 0.026511072983 1.038396293630 0.002059081867 1.000000000000 1.189649999067 0.182195697623 - 2.600000000000 18.786241719068 18.880586322225 0.144089160280 0.211946405054 0.213010800997 0.211682043625 0.211142006506 -0.018050520487 2.842206907064 -0.472476191696 3.745697102511 0.067246905722 0.026400184095 1.038587488747 0.002059373408 1.000000000000 1.161119991946 0.183452875219 - 2.650000000000 18.597052784506 18.684083204440 0.141867122630 0.208696291050 0.209672947193 0.207983953345 0.208428299566 -0.011230062890 2.852805272376 -0.475966442021 3.760029581808 0.065223835583 0.026053739060 1.038770394378 0.002059652385 1.000000000000 1.137081016060 0.184395785552 - 2.700000000000 18.441470606342 18.512085587509 0.139770007588 0.205628787086 0.206416168593 0.204870731159 0.205596554184 -0.005792212443 2.856454128970 -0.477500817796 3.751739108627 0.063330815543 0.025466178306 1.038946739563 0.002059922082 1.000000000000 1.113067452640 0.185448032016 - 2.750000000000 18.323929919461 18.357965256329 0.137803631536 0.202752673396 0.203129271406 0.202472567502 0.202655614813 -0.003334895057 2.850866533809 -0.475302835701 3.745701404426 0.061570840899 0.024600686926 1.039117788916 0.002060184816 1.000000000000 1.088951091144 0.186536634251 - 2.800000000000 18.182289345903 18.189558345097 0.135833171008 0.199869098588 0.199949003175 0.200187779923 0.199469843862 -0.005092853779 2.843347703786 -0.471307300947 3.733205602479 0.059825636073 0.024153622676 1.039279471471 0.002060432170 1.000000000000 1.066312304892 0.187514485445 - 2.850000000000 18.032169911826 18.022295442268 0.133734223656 0.196794630427 0.196686865105 0.197519235510 0.196175453085 -0.011667307293 2.836798713168 -0.469226256793 3.726834769689 0.057997154286 0.024745513443 1.039428625098 0.002060657584 1.000000000000 1.042251829855 0.188713379503 - 2.900000000000 17.870827463228 17.868781351935 0.131664156234 0.193761589574 0.193739404940 0.194550620664 0.192991605403 -0.021382048209 2.842721332882 -0.469699193842 3.730132741377 0.056219586781 0.025506816853 1.039571051891 0.002060872617 1.000000000000 1.019388116691 0.190054604098 - 2.950000000000 17.736103563631 17.755530324210 0.129867596894 0.191130991047 0.191340341201 0.191823381173 0.190225738218 -0.022515450592 2.858291457947 -0.473393750330 3.745001179417 0.054699112927 0.025128176155 1.039714591868 0.002061092928 1.000000000000 0.999324268091 0.191469723402 - 3.000000000000 17.639182519406 17.665439807843 0.128231629776 0.188736232111 0.189017180601 0.189266925526 0.187921878114 -0.013363356631 2.870721276283 -0.474023093780 3.740216857270 0.053340595030 0.024091287519 1.039855382166 0.002061310528 1.000000000000 0.979690024182 0.192935700002 - 3.050000000000 17.540886240396 17.561736206926 0.126561694356 0.186290294701 0.186511728576 0.186539717115 0.185818542514 -0.010666474928 2.876295813168 -0.471663587022 3.728737562619 0.051982247701 0.023378733259 1.039987693421 0.002061513722 1.000000000000 0.959715916571 0.194340559905 - 3.100000000000 17.415733648342 17.429233667766 0.124862414377 0.183800174618 0.183942649577 0.184012007936 0.183445346551 -0.013277936971 2.874358376893 -0.465181474899 3.710375722463 0.050620807411 0.023104943912 1.040112993793 0.002061705350 1.000000000000 0.940856668395 0.195505495954 - 3.150000000000 17.291616347758 17.289253253645 0.123129848088 0.181260096310 0.181235325076 0.181693749274 0.180850230750 -0.005495393501 2.872620621427 -0.456522060734 3.669681735577 0.049237525515 0.023421500221 1.040231419857 0.002061885544 1.000000000000 0.921518944324 0.196670210843 - 3.200000000000 17.166575307573 17.150531523570 0.121443589865 0.178787493626 0.178620399847 0.179355080084 0.178385570149 -0.000411980011 2.873794343453 -0.460646647629 3.676156966384 0.047894042597 0.023861170101 1.040345091143 0.002062058484 1.000000000000 0.903003909605 0.197806895349 - 3.250000000000 17.065077524856 17.038366306955 0.119925146503 0.176561736164 0.176285371817 0.177159895430 0.176238415695 -0.005955709099 2.873572282793 -0.468438157839 3.700852877910 0.046698357469 0.023672902720 1.040458073144 0.002062232233 1.000000000000 0.885823800994 0.199007264898 - 3.300000000000 16.988103264952 16.955369518518 0.118450212377 0.174399441060 0.174063397242 0.175046851165 0.174086268165 -0.007409529045 2.875890017622 -0.462889739792 3.693413192197 0.045556385558 0.023430751940 1.040566838651 0.002062399555 1.000000000000 0.868105442039 0.200509510495 - 3.350000000000 16.904428695793 16.884055030263 0.117015813762 0.172296204940 0.172088548987 0.172850494893 0.171948202761 -0.003683739157 2.866362917762 -0.456788662279 3.663067803677 0.044457725409 0.023172801585 1.040670987119 0.002062559567 1.000000000000 0.851421132704 0.202119189173 - 3.400000000000 16.777951238000 16.792596524688 0.115548724467 0.170144017122 0.170292533938 0.170474887379 0.169663565166 0.003341996433 2.856742854908 -0.443919633948 3.616868510512 0.043351108793 0.023209972851 1.040768654296 0.002062708393 1.000000000000 0.836482002133 0.203581826631 - 3.450000000000 16.676071181337 16.719859675987 0.114090354124 0.168004055014 0.168445204766 0.168162631674 0.167402597958 0.008881527176 2.856252319975 -0.437544135823 3.594383694990 0.042267311452 0.023348261261 1.040861591735 0.002062849478 1.000000000000 0.820499363499 0.205295960313 - 3.500000000000 16.596884630530 16.656185917327 0.112717017800 0.165989024519 0.166582109485 0.166228227608 0.165153401201 0.005852255049 2.860753152328 -0.441123907467 3.582959356525 0.041258638457 0.023274500216 1.040952703200 0.002062988625 1.000000000000 0.804702474817 0.207010807967 - 3.550000000000 16.511279925779 16.577259366292 0.111442083834 0.164118680335 0.164774502219 0.164439640341 0.163137340323 -0.002687231595 2.864428890318 -0.441225768900 3.580776464432 0.040334787405 0.022895161522 1.041042501712 0.002063126747 1.000000000000 0.790695710358 0.208391799854 - 3.600000000000 16.408744426144 16.479212727494 0.110121130890 0.162179905279 0.162876396256 0.162448541521 0.161210160752 -0.005491123380 2.873612864178 -0.441553690075 3.590832306811 0.039389480532 0.022884781139 1.041126771838 0.002063255254 1.000000000000 0.776901168109 0.209648798254 - 3.650000000000 16.345402537992 16.417695764020 0.108871304274 0.160345568889 0.161054752919 0.160559725485 0.159417833071 -0.003718015634 2.879770132159 -0.445548303077 3.612988319365 0.038506677417 0.022661617171 1.041208733949 0.002063380611 1.000000000000 0.762322889236 0.211268420762 - 3.700000000000 16.313248928061 16.388875232228 0.107775329494 0.158737792173 0.159473681916 0.158882695239 0.157852760261 0.001787854362 2.876314707325 -0.443779855691 3.607055618809 0.037744399875 0.021804569118 1.041290997756 0.002063507990 1.000000000000 0.748538345738 0.213046776860 - 3.750000000000 16.248175796232 16.337186605922 0.106554742135 0.156945741832 0.157805522508 0.156995499158 0.156031176206 0.007641754085 2.864679770402 -0.432698237084 3.558259086620 0.036905255354 0.021703729152 1.041366606416 0.002063623288 1.000000000000 0.734622193862 0.214811809153 - 3.800000000000 16.108468827504 16.226715183178 0.105250970853 0.155030541506 0.156168563794 0.154857130742 0.154058609431 0.012876064418 2.864199450374 -0.429223574966 3.542598927288 0.036013519808 0.022198517709 1.041436590967 0.002063728547 1.000000000000 0.722982350209 0.216006052912 - 3.850000000000 15.961878627519 16.101559811879 0.104070553928 0.153296943939 0.154638433822 0.152991429343 0.152251227897 0.011038469596 2.871645928217 -0.427607310051 3.550356940126 0.035209990609 0.022260995671 1.041506242233 0.002063834359 1.000000000000 0.713359011123 0.216775047922 - 3.900000000000 15.891585245335 16.020777568287 0.102967613428 0.151677288704 0.152910365264 0.151476501660 0.150636281703 0.002945041028 2.872765787111 -0.428415814082 3.543838971022 0.034464621661 0.022099429222 1.041574584424 0.002063938709 1.000000000000 0.701418305016 0.218001674850 - 3.950000000000 15.834936839684 15.926406221816 0.101931405458 0.150155773630 0.151023137736 0.150203548828 0.149235300285 -0.005672884504 2.862500576058 -0.423360794144 3.524891533435 0.033772014850 0.021754517378 1.041641759995 0.002064041836 1.000000000000 0.689841378006 0.218924440533 - 4.000000000000 15.810409846378 15.841340873815 0.100881153467 0.148613254357 0.148903997019 0.149043244103 0.147889854860 -0.015129535170 2.856515430402 -0.423270533403 3.540639554584 0.033081463387 0.021579861995 1.041706128118 0.002064140359 1.000000000000 0.676756967111 0.220025805799 - 4.050000000000 15.777419453315 15.755800143785 0.099804932989 0.147032158151 0.146830684536 0.147811716523 0.146450719114 -0.019149212136 2.862923509465 -0.425044419435 3.568492821576 0.032385121578 0.021635282989 1.041767596007 0.002064234055 1.000000000000 0.663788544843 0.221200991907 - 4.100000000000 15.704465394379 15.669079251905 0.098800619811 0.145556903405 0.145228926795 0.146610938821 0.144824817716 -0.016747219032 2.879943197974 -0.425820081282 3.561003628944 0.031741972345 0.021495367594 1.041828546145 0.002064327696 1.000000000000 0.653527428119 0.222223154754 - 4.150000000000 15.623201743019 15.608999704121 0.097881923063 0.144207699177 0.144076609316 0.145290540094 0.143248633897 -0.014022104753 2.903139929277 -0.425733942739 3.544309127940 0.031162551943 0.021032135139 1.041889033862 0.002064421333 1.000000000000 0.644775484427 0.223452368764 - 4.200000000000 15.553058858313 15.570272394696 0.096963675296 0.142858858767 0.143016969540 0.143708429155 0.141844966065 -0.014859143595 2.923406341298 -0.428684175008 3.542861338291 0.030589912283 0.020619343743 1.041946683147 0.002064510142 1.000000000000 0.635596528612 0.225012194218 - 4.250000000000 15.461930379608 15.509115328989 0.096005510172 0.141450856501 0.141882520035 0.142099615539 0.140364112888 -0.014222406906 2.931216253399 -0.427564262626 3.564323632423 0.029992260378 0.020536597952 1.042000878667 0.002064592841 1.000000000000 0.626776972718 0.226368431213 - 4.300000000000 15.374772617413 15.442125834121 0.095014859215 0.139994695358 0.140607978773 0.140424508165 0.138945665629 -0.006034837039 2.917736386188 -0.418323201513 3.566384342482 0.029373744746 0.020772183741 1.042052200340 0.002064670553 1.000000000000 0.617395833341 0.227743647073 - 4.350000000000 15.326137208419 15.397322034779 0.094017874127 0.138528981030 0.139172402221 0.138749200951 0.137660951075 0.005216841143 2.903422356912 -0.424470631005 3.580589528893 0.028757184436 0.021135124033 1.042101432774 0.002064744859 1.000000000000 0.606432093344 0.229493794522 - 4.400000000000 15.227977691178 15.300416573994 0.093146838184 0.137248907694 0.137901795276 0.137450729157 0.136389808648 0.017130382947 2.894557292460 -0.428113652228 3.584331112665 0.028229365349 0.020965950675 1.042151739215 0.002064822087 1.000000000000 0.599091178307 0.230184987310 - 4.450000000000 15.167247471420 15.232075643307 0.092319274790 0.136032782752 0.136614216967 0.136537518085 0.134940045307 0.027412011959 2.881081804575 -0.430128357571 3.568780998572 0.027736226278 0.020647393619 1.042201158252 0.002064898232 1.000000000000 0.590856121488 0.231214016405 - 4.500000000000 15.123473183143 15.183108929891 0.091419581707 0.134710035474 0.135241231812 0.135556599683 0.133321410407 0.034250504187 2.871312944203 -0.431039466931 3.579529383006 0.027201713907 0.020754007251 1.042246999911 0.002064967855 1.000000000000 0.581078845472 0.232741619946 - 4.550000000000 15.065438519994 15.136504589888 0.090535011727 0.133409403505 0.134038716882 0.134310910208 0.131865115198 0.031488729599 2.855685579105 -0.428143379975 3.606516270340 0.026675526863 0.020916351321 1.042291186019 0.002065034827 1.000000000000 0.572089170434 0.234296896025 - 4.600000000000 15.031407626788 15.112797595250 0.089846658585 0.132398101888 0.133114992655 0.133100024288 0.130967760978 0.022092269494 2.844738115359 -0.426513116224 3.587405921551 0.026270689606 0.020261074586 1.042337895228 0.002065107521 1.000000000000 0.564704433261 0.235725071053 - 4.650000000000 15.045203729033 15.128473759679 0.089179852928 0.131418419080 0.132145774853 0.131995626551 0.130104002170 0.009787327793 2.860459063539 -0.429057359288 3.570325056532 0.025885182433 0.019511601474 1.042383257808 0.002065178095 1.000000000000 0.555849083774 0.237736786316 - 4.700000000000 14.935798455166 15.036384617950 0.088385205390 0.130249940596 0.131127117786 0.130836866385 0.128773189956 0.001691339683 2.888083624419 -0.431161613689 3.574715943366 0.025430721720 0.019379912050 1.042424052190 0.002065240042 1.000000000000 0.549991637864 0.238416566288 - 4.750000000000 14.816524141539 14.931886047759 0.087471444339 0.128905561856 0.129909224469 0.129572940847 0.127217836919 0.001656578831 2.901245251519 -0.452667916783 3.616095274753 0.024911556270 0.019858607438 1.042460691550 0.002065294192 1.000000000000 0.543019037601 0.239235119717 - 4.800000000000 14.759094796896 14.881201946113 0.086630131139 0.127667953429 0.128724195025 0.128432532372 0.125827203903 0.004925504160 2.902304210945 -0.458493038164 3.632423986446 0.024436891579 0.020103231411 1.042497649474 0.002065349540 1.000000000000 0.534700399569 0.240740787044 - 4.850000000000 14.745995421698 14.869446802000 0.085955448187 0.126676106519 0.127736620900 0.127497256845 0.124773046234 0.004100162243 2.896832295423 -0.442198365806 3.625386433613 0.024058273220 0.019735839379 1.042537243473 0.002065410735 1.000000000000 0.526876572940 0.242441261313 - 4.900000000000 14.704418502055 14.832615962527 0.085237722485 0.125620652704 0.126715850631 0.126405364602 0.123719126072 -0.002603187483 2.891930672867 -0.436456314049 3.611369938413 0.023658439419 0.019644718663 1.042574923726 0.002065468567 1.000000000000 0.519583853293 0.243879500543 - 4.950000000000 14.602123094025 14.741899760005 0.084416414653 0.124412241714 0.125603159517 0.125002656128 0.122610766024 -0.012322079946 2.896121916496 -0.434013838185 3.601335587005 0.023204269367 0.020063477360 1.042609093827 0.002065519803 1.000000000000 0.513193163873 0.244748309912 - 5.000000000000 14.511174581237 14.659623856352 0.083657847367 0.123296267411 0.124557587880 0.123451849938 0.121864501480 -0.018085476761 2.908381555149 -0.430921375811 3.604065051519 0.022787618738 0.020262291885 1.042643119559 0.002065571228 1.000000000000 0.507174156766 0.245591354011 diff --git a/cases/isotropic/data/statistics-omp6.dat b/cases/isotropic/data/statistics-omp6.dat deleted file mode 100644 index 8b05d8f..0000000 --- a/cases/isotropic/data/statistics-omp6.dat +++ /dev/null @@ -1,100 +0,0 @@ - 0.050000000000 69.605834063250 69.948757276124 0.395147956292 0.570488412562 0.573299006272 0.564384348903 0.573733076199 0.014978073656 2.960011039491 -0.457685003876 3.332555762376 0.487753914191 0.038344626917 1.000556622746 0.002000774556 1.000000000000 2.336952351923 0.245319082265 - 0.100000000000 65.546328064316 65.934383264600 0.388263841219 0.560602220904 0.563921165131 0.555268039635 0.562578771307 0.012442099302 2.951910106125 -0.378969019395 3.179447554373 0.467422765389 0.072266405754 1.000892994334 0.002001075647 1.000000000000 2.396060357346 0.235353489073 - 0.150000000000 61.661500452840 62.032279344084 0.385520367452 0.556889460454 0.560238111642 0.552463640722 0.557937987092 0.012951563003 2.920145217603 -0.374769365203 3.300194145731 0.457962944489 0.071913613942 1.001781348615 0.002002462993 1.000000000000 2.511651677196 0.223055655658 - 0.200000000000 58.220415310164 58.544563094581 0.381414291123 0.551275842829 0.554345124319 0.547198600342 0.552259304664 0.015201952118 2.882510612730 -0.478430535476 3.561467189820 0.449635601656 0.065456303420 1.002899207881 0.002004254082 1.000000000000 2.604412960435 0.212848397217 - 0.250000000000 54.467490029853 54.789676135171 0.375958839756 0.543730554764 0.546946829824 0.539370745677 0.544845953095 0.016846180565 2.861310011655 -0.496869991741 3.627049838731 0.438331697605 0.061479099092 1.004131624676 0.002006198558 1.000000000000 2.705553966351 0.202157057899 - 0.300000000000 51.239017395979 51.526700906753 0.369685376822 0.535022911775 0.538026819294 0.530886326952 0.536130019631 0.016024296969 2.847409482287 -0.467138526659 3.630888149460 0.424575747489 0.059243285944 1.005491963674 0.002008325945 1.000000000000 2.781696663865 0.193416782744 - 0.350000000000 48.639129013048 48.837858950473 0.362598413506 0.525151500057 0.527297166043 0.521830164911 0.526311002837 0.012727857042 2.835129996254 -0.451164096138 3.657067619753 0.409137628954 0.057901940467 1.006960395182 0.002010612655 1.000000000000 2.820038384321 0.186982265552 - 0.400000000000 46.523346826496 46.640968270090 0.355025923248 0.514581505429 0.515882482758 0.511720982675 0.516129128282 0.012297753263 2.830970129311 -0.447095166335 3.681754996333 0.392949518978 0.056306429721 1.008507857257 0.002013021757 1.000000000000 2.827410899352 0.182457556090 - 0.450000000000 44.634838591696 44.730497353662 0.347061917349 0.503434456696 0.504513387826 0.500469167778 0.505307441240 0.014467958479 2.839974227805 -0.439984047043 3.657372784407 0.376335382289 0.054693366431 1.010088731709 0.002015479402 1.000000000000 2.817302891139 0.179076729525 - 0.500000000000 42.975568016545 43.095132621091 0.338892520749 0.491970555897 0.493339293244 0.489149391588 0.493410881578 0.014569716550 2.856362822067 -0.430951495842 3.637519583635 0.359581278367 0.053218224553 1.011670188036 0.002017934003 1.000000000000 2.790934464293 0.176764914962 - 0.550000000000 41.456962343854 41.606940934677 0.330681552975 0.480422212268 0.482160232671 0.478188760963 0.480909061092 0.013188061071 2.868737738109 -0.426780483887 3.628962561768 0.342953931765 0.051895137182 1.013230861539 0.002020353413 1.000000000000 2.755632732850 0.174972603179 - 0.600000000000 40.068501630389 40.231369270594 0.322487724696 0.468871689400 0.470777526217 0.466915436083 0.468914149624 0.014079597263 2.869291313035 -0.423301074285 3.617270184673 0.326724685415 0.050583415002 1.014755036096 0.002022715129 1.000000000000 2.712502807613 0.173558355367 - 0.650000000000 38.877152298756 39.011537412394 0.314338255709 0.457355327556 0.458936249616 0.455472731725 0.457650299221 0.012644441769 2.871497203279 -0.423380932652 3.611587585221 0.311019959636 0.049257861972 1.016225952707 0.002024991906 1.000000000000 2.656988943595 0.172727948576 - 0.700000000000 37.748726513207 37.819571004417 0.306275018080 0.445932231660 0.446769129881 0.444155754509 0.446866508056 0.011068246809 2.872195666424 -0.422747295249 3.618923882039 0.295829042131 0.048260438683 1.017631297275 0.002027162951 1.000000000000 2.598643850992 0.171923955532 - 0.750000000000 36.721013578901 36.724797582786 0.298499635600 0.434899300878 0.434944116107 0.433291066464 0.436456954691 0.013163201927 2.877575875411 -0.422632065185 3.617496116387 0.281416335212 0.046980073569 1.018975638647 0.002029240325 1.000000000000 2.538220076418 0.171357921304 - 0.800000000000 35.698819642828 35.675654268259 0.290911422613 0.424109570053 0.423834360476 0.422678778175 0.425809661225 0.015371246247 2.877586184544 -0.412867122150 3.580793959381 0.267695573746 0.045781828230 1.020250869920 0.002031209102 1.000000000000 2.480548107659 0.170863189135 - 0.850000000000 34.694317675464 34.671639040553 0.283470906771 0.413506655556 0.413236358657 0.412380102659 0.414899536493 0.014225663825 2.871094590883 -0.405852979213 3.561974339019 0.254638196022 0.044643449972 1.021455461902 0.002033065773 1.000000000000 2.424126217202 0.170468169407 - 0.900000000000 33.731544508291 33.717503962537 0.276337914932 0.403327841539 0.403159958832 0.402233024207 0.404587055050 0.013034840424 2.872007327753 -0.405401185997 3.565750802438 0.242374685014 0.043104432413 1.022599250632 0.002034829435 1.000000000000 2.370020845842 0.170108191048 - 0.950000000000 32.819333033008 32.817210445225 0.269381502464 0.393382042307 0.393356600354 0.391822970276 0.394960299967 0.008152156693 2.885887295051 -0.402802042521 3.566165435285 0.230618429883 0.042178455815 1.023676751514 0.002036487861 1.000000000000 2.315354447553 0.169890446264 - 1.000000000000 31.982549386713 31.992285488765 0.262660793615 0.383758762569 0.383875586104 0.381630589195 0.385758980880 -0.001111369067 2.890027519703 -0.403688562724 3.570000783405 0.219496033516 0.041336594759 1.024695098187 0.002038054846 1.000000000000 2.259371591747 0.169903696898 - 1.050000000000 31.215924911587 31.241800468780 0.256214804947 0.374517384118 0.374827829701 0.371944030971 0.376764580246 -0.010303746727 2.888291469755 -0.406772288226 3.556915365412 0.209065232686 0.040261524163 1.025658837877 0.002039538597 1.000000000000 2.203108198935 0.170135915196 - 1.100000000000 30.443058809966 30.503198451836 0.249885856943 0.365426926632 0.366148820074 0.362583078856 0.367531044416 -0.013200449799 2.895814112102 -0.414707815215 3.567096591631 0.199093572588 0.039696550547 1.026561351937 0.002040924531 1.000000000000 2.149244669332 0.170361627645 - 1.150000000000 29.723640933546 29.807767362559 0.243804006695 0.356681269927 0.357690780222 0.353915313594 0.358421318419 -0.011255632749 2.897202399507 -0.414566509715 3.562271356519 0.189740390461 0.038947601277 1.027414192960 0.002042234769 1.000000000000 2.095814961377 0.170669065167 - 1.200000000000 29.116655006725 29.186074013668 0.238018181274 0.348354339871 0.349184875258 0.345952129618 0.349913253858 -0.012049087481 2.887219073032 -0.406061889035 3.538875139116 0.181022732984 0.037839742195 1.028223556201 0.002043480374 1.000000000000 2.039531884368 0.171208343412 - 1.250000000000 28.605691762036 28.622833986212 0.232453688508 0.340337118316 0.340541068468 0.338512201581 0.341949312587 -0.010333776088 2.865057309980 -0.402121264703 3.530040747834 0.172823291046 0.036741799058 1.028986673022 0.002044654977 1.000000000000 1.980369121501 0.171958381279 - 1.300000000000 28.083438228425 28.054821364233 0.227075899797 0.332579675670 0.332240778867 0.331306583356 0.334185180234 -0.005423226400 2.855103789542 -0.408133615678 3.541352303768 0.165075986973 0.035783659728 1.029703555712 0.002045757435 1.000000000000 1.925249395198 0.172570254896 - 1.350000000000 27.566103144537 27.528538128925 0.221871187736 0.325063262592 0.324620290785 0.324463929550 0.326103050113 -0.004887085116 2.860576925677 -0.410290787427 3.552507428014 0.157728049705 0.035067338697 1.030376774316 0.002046791526 1.000000000000 1.872780130195 0.173336039587 - 1.400000000000 27.017418015005 27.024525174964 0.216852767740 0.317808678697 0.317892280954 0.317433379512 0.318100009505 -0.004902137018 2.864333448740 -0.402680616803 3.542790339940 0.150784894421 0.034477433545 1.031010246649 0.002047764045 1.000000000000 1.825608923558 0.174129451742 - 1.450000000000 26.484269732431 26.549635382216 0.211966560188 0.310737166760 0.311504095093 0.309815624746 0.310889430220 -0.002648416220 2.864272786967 -0.404756260889 3.547387259489 0.144195550658 0.034094067931 1.031603650343 0.002048673398 1.000000000000 1.779613422911 0.175040315544 - 1.500000000000 26.031790773594 26.105593108792 0.207258260373 0.303917040713 0.304778671306 0.302344533664 0.304621810427 -0.000423586001 2.865032231700 -0.409890282827 3.545370106792 0.137991748809 0.033655484657 1.032161163634 0.002049526934 1.000000000000 1.731220668731 0.176048424566 - 1.550000000000 25.682750438685 25.733914824308 0.202831635072 0.297502419179 0.298095094350 0.295544654033 0.298857391492 0.001525164564 2.862423476281 -0.406714466333 3.540402721995 0.132258330680 0.032725940629 1.032690236331 0.002050338828 1.000000000000 1.680791469456 0.177354002425 - 1.600000000000 25.299669305477 25.366199297952 0.198510291251 0.291233872116 0.291999723522 0.288995612883 0.292693016657 0.003927206525 2.865128738056 -0.410035911282 3.555492367435 0.126751120480 0.032340703423 1.033184933731 0.002051095981 1.000000000000 1.634492532102 0.178648551637 - 1.650000000000 24.853830591902 24.987323238415 0.194346336707 0.285189270503 0.286721053314 0.282699232657 0.286130986564 0.001866947953 2.865379997663 -0.413745380670 3.548610259413 0.121537134121 0.032126830889 1.033650941591 0.002051809046 1.000000000000 1.594909668191 0.179772597177 - 1.700000000000 24.460757629927 24.665337005160 0.190443667999 0.279522617033 0.281860425339 0.276865342702 0.279819518508 -0.000797530911 2.860943458982 -0.413574948581 3.537982983212 0.116746953963 0.031322281111 1.034094752989 0.002052490368 1.000000000000 1.556262580625 0.181113668637 - 1.750000000000 24.132727353460 24.355003333021 0.186748573076 0.274155398012 0.276680523281 0.271712440352 0.274050697084 -0.002049776458 2.862514140865 -0.410504880930 3.526939112993 0.112323061067 0.030038813558 1.034516375106 0.002053139031 1.000000000000 1.516941515403 0.182393665459 - 1.800000000000 23.835038950510 24.016494499039 0.183043588411 0.268767420177 0.270813539747 0.266983773054 0.268491098662 -0.005989943469 2.859395271533 -0.416877703682 3.532094216856 0.107996286599 0.029595709735 1.034909099203 0.002053740564 1.000000000000 1.475678664808 0.183517961061 - 1.850000000000 23.526297630576 23.663814458132 0.179365145205 0.263412730232 0.264952440541 0.262118898259 0.263159052232 -0.007060833292 2.859082708980 -0.421817222837 3.536097328488 0.103762788925 0.029974674622 1.035275063338 0.002054298655 1.000000000000 1.435675703349 0.184548947874 - 1.900000000000 23.230515520543 23.363997693716 0.175946646342 0.258436312099 0.259921283043 0.257064291514 0.258315425175 0.002224913533 2.860160282096 -0.412757383432 3.509188467494 0.099893043081 0.029643849204 1.035626197684 0.002054836595 1.000000000000 1.399171437440 0.185768002468 - 1.950000000000 22.890646309454 23.052690689378 0.172687896933 0.253690686929 0.255486579867 0.252318728812 0.253256313844 0.006565077475 2.850647274024 -0.417292258745 3.502540142576 0.096277201658 0.029050288838 1.035959288570 0.002055347267 1.000000000000 1.367936015862 0.186767931325 - 2.000000000000 22.543636515971 22.716520584062 0.169481841841 0.249018107741 0.250927793584 0.247792624771 0.248322595559 -0.001275201494 2.843943736482 -0.427661375108 3.496683165478 0.092773779157 0.028830086180 1.036270372823 0.002055821988 1.000000000000 1.337988488738 0.187541070566 - 2.050000000000 22.312013182236 22.452883361399 0.166388070875 0.244507059209 0.246050790515 0.243640229659 0.243822790133 -0.007368564743 2.850185857557 -0.432365840829 3.505564973085 0.089445657345 0.028627165724 1.036564301434 0.002056270056 1.000000000000 1.303058445423 0.188825598252 - 2.100000000000 22.088108898306 22.187361796609 0.163546920192 0.240365327487 0.241445408879 0.240042898419 0.239603825980 -0.007922273389 2.862411148630 -0.432286133320 3.515419885856 0.086452789258 0.027568309178 1.036850068033 0.002056709141 1.000000000000 1.271780698067 0.189848304229 - 2.150000000000 21.833652091954 21.894946933731 0.160759345596 0.236299417246 0.236962793914 0.236268073845 0.235665600701 -0.008386600676 2.873112615802 -0.428302208968 3.508828205269 0.083565203685 0.026878626551 1.037120599646 0.002057124486 1.000000000000 1.243192386539 0.190608305263 - 2.200000000000 21.633451204342 21.654103425727 0.157993582323 0.232262590556 0.232484318397 0.232376270765 0.231926806126 -0.015864667944 2.882940427450 -0.421603892608 3.495985371581 0.080737563735 0.026770676197 1.037375015529 0.002057513880 1.000000000000 1.211964640538 0.191824340926 - 2.250000000000 21.354503592076 21.393319534578 0.155338875005 0.228386825511 0.228801962761 0.228305403537 0.228052473685 -0.022826649986 2.896172309951 -0.421551588763 3.506641214742 0.078058772471 0.026682722899 1.037617995086 0.002057886346 1.000000000000 1.186946735067 0.192765147753 - 2.300000000000 21.101065335775 21.196446794496 0.152729267601 0.224574930072 0.225590058175 0.223995583824 0.224135677059 -0.020224384495 2.895036746297 -0.423560585007 3.488142430003 0.075462777419 0.026899446654 1.037847453888 0.002058237279 1.000000000000 1.161241970917 0.194266194148 - 2.350000000000 20.842113028357 20.994331076049 0.150212290305 0.220897249509 0.222510547932 0.220014388213 0.220157919596 -0.017375566019 2.882692063636 -0.433930930421 3.515174112679 0.073007869704 0.027010560142 1.038065997730 0.002058571646 1.000000000000 1.137294354251 0.195649039406 - 2.400000000000 20.658201655919 20.841022898340 0.147797208255 0.217367677390 0.219291340907 0.216722692975 0.216075689690 -0.017331900497 2.873632232323 -0.446811842241 3.549626599978 0.070705594643 0.026896385463 1.038275008649 0.002058891865 1.000000000000 1.110871640347 0.197404752216 - 2.450000000000 20.448215017215 20.647714479970 0.145506843366 0.214020044070 0.216108093505 0.213777806624 0.212155789711 -0.017768957606 2.856236501692 -0.444089964510 3.521816559588 0.068556095713 0.026528337852 1.038475888150 0.002059200434 1.000000000000 1.087814576667 0.198662619660 - 2.500000000000 20.254817151320 20.444537305953 0.143310493624 0.210809177427 0.212783757076 0.210736713550 0.208889057035 -0.020279399103 2.845564534179 -0.436064292893 3.508217632240 0.066513270054 0.026161916401 1.038668018326 0.002059495859 1.000000000000 1.065343786686 0.199732480477 - 2.550000000000 20.105724976205 20.256187123266 0.141145245396 0.207642302887 0.209196203915 0.207549221718 0.206170431140 -0.022179856356 2.850860777018 -0.436759731778 3.540961641844 0.064529957206 0.025977446924 1.038849297803 0.002059773610 1.000000000000 1.041099999810 0.200937665886 - 2.600000000000 19.953153616083 20.070605087726 0.139008626937 0.204515860329 0.205719714579 0.204122021462 0.203700296432 -0.018382403553 2.860028570476 -0.440728781051 3.564261513407 0.062610459075 0.025874931893 1.039019934405 0.002060033861 1.000000000000 1.017578873431 0.202165866401 - 2.650000000000 19.728923474402 19.841950502429 0.136952339905 0.201506303224 0.202660733095 0.200655203198 0.201197632709 -0.010208659061 2.871547396432 -0.442001867674 3.574327950835 0.060796656470 0.025589415690 1.039182512927 0.002060281607 1.000000000000 0.998958157535 0.202872093857 - 2.700000000000 19.544197252901 19.637941706799 0.135016778721 0.198673432521 0.199626376875 0.197799422952 0.198590272431 -0.004440685163 2.871256502419 -0.443129312864 3.565325095194 0.059108561147 0.025021661465 1.039339481247 0.002060521574 1.000000000000 0.980132042255 0.203672942286 - 2.750000000000 19.430523834815 19.472772971488 0.133209630370 0.196028761159 0.196455000101 0.195711614638 0.195918918013 -0.005880795437 2.860775137953 -0.440014085453 3.565858532900 0.057549123031 0.024127814768 1.039492076772 0.002060756016 1.000000000000 0.959684554655 0.204707889845 - 2.800000000000 19.288818753035 19.292073661576 0.131390407172 0.193365055888 0.193397685443 0.193735630895 0.192961071470 -0.010816167873 2.852861207038 -0.431124034449 3.560366253575 0.055993357958 0.023669946565 1.039636076874 0.002060976219 1.000000000000 0.940540222852 0.205624045356 - 2.850000000000 19.128179112606 19.116665736398 0.129448000492 0.190518480993 0.190403806672 0.191359194419 0.189789156476 -0.014986569337 2.847754755944 -0.428686834288 3.554318056108 0.054352398767 0.024234870376 1.039768771147 0.002061176552 1.000000000000 0.920630581885 0.206818902629 - 2.900000000000 18.931335159859 18.934648737587 0.127526309534 0.187701497640 0.187734351292 0.188660133980 0.186704911130 -0.021975194315 2.852516710453 -0.427099945478 3.558065704815 0.052750360411 0.025003627544 1.039895568104 0.002061367796 1.000000000000 0.902814954893 0.207943333542 - 2.950000000000 18.786384805582 18.807878588117 0.125870385170 0.185275751210 0.185487727956 0.186137732174 0.184196523850 -0.024456480930 2.865461126726 -0.421758750312 3.550120933166 0.051393615692 0.024643684937 1.040024229839 0.002061565476 1.000000000000 0.886332795442 0.209275487615 - 3.000000000000 18.692007731350 18.712883191460 0.124371220096 0.183080367827 0.183284834194 0.183744854777 0.182208016147 -0.020508013774 2.875527502311 -0.419338711972 3.544549543295 0.050190867337 0.023617507167 1.040150860637 0.002061761552 1.000000000000 0.869739439086 0.210735337456 - 3.050000000000 18.589560494215 18.602251222089 0.122842544245 0.180840518986 0.180963975257 0.181228237988 0.180328160132 -0.022437903695 2.882662783804 -0.426390197588 3.560274808770 0.048984530048 0.022893704480 1.040269832223 0.002061944539 1.000000000000 0.853189275368 0.212102965288 - 3.100000000000 18.442473753183 18.450511502076 0.121281367922 0.178551937727 0.178629755685 0.178891363561 0.178133864905 -0.025388998821 2.889502621408 -0.430646253375 3.574175781952 0.047764841343 0.022628845665 1.040382196188 0.002062116450 1.000000000000 0.838294804643 0.213087036560 - 3.150000000000 18.304793906463 18.297396515020 0.119676660327 0.176198411048 0.176127205187 0.176746352803 0.175720159719 -0.017817876477 2.894596438108 -0.424550646365 3.557289974485 0.046517677362 0.022946185536 1.040488106956 0.002062277487 1.000000000000 0.822416908988 0.214158054464 - 3.200000000000 18.185292974361 18.156343956202 0.118113225720 0.173905077562 0.173628239501 0.174617955185 0.173466804261 -0.009602619793 2.890268619685 -0.423722004430 3.561053587813 0.045307452669 0.023360953359 1.040589964033 0.002062432397 1.000000000000 0.806351690231 0.215325696721 - 3.250000000000 18.075412453461 18.026905798417 0.116708672396 0.171845535580 0.171384375862 0.172656378655 0.171492958797 -0.012104582217 2.877822543535 -0.422813266228 3.559508513838 0.044230913838 0.023194572867 1.040691528029 0.002062588636 1.000000000000 0.792092080864 0.216369258073 - 3.300000000000 17.979017354042 17.922082264801 0.115347596809 0.169849538175 0.169311666810 0.170813588720 0.169419226317 -0.014153293558 2.870982001511 -0.419033650495 3.538953601365 0.043204416697 0.022972030375 1.040789660828 0.002062739776 1.000000000000 0.777890281752 0.217654945410 - 3.350000000000 17.879419433007 17.836849359948 0.114020863937 0.167903591650 0.167503820943 0.168849887887 0.167353020880 -0.014291954916 2.859242031851 -0.416988910165 3.527428312048 0.042217166636 0.022730927679 1.040883831266 0.002062884678 1.000000000000 0.764348838141 0.219145778189 - 3.400000000000 17.757371008790 17.747155454660 0.112661679489 0.165909125162 0.165813680085 0.166662263770 0.165248379017 -0.010438483089 2.851309812537 -0.407909773346 3.501023119573 0.041221179678 0.022748229654 1.040971964646 0.002063019058 1.000000000000 0.751378282066 0.220679362237 - 3.450000000000 17.663074339020 17.675861412626 0.111317579377 0.163936345640 0.164055026345 0.164548085926 0.163203100504 -0.004350041852 2.850541313648 -0.403290961386 3.501142100784 0.040246488766 0.022838178903 1.041055889116 0.002063146523 1.000000000000 0.737486595016 0.222451536684 - 3.500000000000 17.576261422906 17.607819901682 0.110040290882 0.162061683469 0.162352668001 0.162685507441 0.161142808119 -0.003295297334 2.851178155202 -0.404068538246 3.490889489920 0.039328536727 0.022800130992 1.041137876850 0.002063271611 1.000000000000 0.724232126385 0.224172143276 - 3.550000000000 17.455063913760 17.509624985376 0.108862157064 0.160332897785 0.160834066659 0.160885521110 0.159273872421 -0.007037915668 2.855208028243 -0.413350185682 3.481111144030 0.038493276975 0.022434991797 1.041219038690 0.002063396457 1.000000000000 0.713741846269 0.225339270073 - 3.600000000000 17.316868726645 17.393606215887 0.107635169192 0.158531585184 0.159234097631 0.158919220664 0.157435618455 -0.007895818963 2.865860965785 -0.424407911953 3.505848615095 0.037634486184 0.022433761934 1.041295236498 0.002063512627 1.000000000000 0.703323468023 0.226402366578 - 3.650000000000 17.248801767853 17.329237573785 0.106468353111 0.156818648377 0.157549935949 0.157163272662 0.155736921907 -0.007670711647 2.866502281253 -0.421317428804 3.531047115505 0.036829719498 0.022256311109 1.041369580173 0.002063626363 1.000000000000 0.690884444099 0.228040936939 - 3.700000000000 17.230830881651 17.299455403932 0.105457548211 0.155335522438 0.155954170842 0.155724019411 0.154323361707 -0.007057341887 2.858281740996 -0.413758498621 3.542814553829 0.036142874467 0.021425765831 1.041444664614 0.002063742812 1.000000000000 0.678546744798 0.229835559653 - 3.750000000000 17.188235954515 17.251500652158 0.104335694746 0.153688151399 0.154253830998 0.154117610545 0.152688118016 -0.007081353815 2.846540643075 -0.412881422420 3.521552137545 0.035386627849 0.021254392548 1.041513469320 0.002063847768 1.000000000000 0.665842951306 0.231666987982 - 3.800000000000 17.021917935247 17.110745514838 0.103124477488 0.151908556932 0.152701280142 0.152214690037 0.150803302972 -0.005166931881 2.841239249703 -0.412844940314 3.503431522162 0.034574220274 0.021676417655 1.041576798271 0.002063942832 1.000000000000 0.656838075545 0.232479336731 - 3.850000000000 16.838039100643 16.951914548593 0.102016059541 0.150280328249 0.151296672230 0.150558714298 0.148976245412 -0.000416848021 2.842739808019 -0.413394463368 3.516176311556 0.033834660665 0.021766905822 1.041639986650 0.002064038684 1.000000000000 0.649822767907 0.232827595004 - 3.900000000000 16.744349456582 16.853032611369 0.100991959464 0.148776220489 0.149741887686 0.149194577908 0.147381940360 -0.000801051147 2.836835972750 -0.410821767060 3.513142676978 0.033156343238 0.021606187016 1.041702726342 0.002064134658 1.000000000000 0.640413883335 0.233820489503 - 3.950000000000 16.678502257899 16.753727105872 0.100028505954 0.147361321352 0.148025963346 0.147951034561 0.146098879666 -0.006482956594 2.818105166780 -0.403304098920 3.460273196643 0.032525204556 0.021275582286 1.041764496716 0.002064229663 1.000000000000 0.630742291502 0.234685330825 - 4.000000000000 16.649291984585 16.660955797966 0.099043420181 0.145914254409 0.146016475971 0.146768736216 0.144951839361 -0.016114845087 2.807372501920 -0.403199581371 3.452974922808 0.031889683836 0.021140076362 1.041823511485 0.002064320039 1.000000000000 0.619473371309 0.235710658011 - 4.050000000000 16.616195341936 16.562301539033 0.098034841457 0.144432288259 0.143963829318 0.145580217751 0.143745865065 -0.025310526668 2.816709319461 -0.406550350985 3.489212503795 0.031249405529 0.021199210950 1.041879852100 0.002064405923 1.000000000000 0.608137659289 0.236729015412 - 4.100000000000 16.551501446350 16.465747881406 0.097097065825 0.143054561467 0.142313393745 0.144558466414 0.142279901667 -0.031382964372 2.838338218076 -0.409486155302 3.504874209178 0.030660331096 0.021043896972 1.041935799211 0.002064491887 1.000000000000 0.598897973946 0.237625438615 - 4.150000000000 16.480760669773 16.401910241586 0.096239477767 0.141794908301 0.141116505801 0.143523956311 0.140728084671 -0.030322067055 2.856898401773 -0.406601898154 3.484279004269 0.030128009824 0.020594879583 1.041991371797 0.002064577918 1.000000000000 0.590898301391 0.238816908881 - 4.200000000000 16.396575194662 16.347522909780 0.095384789202 0.140539281789 0.140118841983 0.142162084966 0.139321645470 -0.025934529792 2.859271513305 -0.406157295424 3.478826621892 0.029602270412 0.020196491515 1.042044572633 0.002064659960 1.000000000000 0.583436746664 0.240161153346 - 4.250000000000 16.272920737042 16.266638178622 0.094495217093 0.139231955892 0.139178201995 0.140524990321 0.137981041484 -0.021188629503 2.855452032441 -0.404892521494 3.488532700335 0.029057153105 0.020066882481 1.042094749481 0.002064736648 1.000000000000 0.576962613901 0.241225685412 - 4.300000000000 16.157158057927 16.188380096987 0.093557246552 0.137853011393 0.138119398098 0.138677919515 0.136754615126 -0.013619807491 2.843780269963 -0.398975504455 3.477481369752 0.028483140894 0.020288690673 1.042141825225 0.002064807788 1.000000000000 0.569623518820 0.242474886544 - 4.350000000000 16.098196341796 16.144200458774 0.092608866331 0.136458535041 0.136848495150 0.136968721028 0.135553879293 -0.005308591635 2.839534451323 -0.399551552239 3.484242111288 0.027906377891 0.020670897874 1.042187030480 0.002064875875 1.000000000000 0.560183404992 0.244292304861 - 4.400000000000 16.026543349317 16.070162702129 0.091794830760 0.135262125455 0.135630267620 0.135839111303 0.134311928336 0.001849344934 2.842291230586 -0.397198333988 3.483696083940 0.027419151785 0.020508043346 1.042233821051 0.002064947831 1.000000000000 0.552845104483 0.245331407514 - 4.450000000000 15.972874604813 16.004803446251 0.091017714479 0.134120022334 0.134388120409 0.135104399122 0.132857726925 0.008830412326 2.835537280595 -0.405689405099 3.481065280759 0.026961272493 0.020223594248 1.042279808724 0.002065018790 1.000000000000 0.545356060877 0.246422713617 - 4.500000000000 15.896420206616 15.928712727200 0.090172426870 0.132877153636 0.133147084737 0.134302748092 0.131162645428 0.015500400893 2.826075490084 -0.405307884855 3.494069040512 0.026464903734 0.020330475404 1.042322452193 0.002065083621 1.000000000000 0.537853075735 0.247552892684 - 4.550000000000 15.809496893123 15.860167513479 0.089335124190 0.131645880861 0.132067815759 0.133244442446 0.129599091205 0.012914283952 2.810851925153 -0.400191828206 3.511320573261 0.025973503634 0.020492046516 1.042363363277 0.002065145564 1.000000000000 0.530818232180 0.248800451364 - 4.600000000000 15.756783567510 15.822778953672 0.088691317191 0.130699938602 0.131247359520 0.132175221834 0.128651712791 0.006614716836 2.799848347199 -0.401985325190 3.481015299317 0.025600219213 0.019824099179 1.042406794191 0.002065213152 1.000000000000 0.524950453753 0.250018565717 - 4.650000000000 15.769570094439 15.840267763283 0.088076083027 0.129796009001 0.130377906618 0.131114064023 0.127873826637 0.000725807812 2.811890751656 -0.403244868772 3.458547084691 0.025249285504 0.019029832003 1.042449306602 0.002065279413 1.000000000000 0.517277999844 0.252046108007 - 4.700000000000 15.687327038866 15.769232008927 0.087315277382 0.128677154083 0.129348989280 0.129927328450 0.126732625012 -0.003308890054 2.832052289465 -0.400127531531 3.474321133375 0.024819540829 0.018949291255 1.042487212029 0.002065336908 1.000000000000 0.511049582432 0.253104578746 - 4.750000000000 15.568470167195 15.659153657340 0.086444276424 0.127395574686 0.128137630599 0.128674388476 0.125349697740 -0.000625117014 2.843740947380 -0.415803565939 3.498541475860 0.024330586143 0.019440130574 1.042521349899 0.002065387326 1.000000000000 0.504732462719 0.253872378069 - 4.800000000000 15.456804388129 15.553351736450 0.085652933912 0.126231409091 0.127019884349 0.127557740188 0.124088991540 0.005898077310 2.851876669365 -0.421123541124 3.498204980560 0.023889410040 0.019642770151 1.042555950005 0.002065439174 1.000000000000 0.499117433890 0.254488975387 - 4.850000000000 15.433326228767 15.524951280862 0.085005353046 0.125279266776 0.126023028631 0.126655390350 0.123131199952 0.007015265905 2.851844894857 -0.407058634830 3.504289686630 0.023530259121 0.019307855239 1.042592662210 0.002065495757 1.000000000000 0.492350702867 0.255961914743 - 4.900000000000 15.430565571289 15.515095063020 0.084329053609 0.124284667140 0.124965505421 0.125640933429 0.122221167397 -0.001552806172 2.842469741445 -0.405729521062 3.518066985519 0.023157598864 0.019187931310 1.042627919814 0.002065549852 1.000000000000 0.484638131303 0.257853225632 - 4.950000000000 15.314920410702 15.411764219612 0.083550470842 0.123139052207 0.123917721277 0.124226876104 0.121250815016 -0.013604206520 2.846962142118 -0.409646913337 3.505636109822 0.022731200117 0.019588325887 1.042659998419 0.002065597971 1.000000000000 0.479326092312 0.258524881630 - 5.000000000000 15.172839238603 15.294393609451 0.082826480066 0.122073870313 0.123051842350 0.122615964761 0.120539034006 -0.020948252170 2.859678486889 -0.402328805327 3.495869475557 0.022336781491 0.019806022757 1.042691952166 0.002065646271 1.000000000000 0.475469450562 0.258800733053 diff --git a/cases/isotropic/data/statistics-ud7l-0.2.dat b/cases/isotropic/data/statistics-ud7l-0.2.dat deleted file mode 100644 index 3fb284e..0000000 --- a/cases/isotropic/data/statistics-ud7l-0.2.dat +++ /dev/null @@ -1,100 +0,0 @@ - 0.050000000000 69.602877881016 69.945769392363 0.395172186694 0.570520902343 0.573331515645 0.564417055379 0.573765336000 0.014966830796 2.960366834036 -0.459251087744 3.336828935014 0.487814763761 0.038313944301 1.000547201535 0.002000760937 1.000000000000 2.337333719115 0.245292963926 - 0.100000000000 65.496145064958 65.883684622036 0.388374718045 0.560754689691 0.564072665487 0.555422441028 0.562730313813 0.012434201919 2.953194605332 -0.381088226363 3.188114852439 0.467679292395 0.072255351577 1.000864852061 0.002001033333 1.000000000000 2.399251451689 0.235103604956 - 0.150000000000 61.515819393553 61.884672658188 0.385831459753 0.557318020605 0.560659739425 0.552897375048 0.558368406635 0.012874990185 2.921494513216 -0.381300346016 3.328894377404 0.458682701784 0.071931366117 1.001705808296 0.002002346782 1.000000000000 2.521622463284 0.222340872826 - 0.200000000000 57.860883223047 58.180922762302 0.382167153196 0.552317433675 0.555372406346 0.548247356349 0.553308204483 0.014928656327 2.885377621124 -0.488303090777 3.623036580983 0.451341079485 0.065518623663 1.002729299169 0.002003991719 1.000000000000 2.630852635186 0.211099777661 - 0.250000000000 53.832440241940 54.148839960334 0.377464981901 0.545819307001 0.549027355425 0.541467489363 0.546935159453 0.016359654123 2.866156509128 -0.508929080997 3.737994830728 0.441722766681 0.061632755435 1.003801727465 0.002005687910 1.000000000000 2.759245632317 0.198977339674 - 0.300000000000 50.304905328756 50.585898023101 0.372269814109 0.538615475620 0.541624069170 0.534476298424 0.539720618329 0.015316148617 2.854155613757 -0.481544344583 3.790024993703 0.430308011840 0.059534403480 1.004940534085 0.002007471374 1.000000000000 2.872750823497 0.188538478430 - 0.350000000000 47.409560398334 47.603313970952 0.366497375006 0.530583742976 0.532752134645 0.527230947775 0.531751836548 0.011786459988 2.844217356984 -0.466091540714 3.863236085000 0.417639006106 0.058385542787 1.006147055719 0.002009351608 1.000000000000 2.955194100589 0.180276528888 - 0.400000000000 45.012913156591 45.128817513495 0.360366384179 0.522039379404 0.523383585639 0.519120283890 0.523602037889 0.010962786672 2.841366924874 -0.461197751434 3.938754118619 0.404381283409 0.057006388450 1.007418331983 0.002011332499 1.000000000000 3.010131979795 0.173873966043 - 0.450000000000 42.893006818724 42.988048995863 0.353865124840 0.512957097349 0.514093705923 0.509914166080 0.514849643996 0.013064663127 2.849942719607 -0.455078988680 3.966771092829 0.390626457972 0.055628139289 1.008730925999 0.002013374895 1.000000000000 3.046849100847 0.168729624903 - 0.500000000000 41.048023925287 41.163271728612 0.347101271957 0.503487036855 0.504900643880 0.500591423222 0.504956587885 0.012960306235 2.865552006031 -0.448483550398 3.988969774093 0.376507649825 0.054393502704 1.010067393581 0.002015451272 1.000000000000 3.064164166020 0.164775976914 - 0.550000000000 39.388540565714 39.528323354549 0.340195981620 0.493800687587 0.495553096695 0.491505939037 0.494334297244 0.011591630218 2.876824725551 -0.441823977676 4.006765619709 0.362197773016 0.053293097858 1.011413858262 0.002017540747 1.000000000000 3.068394365310 0.161502413868 - 0.600000000000 37.864063318386 38.012823733406 0.333174015594 0.483930931157 0.485832200060 0.481916353652 0.484036300145 0.013155821385 2.877588336911 -0.435680656753 4.060390124704 0.347903214527 0.052201876197 1.012758814405 0.002019626818 1.000000000000 3.062445837027 0.158641891454 - 0.650000000000 36.524130931408 36.647935750373 0.326024855583 0.473859732389 0.475465961391 0.471872106652 0.474234090361 0.012028778514 2.881614472086 -0.434832201197 4.189792399107 0.333705237992 0.051082784445 1.014092393960 0.002021693357 1.000000000000 3.040916076406 0.156356160264 - 0.700000000000 35.277577821972 35.345130193136 0.318772301791 0.463618484992 0.464506259320 0.461683572983 0.464659566099 0.010600705529 2.884213198694 -0.435236244933 4.285541352661 0.319574841859 0.050266866115 1.015402785623 0.002023719880 1.000000000000 3.010733606456 0.154283413957 - 0.750000000000 34.160654589052 34.170959796590 0.311596070927 0.453470745911 0.453607543938 0.451689105654 0.455109107914 0.011616029369 2.886437574135 -0.435821130444 4.233719212772 0.305786174925 0.049080016138 1.016694895755 0.002025719200 1.000000000000 2.971618969340 0.152646603962 - 0.800000000000 33.077168609108 33.070156438079 0.304421287746 0.443304429245 0.443210451235 0.441657697229 0.445038678497 0.013342945615 2.882610463626 -0.428012744205 4.167725365416 0.292298910531 0.047889401021 1.017954532933 0.002027666574 1.000000000000 2.930078611299 0.151262307273 - 0.850000000000 32.054744604465 32.052478492520 0.297205668888 0.433056923400 0.433026308417 0.431725018493 0.434415263705 0.011594482295 2.874069836707 -0.422030488367 4.134600566732 0.279136043566 0.046760828042 1.019175113584 0.002029550902 1.000000000000 2.882688418178 0.150216133553 - 0.900000000000 31.086924103195 31.096016196050 0.290147688321 0.423019092045 0.423142813802 0.421714272768 0.424196520466 0.009377065150 2.872028655014 -0.422789186443 4.148191446093 0.266492872120 0.045234476352 1.020359150389 0.002031379315 1.000000000000 2.833682309327 0.149326130318 - 0.950000000000 30.192150521635 30.211210495534 0.283150612553 0.413048067278 0.413308819999 0.411272753319 0.414555978531 0.003494363504 2.881600702279 -0.418273671047 4.123445004830 0.254139485708 0.044256695076 1.021495915155 0.002033131345 1.000000000000 2.779340173008 0.148707532821 - 1.000000000000 29.376746349772 29.403359166866 0.276283145776 0.403245879522 0.403611185765 0.400921508712 0.405193376837 -0.006220858936 2.882598153745 -0.421118380941 4.110813796869 0.242256179510 0.043324464209 1.022587891545 0.002034813598 1.000000000000 2.720267118736 0.148371894431 - 1.050000000000 28.646711646542 28.682715991268 0.269595056998 0.393686504521 0.394181305627 0.390962538057 0.395899714138 -0.015361979469 2.877012244112 -0.426457948089 4.071801789986 0.230936392465 0.042156303453 1.023635970207 0.002036428662 1.000000000000 2.656789080714 0.148367557097 - 1.100000000000 27.929722813711 27.991760281783 0.262940412358 0.384155349549 0.385008634968 0.381162987842 0.386275970597 -0.018037230539 2.881849562494 -0.433052094127 4.035121192506 0.219969572766 0.041534942303 1.024630261511 0.002037956917 1.000000000000 2.592699275820 0.148497220082 - 1.150000000000 27.264179556602 27.348629668671 0.256491716444 0.374907702716 0.376068969918 0.371951853418 0.376684623089 -0.016858893572 2.882355334191 -0.430246394590 3.982239280265 0.209590694450 0.040668292828 1.025579829132 0.002039417227 1.000000000000 2.527843656371 0.148770660310 - 1.200000000000 26.691687232223 26.767842993074 0.250310287312 0.366034834377 0.367079191785 0.363405810578 0.367605200899 -0.017200023074 2.870855995517 -0.420364653945 3.924216393770 0.199837295060 0.039436029762 1.026487084519 0.002040814513 1.000000000000 2.459604473395 0.149243179445 - 1.250000000000 26.197044160338 26.231843459217 0.244318627900 0.357423439580 0.357898229217 0.355302086352 0.359059647468 -0.014283320490 2.847944854333 -0.416140736551 3.883048029627 0.190590667911 0.038250618233 1.027347833797 0.002042140087 1.000000000000 2.387966537846 0.149875730478 - 1.300000000000 25.707558872247 25.705777359243 0.238496005126 0.349043823967 0.349019635513 0.347334748030 0.350768641680 -0.009781123354 2.840833112427 -0.421360475870 3.863892850573 0.181808140946 0.037187412436 1.028161039346 0.002043391277 1.000000000000 2.319249874351 0.150488155404 - 1.350000000000 25.223277698964 25.215818020073 0.232831805783 0.340881445567 0.340780631305 0.339738877243 0.342120645991 -0.010030097700 2.847744826621 -0.424832668314 3.839554156384 0.173436690401 0.036437272438 1.028927483398 0.002044568996 1.000000000000 2.253219150324 0.151241671835 - 1.400000000000 24.721084897200 24.754198170465 0.227354145221 0.332978903060 0.333424919951 0.332016687666 0.333493015695 -0.009568015060 2.849813275273 -0.419885229781 3.810670007360 0.165511771902 0.035770231702 1.029650205546 0.002045678728 1.000000000000 2.192443858643 0.152079114198 - 1.450000000000 24.253469696822 24.331955248235 0.222002641280 0.325248338505 0.326300859877 0.323777393777 0.325661470278 -0.007214302161 2.849278310867 -0.422016339779 3.796549052335 0.157975140000 0.035333639145 1.030328670253 0.002046718559 1.000000000000 2.131072221993 0.153115814898 - 1.500000000000 23.829658785242 23.914604691270 0.216829624302 0.317768038234 0.318900790245 0.315707167390 0.318686128986 -0.005739919998 2.852379595039 -0.428842946827 3.783748431404 0.150859017467 0.034920505174 1.030967701063 0.002047697300 1.000000000000 2.069363784573 0.154105717236 - 1.550000000000 23.496759036799 23.564116825738 0.211964209541 0.310729473950 0.311620237237 0.308349534583 0.312204756866 -0.004911632757 2.848803200673 -0.429178550730 3.763896098592 0.144282971252 0.033914251880 1.031575321407 0.002048630225 1.000000000000 2.005826480796 0.155357524801 - 1.600000000000 23.132807689929 23.214986449993 0.207213281632 0.303848543098 0.304927957964 0.301220187293 0.305380337689 -0.004255141688 2.852612632445 -0.430520415096 3.756712307070 0.137962272790 0.033502623607 1.032143681888 0.002049500489 1.000000000000 1.947322773591 0.156588297585 - 1.650000000000 22.741787668714 22.874852716509 0.202618552849 0.297188175141 0.298927060373 0.294367476514 0.298249619746 -0.007001663342 2.857193197772 -0.434436045917 3.746506339465 0.131973510822 0.033303326517 1.032679475223 0.002050320728 1.000000000000 1.894159942187 0.157815110390 - 1.700000000000 22.409473763228 22.590155009883 0.198285807803 0.290905162549 0.293250648569 0.288040986375 0.291399876586 -0.008354276593 2.853333850352 -0.433268238298 3.727934948657 0.126453649376 0.032500219685 1.033189020291 0.002051102803 1.000000000000 1.841127100433 0.159277786145 - 1.750000000000 22.112258812414 22.302217080680 0.194187960811 0.284960340669 0.287408329963 0.282363505262 0.285086811387 -0.007528085122 2.852323991367 -0.429833038654 3.693125558996 0.121358284391 0.031151122509 1.033673132492 0.002051847473 1.000000000000 1.789742948087 0.160586373742 - 1.800000000000 21.829774439449 21.990533772148 0.190096716951 0.279017746501 0.281072495480 0.277015374612 0.278950610504 -0.008403056990 2.851805637886 -0.434375442056 3.672383588577 0.116397980585 0.030648820228 1.034124845629 0.002052539745 1.000000000000 1.737492065095 0.161769081498 - 1.850000000000 21.545803767920 21.679381740646 0.186033579289 0.273109425273 0.274802627520 0.271531030148 0.272984779967 -0.007290142348 2.854009957615 -0.436441624836 3.662205605077 0.111554360727 0.031028802825 1.034545493252 0.002053181599 1.000000000000 1.686099940751 0.162981221266 - 1.900000000000 21.277041097417 21.413771526847 0.182252185857 0.267610277077 0.269329993081 0.265896147815 0.267593674430 0.000748204784 2.853277409596 -0.430166699696 3.639116360742 0.107129892363 0.030634701926 1.034948044554 0.002053798448 1.000000000000 1.638839872261 0.164341860141 - 1.950000000000 20.987694627221 21.143084808870 0.178641326990 0.262356652086 0.264299106870 0.260660519593 0.262097528251 0.004448837944 2.843641452299 -0.435428666678 3.632442383070 0.102986201928 0.030017798034 1.035328779391 0.002054381954 1.000000000000 1.596387183957 0.165560779694 - 2.000000000000 20.697644839583 20.848792724750 0.175095780680 0.257193626687 0.259071824571 0.255744671353 0.256753067387 -0.002958738530 2.835409138381 -0.442946078896 3.622283014288 0.098980250933 0.029814503711 1.035683979347 0.002054923923 1.000000000000 1.555262592513 0.166577545051 - 2.050000000000 20.484667285587 20.603676331679 0.171677758760 0.252213762389 0.253679039753 0.251254598826 0.251701047225 -0.007927694601 2.840631823395 -0.444443860595 3.624179628867 0.095189865211 0.029612170988 1.036019555392 0.002055435721 1.000000000000 1.510792246330 0.167911266667 - 2.100000000000 20.273680986913 20.368650843244 0.168538699486 0.247641246011 0.248801294527 0.247231850528 0.246886387036 -0.006041785751 2.851823821761 -0.444109732480 3.627361461958 0.091784095254 0.028492805133 1.036344843889 0.002055935623 1.000000000000 1.471308828815 0.169102019681 - 2.150000000000 20.047129369013 20.121463356184 0.165468707178 0.243166563811 0.244068216107 0.242942074075 0.242486675504 -0.004639157594 2.862736406027 -0.439597807414 3.620947803638 0.088505406727 0.027753552790 1.036651801718 0.002056406792 1.000000000000 1.434321449145 0.170162843380 - 2.200000000000 19.876637591309 19.913946186013 0.162427555682 0.238730647034 0.239178746211 0.238658089777 0.238354377020 -0.011407145327 2.873457357695 -0.436811755185 3.626180756741 0.085304434129 0.027635214090 1.036939954333 0.002056847748 1.000000000000 1.394027320619 0.171573930205 - 2.250000000000 19.632289362989 19.690461349731 0.159508065655 0.234470869779 0.235165625040 0.234178509563 0.234066915182 -0.018654461529 2.886804566954 -0.443035288430 3.628028726799 0.082280021338 0.027547088135 1.037214754125 0.002057269038 1.000000000000 1.361180604957 0.172765924069 - 2.300000000000 19.382725326917 19.505740077426 0.156639749579 0.230283381366 0.231744901984 0.229426424665 0.229671772905 -0.016792194769 2.884802415704 -0.448837144788 3.620562868415 0.079359669790 0.027779972205 1.037473906178 0.002057665554 1.000000000000 1.329644577597 0.174290863806 - 2.350000000000 19.153779826555 19.332903037253 0.153868909123 0.226236647061 0.228352377479 0.225042443856 0.225300136669 -0.011609809599 2.869643602914 -0.451727719600 3.642125304426 0.076598742740 0.027893168105 1.037719386854 0.002058040907 1.000000000000 1.298426640793 0.175868524493 - 2.400000000000 18.998888611427 19.197830364433 0.151234700377 0.222388727031 0.224717410782 0.221459135635 0.220970980598 -0.009365697961 2.858009932438 -0.457287290320 3.664599835489 0.074030179912 0.027663895587 1.037953877959 0.002058400058 1.000000000000 1.264641868650 0.177692528100 - 2.450000000000 18.816157411304 19.023165590816 0.148734486301 0.218736018879 0.221142469042 0.218335437682 0.216707136254 -0.008446108018 2.837906465861 -0.455728287182 3.653604518923 0.071624952863 0.027264573882 1.038178605979 0.002058745136 1.000000000000 1.235114110012 0.179046184680 - 2.500000000000 18.634513944711 18.843826448134 0.146330076380 0.215222291175 0.217639779321 0.215014846590 0.212986962182 -0.009789471032 2.825490926627 -0.456632000553 3.651975040839 0.069330646953 0.026944483491 1.038392483727 0.002059073604 1.000000000000 1.207214825535 0.180282560086 - 2.550000000000 18.478942057526 18.674840598160 0.143953919958 0.211748058889 0.213992837600 0.211336783736 0.209894141477 -0.011427265636 2.827187192783 -0.460925695466 3.673766676678 0.067110116001 0.026814318973 1.038594067377 0.002059382186 1.000000000000 1.178215739801 0.181624494030 - 2.600000000000 18.325570774750 18.501590665203 0.141608746001 0.208317487815 0.210318408924 0.207554211678 0.207065070139 -0.009918929291 2.833864809040 -0.462319506722 3.681413165621 0.064972982262 0.026751915154 1.038784040883 0.002059671992 1.000000000000 1.149730058109 0.182928512167 - 2.650000000000 18.136962351042 18.311063878612 0.139374812287 0.205049083760 0.207017404476 0.203893853702 0.204221622067 -0.004844902407 2.841016876841 -0.467352835075 3.699238604246 0.062968280390 0.026444433204 1.038965262991 0.002059948502 1.000000000000 1.125368491347 0.183955216507 - 2.700000000000 17.977181164746 18.142172331184 0.137271793448 0.201972039901 0.203825701058 0.200800275104 0.201277042434 -0.001139726740 2.842424465285 -0.469807388483 3.683895012118 0.061096657984 0.025874234158 1.039139103486 0.002060214228 1.000000000000 1.101408760736 0.185059088255 - 2.750000000000 17.863483890981 17.993310388362 0.135301780377 0.199089729292 0.200536654337 0.198343643304 0.198380972771 0.000536595453 2.836630385610 -0.465490875412 3.676361540845 0.059366855836 0.024978902523 1.039307397483 0.002060472604 1.000000000000 1.076873537538 0.186221173932 - 2.800000000000 17.743325345646 17.840606160075 0.133325478662 0.196196740180 0.197272422348 0.195957877971 0.195355020448 -0.000271988404 2.833086805106 -0.458511176735 3.675771253790 0.057651418703 0.024525885200 1.039466289855 0.002060715625 1.000000000000 1.052762712806 0.187385457281 - 2.850000000000 17.589660185549 17.671600741850 0.131219401466 0.193110975168 0.194010573032 0.193303494156 0.192013548715 -0.004843325889 2.828320530440 -0.459172712335 3.666272005804 0.055850632567 0.025132923570 1.039612601369 0.002060936675 1.000000000000 1.028707288138 0.188596479552 - 2.900000000000 17.412429764465 17.506922703866 0.129157272151 0.190088870017 0.191120435188 0.190365030878 0.188773593984 -0.013530475806 2.832243875416 -0.458578858058 3.651531209458 0.054113999577 0.025831007877 1.039752430642 0.002061147896 1.000000000000 1.006803797671 0.189828877910 - 2.950000000000 17.299453263405 17.409996153778 0.127374224896 0.187477433598 0.188675407723 0.187615452553 0.186132739756 -0.014106815939 2.844354590140 -0.457360280610 3.630479108020 0.052633221341 0.025420251065 1.039893227466 0.002061364144 1.000000000000 0.985623169728 0.191427528814 - 3.000000000000 17.220882918045 17.339955560989 0.125749572574 0.185098610578 0.186378462538 0.185051654952 0.183857120109 -0.003090114093 2.860029835119 -0.458917573711 3.642832771776 0.051307262116 0.024414274724 1.040031054465 0.002061577266 1.000000000000 0.965053270891 0.193127641924 - 3.050000000000 17.107061235660 17.242151599176 0.124099011705 0.182680506012 0.184123090195 0.182284115738 0.181625137679 0.003409826975 2.867895070583 -0.456898903235 3.661255542516 0.049988685318 0.023677405716 1.040160486966 0.002061776173 1.000000000000 0.946166321673 0.194599074156 - 3.100000000000 16.953991234402 17.103920195624 0.122408357559 0.180202333235 0.181795913664 0.179647231011 0.179152898036 0.004434162431 2.861191977294 -0.455924398330 3.644088172642 0.048658666864 0.023405676648 1.040282194210 0.002061962083 1.000000000000 0.928898348014 0.195711311203 - 3.150000000000 16.851277017129 16.980974849236 0.120687073279 0.177678151510 0.179045672264 0.177305425556 0.176674870549 0.015779584838 2.859780794695 -0.451104040938 3.610391387314 0.047310001588 0.023702845063 1.040397188567 0.002062136901 1.000000000000 0.908484962091 0.197081602597 - 3.200000000000 16.756025134816 16.850714298130 0.119013872246 0.175224164278 0.176214365078 0.175101889450 0.174351223372 0.020222049720 2.861415065869 -0.454144945575 3.618641670084 0.046007457694 0.024115271915 1.040508149539 0.002062305925 1.000000000000 0.888513236276 0.198324974670 - 3.250000000000 16.667164019508 16.733704360558 0.117508540553 0.173017129910 0.173707866427 0.173119378423 0.172220903732 0.010703140220 2.856344268947 -0.459920455430 3.644049460859 0.044850572438 0.023926868840 1.040618432772 0.002062475782 1.000000000000 0.870818486504 0.199476548924 - 3.300000000000 16.580238282529 16.640175487351 0.116046629364 0.170873390866 0.171491094499 0.171065243114 0.170060678064 0.007206121794 2.857960614340 -0.458585651970 3.656143391791 0.043742371874 0.023696117132 1.040723989739 0.002062638180 1.000000000000 0.853758529509 0.200866039485 - 3.350000000000 16.475394085069 16.558060442978 0.114627962263 0.168792691060 0.169639619330 0.168871977017 0.167861766336 0.008580197956 2.854527530325 -0.447373291977 3.620534440236 0.042675516662 0.023448358202 1.040824658614 0.002062792718 1.000000000000 0.838331670332 0.202353824069 - 3.400000000000 16.343069198893 16.469627142455 0.113171671983 0.166655809553 0.167946363750 0.166509470562 0.165502542851 0.014314451084 2.852180011438 -0.436395155841 3.598643791045 0.041598580785 0.023517682147 1.040918992338 0.002062936357 1.000000000000 0.823799389263 0.203868036246 - 3.450000000000 16.275212831100 16.431198587928 0.111724557257 0.164531890219 0.166108805476 0.164214010462 0.163260075366 0.022617226558 2.860618028536 -0.438627899992 3.605909000100 0.040545222870 0.023706148791 1.041009038035 0.002063073139 1.000000000000 0.806229849245 0.206031574781 - 3.500000000000 16.207064245060 16.381605805397 0.110380390522 0.162559332393 0.164310010930 0.162209543231 0.161142465034 0.025632689316 2.870015765380 -0.447184048945 3.605614660103 0.039574175253 0.023637280685 1.041097547515 0.002063208556 1.000000000000 0.790271518586 0.207915896076 - 3.550000000000 16.097283069980 16.286529654751 0.109134748512 0.160731621480 0.162621251568 0.160351029483 0.159203763500 0.024592074536 2.868521347791 -0.448474081997 3.589610422924 0.038683923650 0.023273378154 1.041184376217 0.002063342186 1.000000000000 0.777819475715 0.209073257543 - 3.600000000000 15.996829281618 16.191070401836 0.107838007749 0.158828000476 0.160756565705 0.158427707944 0.157279970574 0.022720327497 2.866401918575 -0.448972059637 3.588786135148 0.037773234733 0.023249187796 1.041265567887 0.002063465960 1.000000000000 0.764227951745 0.210351591221 - 3.650000000000 15.961756301631 16.151130620599 0.106616182002 0.157034444691 0.158897541110 0.156611225567 0.155576173990 0.024265415776 2.867238745562 -0.451813704399 3.623801331748 0.036933672931 0.022947321867 1.041344732923 0.002063587136 1.000000000000 0.748662979522 0.212241750236 - 3.700000000000 15.948954191319 16.136327663253 0.105541147695 0.155457046699 0.157283406360 0.154983175968 0.154087070696 0.033033534698 2.875597430304 -0.456556191700 3.614109558030 0.036207233626 0.022064354555 1.041423984290 0.002063709878 1.000000000000 0.734243266101 0.214211574858 - 3.750000000000 15.876957188838 16.073985601219 0.104340408680 0.153693766872 0.155601061735 0.153219889538 0.152240917506 0.039647917492 2.875928937058 -0.453701377774 3.590879939144 0.035399392268 0.021957164108 1.041496513236 0.002063820381 1.000000000000 0.720897200257 0.215843620532 - 3.800000000000 15.727518967293 15.949317195053 0.103050029368 0.151797825092 0.153938562525 0.151163944673 0.150266829029 0.040524786441 2.881744505125 -0.447254555064 3.598340335781 0.034534192870 0.022467214694 1.041563311790 0.002063920603 1.000000000000 0.709868482530 0.216855046130 - 3.850000000000 15.581582631999 15.819250055243 0.101888763517 0.150091999011 0.152381367138 0.149392206679 0.148474617473 0.033132890967 2.892912750536 -0.439573667346 3.589896302027 0.033758295825 0.022540331394 1.041629911352 0.002064021625 1.000000000000 0.700469570255 0.217541737156 - 3.900000000000 15.530561722557 15.748487125437 0.100836606362 0.148546821659 0.150631236024 0.148034599784 0.146950544999 0.026909414674 2.895427606424 -0.427190829094 3.575284097474 0.033059556471 0.022270067217 1.041696189128 0.002064123149 1.000000000000 0.688341508863 0.218832126327 - 3.950000000000 15.516776190280 15.687738247441 0.099827931400 0.147065498497 0.148685849261 0.146783071328 0.145712150301 0.026285016697 2.885352688630 -0.423929546705 3.558682428360 0.032396174426 0.021938838519 1.041760800227 0.002064222415 1.000000000000 0.675248476456 0.220194275804 - 4.000000000000 15.487923005154 15.604311429149 0.098786030385 0.145534875588 0.146628539005 0.145459974803 0.144508364174 0.025337667419 2.873693104572 -0.436959594398 3.571904451467 0.031723494645 0.021846211081 1.041822126551 0.002064316094 1.000000000000 0.662467807306 0.221336851977 - 4.050000000000 15.429095671982 15.510099557793 0.097741022394 0.143999430127 0.144755437714 0.144032907459 0.143205769617 0.022700053893 2.872132783888 -0.443599537929 3.581699955290 0.031062861484 0.021850562601 1.041881270710 0.002064406369 1.000000000000 0.651007338849 0.222356076615 - 4.100000000000 15.359330813720 15.435783691884 0.096759984277 0.142558141963 0.143267741906 0.142747796640 0.141654128792 0.021808583258 2.889754739809 -0.445302981229 3.567265310586 0.030450730055 0.021696338226 1.041939893777 0.002064496557 1.000000000000 0.640910807967 0.223537721825 - 4.150000000000 15.277988175983 15.375171074826 0.095858461477 0.141233914660 0.142132300041 0.141489041888 0.140072539281 0.022025980627 2.919521053801 -0.447433705128 3.555913987269 0.029892953205 0.021298149845 1.041997928761 0.002064586466 1.000000000000 0.632380905372 0.224757418881 - 4.200000000000 15.224980641228 15.345688794380 0.094972233765 0.139931968188 0.141041390252 0.140019304829 0.138725584064 0.020739340010 2.945132241470 -0.450824603713 3.581920028245 0.029349064826 0.020900169745 1.042053516508 0.002064672307 1.000000000000 0.622911004722 0.226423018991 - 4.250000000000 15.169564017061 15.314698386632 0.094038923600 0.138560289453 0.139885961056 0.138473660909 0.137309229746 0.018245981999 2.954301241263 -0.452987247056 3.598027079028 0.028778520565 0.020818415938 1.042105428352 0.002064751565 1.000000000000 0.612966388275 0.228211470861 - 4.300000000000 15.074366563113 15.244686774177 0.093063420087 0.137126135620 0.138675477827 0.136826925026 0.135861089528 0.022511063169 2.943649258936 -0.436986389763 3.580658295544 0.028184747193 0.021048493539 1.042154257172 0.002064825387 1.000000000000 0.604112846944 0.229552274097 - 4.350000000000 14.999791208459 15.178362111883 0.092084873730 0.135687296003 0.137302638690 0.135203624016 0.134540300102 0.032055569017 2.929364424596 -0.425478762310 3.583736527444 0.027593844980 0.021395097051 1.042201127907 0.002064896045 1.000000000000 0.594422129734 0.230985072429 - 4.400000000000 14.888846393395 15.063054936313 0.091230150448 0.134430964446 0.136003888352 0.133962630276 0.133311697341 0.043826175380 2.920604121061 -0.421060034441 3.581110314888 0.027085847286 0.021258824617 1.042248959103 0.002064969376 1.000000000000 0.587792396847 0.231380822688 - 4.450000000000 14.846700177720 14.998359158127 0.090424909436 0.133247461321 0.134608583583 0.133073326794 0.132048009327 0.059708197934 2.910439025504 -0.436999634576 3.572516704005 0.026614545727 0.020963707947 1.042296101532 0.002065042007 1.000000000000 0.579107324826 0.232441514400 - 4.500000000000 14.837896068806 14.972828915305 0.089557765483 0.131972443909 0.133172574806 0.132116142978 0.130616109030 0.070984354367 2.906542278575 -0.449691993640 3.590545699284 0.026108995708 0.021036179180 1.042340066237 0.002065108899 1.000000000000 0.568396291197 0.234295291628 - 4.550000000000 14.816728089507 14.963036199081 0.088708204630 0.130723190142 0.132014019177 0.131001644026 0.129137621652 0.065487602190 2.895462602525 -0.454648040035 3.616404326018 0.025614019244 0.021147333827 1.042382576841 0.002065173519 1.000000000000 0.558465587221 0.236387025805 - 4.600000000000 14.773704344316 14.947689367094 0.088056954385 0.129766363861 0.131294579347 0.129869768824 0.128115198742 0.054580084152 2.873962934474 -0.449182746893 3.601014497901 0.025239351580 0.020450537058 1.042427624099 0.002065243860 1.000000000000 0.551903982438 0.237893879235 - 4.650000000000 14.748847243548 14.946242740387 0.087392078683 0.128789270211 0.130512958955 0.128632434119 0.127200993714 0.047788946496 2.879660670280 -0.445311369409 3.598332933153 0.024864108076 0.019807982388 1.042470617660 0.002065310638 1.000000000000 0.544522594278 0.239683275454 - 4.700000000000 14.637251380623 14.853794180936 0.086602406026 0.127627885747 0.129516006614 0.127260036084 0.126083777336 0.044754764129 2.894680625914 -0.438840557085 3.598124181818 0.024424143521 0.019740589134 1.042509241453 0.002065369171 1.000000000000 0.538807866960 0.240375121739 - 4.750000000000 14.565048139028 14.786141010448 0.085717231936 0.126325435136 0.128243015697 0.125902567309 0.124806326589 0.045344441806 2.896891512564 -0.450772186436 3.583092545978 0.023931902851 0.020165144730 1.042544139449 0.002065420747 1.000000000000 0.530470388646 0.241753391786 - 4.800000000000 14.523316604679 14.753925557034 0.084914316526 0.125144211270 0.127131317675 0.124840775248 0.123432693176 0.048734661278 2.903521741718 -0.454089168153 3.585733508832 0.023484720307 0.020336734390 1.042579252450 0.002065473289 1.000000000000 0.522078901785 0.243509778389 - 4.850000000000 14.485032388853 14.730364756671 0.084266913637 0.124192334421 0.126295774624 0.124061608385 0.122185524609 0.045042349616 2.911323631122 -0.441473275067 3.598034345306 0.023123387339 0.019965738544 1.042616530766 0.002065530712 1.000000000000 0.515511613558 0.244991133667 - 4.900000000000 14.445359077598 14.696000354862 0.083573421221 0.123172376701 0.125309539347 0.123109835349 0.121061104141 0.032592034151 2.920321832172 -0.445390146420 3.616866365399 0.022741262301 0.019868675451 1.042652064493 0.002065585089 1.000000000000 0.508458148012 0.246450056581 - 4.950000000000 14.349872018235 14.605576120249 0.082766876894 0.121985528041 0.124159219894 0.121718067620 0.120044188882 0.016824277084 2.948220906833 -0.447810100998 3.597521235148 0.022303430731 0.020303043039 1.042684355800 0.002065633390 1.000000000000 0.502013444296 0.247322499636 - 5.000000000000 14.258257080742 14.519299199595 0.082030282430 0.120901781885 0.123115268227 0.120135703217 0.119422636593 0.008802121721 2.983131571339 -0.445132317215 3.606395185577 0.021909221618 0.020481732163 1.042716955786 0.002065682774 1.000000000000 0.496289783008 0.248071333408 diff --git a/cases/isotropic/data/statistics-ud7l-0.5.dat b/cases/isotropic/data/statistics-ud7l-0.5.dat deleted file mode 100644 index ce3c2d6..0000000 --- a/cases/isotropic/data/statistics-ud7l-0.5.dat +++ /dev/null @@ -1,100 +0,0 @@ - 0.050000000000 69.603547207707 69.946442996344 0.395169729356 0.570517657213 0.573328262561 0.564413792824 0.573762115684 0.014967480630 2.960329763218 -0.459038634444 3.336268814107 0.487808827162 0.038318544973 1.000548368584 0.002000762592 1.000000000000 2.337282720439 0.245296924308 - 0.100000000000 65.506384737400 65.894003830951 0.388362497641 0.560737897276 0.564055935912 0.555405398565 0.562713704054 0.012437312138 2.952993538667 -0.380806683396 3.186687135927 0.467652503161 0.072256366304 1.000868087753 0.002001038068 1.000000000000 2.398727063980 0.235148026794 - 0.150000000000 61.552107027820 61.921260717882 0.385796352295 0.557269662559 0.560611841442 0.552848316778 0.558320277527 0.012884867232 2.921255428985 -0.380046669226 3.322692776173 0.458603992249 0.071929348808 1.001714452674 0.002002359926 1.000000000000 2.519681995961 0.222493093311 - 0.200000000000 57.958946823202 58.279677815450 0.382078111200 0.552194267618 0.555249979032 0.548123451408 0.553185023632 0.014960179663 2.884901025433 -0.486173646398 3.606548824193 0.451143556562 0.065507851001 1.002749559150 0.002004022839 1.000000000000 2.625189362865 0.211508543683 - 0.250000000000 54.025111284537 54.342678902871 0.377273407146 0.545553582231 0.548760427116 0.541201723489 0.546670669946 0.016404491148 2.865158113655 -0.506516168432 3.704851441327 0.441300597235 0.061603464460 1.003843469588 0.002005752386 1.000000000000 2.746640603280 0.199793313498 - 0.300000000000 50.616242674486 50.898760295489 0.371916747604 0.538124635561 0.541128210773 0.533988349227 0.539231928383 0.015386346191 2.852423344750 -0.478264409390 3.734559700779 0.429538012423 0.059474222799 1.005015230772 0.002007587124 1.000000000000 2.849715103821 0.189888529575 - 0.350000000000 47.854818707846 48.049567882534 0.365927615477 0.529789910718 0.531945934932 0.526448414180 0.530959167934 0.011886572863 2.841393675180 -0.461891346713 3.777689042038 0.416413805397 0.058280160302 1.006264640834 0.002009534125 1.000000000000 2.918678815102 0.182255728921 - 0.400000000000 45.598837397779 45.714794159932 0.359537477593 0.520881967026 0.522206557516 0.517984478195 0.522442783810 0.011149335326 2.837423416810 -0.457068514025 3.816942420326 0.402628133961 0.056841797547 1.007585495204 0.002011592237 1.000000000000 2.957909783924 0.176545802835 - 0.450000000000 43.610391274790 43.705392698928 0.352755614591 0.511404482834 0.512518532784 0.508389345499 0.513291985254 0.013271755027 2.845298969792 -0.450898087046 3.806712216856 0.388319388246 0.055396818188 1.008949707238 0.002013714961 1.000000000000 2.978112376132 0.172095095165 - 0.500000000000 41.885018751121 42.001220569293 0.345712878584 0.501539907396 0.502931332084 0.498667713025 0.503008373020 0.013274370282 2.860212754319 -0.442172473049 3.790181975454 0.373667028263 0.054096409987 1.010335152430 0.002015867334 1.000000000000 2.979135998324 0.168817849325 - 0.550000000000 40.330268744001 40.472522093195 0.338546272116 0.491482132470 0.493215693430 0.489201117625 0.492020940489 0.011956268207 2.871081637096 -0.436118921659 3.777718929411 0.358876899341 0.052929948880 1.011725228144 0.002018024311 1.000000000000 2.967959415582 0.166180066628 - 0.600000000000 38.913303556541 39.065003219780 0.331283104224 0.481267774544 0.483143949339 0.479264872648 0.481386662162 0.013227805978 2.870923877182 -0.430049265405 3.764409766673 0.344168776104 0.051769616769 1.013107853898 0.002020168693 1.000000000000 2.946373682423 0.163979183028 - 0.650000000000 37.689820386249 37.813246430738 0.323935542381 0.470910954162 0.472453086116 0.468957820796 0.471315206610 0.011909628611 2.872728203314 -0.428490540158 3.755612344320 0.329656481240 0.050595329512 1.014469056845 0.002022277837 1.000000000000 2.909462044034 0.162385031654 - 0.700000000000 36.530628148842 36.593937008972 0.316543081131 0.460465752156 0.461263755459 0.458601436431 0.461526377502 0.010339781088 2.872187199079 -0.428687267144 3.759697697600 0.315341097103 0.049735953626 1.015794866723 0.002024328117 1.000000000000 2.867190978659 0.160876536963 - 0.750000000000 35.477894637021 35.479964542126 0.309309572912 0.450230439094 0.450256707120 0.448510981910 0.451917184514 0.011671347864 2.875328696442 -0.430680842451 3.754112657871 0.301518828203 0.048551766239 1.017086948480 0.002026326792 1.000000000000 2.819696598674 0.159682679098 - 0.800000000000 34.433396254910 34.414971502205 0.302144386858 0.440071529601 0.439836054452 0.438486276701 0.441885600404 0.013574447480 2.874343305285 -0.422016415400 3.717378414552 0.288130099076 0.047394826954 1.018335474460 0.002028256506 1.000000000000 2.772961292992 0.158616009377 - 0.850000000000 33.427282177986 33.412485640854 0.295003008309 0.429923666425 0.429733361349 0.428635255274 0.431397882399 0.012078952962 2.867488726544 -0.414532836369 3.693252001930 0.275176731899 0.046297156295 1.019534884116 0.002030107397 1.000000000000 2.723721032292 0.157774366851 - 0.900000000000 32.461223543268 32.458325493857 0.288068565064 0.420056435679 0.420018934188 0.418768400100 0.421377917633 0.010457135066 2.866769461997 -0.414310231672 3.690409884800 0.262824974685 0.044808997528 1.020690958463 0.002031892109 1.000000000000 2.675159966221 0.157007034903 - 0.950000000000 31.554131026386 31.561965748835 0.281234691643 0.410313432798 0.410415311435 0.408545435887 0.411972375724 0.005058123207 2.878616542973 -0.410899083027 3.672574973774 0.250829560061 0.043876945192 1.021794560918 0.002033592596 1.000000000000 2.623682591278 0.156427196186 - 1.000000000000 30.720284905977 30.735046234641 0.274556014711 0.400776673424 0.400969249639 0.398467781803 0.402880768456 -0.003992526257 2.880777299395 -0.413408551824 3.673304835629 0.239334460207 0.043007969865 1.022850233572 0.002035218452 1.000000000000 2.569026604733 0.156078278403 - 1.050000000000 29.956277906932 29.982175853588 0.268079713634 0.391516818165 0.391855294183 0.388794654710 0.393883741232 -0.012947348799 2.876493858781 -0.417558565404 3.658862848007 0.228420861055 0.041904109372 1.023860780063 0.002036775365 1.000000000000 2.512290526142 0.155975310222 - 1.100000000000 29.196100630377 29.249926129574 0.261649327435 0.382304171106 0.383008981420 0.379316377518 0.384568126128 -0.016130597945 2.881947900717 -0.424679767812 3.663011433558 0.217870595685 0.041327707411 1.024817620610 0.002038245810 1.000000000000 2.456046939702 0.155945301871 - 1.150000000000 28.482166366885 28.556513314453 0.255425234800 0.373376452823 0.374351076705 0.370461300990 0.375299377040 -0.014843773226 2.883036552933 -0.424808539435 3.656550066890 0.207893743340 0.040504729821 1.025730816901 0.002039649973 1.000000000000 2.399745511546 0.155996156636 - 1.200000000000 27.866357516945 27.928574160884 0.249463326954 0.364817182681 0.365631702510 0.362237865109 0.366567752999 -0.015781760308 2.872848587025 -0.416368153126 3.630572070868 0.198515664337 0.039323559386 1.026604033732 0.002040994789 1.000000000000 2.340067957220 0.156248326627 - 1.250000000000 27.332206508770 27.350327832463 0.243685616475 0.356512307940 0.356748676523 0.354440707389 0.358336774393 -0.013479596722 2.850848929321 -0.413452298000 3.620190562300 0.189617129596 0.038180083814 1.027433396458 0.002042272017 1.000000000000 2.276988175071 0.156675682566 - 1.300000000000 26.793400887482 26.774966743010 0.238059553040 0.348414745277 0.348175032231 0.346753793530 0.350306234291 -0.009417208180 2.843530737823 -0.420820551917 3.632024291860 0.181145884793 0.037184092820 1.028217838487 0.002043478843 1.000000000000 2.217149945331 0.157037205789 - 1.350000000000 26.263949359203 26.240464218438 0.232579297297 0.340516959211 0.340212470019 0.339427124101 0.341906567938 -0.009659015022 2.849692104249 -0.424506864986 3.633544082535 0.173063718077 0.036439741189 1.028958696139 0.002044617181 1.000000000000 2.159262562054 0.157559565010 - 1.400000000000 25.714771646335 25.735039385617 0.227275327756 0.332865001113 0.333127356974 0.331941252220 0.333524355945 -0.008879763513 2.852848926812 -0.418800234981 3.621154732249 0.165397518587 0.035761571644 1.029659423610 0.002045693246 1.000000000000 2.106265356322 0.158160203307 - 1.450000000000 25.196723296525 25.269737333957 0.222083940936 0.325365987551 0.326308819844 0.323891296284 0.325892712175 -0.007149805933 2.852207113558 -0.422378730120 3.626945924731 0.158083174160 0.035328070126 1.030319079273 0.002046704380 1.000000000000 2.052792808500 0.158958477686 - 1.500000000000 24.733120536940 24.816555725163 0.217052792500 0.318091140703 0.319164195523 0.315958600447 0.319139938713 -0.006212290208 2.853720411364 -0.427962146375 3.629380400163 0.151155914829 0.034924416311 1.030941718934 0.002047658030 1.000000000000 1.997868061582 0.159752388889 - 1.550000000000 24.370082067454 24.434456212572 0.212308422048 0.311228033675 0.312050149848 0.308733931117 0.312884532364 -0.005271736061 2.850285453303 -0.426701091375 3.620579150103 0.144733953617 0.033957055110 1.031535047291 0.002048568929 1.000000000000 1.940214940826 0.160832773360 - 1.600000000000 23.976707842455 24.054498134037 0.207663655256 0.304501276912 0.305489204165 0.301758752178 0.306236974491 -0.004146657679 2.853097035757 -0.429494482082 3.624526980099 0.138547619284 0.033550783864 1.032091485587 0.002049420863 1.000000000000 1.886937571506 0.161896826253 - 1.650000000000 23.546705904357 23.678418130777 0.203168373112 0.297985697823 0.299652527988 0.295071115751 0.299212010855 -0.007642680522 2.857304004979 -0.433490186987 3.620186873918 0.132677805770 0.033318137917 1.032617492535 0.002050226140 1.000000000000 1.839326865038 0.162914234378 - 1.700000000000 23.178178058970 23.360649174905 0.198924276519 0.291832008261 0.294129467194 0.288856449891 0.292485163765 -0.010367536179 2.856054760379 -0.430563722488 3.614058041677 0.127253949372 0.032501795837 1.033119078035 0.002050996094 1.000000000000 1.791520241297 0.164178701649 - 1.750000000000 22.859640906148 23.046203279042 0.194896786484 0.285989959200 0.288323983853 0.283288030137 0.286335367370 -0.010975391361 2.856122292441 -0.427799450616 3.599192618588 0.122230715330 0.031172041166 1.033596732193 0.002051730898 1.000000000000 1.743860613048 0.165336599551 - 1.800000000000 22.551486618915 22.702759435245 0.190865673834 0.280135347567 0.282014463729 0.278040092098 0.280337275979 -0.013047689222 2.852642656906 -0.431892652113 3.582763982303 0.117325689173 0.030684475668 1.034043179210 0.002052415023 1.000000000000 1.695490895850 0.166332042490 - 1.850000000000 22.231505967478 22.354626336653 0.186857927922 0.274308264223 0.275827411635 0.272643156972 0.274444929648 -0.012848480340 2.852891486366 -0.435355414022 3.585580480409 0.112527334692 0.031053576902 1.034459790692 0.002053050632 1.000000000000 1.648577017293 0.167312420798 - 1.900000000000 21.934255725711 22.060259937362 0.183119676846 0.268872519731 0.270417093219 0.267081564840 0.269108396407 -0.004188582457 2.854503187373 -0.424912409122 3.564031673188 0.108133137145 0.030665910172 1.034859272507 0.002053662687 1.000000000000 1.604873549800 0.168497445330 - 1.950000000000 21.619361904066 21.765947941904 0.179548324240 0.263677167023 0.265464980713 0.261894205935 0.263660224798 -0.000460566047 2.847757782711 -0.430398701937 3.559562283633 0.104014301958 0.030048946604 1.035238284775 0.002054243698 1.000000000000 1.565489693971 0.169573125735 - 2.000000000000 21.305816485140 21.448591224538 0.176035308772 0.258562285503 0.260294965542 0.257004809060 0.258376518839 -0.007969158501 2.841033749770 -0.442011744712 3.560190176912 0.100024363075 0.029853625819 1.035592611642 0.002054784519 1.000000000000 1.527094415077 0.170451127954 - 2.050000000000 21.076271892910 21.180466307465 0.172642023028 0.253619142670 0.254872955404 0.252571938263 0.253407184570 -0.012589835398 2.844930987585 -0.444745078561 3.566182575769 0.096243074592 0.029639418791 1.035927662044 0.002055295549 1.000000000000 1.484895824425 0.171643660930 - 2.100000000000 20.851687984720 20.922101431566 0.169517926611 0.249068992125 0.249910065819 0.248663006478 0.248631769342 -0.011126416016 2.854845447299 -0.443238415065 3.574077795107 0.092837651137 0.028513581000 1.036252634469 0.002055794860 1.000000000000 1.447165941860 0.172689294704 - 2.150000000000 20.604963027655 20.650332719036 0.166455385521 0.244605678914 0.245144271686 0.244398301274 0.244273557441 -0.011781185561 2.865595797430 -0.439453843013 3.576717993742 0.089551460545 0.027790897607 1.036559699049 0.002056266093 1.000000000000 1.412153534997 0.173596047180 - 2.200000000000 20.415939437649 20.426910813848 0.163419582986 0.240178096320 0.240307166268 0.240043724461 0.240183325905 -0.019082850817 2.876659757001 -0.437927492969 3.571851525189 0.086338960380 0.027700144131 1.036848481005 0.002056708002 1.000000000000 1.373804042455 0.174920992254 - 2.250000000000 20.150392842695 20.185754007439 0.160510176830 0.235933638219 0.236347669267 0.235566647546 0.235885944317 -0.025334038086 2.889456931239 -0.442671534503 3.577484255813 0.083304669554 0.027602629811 1.037124267716 0.002057130815 1.000000000000 1.342871022494 0.176001764360 - 2.300000000000 19.891011494758 19.990630108240 0.157647718494 0.231755235514 0.232915917324 0.230833778584 0.231511143762 -0.024038825234 2.888380290277 -0.446956198875 3.565307023359 0.080370829040 0.027818988052 1.037384430779 0.002057528780 1.000000000000 1.312370080448 0.177477314360 - 2.350000000000 19.656500367818 19.809422074561 0.154880785937 0.227714776692 0.229486329698 0.226476537703 0.227170554703 -0.020966374288 2.875022755683 -0.452341308724 3.584801663478 0.077596182906 0.027920897414 1.037631479638 0.002057906613 1.000000000000 1.281889426236 0.179021938243 - 2.400000000000 19.486931187203 19.658099204117 0.152241671985 0.223860154244 0.225826482256 0.222928127595 0.222812826858 -0.019776513358 2.866236424491 -0.460011181598 3.609597369569 0.075005233187 0.027727602322 1.037867591229 0.002058268273 1.000000000000 1.249419172471 0.180745171222 - 2.450000000000 19.288044297385 19.467057203664 0.149739282258 0.220204757029 0.222248483854 0.219784864647 0.218564932574 -0.018038738717 2.852480870460 -0.459806200804 3.601184973733 0.072582457801 0.027318864557 1.038094130495 0.002058616174 1.000000000000 1.221208498753 0.181990613463 - 2.500000000000 19.090600087072 19.270521554812 0.147326392332 0.216679024546 0.218721139930 0.216392293910 0.214906577655 -0.018845867541 2.842768940851 -0.459567476946 3.602820404192 0.070267738808 0.026987778547 1.038309677522 0.002058947129 1.000000000000 1.194452733779 0.183114102170 - 2.550000000000 18.911895656737 19.075391113034 0.144942918029 0.213194487999 0.215037578228 0.212682832809 0.211850234170 -0.020308609159 2.838652616826 -0.463337073987 3.627966442647 0.068028823437 0.026825761646 1.038513019555 0.002059258348 1.000000000000 1.167094563071 0.184250347000 - 2.600000000000 18.762715646964 18.901775608127 0.142597398766 0.209763897908 0.211318564090 0.208917503946 0.209046931603 -0.018451701074 2.841917282797 -0.465461958166 3.644844575722 0.065876831410 0.026716497474 1.038705111386 0.002059551492 1.000000000000 1.138657570642 0.185585701565 - 2.650000000000 18.566059389419 18.699466343703 0.140353310753 0.206481012586 0.207964687847 0.205295097766 0.206174288207 -0.012545894125 2.851274182773 -0.471736721599 3.664845253750 0.063849107901 0.026417152198 1.038888370075 0.002059831154 1.000000000000 1.114830610914 0.186543754550 - 2.700000000000 18.382649459826 18.502869804288 0.138234383991 0.203380993532 0.204711081078 0.202220611871 0.203203550680 -0.007302631224 2.854843337512 -0.472699168472 3.656684235127 0.061950794955 0.025880777465 1.039064189301 0.002060099911 1.000000000000 1.092255750912 0.187420465314 - 2.750000000000 18.253927035160 18.334219507157 0.136253470125 0.200483071077 0.201364924134 0.199770392978 0.200310615752 -0.005255382156 2.850734478181 -0.467090759926 3.653378021105 0.060198561149 0.024993943628 1.039234581454 0.002060361568 1.000000000000 1.068699637992 0.188420503737 - 2.800000000000 18.124100912908 18.169966136875 0.134271868026 0.197582680952 0.198082687764 0.197416168376 0.197248200773 -0.007228464164 2.846128545546 -0.461286956198 3.652126864402 0.058466006071 0.024497425048 1.039395451493 0.002060607627 1.000000000000 1.045312089970 0.189496218081 - 2.850000000000 17.967497524370 17.997134857118 0.132152062417 0.194477050716 0.194797840023 0.194748587847 0.193883363959 -0.012611748220 2.836847501411 -0.460064398248 3.639164701995 0.056640872597 0.025101118592 1.039543326130 0.002060830885 1.000000000000 1.021425677790 0.190711712324 - 2.900000000000 17.775634121295 17.819570923211 0.130076935214 0.191436187821 0.191909368908 0.191760272344 0.190636392377 -0.021320080307 2.834616694144 -0.455152202972 3.624959891535 0.054880727584 0.025815267360 1.039685080982 0.002061045066 1.000000000000 1.000312012296 0.191849509502 - 2.950000000000 17.639813109478 17.704038498603 0.128282956846 0.188809056955 0.189496498204 0.188977136432 0.187950256821 -0.022543864045 2.843969132715 -0.453765162113 3.614841445275 0.053380694409 0.025411070983 1.039828127075 0.002061264948 1.000000000000 0.980432837146 0.193278408295 - 3.000000000000 17.538016705030 17.607925372494 0.126647203950 0.186414247167 0.187157317027 0.186438648964 0.185643700395 -0.014784373949 2.857392532413 -0.454654199500 3.621999451255 0.052037673567 0.024385715358 1.039967975883 0.002061481260 1.000000000000 0.961165850177 0.194719066426 - 3.050000000000 17.421820164168 17.492256080753 0.124972742329 0.183961232346 0.184704982304 0.183729472481 0.183446873707 -0.011579349135 2.871238011015 -0.451360352333 3.635336085004 0.050691712533 0.023687619355 1.040098829634 0.002061682162 1.000000000000 0.942187592253 0.196038436319 - 3.100000000000 17.279055004593 17.349804661591 0.123268301302 0.181463076478 0.182206082992 0.181181590463 0.180999223681 -0.010938021598 2.872835870283 -0.446676163665 3.624310937102 0.049340483478 0.023433963107 1.040222373093 0.002061870927 1.000000000000 0.924261955583 0.197136841879 - 3.150000000000 17.167506080592 17.220635779247 0.121531225146 0.178915927492 0.179469633387 0.178820952032 0.178455723185 -0.001356214608 2.873565806136 -0.439664759119 3.588926380806 0.047968958813 0.023755471696 1.040339002514 0.002062048203 1.000000000000 0.904257220275 0.198471883180 - 3.200000000000 17.044773184941 17.077342938489 0.119840451837 0.176436287955 0.176773428634 0.176516912224 0.176017685900 0.001857455663 2.872395948837 -0.440958613736 3.588868765791 0.046642536684 0.024174770115 1.040451117156 0.002062218736 1.000000000000 0.885625003733 0.199603023728 - 3.250000000000 16.931945646711 16.947438139951 0.118327928487 0.174218917772 0.174378325643 0.174457796447 0.173819937676 -0.007642770701 2.863423314425 -0.444575317236 3.606251404701 0.045472314416 0.023932134826 1.040562940283 0.002062390900 1.000000000000 0.869186102850 0.200622542251 - 3.300000000000 16.849554585431 16.856601755857 0.116856856692 0.172061973667 0.172133936997 0.172425302692 0.171625729634 -0.011440368008 2.857652099241 -0.439170908511 3.614043784356 0.044350368987 0.023680308741 1.040670376780 0.002062556314 1.000000000000 0.851874387193 0.202064928333 - 3.350000000000 16.756671968830 16.775907822342 0.115429769170 0.169969167384 0.170164283813 0.170271944388 0.169470159769 -0.008312410110 2.848874329050 -0.436482991228 3.598790257751 0.043270599665 0.023421865770 1.040773087367 0.002062714214 1.000000000000 0.835821358239 0.203589298283 - 3.400000000000 16.628113501301 16.683864511545 0.113960550862 0.167813482352 0.168376130134 0.167869311930 0.167192905026 0.000264310103 2.847007280950 -0.422387612636 3.552448911706 0.042177194784 0.023486187885 1.040868981363 0.002062860257 1.000000000000 0.820995752311 0.205087699492 - 3.450000000000 16.545441766313 16.629086138959 0.112502063029 0.165673013225 0.166510562047 0.165522910288 0.164981940921 0.007493275585 2.854142550002 -0.416582956476 3.546967396411 0.041108469663 0.023648680318 1.040960311642 0.002062998905 1.000000000000 0.804129838262 0.207069249422 - 3.500000000000 16.469668562469 16.571049352022 0.111141302359 0.163676199640 0.164683725826 0.163541755040 0.162797603768 0.007503246657 2.862557417263 -0.425103224323 3.552598211107 0.040120115591 0.023570511723 1.041050005536 0.002063136007 1.000000000000 0.788421297428 0.208877825046 - 3.550000000000 16.359404065198 16.476420898151 0.109882732385 0.161829658745 0.162987206665 0.161706165443 0.160788065073 0.003225573433 2.867194929966 -0.429897093828 3.548694439653 0.039216731600 0.023186433239 1.041138343531 0.002063271998 1.000000000000 0.775875919847 0.210068649503 - 3.600000000000 16.251344084579 16.377666237921 0.108566731403 0.159897865927 0.161140756523 0.159740704087 0.158803484309 0.000570340401 2.874378022202 -0.433283137789 3.554349162823 0.038287199604 0.023194789072 1.041220942807 0.002063397945 1.000000000000 0.762452961500 0.211345177551 - 3.650000000000 16.203263417858 16.329769103449 0.107326046314 0.158076709572 0.159310880863 0.157921224674 0.156989389336 -0.000008461804 2.871307360254 -0.438710881323 3.583212138007 0.037425916597 0.022951710007 1.041301396116 0.002063521072 1.000000000000 0.747350577039 0.213167535769 - 3.700000000000 16.183778575114 16.312798530640 0.106247557600 0.156494421821 0.157742023131 0.156263603952 0.155469136494 0.006300528606 2.857505613747 -0.441633625424 3.578493747209 0.036689598560 0.022041185058 1.041382214720 0.002063646342 1.000000000000 0.733301416552 0.215112121115 - 3.750000000000 16.119948350402 16.259922416843 0.105030380499 0.154707077415 0.156050442683 0.154417924464 0.153643103815 0.013452157921 2.846963237158 -0.432770077255 3.549167347519 0.035863842900 0.021955998930 1.041455831165 0.002063758421 1.000000000000 0.719445432179 0.216903792426 - 3.800000000000 15.968977662574 16.134570983169 0.103723273334 0.152786646464 0.154370996362 0.152370024932 0.151605570471 0.017233380069 2.854136535532 -0.424133545508 3.554775649183 0.034981969902 0.022487858750 1.041523771699 0.002063860349 1.000000000000 0.708293695697 0.217947720416 - 3.850000000000 15.808369142466 15.991326830133 0.102551389965 0.151065345040 0.152813695294 0.150644403555 0.149721253081 0.013662910259 2.859942971166 -0.425647922642 3.561277761714 0.034195144852 0.022547851615 1.041591708544 0.002063963490 1.000000000000 0.699424135431 0.218485018680 - 3.900000000000 15.742655480766 15.907474517638 0.101479884645 0.149491780710 0.151056897303 0.149260799220 0.148143191179 0.005259157123 2.853900887535 -0.418680111023 3.540963633351 0.033479167999 0.022297213757 1.041658851618 0.002064066197 1.000000000000 0.687753829903 0.219638031423 - 3.950000000000 15.725436366346 15.842347809351 0.100460179675 0.147994336673 0.149094607028 0.147996416324 0.146883729434 -0.001737462963 2.837957145346 -0.411033405948 3.524748873190 0.032804730359 0.021943068191 1.041724499224 0.002064167005 1.000000000000 0.674749631092 0.220962858160 - 4.000000000000 15.700806941619 15.760313756201 0.099412568033 0.146455453698 0.147010526922 0.146656537312 0.145696138561 -0.006652716138 2.829694193482 -0.417395001190 3.546534209684 0.032125089500 0.021813020154 1.041787150042 0.002064262817 1.000000000000 0.661795993795 0.222138738070 - 4.050000000000 15.633727752528 15.653742963386 0.098349261209 0.144893173255 0.145078673953 0.145201026530 0.144398529169 -0.010679898568 2.835892962647 -0.425207350300 3.568957880355 0.031448609219 0.021851703220 1.041847332658 0.002064354663 1.000000000000 0.650502530262 0.223025533651 - 4.100000000000 15.561845197719 15.573913806067 0.097358519320 0.143437719007 0.143548958621 0.143933009116 0.142828999393 -0.011488076107 2.858999567662 -0.422895285146 3.549560479566 0.030825946843 0.021692746387 1.041907101330 0.002064446651 1.000000000000 0.640415722306 0.224149647833 - 4.150000000000 15.476057765059 15.509810003110 0.096447177269 0.142099143940 0.142409052588 0.142692085482 0.141191822027 -0.008655228188 2.891524899555 -0.420491824965 3.527449489618 0.030259629180 0.021266966190 1.041966197553 0.002064538200 1.000000000000 0.631974649904 0.225339817997 - 4.200000000000 15.410287249942 15.471535602443 0.095539982043 0.140766393578 0.141325871124 0.141206313042 0.139761611291 -0.007347246428 2.914929357533 -0.419495620595 3.540794564770 0.029701055362 0.020884470459 1.042022540973 0.002064625078 1.000000000000 0.622796317523 0.226921494472 - 4.250000000000 15.318804121603 15.411159526908 0.094599925485 0.139384895033 0.140225231418 0.139601420490 0.138321273711 -0.007175850424 2.919191924205 -0.424627710982 3.563465259701 0.029123238608 0.020775099643 1.042075581624 0.002064706135 1.000000000000 0.614254453026 0.228285250073 - 4.300000000000 15.224454775823 15.341842409792 0.093615645207 0.137937920679 0.139001486264 0.137892435364 0.136911916828 -0.001106119824 2.905428301295 -0.416603037068 3.558233005112 0.028519708105 0.021001538792 1.042125460937 0.002064781608 1.000000000000 0.605273246813 0.229650801511 - 4.350000000000 15.157660808684 15.280678935817 0.092620160628 0.136474205855 0.137581817472 0.136223311269 0.135610027501 0.007810717641 2.891607585827 -0.411237389574 3.586525708429 0.027914465764 0.021372214284 1.042173077474 0.002064853314 1.000000000000 0.595086039672 0.231196513277 - 4.400000000000 15.054658906878 15.172725007192 0.091760108484 0.135210127026 0.136270511889 0.134987163748 0.134365726895 0.020068847471 2.878768060315 -0.412969930081 3.577334029608 0.027400208446 0.021202796039 1.042221943039 0.002064928281 1.000000000000 0.588088313382 0.231717768893 - 4.450000000000 15.010297035917 15.109989025824 0.090940825087 0.134006021490 0.134896032321 0.134141830604 0.132973197047 0.033935876657 2.859321167743 -0.422199164196 3.551592343995 0.026917983517 0.020913109876 1.042269969621 0.002065002252 1.000000000000 0.579347064827 0.232841487445 - 4.500000000000 14.950759367027 15.042419042925 0.090056556417 0.132705849554 0.133519438674 0.133211713051 0.131376278376 0.040444418806 2.852438908395 -0.425033465854 3.562300083248 0.026400111107 0.021002197550 1.042314721477 0.002065070297 1.000000000000 0.570403315938 0.234079001548 - 4.550000000000 14.897906835607 15.001955619917 0.089185764569 0.131425379673 0.132343270430 0.132044025982 0.129875037021 0.032980862211 2.846177581626 -0.421341717577 3.583398392711 0.025890987151 0.021144228420 1.042357922556 0.002065135885 1.000000000000 0.561415751249 0.235731309882 - 4.600000000000 14.871924173760 14.991079074367 0.088519151378 0.130445988331 0.131491130748 0.130913999081 0.128918869815 0.022388639054 2.834968495103 -0.420923724986 3.582315853010 0.025505862538 0.020451460731 1.042403750242 0.002065207384 1.000000000000 0.554026608653 0.237337212138 - 4.650000000000 14.863144586120 14.994079581187 0.087853162942 0.129467338689 0.130607864858 0.129787597806 0.127992735944 0.016054181189 2.848622486411 -0.418403385543 3.582935468250 0.025126425311 0.019758480864 1.042447655074 0.002065275589 1.000000000000 0.546049139644 0.239187017020 - 4.700000000000 14.731157111123 14.882472624668 0.087058003629 0.128297940135 0.129615791038 0.128526660088 0.126734875582 0.015385056489 2.871673487147 -0.415539595823 3.584097444411 0.024678393188 0.019673385384 1.042487045725 0.002065335268 1.000000000000 0.541018286829 0.239577467515 - 4.750000000000 14.627671082438 14.787392706870 0.086157017314 0.126972250049 0.128358678136 0.127187006657 0.125352989323 0.021681016443 2.874355076568 -0.432293843934 3.584841122351 0.024173124233 0.020131817230 1.042522618204 0.002065387812 1.000000000000 0.533630734938 0.240538390561 - 4.800000000000 14.585614029942 14.749773086654 0.085338154059 0.125767599103 0.127183095934 0.126058726194 0.124040818328 0.029241802331 2.875441170624 -0.434816555123 3.573943125665 0.023715342992 0.020329218318 1.042558584675 0.002065441695 1.000000000000 0.525049058207 0.242230880993 - 4.850000000000 14.543576333397 14.713700480758 0.084684509181 0.124806621101 0.126266552243 0.125202992045 0.122926996953 0.027608871225 2.881684065100 -0.417784797158 3.568513713836 0.023350820570 0.019932614926 1.042597021351 0.002065501082 1.000000000000 0.518535637829 0.243506025491 - 4.900000000000 14.503472462145 14.673966011422 0.083974029174 0.123761699710 0.125216563123 0.124215764544 0.121828285318 0.016823325814 2.886078438023 -0.423588113515 3.592161750541 0.022958951767 0.019859981767 1.042633404732 0.002065556810 1.000000000000 0.511285400256 0.244905414980 - 4.950000000000 14.409155818302 14.586944645368 0.083154209807 0.122555353324 0.124067514952 0.122817548980 0.120758209996 0.000643334854 2.903298762034 -0.431666520996 3.606582119066 0.022512294173 0.020308707946 1.042666484265 0.002065606350 1.000000000000 0.504636285392 0.245855319056 - 5.000000000000 14.303886795996 14.496828967499 0.082415096015 0.121467968841 0.123106425158 0.121174301886 0.120104117375 -0.008303325599 2.927841750010 -0.425757552266 3.620767684680 0.022113842792 0.020466656410 1.042699986918 0.002065657213 1.000000000000 0.499357089978 0.246529843330 diff --git a/cases/isotropic/data/statistics-ud7l-1.dat b/cases/isotropic/data/statistics-ud7l-1.dat deleted file mode 100644 index 36bb4df..0000000 --- a/cases/isotropic/data/statistics-ud7l-1.dat +++ /dev/null @@ -1,100 +0,0 @@ - 0.050000000000 69.604515683057 69.947417754207 0.395165649702 0.570512299328 0.573322890669 0.564408405984 0.573756799823 0.014968541791 2.960268756537 -0.458683910751 3.335367620070 0.487799020286 0.038329202060 1.000550423846 0.002000765501 1.000000000000 2.337202901588 0.245303003124 - 0.100000000000 65.521932263364 65.909672627509 0.388342885012 0.560710947954 0.564029077619 0.555378064518 0.562687041365 0.012442151560 2.952682838575 -0.380372560822 3.184534751071 0.467609500882 0.072258825278 1.000873263920 0.002001045671 1.000000000000 2.397918257570 0.235216140433 - 0.150000000000 61.601202636181 61.970774534514 0.385743420236 0.557196779543 0.560539640766 0.552774416974 0.558247712463 0.012899878687 2.920929498648 -0.378131534028 3.314053691216 0.458485107983 0.071929271485 1.001727590422 0.002002379900 1.000000000000 2.516990214852 0.222702351983 - 0.200000000000 58.079449640806 58.401046765647 0.381956021356 0.552025445349 0.555082116808 0.547953924977 0.553015928018 0.015002348517 2.884324197868 -0.483063402222 3.586463510063 0.450872677029 0.065500691814 1.002777617851 0.002004065855 1.000000000000 2.618084820243 0.212018385545 - 0.250000000000 54.235422620475 54.554273461798 0.377039416321 0.545229177485 0.548434587779 0.540877949798 0.546347063956 0.016455242421 2.864102487936 -0.502859850601 3.669602298487 0.440783798600 0.061583012303 1.003895225564 0.002005832112 1.000000000000 2.732628344850 0.200698565106 - 0.300000000000 50.919347880795 51.203305002115 0.371533079368 0.537591534912 0.540589470884 0.533459649022 0.538700104011 0.015453074696 2.850876405229 -0.473717954472 3.684507325454 0.428699006291 0.059436536701 1.005097908283 0.002007714810 1.000000000000 2.826962109581 0.191226288125 - 0.350000000000 48.244508372543 48.439868762153 0.365372661067 0.529017145591 0.531159337504 0.525688216765 0.530187776099 0.011965288394 2.839228937381 -0.456651965936 3.713586381336 0.415216466344 0.058221260530 1.006381659526 0.002009715065 1.000000000000 2.886404032753 0.184021131996 - 0.400000000000 46.062138779527 46.177777090380 0.358807120267 0.519862747872 0.521167855529 0.516982716002 0.521425706685 0.011267927263 2.834771832561 -0.451740008976 3.742013966383 0.401077527454 0.056759831428 1.007736369809 0.002011825655 1.000000000000 2.916372232482 0.178704161878 - 0.450000000000 44.128536356095 44.223172249011 0.351859943002 0.510151821196 0.511245867750 0.507155215651 0.512040908478 0.013390303218 2.842296139885 -0.445068576890 3.724249999577 0.386449795580 0.055291932125 1.009131037066 0.002013995469 1.000000000000 2.928335756514 0.174585809230 - 0.500000000000 42.442236166129 42.558992918970 0.344671437300 0.500080178247 0.501455877151 0.497220641024 0.501551783404 0.013389767995 2.856923719034 -0.435568481402 3.703706686877 0.371528968314 0.053969436348 1.010541798207 0.002016186827 1.000000000000 2.922471272558 0.171586246838 - 0.550000000000 40.913361242954 41.057329744094 0.337382447309 0.489847357138 0.491571062736 0.487574595476 0.490387809812 0.012004888666 2.867742151871 -0.430162874491 3.691806397011 0.356528531990 0.052783041239 1.011951632320 0.002018374121 1.000000000000 2.905726331254 0.169173214094 - 0.600000000000 39.516902709922 39.670855665486 0.330021169651 0.479491421648 0.481359460803 0.477498396836 0.479608612118 0.013097534720 2.867391660274 -0.425116665068 3.677626906583 0.341670046601 0.051605540281 1.013348392944 0.002020540080 1.000000000000 2.879461766018 0.167169943523 - 0.650000000000 38.315257990658 38.439413781436 0.322603553311 0.469032104238 0.470551943980 0.467095616154 0.469442113370 0.011792185064 2.868979569751 -0.424631249172 3.669032853748 0.327067873813 0.050417805375 1.014717829885 0.002022661637 1.000000000000 2.838638893658 0.165766750054 - 0.700000000000 37.174601063126 37.236213646971 0.315165364865 0.458518415799 0.459278356822 0.456677232816 0.459594069657 0.010149757259 2.868203292992 -0.424940483694 3.674220199072 0.312717212672 0.049548607987 1.016046628714 0.002024716201 1.000000000000 2.793206808433 0.164426907250 - 0.750000000000 36.134592215240 36.133092803346 0.307911626396 0.448250596584 0.448231996338 0.446559518289 0.449953848852 0.011651921490 2.871645578285 -0.426181808139 3.670614520280 0.298909467530 0.048359158716 1.017336799128 0.002026711577 1.000000000000 2.743636970042 0.163371466864 - 0.800000000000 35.100220409734 35.077286000833 0.300748862848 0.438091330001 0.437805082064 0.436542393270 0.439919866866 0.013594985039 2.871606547215 -0.417107913712 3.632249566681 0.285577748450 0.047209145307 1.018579266336 0.002028631612 1.000000000000 2.695356931126 0.162429352865 - 0.850000000000 34.095105355699 34.076162054585 0.293632392969 0.427975315397 0.427737531551 0.426717148609 0.429466751859 0.012064025860 2.865467029482 -0.410174544522 3.611372748238 0.272717686284 0.046113046700 1.019769312805 0.002030467743 1.000000000000 2.645753077725 0.161669482747 - 0.900000000000 33.126121023278 33.119053964868 0.286737495583 0.418161018375 0.418071808765 0.416899928156 0.419507240086 0.010558732609 2.865349300921 -0.410505091354 3.613843633044 0.260485395047 0.044625818993 1.020913678662 0.002032234120 1.000000000000 2.597423506886 0.160956350651 - 0.950000000000 32.211203725551 32.215447621083 0.279952588533 0.408484655566 0.408538474300 0.406749247265 0.410159123226 0.005359796577 2.877649965552 -0.407007154846 3.600875376829 0.248624931898 0.043709798701 1.022004079368 0.002033914053 1.000000000000 2.546900290253 0.160406151691 - 1.000000000000 31.370102644657 31.381510674557 0.273332707076 0.399028961182 0.399174071778 0.396758083765 0.401142641677 -0.003533774260 2.879843565752 -0.408626560509 3.604715586970 0.237274850557 0.042862629196 1.023045534368 0.002035517813 1.000000000000 2.493549466500 0.160082676178 - 1.050000000000 30.597941445280 30.621343401622 0.266925546775 0.389865495817 0.390163673240 0.387177717899 0.392238495476 -0.012433132362 2.876014777937 -0.412111893526 3.593122420703 0.226516926857 0.041770486737 1.024041404784 0.002037052037 1.000000000000 2.438570236714 0.159996897922 - 1.100000000000 29.828271565941 29.881471168934 0.260571983825 0.380760714573 0.381439812549 0.377813159830 0.383010510231 -0.015654801467 2.881963428029 -0.419029458744 3.598307036864 0.216128831436 0.041194596378 1.024983337190 0.002038499507 1.000000000000 2.384325630256 0.159978069987 - 1.150000000000 29.107456701608 29.181657242238 0.254424286774 0.371940499823 0.372888648143 0.369097236297 0.373818796304 -0.014154862226 2.883088009675 -0.418783473020 3.594017066923 0.206308686646 0.040391484821 1.025881500571 0.002039880441 1.000000000000 2.329903676537 0.160044662747 - 1.200000000000 28.486739629152 28.548360300068 0.248538858579 0.363489202235 0.364275478545 0.360997422569 0.365181375557 -0.015096111380 2.873425650296 -0.410022297069 3.569694384008 0.197081981266 0.039240353498 1.026740020010 0.002041202575 1.000000000000 2.272239865226 0.160315591729 - 1.250000000000 27.951610262532 27.967862449972 0.242840772246 0.355297247788 0.355503831860 0.353318386580 0.357059583396 -0.013130825745 2.851883251452 -0.406063482837 3.556871112590 0.188332661622 0.038117744207 1.027555146752 0.002042457875 1.000000000000 2.211178212541 0.160775748352 - 1.300000000000 27.410694511115 27.389868007744 0.237294916265 0.347313799550 0.347049912328 0.345760074034 0.349123123883 -0.009065452361 2.843861903034 -0.413240211121 3.568795984613 0.180006662069 0.037138880670 1.028325877037 0.002043643618 1.000000000000 2.153371075949 0.161165865096 - 1.350000000000 26.873650991033 26.849220358531 0.231895484952 0.339531373444 0.339222708045 0.338557633250 0.340809835498 -0.009165848734 2.849771799249 -0.417690772501 3.574347530641 0.172067101695 0.036394084179 1.029053675240 0.002044761916 1.000000000000 2.097927133928 0.161694227868 - 1.400000000000 26.318058508379 26.338804721705 0.226671981260 0.331994615020 0.332256322437 0.331197368808 0.332528663881 -0.008328851137 2.853545468537 -0.412369961708 3.565046570713 0.164536509040 0.035721948394 1.029742205710 0.002045819376 1.000000000000 2.047108885387 0.162305153775 - 1.450000000000 25.786771488071 25.863450358970 0.221561468904 0.324611692804 0.325576949664 0.323261310522 0.324992351113 -0.006870390858 2.853073935326 -0.416445664453 3.574317380364 0.157350503530 0.035293567838 1.030390306076 0.002046812887 1.000000000000 1.996425941614 0.163079903380 - 1.500000000000 25.315886038312 25.403476573352 0.216609207226 0.317450276871 0.318548624349 0.315416879703 0.318375565613 -0.005869281066 2.854378348077 -0.422170288866 3.578043207427 0.150544510123 0.034882298028 1.031001932662 0.002047749659 1.000000000000 1.943933598704 0.163868058334 - 1.550000000000 24.947415986838 25.013566688449 0.211936474801 0.310690246339 0.311514074257 0.308280358626 0.312261892544 -0.004325228176 2.851051028804 -0.420593657309 3.570744280722 0.144231986682 0.033930943232 1.031584957252 0.002048644770 1.000000000000 1.888700132174 0.164935697812 - 1.600000000000 24.547845020716 24.625565790711 0.207360066923 0.304062004823 0.305024693528 0.301409736309 0.305733896595 -0.002426426199 2.853389282850 -0.423882891416 3.577628302942 0.138149628153 0.033527815053 1.032131809287 0.002049482027 1.000000000000 1.837667025232 0.165984745517 - 1.650000000000 24.105024065127 24.239230970760 0.202935304433 0.297648327241 0.299305511273 0.294824773225 0.298794484794 -0.005330733110 2.855839841079 -0.427722841607 3.572132975160 0.132378692416 0.033281294038 1.032648874577 0.002050273608 1.000000000000 1.792616962756 0.166965680618 - 1.700000000000 23.721118739105 23.911389883621 0.198761193310 0.291595989388 0.293934930618 0.288683761639 0.292144836357 -0.008334074404 2.853825511211 -0.424619067322 3.566219651030 0.127045714912 0.032462477594 1.033142304366 0.002051031146 1.000000000000 1.747654863683 0.168188202789 - 1.750000000000 23.396666892226 23.591647730848 0.194795075798 0.285842809662 0.288224938321 0.283200962964 0.286080294693 -0.009553495759 2.854908362765 -0.421440201777 3.553223621568 0.122100817148 0.031159852387 1.033612251873 0.002051754138 1.000000000000 1.702061445136 0.169338738707 - 1.800000000000 23.082171230296 23.237538113907 0.190821969138 0.280072298204 0.281957474417 0.278065914924 0.280179953317 -0.012658508300 2.850994235145 -0.426297894296 3.543309485740 0.117269885121 0.030680021631 1.034051627592 0.002052427418 1.000000000000 1.655754119164 0.170289459741 - 1.850000000000 22.752598757701 22.875337406324 0.186871924188 0.274329053398 0.275808918518 0.272781077501 0.274388798674 -0.012935527114 2.850083065105 -0.430477304370 3.545862830437 0.112541651231 0.031042283558 1.034461945482 0.002053053443 1.000000000000 1.611062344881 0.171196924436 - 1.900000000000 22.448704162508 22.572119837429 0.183186954868 0.268970788640 0.270449502564 0.267338966683 0.269114843294 -0.003845076526 2.851313354682 -0.419251896549 3.520556724149 0.108208486338 0.030660500734 1.034855638185 0.002053656648 1.000000000000 1.569246326474 0.172343562640 - 1.950000000000 22.120844014143 22.265487832125 0.179667824633 0.263851518820 0.265576791645 0.262239760933 0.263727411309 0.000085926416 2.844735056571 -0.424682839606 3.515268246950 0.104148093778 0.030036350554 1.035229589455 0.002054230021 1.000000000000 1.532034099648 0.173349138708 - 2.000000000000 21.796018264263 21.937416562955 0.176203088886 0.258807041939 0.260486012610 0.257390508469 0.258535139306 -0.007813097986 2.838379172167 -0.436747973270 3.514819429673 0.100210466098 0.029836067990 1.035579368979 0.002054763979 1.000000000000 1.495591785294 0.174169191869 - 2.050000000000 21.558151776367 21.659217226690 0.172854037493 0.253928436700 0.255118863044 0.252984726602 0.253677052016 -0.012910626295 2.841474279478 -0.439350383583 3.521032059829 0.096472861235 0.029629373793 1.035910209241 0.002055268571 1.000000000000 1.455266632403 0.175307299270 - 2.100000000000 21.331813312780 21.392805856645 0.169767987612 0.249433821711 0.250147010181 0.249134731733 0.249018178014 -0.012239045215 2.851764700743 -0.435800057737 3.526031622566 0.093104139926 0.028525026413 1.036231422523 0.002055762131 1.000000000000 1.418763626288 0.176313379866 - 2.150000000000 21.079107758917 21.109497973069 0.166740333114 0.245021494445 0.245374747333 0.244949924298 0.244739384198 -0.013884900250 2.864016351194 -0.432416482092 3.529283171079 0.089852703166 0.027812906386 1.036535234718 0.002056228446 1.000000000000 1.385111649113 0.177151601815 - 2.200000000000 20.880021857914 20.874545557431 0.163737429452 0.240642022704 0.240578908401 0.240665056336 0.240682090660 -0.021252349982 2.875234370288 -0.431147919265 3.521421086832 0.086671670787 0.027718121873 1.036820999956 0.002056665729 1.000000000000 1.348491702164 0.178405924200 - 2.250000000000 20.602395223776 20.619826463824 0.160859932903 0.236444276088 0.236644326465 0.236248967139 0.236439369315 -0.027030196077 2.887828757622 -0.433718167705 3.531980735555 0.083664786728 0.027615489762 1.037094085384 0.002057084375 1.000000000000 1.319130586453 0.179394162258 - 2.300000000000 20.343126543122 20.420849643687 0.158030849647 0.232314810332 0.233202394024 0.231556906553 0.232182160700 -0.025700789490 2.886315217203 -0.435499116722 3.521656904880 0.080756615662 0.027819722957 1.037351980652 0.002057478893 1.000000000000 1.289438715115 0.180855740789 - 2.350000000000 20.102394977506 20.232731634915 0.155294418700 0.228319117168 0.229799455734 0.227230483751 0.227919668287 -0.023390855700 2.873487797585 -0.443016557502 3.543886349265 0.078003351680 0.027922208903 1.037597091870 0.002057853809 1.000000000000 1.260149966262 0.182358815924 - 2.400000000000 19.927386270105 20.078363142167 0.152679108479 0.224499430384 0.226200316858 0.223716058093 0.223572191322 -0.023208364048 2.864868349838 -0.452261434626 3.572760748266 0.075427524869 0.027747619348 1.037831378630 0.002058212654 1.000000000000 1.228824618887 0.184078601113 - 2.450000000000 19.717153211149 19.878847870737 0.150198689842 0.220876305131 0.222687647701 0.220573629284 0.219354763183 -0.021739259977 2.851410348397 -0.452050851015 3.562993664126 0.073019933258 0.027336744279 1.038056313607 0.002058558072 1.000000000000 1.201962513723 0.185270043915 - 2.500000000000 19.515196903164 19.674148759854 0.147806546968 0.217381102030 0.219151677543 0.217215473676 0.215762857751 -0.022713682586 2.842469561957 -0.448644214040 3.561592238919 0.070720790566 0.026995221939 1.038270674757 0.002058887287 1.000000000000 1.176083244425 0.186340277002 - 2.550000000000 19.342365729807 19.476694015919 0.145442986088 0.213925893983 0.215411560167 0.213588421881 0.212769147513 -0.023779295199 2.839856753409 -0.450684610736 3.591678514031 0.068494173803 0.026834291296 1.038473026315 0.002059197068 1.000000000000 1.148997831518 0.187477777815 - 2.600000000000 19.191202229821 19.298315663389 0.143119035462 0.210527081367 0.211702113461 0.209849715848 0.210024445913 -0.020778673435 2.845330979788 -0.452214077575 3.610998351478 0.066353928322 0.026713426976 1.038664248179 0.002059488937 1.000000000000 1.121383841911 0.188786484653 - 2.650000000000 18.978355767323 19.081257002658 0.140891985683 0.207269313679 0.208393134345 0.206249746683 0.207159476562 -0.014426490974 2.856806196955 -0.458642251539 3.627331470284 0.064334803957 0.026408791305 1.038846694522 0.002059767366 1.000000000000 1.098988788373 0.189622620858 - 2.700000000000 18.787809450704 18.875569882949 0.138787961883 0.204191289588 0.205145095080 0.203233661754 0.204190638683 -0.009389714741 2.859859214127 -0.458526610688 3.618339034748 0.062443923116 0.025866122117 1.039021878258 0.002060035178 1.000000000000 1.077267705022 0.190430933856 - 2.750000000000 18.658235829783 18.702134156439 0.136821659019 0.201314951154 0.201788596656 0.200851677479 0.201303488761 -0.007624668388 2.854464596590 -0.453010492344 3.621384404084 0.060698223755 0.024970626512 1.039191816193 0.002060296189 1.000000000000 1.054269937843 0.191401262061 - 2.800000000000 18.519351647333 18.528428281137 0.134851307716 0.198431197469 0.198528451808 0.198549100379 0.198215864521 -0.009600054500 2.849318227547 -0.446488836618 3.620734700301 0.058967660828 0.024485907619 1.039352233610 0.002060541546 1.000000000000 1.031840934110 0.192402186466 - 2.850000000000 18.359429219493 18.352625781844 0.132743973861 0.195344006635 0.195271618178 0.195901058143 0.194857931165 -0.015383063450 2.841084426816 -0.443231269632 3.603896378556 0.057144586063 0.025088754308 1.039499719416 0.002060764174 1.000000000000 1.008585479624 0.193609388716 - 2.900000000000 18.160434632070 18.168172668964 0.130677796077 0.192316401817 0.192398346519 0.192930342706 0.191618251592 -0.024877766882 2.840162844460 -0.439939272193 3.596262707228 0.055383380046 0.025814048565 1.039641131864 0.002060977769 1.000000000000 0.988173275113 0.194701021941 - 2.950000000000 18.016599140425 18.045513742522 0.128889962657 0.189698421227 0.190002865719 0.190171873436 0.188918084419 -0.027670423048 2.849849952584 -0.439645234718 3.591607340527 0.053882559108 0.025418290901 1.039784055858 0.002061197464 1.000000000000 0.969025080243 0.196076313805 - 3.000000000000 17.906300530115 17.939701785361 0.127261071728 0.187313836144 0.187663239263 0.187652260315 0.186624107395 -0.021932120166 2.861336978371 -0.440162774562 3.596420107703 0.052540383803 0.024390385343 1.039923997761 0.002061413985 1.000000000000 0.950536130122 0.197428833388 - 3.050000000000 17.790577235783 17.818685931065 0.125592299069 0.184869317015 0.185161406205 0.185001337901 0.184444440815 -0.020480050549 2.875059595407 -0.439376468543 3.609378460443 0.051192850495 0.023700177612 1.040054962975 0.002061615094 1.000000000000 0.931820045246 0.198709404407 - 3.100000000000 17.652726072823 17.674438598909 0.123894968139 0.182381760132 0.182606086319 0.182507594841 0.182031080729 -0.021137275414 2.881545833454 -0.434323685292 3.601226889191 0.049840773666 0.023445792627 1.040178745655 0.002061804294 1.000000000000 0.913910324442 0.199807444380 - 3.150000000000 17.529786496402 17.533943188447 0.122165008244 0.179845220945 0.179887866142 0.180156726834 0.179490445099 -0.012211791213 2.884160909345 -0.430146256379 3.578080073783 0.048468485689 0.023759026933 1.040295659271 0.002061982067 1.000000000000 0.894821257724 0.201032177755 - 3.200000000000 17.399612012915 17.386199001848 0.120482802163 0.177378316371 0.177241578993 0.177848475313 0.177043903766 -0.007859243781 2.882183416444 -0.433567399838 3.584338940124 0.047140223046 0.024168708437 1.040408000127 0.002062152958 1.000000000000 0.876880913276 0.202127308635 - 3.250000000000 17.282806250078 17.255678533443 0.118975189763 0.175168287464 0.174893336996 0.175785244912 0.174824641125 -0.016127124384 2.872272961401 -0.432924873334 3.591613132024 0.045965192027 0.023933080501 1.040520003638 0.002062325364 1.000000000000 0.860873866017 0.203157911861 - 3.300000000000 17.190003463659 17.156604855764 0.117504646781 0.173012230949 0.172676083974 0.173786260608 0.172571729495 -0.019551012526 2.865599643806 -0.427448215759 3.594189504555 0.044837007997 0.023696629305 1.040627641551 0.002062491045 1.000000000000 0.844278202403 0.204525100236 - 3.350000000000 17.091787483385 17.069020737544 0.116075799402 0.170916949558 0.170689283332 0.171662352610 0.170396643719 -0.017194467528 2.853962518554 -0.429948867661 3.587223954826 0.043752073649 0.023446297612 1.040730664673 0.002062649419 1.000000000000 0.828623724160 0.205991306253 - 3.400000000000 16.973643140489 16.980232503434 0.114612271650 0.168769768759 0.168835287119 0.169305024472 0.168167056979 -0.010466721626 2.847985939898 -0.416434353185 3.543063896423 0.042658383899 0.023477200265 1.040826986033 0.002062796152 1.000000000000 0.813500699923 0.207541661777 - 3.450000000000 16.887524552056 16.916474793533 0.113162819821 0.166642724185 0.166928399394 0.167013237851 0.165984578891 -0.005512506980 2.850933553619 -0.406296119484 3.531467216168 0.041590022172 0.023594644963 1.040918719176 0.002062935426 1.000000000000 0.797115191345 0.209415654358 - 3.500000000000 16.798795872396 16.845803317562 0.111800962684 0.164644397796 0.165105116085 0.165050348076 0.163774284975 -0.007323866483 2.856349391136 -0.415051814561 3.532612631732 0.040595502552 0.023519179095 1.041008699488 0.002063072910 1.000000000000 0.782170057433 0.211085958247 - 3.550000000000 16.681785122942 16.749746333907 0.110541887162 0.162797231479 0.163460463676 0.163195169885 0.161730730144 -0.011078515164 2.859829625140 -0.426064730169 3.531846508430 0.039687955002 0.023130245680 1.041097529754 0.002063209692 1.000000000000 0.770030873612 0.212277805056 - 3.600000000000 16.563367503557 16.647586724301 0.109221687371 0.160859359485 0.161677275884 0.161191501094 0.159702720828 -0.011000132311 2.869694101293 -0.430419446903 3.553884620832 0.038749890671 0.023164620532 1.041180507441 0.002063336195 1.000000000000 0.757136242819 0.213537890198 - 3.650000000000 16.515710203108 16.602902202062 0.107975473687 0.159030163716 0.159869737534 0.159349754686 0.157864187252 -0.011025896015 2.873435091144 -0.428528692961 3.579661848374 0.037877828764 0.022967793875 1.041261368492 0.002063459926 1.000000000000 0.742105617801 0.215427202946 - 3.700000000000 16.493674013059 16.581986812049 0.106898347268 0.157449999836 0.158293041246 0.157661267555 0.156389722013 -0.006283131573 2.862403828996 -0.427926888737 3.574385497108 0.037136482826 0.022062047533 1.041342789044 0.002063586182 1.000000000000 0.728358698345 0.217328414702 - 3.750000000000 16.429312817746 16.525698223397 0.105682797767 0.155665159970 0.156578396559 0.155785305097 0.154625581753 -0.000337527709 2.847470894750 -0.420399712546 3.540530298046 0.036306783507 0.021961587850 1.041416920173 0.002063699062 1.000000000000 0.714688969120 0.219086068659 - 3.800000000000 16.274566069046 16.394865530031 0.104376935331 0.153746663493 0.154883138694 0.153774110074 0.152574067341 0.002564258920 2.848471860943 -0.413518965842 3.535816876985 0.035420818949 0.022474671194 1.041485328258 0.002063801696 1.000000000000 0.703775293951 0.220074702857 - 3.850000000000 16.111604533918 16.248432598043 0.103203589920 0.152023311936 0.153314372390 0.152100380504 0.150643418657 0.000303732460 2.853063278762 -0.414045461443 3.537129973931 0.034628313075 0.022534223043 1.041553803835 0.002063905678 1.000000000000 0.695011099125 0.220592696409 - 3.900000000000 16.040677833896 16.161742021985 0.102122764739 0.150436109345 0.151571499360 0.150704776070 0.149020871144 -0.006685192423 2.846008468182 -0.409790769264 3.519568348072 0.033901874616 0.022321535852 1.041621393032 0.002064009037 1.000000000000 0.683549350513 0.221741852649 - 3.950000000000 16.002218555227 16.080837384630 0.101098486695 0.148932022627 0.149663725000 0.149414284394 0.147710470617 -0.014489937912 2.826942085893 -0.402109232656 3.494134374494 0.033221143220 0.021970471058 1.041687555549 0.002064110632 1.000000000000 0.671526269788 0.222870990657 - 4.000000000000 15.984976161863 16.003367319168 0.100049987022 0.147391928741 0.147561507233 0.148100045125 0.146509795548 -0.022159834401 2.818757593784 -0.405732908287 3.507319627971 0.032537539625 0.021823702424 1.041750774840 0.002064207338 1.000000000000 0.658388283022 0.224125354351 - 4.050000000000 15.938115380288 15.907237757560 0.098984429109 0.145826421674 0.145543905635 0.146705857017 0.145225338094 -0.028884122306 2.829098758731 -0.408573145689 3.521337022338 0.031854572700 0.021865131780 1.041811463086 0.002064299951 1.000000000000 0.646342434080 0.225180798847 - 4.100000000000 15.866541325125 15.822987255552 0.097992089016 0.144368698150 0.143972402310 0.145481853096 0.143645190694 -0.032670354944 2.853079641819 -0.409006009918 3.518670080519 0.031224890365 0.021712805903 1.041871717948 0.002064392665 1.000000000000 0.636314040061 0.226259980521 - 4.150000000000 15.765475876788 15.746898043538 0.097077019327 0.143024714703 0.142856176226 0.144235481936 0.141973397905 -0.031318595524 2.881607834512 -0.406404827825 3.499880458103 0.030653000133 0.021279987355 1.041931314445 0.002064484966 1.000000000000 0.628497234962 0.227298018637 - 4.200000000000 15.692409730759 15.705682284460 0.096166549395 0.141687223735 0.141807062008 0.142723551746 0.140522428995 -0.029241545112 2.902307209173 -0.401860883559 3.498854389444 0.030090868044 0.020871849115 1.041988188853 0.002064572658 1.000000000000 0.619643032548 0.228852830677 - 4.250000000000 15.597809921750 15.642885257842 0.095222941375 0.140300573132 0.140706020789 0.141070992910 0.139117012391 -0.025650276240 2.906127192769 -0.405897651927 3.516706560465 0.029508420405 0.020745532434 1.042041741436 0.002064654489 1.000000000000 0.611234531992 0.230199724368 - 4.300000000000 15.505233802922 15.575350311460 0.094236831851 0.138850983711 0.139478884348 0.139292928450 0.137774845081 -0.015947802217 2.889827759839 -0.399639178567 3.507807419736 0.028899206892 0.020967251529 1.042092142154 0.002064730757 1.000000000000 0.602221387635 0.231607324501 - 4.350000000000 15.438129624690 15.517582399837 0.093237444376 0.137381598539 0.138088636860 0.137579438327 0.136471745687 -0.006012594363 2.875874522636 -0.396814034884 3.521757581817 0.028286423413 0.021355318670 1.042140299482 0.002064803301 1.000000000000 0.592084595396 0.233224505306 - 4.400000000000 15.340727739580 15.418788055545 0.092378787630 0.136119672026 0.136812308307 0.136378459491 0.135162877374 0.002588693775 2.870713015686 -0.403199206318 3.535734481382 0.027769769125 0.021167536929 1.042189922865 0.002064879541 1.000000000000 0.584926239936 0.233896684686 - 4.450000000000 15.292840290660 15.355354343758 0.091553959009 0.134907473488 0.135458948086 0.135578137146 0.133676928899 0.011408156297 2.857162584941 -0.411546610617 3.527401571660 0.027282217477 0.020874944622 1.042238521929 0.002064954413 1.000000000000 0.576332879616 0.235035953833 - 4.500000000000 15.219386808301 15.274931347779 0.090662389770 0.133596609610 0.134084182615 0.134663452880 0.132027833160 0.015198628694 2.845012663148 -0.409760826324 3.524805244048 0.026757257063 0.020970986596 1.042283715736 0.002065023098 1.000000000000 0.567895993785 0.236106935217 - 4.550000000000 15.155945226183 15.224007589241 0.089783830978 0.132304750747 0.132898905308 0.133459969019 0.130537193351 0.007733043047 2.832511693159 -0.400765251363 3.533825231149 0.026239210753 0.021132803118 1.042327263639 0.002065089139 1.000000000000 0.559279689662 0.237625123466 - 4.600000000000 15.127142091960 15.212117432860 0.089112469864 0.131318421853 0.132056091110 0.132298972454 0.129583002135 -0.001031394397 2.823529588411 -0.398776196997 3.529825950825 0.025846669647 0.020451423814 1.042373508739 0.002065161239 1.000000000000 0.552001754716 0.239231288636 - 4.650000000000 15.122291083558 15.219877678541 0.088447801471 0.130341787492 0.131182904169 0.131170056560 0.128656156541 -0.005927145744 2.844636042615 -0.399254312163 3.537311987993 0.025463563765 0.019743098792 1.042417978444 0.002065230343 1.000000000000 0.543977898125 0.241154842175 - 4.700000000000 14.992047661285 15.107032334236 0.087646500287 0.129163393642 0.130154039544 0.129944262679 0.127373314939 -0.005547938206 2.875948121119 -0.404247675330 3.558883648088 0.025008350444 0.019668920223 1.042457763957 0.002065290581 1.000000000000 0.538811399878 0.241557694535 - 4.750000000000 14.882988450302 15.002874190553 0.086737683413 0.127826222294 0.128855890585 0.128650610166 0.125951614850 0.000529052479 2.879370854320 -0.423108380276 3.563190389794 0.024496929065 0.020131423500 1.042493767291 0.002065343764 1.000000000000 0.531566270725 0.242407951146 - 4.800000000000 14.827564052769 14.948837499443 0.085914775083 0.126615678820 0.127651258213 0.127500312283 0.124673240970 0.008503579306 2.869229588285 -0.423811560701 3.549361563221 0.024036181035 0.020312116164 1.042530312625 0.002065398588 1.000000000000 0.523481442962 0.243850589031 - 4.850000000000 14.782476099937 14.906522703576 0.085255303218 0.125646175931 0.126700531188 0.126575495846 0.123638601685 0.010436498609 2.863697792245 -0.405748017132 3.549580884572 0.023667103585 0.019913353860 1.042569283609 0.002065458826 1.000000000000 0.517052715278 0.245043740115 - 4.900000000000 14.742871738879 14.867083833027 0.084542920187 0.124598515001 0.125648286223 0.125522779563 0.122600610934 0.001974086663 2.861330964725 -0.412872493517 3.579323804407 0.023271396214 0.019835519549 1.042606236666 0.002065515481 1.000000000000 0.509818030639 0.246457125232 - 4.950000000000 14.640354728680 14.775736932775 0.083722028315 0.123390650265 0.124531667577 0.124061814883 0.121557754080 -0.012715818219 2.874367925674 -0.421592038144 3.597242430916 0.022820614280 0.020281123842 1.042639851274 0.002065565883 1.000000000000 0.503470297973 0.247346602329 - 5.000000000000 14.520997138893 14.674987384774 0.082975688188 0.122292660857 0.123589533016 0.122410803297 0.120862348411 -0.019689663132 2.898301444060 -0.415676023633 3.600236080816 0.022414805987 0.020455840172 1.042673695172 0.002065617220 1.000000000000 0.498602559685 0.247871838232 diff --git a/cases/isotropic/init-isotropic.f90 b/cases/isotropic/init-isotropic.f90 deleted file mode 100644 index 497c270..0000000 --- a/cases/isotropic/init-isotropic.f90 +++ /dev/null @@ -1,267 +0,0 @@ -! Generate initial data for isotropic turbulence (d,u,v,w,T) -! d=T=1; u,v,w with energy spectrum and random phase - implicit none - integer,parameter:: nx=128, ny=nx, nz=nx - real*8, allocatable,dimension(:,:,:):: ur,ui,vr,vi,wr,wi - integer:: i,j,k,k0,k1,k2,k3,kk - real*8:: A, Ek0,tao,a1,a2,a3,v1r,v1i,v2r,v2i,v3r,v3i,vkr,vki,Er,Ei,sr,Ak - real*8:: PAI=3.1415926535897932d0 -!---------------------------------------------------- - allocate(ur(nx,ny,nz),ui(nx,ny,nz),vr(nx,ny,nz),vi(nx,ny,nz),wr(nx,ny,nz),wi(nx,ny,nz)) - - !-------------------------------------------------- - - k0=8 - A=0.00013d0 - Ek0=3.d0*A/64.d0*sqrt(2.d0*PAI)*k0**5 ! Total energy - tao=sqrt(32.d0/A)*(2.d0*PAI)**0.25d0* dble(k0)**(-7.d0/2.d0) ! eddy turn-over time - print*, 'tao=',tao,'EK0=',Ek0 -!------------------------------------------------- - - do k=1,nz - do j=1,ny - do i=1,nx - k1=i-1 - k2=j-1 - k3=k-1 - if(k1 .ge. nx/2) k1=i-1-nx - if(k2 .ge. ny/2) k2=j-1-ny - if(k3 .ge. nz/2) k3=k-1-nz - - kk=(k1*k1+k2*k2+k3*k3) - if(kk.ne.0) then -! ------- Energy spectrum -------------------- -! you can modify it - Ak=sqrt(2.d0/3.d0)*sqrt(A*kk*exp(-2.d0*kk/(k0*k0))/(4.d0*PAI)) -!-------------------------------------------------- -! random phase - call random_number(a1) - call random_number(a2) - call random_number(a3) - - a1=a1*2.d0*PAI - a2=a2*2.d0*PAI - a3=a3*2.d0*PAI - - v1r=Ak*sin(a1) ; v1i=Ak*cos(a1) - v2r=Ak*sin(a2) ; v2i=Ak*cos(a2) - v3r=Ak*sin(a3) ; v3i=Ak*cos(a3) - - vkr=k1*v1r+k2*v2r+k3*v3r - vki=k1*v1i+k2*v2i+k3*v3i - - ur(i,j,k)=k1*vkr/kk-v1r - ui(i,j,k)=k1*vki/kk-v1i - vr(i,j,k)=k2*vkr/kk-v2r - vi(i,j,k)=k2*vki/kk-v2i - wr(i,j,k)=k3*vkr/kk-v3r - wi(i,j,k)=k3*vki/kk-v3i - else - ur(i,j,k)=0.d0 - ui(i,j,k)=0.d0 - vr(i,j,k)=0.d0 - vi(i,j,k)=0.d0 - wr(i,j,k)=0.d0 - wi(i,j,k)=0.d0 - endif - - enddo - enddo - enddo - - call FFT3D(nx,ny,nz,ur,ui,1) - call FFT3D(nx,ny,nz,vr,vi,1) - call FFT3D(nx,ny,nz,wr,wi,1) - - Er=0.d0 - Ei=0.d0 - do k=1,nz - do j=1,ny - do i=1,nx - Er=Er+1.d0/2.d0*(ur(i,j,k)*ur(i,j,k)+vr(i,j,k)*vr(i,j,k)+ wr(i,j,k)*wr(i,j,k)) - Ei=Ei +1.d0/2.d0*(ui(i,j,k)*ui(i,j,k)+vi(i,j,k)*vi(i,j,k)+ wi(i,j,k)*wi(i,j,k)) - enddo - enddo - enddo - - Er=Er/(nx*ny*nz) - Ei=Ei/(nx*ny*nz) - print*, 'Er,Ei=',Er,Ei - sr=sqrt(Ek0/Er) - do k=1,nz - do j=1,ny - do i=1,nx - ur(i,j,k)=ur(i,j,k)*sr - vr(i,j,k)=vr(i,j,k)*sr - wr(i,j,k)=wr(i,j,k)*sr - enddo - enddo - enddo - -!---------write init file (OpenCFD type) -------------------- -! ui is density and temperature - do k=1,nz - do j=1,ny - do i=1,nx - ui(i,j,k)=1.d0 - enddo - enddo - enddo - - print*, "write 3d file opencfd0.dat ..." - open(99,file="opencfd0.dat",form="unformatted") - write(99) 0, 0.d0 - call write3d(99,nx,ny,nz,ui) ! density (==1) - call write3d(99,nx,ny,nz,ur) - call write3d(99,nx,ny,nz,vr) - call write3d(99,nx,ny,nz,wr) - call write3d(99,nx,ny,nz,ui) ! temperature (==1) - close(99) - - deallocate(ur,ui,vr,vi,wr,wi) - end - -!----------------------------------------------------------------------- - subroutine write3d(fno,nx,ny,nz,f) - implicit none - integer:: nx,ny,nz,k,fno - real*8:: f(nx,ny,nz) - do k=1,nz - write(fno) f(:,:,k) - enddo - end - - -!C --------------- --------------------------------------------------- -!c FFT FOR 1-D PROBLERM -!c **************************************************************** - SUBROUTINE FFT(N,FR,FI,SIGN) - implicit double precision (a-h,o-z) - dimension FR(n),FI(n) - integer sign - MR=0 - NN=N-1 - DO 2 M=1,NN - L=N - 1 L=L/2 - IF(MR+L.GT.NN) GO TO 1 - MR=MOD(MR,L)+L - IF(MR.LE.M) GO TO 2 - TR=FR(M+1) - FR(M+1)=FR(MR+1) - FR(MR+1)=TR - TI=FI(M+1) - FI(M+1)=FI(MR+1) - FI(MR+1)=TI - 2 CONTINUE - L=1 - 3 ISTEP=2*L - EL=L - DO 4 M=1,L - A=3.1415926535897d0*dfloat(M-1)/EL - WRo=COS(A) - WIo=SIGN*SIN(A) - DO 4 I=M,N,ISTEP - J=I+L - TR=WRo*FR(J)-WIo*FI(J) - TI=WRo*FI(J)+WIo*FR(J) - FR(J)=FR(I)-TR - FI(J)=FI(I)-TI - FR(I)=FR(I)+TR - 4 FI(I)=FI(I)+TI - L=ISTEP - IF(L.LT.N) GO TO 3 - IF(SIGN.GT.0.0) RETURN - XN=1.d0/DFLOAT(N) - DO 10 I=1,N - FR(I)=FR(I)*XN - 10 FI(I)=FI(I)*XN - RETURN - END - - -!c---------------------------------------- - SUBROUTINE FFT2D(N1,N2,XR,XI,SIGN) - implicit double precision (a-h,o-z) - DIMENSION XR(n1,n2),XI(n1,n2) - dimension FR(2048),FI(2048) - integer sign - - DO I=1,N1 - - DO J=1,N2 - FR(J)=XR(I,J) - FI(J)=XI(I,J) - ENDDO - - CALL FFT(N2,FR,FI,SIGN) - DO J=1,N2 - XR(I,J)=FR(J) - XI(I,J)=FI(J) - ENDDO - ENDDO - - DO J=1,N2 - DO I=1,N1 - FR(I)=XR(I,J) - FI(I)=XI(I,J) - ENDDO - CALL FFT(N1,FR,FI,SIGN) - DO I=1,N1 - XR(I,J)=FR(I) - XI(I,J)=FI(I) - ENDDO - ENDDO - - RETURN - END -!c ===================================== - SUBROUTINE FFT3D(N1,N2,N3,XR,XI,SIGN) - implicit double precision (a-h,o-z) - DIMENSION XR(n1,n2,n3),XI(n1,n2,n3) - dimension FR(2048),FI(2048) - integer sign - do i=1,n1 - do j=1,n2 - do k=1,n3 - FR(k)=XR(i,j,k) - FI(k)=XI(i,j,k) - enddo - call FFT(N3,FR,FI,SIGN) - do k=1,n3 - XR(i,j,k)=FR(k) - XI(i,j,k)=FI(k) - enddo - enddo - enddo - do i=1,n1 - do k=1,n3 - do j=1,n2 - FR(j)=XR(i,j,k) - FI(j)=XI(i,j,k) - enddo - call FFT(N2,FR,FI,SIGN) - do j=1,n2 - XR(i,j,k)=FR(j) - XI(i,j,k)=FI(j) - enddo - enddo - enddo - - do k=1,n3 - do j=1,n2 - do i=1,n1 - FR(i)=XR(i,j,k) - FI(i)=XI(i,j,k) - enddo - call FFT(N1,FR,FI,SIGN) - do i=1,n1 - XR(i,j,k)=FR(i) - XI(i,j,k)=FI(i) - enddo - enddo - enddo - - RETURN - END - diff --git a/cases/isotropic/opencfd-hybrid.in b/cases/isotropic/opencfd-hybrid.in deleted file mode 100644 index 0360b3b..0000000 --- a/cases/isotropic/opencfd-hybrid.in +++ /dev/null @@ -1,31 +0,0 @@ - $control_opencfd - IF_Viscous=1 - nx_global=128 - ny_global=128 - nz_global=128 - npx0=2 - npy0=2 - npz0=2 - Iflag_Gridtype=10 ! 1D type mesh - Scheme_Invis="HYBRID" - Hybrid_para=2.0, 5.0, 0 - UD7L_Diss=0.5 - Scheme_Vis="CD6" - Ma=0.4 - Re=500.0 - BoundaryCondition="BC_NONE" - Istep_show=10 - Istep_save=1000 - dt=0.005 - End_time=5.0 - IF_Scheme_Character=0 - Iperiodic_X=1 - Iperiodic_Y=1 - Iperiodic_Z=1 - Periodic_ISpan= 6.2831853071795864, 0.,0. - Periodic_JSpan= 0., 6.2831853071795864, 0. - Periodic_KSpan= 0., 0., 6.2831853071795864 - ANA_Number=1 - ANA_Para(:,1)=102, 10 - ! Kana, Kstep_ana, Ana_para ...... - $end diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt new file mode 100644 index 0000000..643e570 --- /dev/null +++ b/examples/CMakeLists.txt @@ -0,0 +1,4 @@ +install(DIRECTORY DESTINATION ${CMAKE_INSTALL_PREFIX}/examples) +add_subdirectory(blunt-cylinder) +add_subdirectory(isotropic) +add_subdirectory(Taylor-Green-Vortex) \ No newline at end of file diff --git a/examples/Taylor-Green-Vortex/CMakeLists.txt b/examples/Taylor-Green-Vortex/CMakeLists.txt new file mode 100644 index 0000000..0381c07 --- /dev/null +++ b/examples/Taylor-Green-Vortex/CMakeLists.txt @@ -0,0 +1,8 @@ +install(DIRECTORY DESTINATION ${CMAKE_INSTALL_PREFIX}/examples/Taylor-Green-Vortex) + +# If testing active add test for isotropic case +if (${BUILD_TESTING}) + set(case_dir "${test_dir}/TGV") + file(MAKE_DIRECTORY ${case_dir}) + file(COPY opencfd2.in DESTINATION ${case_dir}) +endif() diff --git a/cases/isotropic/opencfd2.in b/examples/Taylor-Green-Vortex/opencfd2.in similarity index 76% rename from cases/isotropic/opencfd2.in rename to examples/Taylor-Green-Vortex/opencfd2.in index ba95586..5ccdd27 100644 --- a/cases/isotropic/opencfd2.in +++ b/examples/Taylor-Green-Vortex/opencfd2.in @@ -6,17 +6,16 @@ npx0=2 npy0=2 npz0=2 - Iflag_Gridtype=10 ! 1D type mesh - Scheme_Invis="UD7L" - UD7L_Diss=0.5 + Iflag_Gridtype=0 ! auto grid generate + Scheme_Invis="OMP6" Scheme_Vis="CD6" - Ma=0.4 - Re=500.0 + Ma=0.1 + Re=1600.0 BoundaryCondition="BC_NONE" Istep_show=10 - Istep_save=1000 - dt=0.005 - End_time=5.0 + Istep_save=100 + dt=0.001 + End_time=0.1 IF_Scheme_Character=0 Iperiodic_X=1 Iperiodic_Y=1 diff --git a/examples/blunt-cylinder/CMakeLists.txt b/examples/blunt-cylinder/CMakeLists.txt new file mode 100644 index 0000000..2f6dcb5 --- /dev/null +++ b/examples/blunt-cylinder/CMakeLists.txt @@ -0,0 +1,10 @@ +install(DIRECTORY DESTINATION ${CMAKE_INSTALL_PREFIX}/examples/blunt-cylinder) + +# If testing active add test for blunt-cylinder case +if (${BUILD_TESTING}) + set(case_dir "${test_dir}/blunt-cylinder") + file(MAKE_DIRECTORY ${case_dir}) + file(COPY opencfd2.in DESTINATION ${case_dir}) + file(COPY opencfd.dat DESTINATION ${case_dir}) + file(COPY OCFD-grid.dat DESTINATION ${case_dir}) +endif() diff --git a/examples/blunt-cylinder/OCFD-grid.dat b/examples/blunt-cylinder/OCFD-grid.dat new file mode 100644 index 0000000..2eb866d Binary files /dev/null and b/examples/blunt-cylinder/OCFD-grid.dat differ diff --git a/examples/blunt-cylinder/opencfd.dat b/examples/blunt-cylinder/opencfd.dat new file mode 100644 index 0000000..947fae4 Binary files /dev/null and b/examples/blunt-cylinder/opencfd.dat differ diff --git a/cases/blunt-cylinder/opencfd2.in b/examples/blunt-cylinder/opencfd2.in similarity index 91% rename from cases/blunt-cylinder/opencfd2.in rename to examples/blunt-cylinder/opencfd2.in index c22f92c..08a9b9d 100644 --- a/cases/blunt-cylinder/opencfd2.in +++ b/examples/blunt-cylinder/opencfd2.in @@ -3,8 +3,8 @@ nx_global=181 ny_global=101 nz_global=16 - npx0=6 - npy0=4 + npx0=4 + npy0=2 npz0=1 Scheme_Invis="WENO5" Scheme_Vis="CD6" @@ -14,7 +14,7 @@ Istep_show=10 Istep_save=10000 dt=0.0001 - End_time=5.0 + End_time=0.01 IF_Scheme_Character=1 Iperiodic_Z=1 Periodic_KSpan= 0., 0., 1. diff --git a/examples/isotropic/CMakeLists.txt b/examples/isotropic/CMakeLists.txt new file mode 100644 index 0000000..1dc315a --- /dev/null +++ b/examples/isotropic/CMakeLists.txt @@ -0,0 +1,10 @@ +install(DIRECTORY DESTINATION ${CMAKE_INSTALL_PREFIX}/examples/isotropic) + +# If testing active add test for isotropic case +if (${BUILD_TESTING}) + set(case_dir "${test_dir}/isotropic") + file(MAKE_DIRECTORY ${case_dir}) + file(COPY opencfd2.in DESTINATION ${case_dir}) + file(COPY opencfd.dat DESTINATION ${case_dir}) + file(COPY OCFD-grid.dat DESTINATION ${case_dir}) +endif() diff --git a/examples/isotropic/OCFD-grid.dat b/examples/isotropic/OCFD-grid.dat new file mode 100644 index 0000000..ceeb82a Binary files /dev/null and b/examples/isotropic/OCFD-grid.dat differ diff --git a/examples/isotropic/opencfd.dat b/examples/isotropic/opencfd.dat new file mode 100644 index 0000000..fe7c0b6 Binary files /dev/null and b/examples/isotropic/opencfd.dat differ diff --git a/cases/isotropic/opencfd2-omp6.in b/examples/isotropic/opencfd2.in similarity index 97% rename from cases/isotropic/opencfd2-omp6.in rename to examples/isotropic/opencfd2.in index a3c054f..cb95ebc 100644 --- a/cases/isotropic/opencfd2-omp6.in +++ b/examples/isotropic/opencfd2.in @@ -15,7 +15,7 @@ Istep_show=10 Istep_save=1000 dt=0.005 - End_time=5.0 + End_time=0.1 IF_Scheme_Character=0 Iperiodic_X=1 Iperiodic_Y=1 diff --git a/makefile b/makefile deleted file mode 100644 index a98b188..0000000 --- a/makefile +++ /dev/null @@ -1,26 +0,0 @@ -f77=mpif90 -#f77 = ifort -opt= -O3 -srs= OCFD_parameters.f90 opencfd.f90 OCFD_readpara.f90 OCFD_BC_Def.f90 \ -OCFD_BC.f90 OCFD_dxyz_viscous.f90 OCFD_flux_split.f90 OCFD_handle_NegativeT.f90 \ -OCFD_init.f90 OCFD_inviscous.f90 OCFD_inviscous_character.f90 \ -OCFD_IO.f90 OCFD_IO_mpi.f90 OCFD_mesh.f90 OCFD_mpi.f90 \ -OCFD_NS_Solver.f90 OCFD_User_Def.f90 \ -OCFD_Schemes.f90 OCFD_Schemes_1.f90 \ -OCFD_Time_Adv.f90 OCFD_viscous.f90 OCFD_ANA.f90 OCFD_BC_Boundarylayers.f90 \ -OCFD_ANA_savedata.f90 OCFD_filtering.f90 OCFD_SetHybrid.f90 OCFD_GhostCell.f90 OCFD_GhostCell_UserDef.f90 - -OBJS=$(srs:.f90=.o) - -%.o:%.f90 - $(f77) $(opt) -c $< - -default: $(OBJS) - $(f77) -O3 -o opencfd-2.2b.out $(OBJS) -test0: $(OBJS) - $(f77) -O3 -o test-dxyz.out OCFD_parameters.f90 opencfd.f90 OCFD_readpara.f90 OCFD_mpi.f90 OCFD_dxyz_viscous.f90 test-dxyz.f90 -test1: $(OBJS) - $(f77) -O3 -o test-dx-invis.out test-dx-invis.f90 OCFD_parameters.o opencfd.f90 OCFD_readpara.o OCFD_mpi.o OCFD_inviscous.o OCFD_Schemes.o OCFD_Schemes_1.o \ - OCFD_flux_split.o OCFD_User_Def.o OCFD_SetHybrid.o OCFD_dxyz_viscous.o -clean: - rm -f *.out *.o *.mod diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 index 0000000..da26e60 --- /dev/null +++ b/src/CMakeLists.txt @@ -0,0 +1,45 @@ + +message(STATUS "CMAKE_SOURCE_DIR: ${CMAKE_SOURCE_DIR}") +message(STATUS "PROJECT_BINARY_DIR: ${PROJECT_BINARY_DIR}") + +add_executable(opencfd + OCFD_parameters.f90 + opencfd.f90 + OCFD_readpara.f90 + OCFD_BC_Def.f90 + OCFD_BC.f90 + OCFD_dxyz_viscous.f90 + OCFD_flux_split.f90 + OCFD_flowinit.f90 + OCFD_handle_NegativeT.f90 + OCFD_init.f90 + OCFD_inviscous.f90 + OCFD_inviscous_character.f90 + OCFD_IO.f90 + OCFD_IO_mpi.f90 + OCFD_mesh.f90 + OCFD_mpi.f90 + OCFD_NS_Solver.f90 + OCFD_User_Def.f90 + OCFD_Schemes.f90 + OCFD_Schemes_1.f90 + OCFD_Time_Adv.f90 + OCFD_viscous.f90 + OCFD_ANA.f90 + OCFD_BC_Boundarylayers.f90 + OCFD_ANA_savedata.f90 + OCFD_filtering.f90 + OCFD_SetHybrid.f90 + OCFD_GhostCell.f90 + OCFD_GhostCell_UserDef.f90) + +target_link_libraries(opencfd) +if (MPI_FOUND) + target_link_libraries(opencfd PRIVATE MPI::MPI_Fortran) +endif (MPI_FOUND) + +install(TARGETS opencfd + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} +) diff --git a/src/OCFD_ANA.f90 b/src/OCFD_ANA.f90 new file mode 100644 index 0000000..88272ce --- /dev/null +++ b/src/OCFD_ANA.f90 @@ -0,0 +1,386 @@ +! Post-analysis codes +!----------------------------------------------------------------- + subroutine OCFD_analysis +!------------------------------------- + Use flow_data + implicit none + integer m, Kana, Kstep_ana + real(kind=OCFD_REAL_KIND):: ana_data(50) + do m = 1, Para%ANA_Number + Kana = nint(Para%ANA_Para(1, m)) + Kstep_ana = nint(Para%ANA_Para(2, m)) + ana_data(:) = Para%ANA_Para(3:52, m) ! 50 elements in ana_data + + if (mod(Istep, Kstep_ana) .eq. 0) then + select case (Kana) + case (OCFD_ANA_time_average) + call ana_time_average(ana_data) + case (OCFD_ANA_Q) + call ana_getQ(ana_data) + case (OCFD_ANA_BOX) + call ana_box + case (OCFD_ANA_SAVEDATA) + call ana_savedata(ana_data) + case (OCFD_ANA_Corner) + call Ana_corner + case (OCFD_ANA_USER) + call ana_user(ana_data) ! user defined analysis code + case default + if (my_id .eq. 0) print *, "This analysis code is not supported!" + end select + end if + end do + end +!--------------------------------------------------------------- + +!----------------------------------------------------------------- +! code for Time averaging----------------------------------------------- + subroutine ana_time_average(ana_data) + Use flow_data + implicit none + integer i, j, k, ierr, Kstep_save_average + real(kind=OCFD_REAL_KIND):: ana_data(50) + real(kind=OCFD_REAL_KIND), save, allocatable, dimension(:, :, :):: dm, um, vm, wm, Tm + real(kind=OCFD_REAL_KIND), save:: t_average = 0 + integer, save:: K_average, Iflag_average = 0 + logical ex + character(len=50) filename +!---------------------------------------------------------------- + Kstep_save_average = nint(ana_data(1)) + + if (Iflag_average .eq. 0) then ! run only in the first time + Iflag_average = 1 + allocate (dm(nx, ny, nz), um(nx, ny, nz), vm(nx, ny, nz), wm(nx, ny, nz), Tm(nx, ny, nz)) + if (my_id .eq. 0) inquire (file="opencfd.dat.average", exist=ex) + call MPI_bcast(ex, 1, MPI_LOGICAL, 0, MPI_COMM_WORLD, ierr) + if (ex) then + + if (my_id .eq. 0) then + print *, "opencfd.dat.average is found, read it ......" + open (88, file="opencfd.dat.average", form="unformatted") + read (88) K_average, t_average + print *, "K_average=", K_average, "t_average=", t_average + end if + call MPI_bcast(K_average, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) + call MPI_bcast(t_average, 1, OCFD_DATA_TYPE, 0, MPI_COMM_WORLD, ierr) + call read_3d(88, dm, nx, ny, nz, nx_global, ny_global, nz_global) + call read_3d(88, um, nx, ny, nz, nx_global, ny_global, nz_global) + call read_3d(88, vm, nx, ny, nz, nx_global, ny_global, nz_global) + call read_3d(88, wm, nx, ny, nz, nx_global, ny_global, nz_global) + call read_3d(88, Tm, nx, ny, nz, nx_global, ny_global, nz_global) + if (my_id .eq. 0) close (88) + + else + if (my_id .eq. 0) print *, "can not find opencfd.dat.average, initial the average as zero......" + t_average = 0.d0 + K_average = 0 + dm = 0.d0 + um = 0.d0 + vm = 0.d0 + wm = 0.d0 + Tm = 0.d0 + end if + end if +!------------------------------------------------------- + do k = 1, nz + do j = 1, ny + do i = 1, nx + dm(i, j, k) = (K_average*dm(i, j, k) + d(i, j, k))/(K_average + 1.d0) + um(i, j, k) = (K_average*um(i, j, k) + u(i, j, k))/(K_average + 1.d0) + vm(i, j, k) = (K_average*vm(i, j, k) + v(i, j, k))/(K_average + 1.d0) + wm(i, j, k) = (K_average*wm(i, j, k) + w(i, j, k))/(K_average + 1.d0) + Tm(i, j, k) = (K_average*Tm(i, j, k) + T(i, j, k))/(K_average + 1.d0) + end do + end do + end do + + K_average = K_average + 1 + t_average = t_average + Para%dt + if (my_id .eq. 0) print *, "average flow ...", k_average + +!--------------------------------------------------------- + if (mod(Istep, Kstep_save_average) .eq. 0) then + if (my_id .eq. 0) then + write (filename, "('OCFD'I8.8'.dat.average')") Istep + print *, "write average file ...", filename + open (99, file=filename, form='unformatted') + write (99) K_average, t_average + end if + + call write_3d(99, dm, nx, ny, nz, nx_global, ny_global, nz_global) + call write_3d(99, um, nx, ny, nz, nx_global, ny_global, nz_global) + call write_3d(99, vm, nx, ny, nz, nx_global, ny_global, nz_global) + call write_3d(99, wm, nx, ny, nz, nx_global, ny_global, nz_global) + call write_3d(99, Tm, nx, ny, nz, nx_global, ny_global, nz_global) + + if (my_id .eq. 0) then + close (99) + print *, 'write average data ok' + end if + end if + end + +! Compute Q (the second invarient of velocity grident) and Lamda2 (the medimum eigenvalue of Sij*Sij+Wij*Wij) + subroutine ana_getQ(ana_data) + use flow_data + use viscous_data ! work data uk,vk,wk,ui,vi,wi,us,vs,ws,TK + implicit none + integer i, j, k + real(kind=OCFD_REAL_KIND):: ana_data(50) + real(kind=OCFD_REAL_KIND):: ux, uy, uz, vx, vy, vz, wx, wy, wz + character(len=100) filename +!------------------------------------------------------------------------ + call exchange_boundary_xyz(u) + call exchange_boundary_xyz(v) + call exchange_boundary_xyz(w) + + call OCFD_dx0(u, uk, Scheme%Scheme_Vis) + call OCFD_dx0(v, vk, Scheme%Scheme_Vis) + call OCFD_dx0(w, wk, Scheme%Scheme_Vis) + call OCFD_dy0(u, ui, Scheme%Scheme_Vis) + call OCFD_dy0(v, vi, Scheme%Scheme_Vis) + call OCFD_dy0(w, wi, Scheme%Scheme_Vis) + call OCFD_dz0(u, us, Scheme%Scheme_Vis) + call OCFD_dz0(v, vs, Scheme%Scheme_Vis) + call OCFD_dz0(w, ws, Scheme%Scheme_Vis) +!c----------------------------------- + do k = 1, nz + do j = 1, ny + do i = 1, nx + ux = uk(i, j, k)*Akx(i, j, k) + ui(i, j, k)*Aix(i, j, k) + us(i, j, k)*Asx(i, j, k) + vx = vk(i, j, k)*Akx(i, j, k) + vi(i, j, k)*Aix(i, j, k) + vs(i, j, k)*Asx(i, j, k) + wx = wk(i, j, k)*Akx(i, j, k) + wi(i, j, k)*Aix(i, j, k) + ws(i, j, k)*Asx(i, j, k) + uy = uk(i, j, k)*Aky(i, j, k) + ui(i, j, k)*Aiy(i, j, k) + us(i, j, k)*Asy(i, j, k) + vy = vk(i, j, k)*Aky(i, j, k) + vi(i, j, k)*Aiy(i, j, k) + vs(i, j, k)*Asy(i, j, k) + wy = wk(i, j, k)*Aky(i, j, k) + wi(i, j, k)*Aiy(i, j, k) + ws(i, j, k)*Asy(i, j, k) + uz = uk(i, j, k)*Akz(i, j, k) + ui(i, j, k)*Aiz(i, j, k) + us(i, j, k)*Asz(i, j, k) + vz = vk(i, j, k)*Akz(i, j, k) + vi(i, j, k)*Aiz(i, j, k) + vs(i, j, k)*Asz(i, j, k) + wz = wk(i, j, k)*Akz(i, j, k) + wi(i, j, k)*Aiz(i, j, k) + ws(i, j, k)*Asz(i, j, k) + TK(i, j, k) = ux*vy + ux*wz + vy*wz - uy*vx - uz*wx - vz*wy !! TK=Q=II(UX) + end do + end do + end do +!-----save data--------------------------- + if (my_id .eq. 0) then + write (filename, "('Q-'I7.7'.dat')") Istep + open (106, file=filename, form="unformatted") + end if + call write_3d(106, TK, nx, ny, nz, nx_global, ny_global, nz_global) + if (my_id .eq. 0) close (106) +!----------------------------------- + end + +!-------------------------------------------------------------------------------------------- +!------------------------------------------------ +! Copyright by Li Xinliang +! Compute the statistics data of isotropic turbulence, such as Re_lamda, Mt, Skewness and Flatness factors of u, ux ...... +! Ref: JCP 13(5):1415,2001 + subroutine ana_box + use flow_data + use viscous_data ! work data uk,vk,wk,ui,vi,wi,us,vs,ws,TK + implicit none + + integer i, j, k, ierr + real(kind=OCFD_REAL_KIND):: ux,uy,uz,vx,vy,vz,wx,wy,wz,amu_aver, c_aver, d_aver, T_aver, u_rms, v_rms, w_rms,ens,& + VV_rms, Ux_rms, d_rms, E_kinetic, ux_skewness, ux_flatness, u_skewness, u_flatness, & + Alamda, Re_lamda, Alamdax, Re_lamdax, Amt, atmp1(100), atmp0(100) + +!--------------------------------------------------------- +! computing statistical data .... + c_aver = 0.d0; d_aver = 0.d0; Amu_aver = 0.d0; T_aver = 0.d0 ! Mean sound speed, density, viscous, Temperature + u_rms = 0.d0; v_rms = 0.d0; w_rms = 0.d0; ux_rms = 0.d0 ! RMS of velocity fluctuations + ux_skewness = 0.d0; ux_flatness = 0.d0; u_skewness = 0.d0; u_flatness = 0.d0 ! Skewness & Flatness factor of velocities + E_kinetic = 0.d0 + + ens=0.d0 + + call exchange_boundary_xyz(u) + call OCFD_dx0(u, uk, Scheme%Scheme_Vis) + call OCFD_dy0(u, ui, Scheme%Scheme_Vis) + call OCFD_dz0(u, us, Scheme%Scheme_Vis) + + call exchange_boundary_xyz(v) + call OCFD_dx0(v, vk, Scheme%Scheme_Vis) + call OCFD_dy0(v, vi, Scheme%Scheme_Vis) + call OCFD_dz0(v, vs, Scheme%Scheme_Vis) + + call exchange_boundary_xyz(w) + call OCFD_dx0(w, wk, Scheme%Scheme_Vis) + call OCFD_dy0(w, wi, Scheme%Scheme_Vis) + call OCFD_dz0(w, ws, Scheme%Scheme_Vis) + + call comput_Amu + +! Statistics + do k = 1, nz + do j = 1, ny + do i = 1, nx + ux = uk(i, j, k)*Akx(i, j, k) + ui(i, j, k)*Aix(i, j, k) + us(i, j, k)*Asx(i, j, k) + uy = uk(i, j, k)*Aky(i, j, k) + ui(i, j, k)*Aiy(i, j, k) + us(i, j, k)*Asy(i, j, k) + uz = uk(i, j, k)*Akz(i, j, k) + ui(i, j, k)*Aiz(i, j, k) + us(i, j, k)*Asz(i, j, k) + vx = vk(i, j, k)*Akx(i, j, k) + vi(i, j, k)*Aix(i, j, k) + vs(i, j, k)*Asx(i, j, k) + vy = vk(i, j, k)*Aky(i, j, k) + vi(i, j, k)*Aiy(i, j, k) + vs(i, j, k)*Asy(i, j, k) + vz = vk(i, j, k)*Akz(i, j, k) + vi(i, j, k)*Aiz(i, j, k) + vs(i, j, k)*Asz(i, j, k) + wx = wk(i, j, k)*Akx(i, j, k) + wi(i, j, k)*Aix(i, j, k) + ws(i, j, k)*Asx(i, j, k) + wy = wk(i, j, k)*Aky(i, j, k) + wi(i, j, k)*Aiy(i, j, k) + ws(i, j, k)*Asy(i, j, k) + wz = wk(i, j, k)*Akz(i, j, k) + wi(i, j, k)*Aiz(i, j, k) + ws(i, j, k)*Asz(i, j, k) + c_aver = c_aver + sqrt(T(i, j, k))/Para%Ma + d_aver = d_aver + d(i, j, k) + Amu_aver = Amu_aver + Amu(i, j, k) + T_aver = T_aver + T(i, j, k) + u_rms = u_rms + u(i, j, k)*u(i, j, k) + v_rms = v_rms + v(i, j, k)*v(i, j, k) + w_rms = w_rms + w(i, j, k)*w(i, j, k) + + Ux_rms = Ux_rms + ux*ux + Ux_skewness = Ux_skewness + ux**3 + Ux_flatness = Ux_flatness + ux**4 + u_skewness = u_skewness + u(i, j, k)**3 + u_flatness = u_flatness + u(i, j, k)**4 + E_kinetic = E_kinetic + (u(i, j, k)*u(i, j, k) + v(i, j, k)*v(i, j, k) + w(i, j, k)*w(i, j, k))*d(i, j, k)*0.5d0 + + ens = ens + (wy-vz)**2+(uz-wx)**2+(vx-uy)**2 + end do + end do + end do + + atmp1(1) = u_rms; atmp1(2) = v_rms; atmp1(3) = w_rms; atmp1(4) = Ux_rms + atmp1(5) = Ux_skewness; atmp1(6) = Ux_flatness + atmp1(7) = d_aver; atmp1(8) = c_aver; atmp1(9) = Amu_aver + atmp1(10) = E_kinetic; atmp1(11) = T_aver; atmp1(12) = u_skewness; atmp1(13) = u_flatness + atmp1(14) = ens + + call MPI_ALLREDUCE(atmp1, atmp0, 14, OCFD_DATA_TYPE, MPI_SUM, MPI_Comm_World, ierr) + + atmp0 = atmp0/(nx_global*ny_global*nz_global) + + u_rms = atmp0(1); v_rms = atmp0(2); w_rms = atmp0(3); Ux_rms = atmp0(4) + Ux_skewness = atmp0(5); Ux_flatness = atmp0(6); d_aver = atmp0(7) + c_aver = atmp0(8); Amu_aver = atmp0(9); E_kinetic = atmp0(10) + T_aver = atmp0(11); u_skewness = atmp0(12); u_flatness = atmp0(13) + ens = 0.5d0*atmp0(14) + +!----------------------------------------- + VV_rms = sqrt((u_rms + v_rms + w_rms)/3.d0) ! RMS of velocity fluctures + Amt = sqrt(u_rms + v_rms + w_rms)/c_aver ! Turbulent Mach number (see JCP 13(5):1416) (need not div by 3) + + u_rms = sqrt(u_rms); v_rms = sqrt(v_rms); w_rms = sqrt(w_rms); Ux_rms = sqrt(Ux_rms) + + Alamda = VV_rms/Ux_rms ! Taylor scale, the same as Samtaney et al. + Alamdax = u_rms/Ux_rms + + Re_lamda = VV_rms*Alamda*d_aver/Amu_aver + Re_lamdax = VV_rms*Alamdax*d_aver/Amu_aver + + Ux_skewness = Ux_skewness/Ux_rms**3 + Ux_flatness = Ux_flatness/Ux_rms**4 + U_skewness = U_skewness/U_rms**3 + U_flatness = u_flatness/U_rms**4 +!--------d_rms---------------------------------------------- + + d_rms = 0.d0 + do k = 1, nz + do j = 1, ny + do i = 1, nx + d_rms = d_rms + (d(i, j, k) - d_aver)**2 + end do + end do + end do + call MPI_ALLREDUCE(d_rms, atmp1(1), 1, OCFD_DATA_TYPE, MPI_SUM, MPI_Comm_World, ierr) + d_rms = sqrt(atmp1(1)/(nx_global*ny_global*nz_global)) +!--------------------------------------------------------- + if (my_id .eq. 0) then + + write(*,'(4(1X,A13))')"tt", "Re_lamda", "Re_lamdax", "Amt" + write(*,'(4(1X,E13.6E2))')tt, Re_lamda, Re_lamdax, Amt + write(*,'(4(1X,A13))')"vv_rms", "u_rms", "v_rms", "w_rms" + write(*,'(4(1X,E13.6E2))')vv_rms, u_rms, v_rms, w_rms + write(*,'(4(1X,A13))')"u_skewness", "u_flatness", "ux_skewness", "ux_flatness" + write(*,'(4(1X,E13.6E2))')u_skewness, u_flatness, ux_skewness, ux_flatness + write(*,'(4(1X,A13))')"E_kinetic","Enstrophy", "d_rms", "T_aver" + write(*,'(4(1X,E13.6E2))')E_kinetic,ens,d_rms,T_aver + write(*,'(4(1X,A13))')"Amu_aver", "d_aver", "Ux_rms", "Alamdax" + write(*,'(4(1X,E13.6E2))')Amu_aver, d_aver, Ux_rms, Alamdax + + open (33, file='statistics.dat', position='append') + write (33, '(20(E20.13E2))') tt, Re_lamda, Re_lamdax, Amt, vv_rms, u_rms, v_rms, w_rms, & + u_skewness, u_flatness, ux_skewness, ux_flatness, & + E_kinetic,ens,d_rms, T_aver, Amu_aver, d_aver, Ux_rms, Alamdax + close (33) + end if + end + +!------------------------------------------------------------------------------- +! Post analysis code for Compression corner +! save pw; u, T at j=2 + subroutine Ana_corner + use flow_data + implicit none + + integer i, j, k, m, i1, ierr + real(kind=OCFD_REAL_KIND):: p00, tmp + real(kind=OCFD_REAL_KIND), dimension(:), allocatable:: sx1, sy1, us1, Ts1, ps1, us0, Ts0, ps0 + + p00 = 1.d0/(Para%gamma*Para%Ma*Para%Ma) + allocate (sx1(nx), sy1(nx), us1(nx_global), Ts1(nx_global), ps1(nx_global), us0(nx_global), Ts0(nx_global), ps0(nx_global)) + + us1 = 0.d0 + Ts1 = 0.d0 + ps1 = 0.d0 + us0 = 0.d0 + Ts0 = 0.d0 + ps0 = 0.d0 + + if (npy .eq. 0) then + + if (npx .ne. npx0 - 1) then + do i = 1, nx + sx1(i) = Axx(i + 1, 1, 1) - Axx(i, 1, 1) + sy1(i) = Ayy(i + 1, 1, 1) - Ayy(i, 1, 1) + end do + else + do i = 1, nx - 1 + sx1(i) = Axx(i + 1, 1, 1) - Axx(i, 1, 1) + sy1(i) = Ayy(i + 1, 1, 1) - Ayy(i, 1, 1) + end do + sx1(nx) = Axx(nx, 1, 1) - Axx(nx - 1, 1, 1) + sy1(nx) = Ayy(nx, 1, 1) - Ayy(nx - 1, 1, 1) + end if + + do i = 1, nx + tmp = 1.d0/sqrt(sx1(i)**2 + sy1(i)**2) + sx1(i) = sx1(i)*tmp + sy1(i) = sy1(i)*tmp + end do +!----------------------- + do i = 1, nx + i1 = i_offset(npx) + i - 1 + do k = 1, nz + us1(i1) = us1(i1) + u(i, 2, k)*sx1(i) + v(i, 2, k)*sy1(i) + Ts1(i1) = Ts1(i1) + T(i, 2, k) + ps1(i1) = ps1(i1) + p00*d(i, 1, k)*T(i, 1, k) + end do + end do + + end if + + call MPI_REDUCE(us1, us0, nx_global, OCFD_DATA_TYPE, MPI_SUM, 0, MPI_COMM_WORLD, ierr) + call MPI_REDUCE(Ts1, Ts0, nx_global, OCFD_DATA_TYPE, MPI_SUM, 0, MPI_COMM_WORLD, ierr) + call MPI_REDUCE(ps1, ps0, nx_global, OCFD_DATA_TYPE, MPI_SUM, 0, MPI_COMM_WORLD, ierr) + tmp = 1.d0/nz_global + us0 = us0*tmp + Ts0 = Ts0*tmp + ps0 = ps0*tmp + + if (my_id .eq. 0) then + open (101, file="WallUtp-log.dat", form="unformatted", position="append") + write (101) Istep, tt + write (101) us0, Ts0, ps0 + close (101) + end if + + deallocate (sx1, sy1, us1, Ts1, ps1, us0, Ts0, ps0) + + end +!-------------------------------------------------------- + diff --git a/src/OCFD_ANA_savedata.f90 b/src/OCFD_ANA_savedata.f90 new file mode 100644 index 0000000..7893500 --- /dev/null +++ b/src/OCFD_ANA_savedata.f90 @@ -0,0 +1,197 @@ + +!------ code for saving data ----------------------------------------------- + subroutine ana_savedata(ana_data) + Use flow_data + implicit none + integer i, j, k, savetype + real(kind=OCFD_REAL_KIND):: ana_data(50) + integer, parameter:: Save_YZ = 1, Save_XZ = 2, Save_XY = 3, Save_Point = 4, Save_Block = 5 + + savetype = nint(ana_data(1)) + select case (savetype) + case (Save_YZ) + call ana_saveplaneYZ(ana_data) + case (Save_XZ) + call ana_saveplaneXZ(ana_data) + case (Save_XY) + call ana_saveplaneXY(ana_data) + case (Save_Point) + call ana_savePoints(ana_data) + case (Save_Block) + call ana_saveblock(ana_data) + end select + end + +!------------------------------------------------------------------------------ +! Save plane i_global=i0 to i0+bandwidth + subroutine ana_saveplaneYZ(ana_data) + Use flow_data + implicit none + integer i, j, k, ka, ia, ierr, points, bandwidth, i_point + real(kind=OCFD_REAL_KIND):: ana_data(50) + character(len=50) filename + +!------------------------------------------------------------ + points = nint(ana_data(2)) ! point number + bandwidth = nint(ana_data(3)) ! bandwidth of the saving i- location + + do ka = 1, points + + if (my_id .eq. 0) then + print *, 'save data ....', Istep, tt, ka + write (filename, '("savedata-YZ"I3.3".dat")') ka + open (66, file=filename, form='unformatted', position='append') + write (66) Istep, tt + end if + + i_point = nint(ana_data(3 + ka)) ! i-location of the saving points + do ia = i_point, i_point + bandwidth - 1 + call write_2d_YZa(66, ia, d) + call write_2d_YZa(66, ia, u) + call write_2d_YZa(66, ia, v) + call write_2d_YZa(66, ia, w) + call write_2d_YZa(66, ia, T) + end do + if (my_id .eq. 0) close (66) + end do + end +!-------------------------------------------------------- + subroutine ana_saveplaneXZ(ana_data) + Use flow_data + implicit none + integer ja, ka, ierr, points, bandwidth, j_point + real(kind=OCFD_REAL_KIND):: ana_data(50) + character(len=50) filename + +!------------------------------------------------------------ + points = nint(ana_data(2)) + bandwidth = nint(ana_data(3)) + + do ka = 1, points + if (my_id .eq. 0) then + print *, 'save data ....', Istep, tt, ka + write (filename, '("savedata-XZ"I3.3".dat")') ka + open (66, file=filename, form='unformatted', position='append') + write (66) Istep, tt + end if + + j_point = nint(ana_data(3 + ka)) + do ja = j_point, j_point + bandwidth - 1 + call write_2d_XZa(66, ja, d) + call write_2d_XZa(66, ja, u) + call write_2d_XZa(66, ja, v) + call write_2d_XZa(66, ja, w) + call write_2d_XZa(66, ja, T) + end do + + if (my_id .eq. 0) close (66) + + end do + + end + +!----------------------------------------------------------- + subroutine ana_saveplaneXY(ana_data) + Use flow_data + implicit none + integer i, j, k, ka, ia, ierr, points, bandwidth, k_point + real(kind=OCFD_REAL_KIND):: ana_data(50) + character(len=50) filename + +!------------------------------------------------------------ + points = nint(ana_data(2)) + bandwidth = nint(ana_data(3)) + + do ka = 1, points + + if (my_id .eq. 0) then + print *, 'save data ....', Istep, tt, ka + write (filename, '("savedata-XY"I3.3".dat")') ka + open (66, file=filename, form='unformatted', position='append') + write (66) Istep, tt + end if + k_point = nint(ana_data(3 + ka)) + do ia = k_point, k_point + bandwidth - 1 + call write_2d_XYa(66, ia, d) + call write_2d_XYa(66, ia, u) + call write_2d_XYa(66, ia, v) + call write_2d_XYa(66, ia, w) + call write_2d_XYa(66, ia, T) + end do + if (my_id .eq. 0) close (66) + end do + end + +!-------------------------------------------------------- + subroutine ana_savePoints(ana_data) + Use flow_data + implicit none + integer k, ierr + integer, save:: Kflag1 = 0, mpoints + integer, save, dimension(10000)::ia, ja, ka + real(kind=OCFD_REAL_KIND):: ana_data(50) + +!------------------------------------------------------------ + if (Kflag1 .eq. 0) then + Kflag1 = 1 + if (my_id .eq. 0) then + open (99, file="save_points_locations.dat") + read (99, *) mpoints + do k = 1, mpoints + read (99, *) ia(k), ja(k), ka(k) + end do + close (99) + end if + call MPI_bcast(mpoints, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) + call MPI_bcast(ia, 10000, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) + call MPI_bcast(ja, 10000, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) + call MPI_bcast(ka, 10000, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) + end if + + if (my_id .eq. 0) then + print *, 'save points ......', Istep, tt, mpoints + open (66, file="save_points.dat", form='unformatted', position='append') + write (66) tt + end if + + call write_points(66, d, mpoints, ia, ja, ka) + call write_points(66, u, mpoints, ia, ja, ka) + call write_points(66, v, mpoints, ia, ja, ka) + call write_points(66, w, mpoints, ia, ja, ka) + call write_points(66, T, mpoints, ia, ja, ka) + + if (my_id .eq. 0) then + close (66) + end if + end +!-------------------------------------------------------- +! save block data +!----------------------------------------------------------- + subroutine ana_saveblock(ana_data) + Use flow_data + implicit none + integer ib, ie, jb, je, kb, ke, filenumber_K + character(len=50) filename + real(kind=OCFD_REAL_KIND):: ana_data(50) + + ib = nint(ana_data(2)); ie = nint(ana_data(3)) + jb = nint(ana_data(4)); je = nint(ana_data(5)) + kb = nint(ana_data(6)); ke = nint(ana_data(7)) + filenumber_K = nint(ana_data(8)) + + if (my_id .eq. 0) then + write (filename, '("savedata-block"I3.3".dat")') filenumber_K + print *, 'save block data ....', filename, Istep, tt + open (66, file=filename, form='unformatted', position='append') + write (66) Istep, tt + end if + + call write_blockdata(66, d, ib, ie, jb, je, kb, ke) + call write_blockdata(66, u, ib, ie, jb, je, kb, ke) + call write_blockdata(66, v, ib, ie, jb, je, kb, ke) + call write_blockdata(66, w, ib, ie, jb, je, kb, ke) + call write_blockdata(66, T, ib, ie, jb, je, kb, ke) + if (my_id .eq. 0) close (66) + end + +!---------------- \ No newline at end of file diff --git a/src/OCFD_BC.f90 b/src/OCFD_BC.f90 new file mode 100644 index 0000000..d679fb1 --- /dev/null +++ b/src/OCFD_BC.f90 @@ -0,0 +1,100 @@ +! boundary condition + subroutine OCFD_bc + use flow_data + implicit none + integer i, j, k +! -------Set boundary condition ---------------------- + + select case (Para%IBC) + case (BC_None) +! No boundary Condition (such as periodic boundary in both x- and y- ) + case (BC_BoundaryLayer) + call ocfd_bc_BoundaryLayer + case (BC_Blunt2d) ! Double Mach Reflaction flow + call ocfd_bc_blunt2d + + case (BC_SweptCorner) ! Swept Compression Corner + call ocfd_bc_swept_corner + case (BC_User_Def) + call ocfd_bc_User ! 用户自定义的边界条件 + case default + if (my_id .eq. 0) print *, "This boundary condition is not supported!!!" + stop + end select + +!----------------------------------------------------------------------------------------- +!c----updata conversion values in boundary 更新守恒变量的边界值------------------------ + if (npx .eq. 0) then + do k = 1, nz + do j = 1, ny + f(1, j, k, 1) = d(1, j, k) + f(1, j, k, 2) = d(1, j, k)*u(1, j, k) + f(1, j, k, 3) = d(1, j, k)*v(1, j, k) + f(1, j, k, 4) = d(1, j, k)*w(1, j, k) + f(1, j, k, 5) = d(1, j, k)*(Cv*T(1, j, k) + (u(1, j, k)**2 + v(1, j, k)**2 + w(1, j, k)**2)*0.5d0) + end do + end do + end if + if (npx .eq. npx0 - 1) then + do k = 1, nz + do j = 1, ny + f(nx, j, k, 1) = d(nx, j, k) + f(nx, j, k, 2) = d(nx, j, k)*u(nx, j, k) + f(nx, j, k, 3) = d(nx, j, k)*v(nx, j, k) + f(nx, j, k, 4) = d(nx, j, k)*w(nx, j, k) + f(nx, j, k, 5) = d(nx, j, k)*(Cv*T(nx, j, k) + (u(nx, j, k)**2 + v(nx, j, k)**2 + w(nx, j, k)**2)*0.5d0) + end do + end do + end if +!------------------------------ + if (npy .eq. 0) then + do k = 1, nz + do i = 1, nx + f(i, 1, k, 1) = d(i, 1, k) + f(i, 1, k, 2) = d(i, 1, k)*u(i, 1, k) + f(i, 1, k, 3) = d(i, 1, k)*v(i, 1, k) + f(i, 1, k, 4) = d(i, 1, k)*w(i, 1, k) + f(i, 1, k, 5) = d(i, 1, k)*(Cv*T(i, 1, k) + (u(i, 1, k)**2 + v(i, 1, k)**2 + w(i, 1, k)**2)*0.5d0) + end do + end do + end if + + if (npy .eq. npy0 - 1) then + do k = 1, nz + do i = 1, nx + f(i, ny, k, 1) = d(i, ny, k) + f(i, ny, k, 2) = d(i, ny, k)*u(i, ny, k) + f(i, ny, k, 3) = d(i, ny, k)*v(i, ny, k) + f(i, ny, k, 4) = d(i, ny, k)*w(i, ny, k) + f(i, ny, k, 5) = d(i, ny, k)*(Cv*T(i, ny, k) + (u(i, ny, k)**2 + v(i, ny, k)**2 + w(i, ny, k)**2)*0.5d0) + end do + end do + end if +!-------------------------- + if (npz .eq. 0) then + do j = 1, ny + do i = 1, nx + f(i, j, 1, 1) = d(i, j, 1) + f(i, j, 1, 2) = d(i, j, 1)*u(i, j, 1) + f(i, j, 1, 3) = d(i, j, 1)*v(i, j, 1) + f(i, j, 1, 4) = d(i, j, 1)*w(i, j, 1) + f(i, j, 1, 5) = d(i, j, 1)*(Cv*T(i, j, 1) + (u(i, j, 1)**2 + v(i, j, 1)**2 + w(i, j, 1)**2)*0.5d0) + end do + end do + end if + if (npz .eq. npz0 - 1) then + do j = 1, ny + do i = 1, nx + f(i, j, nz, 1) = d(i, j, nz) + f(i, j, nz, 2) = d(i, j, nz)*u(i, j, nz) + f(i, j, nz, 3) = d(i, j, nz)*v(i, j, nz) + f(i, j, nz, 4) = d(i, j, nz)*w(i, j, nz) + f(i, j, nz, 5) = d(i, j, nz)*(Cv*T(i, j, nz) + (u(i, j, nz)**2 + v(i, j, nz)**2 + w(i, j, nz)**2)*0.5d0) + end do + end do + end if + + call Flow_Ghost_boundary ! Ghost Cell for flow field (d, u, v, w, T) + + end + diff --git a/src/OCFD_BC_Boundarylayers.f90 b/src/OCFD_BC_Boundarylayers.f90 new file mode 100644 index 0000000..232bb96 --- /dev/null +++ b/src/OCFD_BC_Boundarylayers.f90 @@ -0,0 +1,618 @@ +! boundary conditions: boundary-layers (transition/ STBLI/ ...) +!--------------------------------------------------------------------- +module BC_data + use OCFD_precision + implicit none + TYPE bc_type + integer:: bc_init = 0 + Real(kind=OCFD_REAL_KIND), allocatable:: flow_inlet1d(:, :), flow_upper1d(:, :), & + flow_inlet2d(:, :, :), flow_upper2d(:, :, :) + Real(kind=OCFD_REAL_KIND), allocatable:: wall_pertb(:, :) ! Wall blow-and-suction + integer, allocatable:: NonReflect_upper(:, :) + + end TYPE + TYPE(bc_type):: BC +end + +subroutine ocfd_bc_BoundaryLayer + use flow_data + use BC_data + implicit none + integer i, j, k, m + integer:: BcData_inlet, BcData_upper, bc_upper_nonref, bc_outlet, bc_dis_type, bc_dis_mt, bc_dis_mz + Real(kind=OCFD_REAL_KIND):: Tw, Wall_Xinit, bc_dis_A, bc_dis_Xbegin, bc_dis_Xend, bc_dis_ZL, bc_dis_freq + Real(kind=OCFD_REAL_KIND):: u0, v0, ht, tmp, A0 + +!--------------------------------------------------- + BcData_inlet = nint(Para%BC_para(1)) ! inlet: (0 free-stream; 1 1d data; 2 2d data) + BcData_upper = nint(Para%Bc_para(2)) ! upper boundary: (0 free-stream, 1 1d data , 2 2d data) + + bc_upper_nonref = nint(Para%Bc_para(3)) ! upper boundary: 0 auto, 1 Non-Reflection, 2 Dirichlet + bc_outlet = nint(Para%Bc_para(4)) ! outlet: 0 Non-Reflection, 1 1st order extrapolation, 2 2nd order extrapolation + Tw = Para%Bc_para(5) ! wall temperature + Wall_Xinit = Para%Bc_para(6) ! x location of the wall leading + +! wall perturbation-------- + bc_dis_type = nint(Para%Bc_para(7)) ! wall disturbance type (0 none ; 1 multi-wave blow-and-suction, Ref: Rai MM, AIAA 95-0583) + bc_dis_A = Para%Bc_para(8) ! Amplitude of wall disturbance + bc_dis_Xbegin = Para%Bc_para(9) ! Initial location of wall disturbance + bc_dis_Xend = Para%Bc_para(10) ! End location of wall disturbance + bc_dis_mt = nint(Para%Bc_para(11)) ! multi-frequency + bc_dis_mz = nint(Para%Bc_para(12)) ! multi-wavenumber + bc_dis_ZL = Para%Bc_para(13) ! Spanwise Length + bc_dis_freq = Para%Bc_para(14) ! base frequancy of disturbance + + !-------- j=1 wall ---------------- + if (BC%bc_init == 0) then + call init_bcdata_boundarylayer(BcData_inlet, BcData_upper) ! read inlet & upper data + call init_bc_nonRef(bc_upper_nonref) ! upper boundary: Non-Reflection or Dirichlet + call init_bc_wall_perturbation(bc_dis_type, bc_dis_A, bc_dis_Xbegin, bc_dis_Xend, bc_dis_mt, bc_dis_mz, bc_dis_ZL) + Bc%bc_init = 1 ! Run only for initial time + end if + +!----------------Inlet boundary ------------------------------------- + u0 = cos(Para%AoA) + v0 = sin(Para%AoA) + + if (npx .eq. 0) then + if (BcData_inlet == 0) then + do k = 1, nz + do j = 1, ny + d(1, j, k) = 1.d0 + u(1, j, k) = u0 + v(1, j, k) = v0 + w(1, j, k) = 0.d0 + T(1, j, k) = 0.d0 + end do + end do + else if (BcData_inlet == 1) then + do k = 1, nz + do j = 1, ny + d(1, j, k) = BC%flow_inlet1d(j, 1) + u(1, j, k) = BC%flow_inlet1d(j, 2) + v(1, j, k) = BC%flow_inlet1d(j, 3) + w(1, j, k) = BC%flow_inlet1d(j, 4) + T(1, j, k) = BC%flow_inlet1d(j, 5) + end do + end do + else if (BcData_inlet == 2) then + do k = 1, nz + do j = 1, ny + d(1, j, k) = BC%flow_inlet2d(j, k, 1) + u(1, j, k) = BC%flow_inlet2d(j, k, 2) + v(1, j, k) = BC%flow_inlet2d(j, k, 3) + w(1, j, k) = BC%flow_inlet2d(j, k, 4) + T(1, j, k) = BC%flow_inlet2d(j, k, 5) + end do + end do + else + print *, "The inlet data is not supported !" + end if + end if + +!----------------upper boundary ------------------------------------- + if (npy .eq. npy0 - 1) then + do k = 1, nz + do i = 1, nx + if (Bc%NonReflect_upper(i, k) .eq. 0) then ! Dirichlet BC + if (BcData_upper .eq. 0) then + d(i, ny, k) = 1.d0 + u(i, ny, k) = u0 + v(i, ny, k) = v0 + w(i, ny, k) = 0.d0 + T(i, ny, k) = 1.d0 + else if (BcData_upper .eq. 1) then + d(i, ny, k) = BC%flow_upper1d(i, 1) + u(i, ny, k) = BC%flow_upper1d(i, 2) + v(i, ny, k) = BC%flow_upper1d(i, 3) + w(i, ny, k) = BC%flow_upper1d(i, 4) + T(i, ny, k) = BC%flow_upper1d(i, 5) + else if (BcData_upper .eq. 2) then + d(i, ny, k) = BC%flow_upper2d(i, k, 1) + u(i, ny, k) = BC%flow_upper2d(i, k, 2) + v(i, ny, k) = BC%flow_upper2d(i, k, 3) + w(i, ny, k) = BC%flow_upper2d(i, k, 4) + T(i, ny, k) = BC%flow_upper2d(i, k, 5) + end if + end if + end do + end do + end if +!----wall----------------------------------------------- + call get_ht_multifrequancy(ht, tt, bc_dis_mt, bc_dis_freq) + if (npy .eq. 0) then + do k = 1, nz + do i = 1, nx + tmp = 1.d0/(sqrt(Aix(i, 1, k)**2 + Aiy(i, 1, k)**2 + Aiz(i, 1, k)**2)) + A0 = bc_dis_A*ht*BC%wall_pertb(i, k) + u(i, 1, k) = A0*Aix(i, 1, k)*tmp ! Aix*tmp normal vector + v(i, 1, k) = A0*Aiy(i, 1, k)*tmp + w(i, 1, k) = A0*Aiz(i, 1, k)*tmp + if (Tw .gt. 0) then + T(i, 1, k) = Tw + d(i, 1, k) = (4.d0*d(i, 2, k)*T(i, 2, k) - d(i, 3, k)*T(i, 3, k))/(3.d0*Tw) ! P1=(4.d0*P2-P3)/3.d0 2nd order + else + T(i, 1, k) = (4.d0*T(i, 2, k) - T(i, 3, k))/3.d0 + d(i, 1, k) = (4.d0*d(i, 2, k) - d(i, 3, k))/3.d0 + end if + end do + end do + + end if +!-------outlet bounary ------------------------------------------ + if (npx .eq. npx0 - 1) then + if (bc_outlet == 1) then + do k = 1, nz + do j = 1, ny + d(nx, j, k) = d(nx - 1, j, k) + u(nx, j, k) = u(nx - 1, j, k) + v(nx, j, k) = v(nx - 1, j, k) + w(nx, j, k) = w(nx - 1, j, k) + T(nx, j, k) = T(nx - 1, j, k) + end do + end do + else if (bc_outlet == 2) then + do k = 1, nz + do j = 1, ny + d(nx, j, k) = 2.d0*d(nx - 1, j, k) - d(nx - 2, j, k) + u(nx, j, k) = 2.d0*u(nx - 1, j, k) - u(nx - 2, j, k) + v(nx, j, k) = 2.d0*v(nx - 1, j, k) - v(nx - 2, j, k) + w(nx, j, k) = 2.d0*w(nx - 1, j, k) - w(nx - 2, j, k) + T(nx, j, k) = 2.d0*T(nx - 1, j, k) - T(nx - 2, j, k) + end do + end do + end if + end if + +end + +!--------------------------------------------------------------------- +! read boundary data (inlet & upper) +subroutine init_bcdata_boundarylayer(BcData_inlet, BcData_upper) + use flow_data + use BC_data + implicit none + integer:: BcData_inlet, BcData_upper + integer:: i, j, k, m, i1, j1, k1, ierr + Real(kind=OCFD_REAL_KIND):: tmp + Real(kind=OCFD_REAL_KIND), allocatable:: flow1d0(:, :), flow2d0(:, :) + +! BcData_inlet=nint(Para%BC_para(1)) ! inlet type (1 free-stream; 2 1d data; 2 2d data) +! BcData_upper=nint(Para%Bc_para(2)) + +!----------------read inlet data file (1d formatted or 2d unformatted ) + if (BcData_inlet == 1) then ! 1d inlet data file + allocate (BC%flow_inlet1d(ny, 5), flow1d0(ny_global, 4)) + if (my_id .eq. 0) then + open (99, file="flow1d-inlet.dat") + read (99, *) + do j = 1, ny_global + read (99, *) tmp, (flow1d0(j, k), k=1, 4) ! d,u,v,T + end do + close (99) + print *, "read 1d inlet data OK" + end if + + call MPI_bcast(flow1d0, ny_global*4, OCFD_DATA_TYPE, 0, MPI_COMM_WORLD, ierr) + do j = 1, ny + j1 = j_offset(npy) + j - 1 + BC%flow_inlet1d(j, 1:3) = flow1d0(j1, 1:3) + BC%flow_inlet1d(j, 4) = 0.d0 ! w + BC%flow_inlet1d(j, 5) = flow1d0(j1, 4) + end do + deallocate (flow1d0) + + else if (BcData_inlet == 2) then !2d inlet data file + allocate (BC%flow_inlet2d(ny, nz, 5), flow2d0(ny_global, nz_global)) + if (my_id .eq. 0) open (99, file="flow2d-inlet.dat", form="unformatted") + do m = 1, 5 + if (my_id .eq. 0) read (99) flow2d0 + + call MPI_bcast(flow2d0, ny_global*nz_global, OCFD_DATA_TYPE, 0, MPI_COMM_WORLD, ierr) + do k = 1, nz + do j = 1, ny + j1 = j_offset(npy) + j - 1 + k1 = k_offset(npz) + k - 1 + BC%flow_inlet2d(j, k, m) = flow2d0(j1, k1) + end do + end do + end do + if (my_id .eq. 0) then + close (99) + print *, "read 2d inlet data OK" + end if + deallocate (flow2d0) + end if + + !----------------read upper-boundary data file (1d formatted or 2d unformatted ) + if (BcData_upper == 1) then ! 1d upper-boundary data file + allocate (BC%flow_upper1d(nx, 5), flow1d0(nx_global, 4)) + if (my_id .eq. 0) then + open (99, file="flow1d-upper.dat") + read (99, *) + do i = 1, nx_global + read (99, *) tmp, (flow1d0(i, k), k=1, 4) ! d,u,v,T + end do + close (99) + print *, "read 1d upper boundary data OK" + end if + + call MPI_bcast(flow1d0, nx_global*4, OCFD_DATA_TYPE, 0, MPI_COMM_WORLD, ierr) + do i = 1, nx + i1 = i_offset(npx) + i - 1 + BC%flow_upper1d(i, 1:3) = flow1d0(i1, 1:3) + BC%flow_upper1d(i, 4) = 0.d0 ! w + BC%flow_upper1d(i, 5) = flow1d0(i1, 4) + end do + deallocate (flow1d0) + + else if (BcData_upper == 2) then !2d boundary data file + allocate (BC%flow_upper2d(nx, nz, 5), flow2d0(nx_global, nz_global)) + if (my_id .eq. 0) open (99, file="flow2d-upper.dat", form="unformatted") + do m = 1, 5 + if (my_id .eq. 0) read (99) flow2d0 + + call MPI_bcast(flow2d0, nx_global*nz_global, OCFD_DATA_TYPE, 0, MPI_COMM_WORLD, ierr) + do k = 1, nz + do i = 1, nx + i1 = i_offset(npx) + i - 1 + k1 = k_offset(npz) + k - 1 + BC%flow_upper2d(i, k, m) = flow2d0(i1, k1) + end do + end do + end do + if (my_id .eq. 0) then + close (99) + print *, "read 2d upper boundary data OK" + end if + deallocate (flow2d0) + end if +end + +!----------------------------------------------------- +subroutine init_bc_nonRef(Bc_NonReflect_upper) + use flow_data + use BC_data + implicit none + integer:: Bc_NonReflect_upper, i, j, k + Real(kind=OCFD_REAL_KIND):: sy, sy0 + Real(kind=OCFD_REAL_KIND), parameter:: epsl = 1.d-6 + +! Bc_NonReflect_upper=nint(Para%Bc_para(3)) ! 0 Auto, 1 Non-Reflection, 2 Dirichlet boudary + + sy0 = tan(Para%AoA) + allocate (BC%NonReflect_upper(nx, nz)) + Bc%NonReflect_upper = 0 + +! if(npy .eq. 0) then ! Bug removed 2021-5-4 + if (npy .eq. npy0 - 1) then + if (Bc_NonReflect_upper == 1) then + BC%NonReflect_upper = 1 ! Non-Reflection boundary + else if (Bc_NonReflect_upper == 2) then + BC%NonReflect_upper = 0 ! Dirichlet boundary + else if (Bc_NonReflect_upper == 0) then ! Auto type (Non-Reflection /Dirichlet) + do k = 1, nz + do i = 1, nx + if (i == 1 .and. npx .eq. 0) then + sy = (Ayy(i + 1, ny, k) - Ayy(i, ny, k))/(Axx(i + 1, ny, k) - Axx(i, ny, k)) + else + sy = (Ayy(i, ny, k) - Ayy(i - 1, ny, k))/(Axx(i, ny, k) - Axx(i - 1, ny, k)) + end if + if (sy >= sy0 + epsl) then + Bc%NonReflect_upper(i, k) = 0 ! Dirichlet BC + else + Bc%NonReflect_upper(i, k) = 1 ! Non-Reflection BC + end if + end do + end do + end if + end if + +end + +subroutine init_bc_wall_perturbation(bc_dis_type, bc_dis_A, bc_dis_Xbegin, bc_dis_Xend, bc_dis_mt, bc_dis_mz, bc_dis_ZL) +! TM(k), Amplitude; faiz,fait: phase (random); mzmax, mtmax: wavenumbers +! consider wall jet + use flow_data + use BC_data + implicit none + integer i, j, k, m, ierr + real(kind=OCFD_REAL_KIND), allocatable :: faiz(:), Zl(:) + real(kind=OCFD_REAL_KIND), parameter:: PI = 3.14159265358979d0 + real(kind=OCFD_REAL_KIND):: ztmp, seta, fx, gz, rtmp + integer:: bc_dis_type, bc_dis_mt, bc_dis_mz + real(kind=OCFD_REAL_KIND):: bc_dis_A, bc_dis_Xbegin, bc_dis_Xend, bc_dis_ZL + +! bc_dis_type=nint(Para%Bc_para(7)) ! wall disturbance type (0 none ; 1 multi-wave blow-and-suction, Ref: Rai MM, AIAA 95-0583) +! bc_dis_A=Para%Bc_para(8) ! Amplitude of wall disturbance +! bc_dis_Xbegin=Para%Bc_para(9) ! Initial location of wall disturbance +! bc_dis_Xend=Para%Bc_para(10) ! End location of wall disturbance +! bc_dis_mt=nint(Para%Bc_para(11)) ! multi-frequency +! bc_dis_mz=nint(Para%Bc_para(12)) ! multi-wavenumber +! bc_dis_ZL=Para%Bc_para(13) ! Spanwise Length + + allocate (BC%wall_pertb(nx, nz)) + BC%wall_pertb = 0.d0 + + if (bc_dis_type == 0) then + BC%wall_pertb = 0.d0 ! no disturbation + !----------------------------------------------- + else if (bc_dis_type == 1) then ! multi-wavenumber perturbation (Rai MM AIAA 95-0583) + + if (bc_dis_mz > 0) then + allocate (faiz(bc_dis_mz), Zl(bc_dis_mz)) + ztmp = 0.d0 + do k = 1, bc_dis_mz + call random_number(faiz(k)) + if (k .eq. 1) then + Zl(k) = 1.d0 + else + zl(k) = zl(k - 1)/1.25d0 + end if + ztmp = ztmp + Zl(k) + end do + do k = 1, bc_dis_mz + zl(k) = zl(k)/ztmp + end do + call MPI_bcast(faiz(1), bc_dis_mz, OCFD_DATA_TYPE, 0, MPI_COMM_WORLD, ierr) + end if + + do k = 1, nz + do i = 1, nx + if (Axx(i, 1, k) >= bc_dis_Xbegin .and. Axx(i, 1, k) <= bc_dis_Xend) then + seta = 2.d0*PI*(Axx(i, 1, k) - bc_dis_Xbegin)/(bc_dis_Xend - bc_dis_Xbegin) + fx = 4.d0/sqrt(27.d0)*sin(seta)*(1.d0 - cos(seta)) + else + fx = 0.d0 + end if + + gz = 0.d0 + seta = Azz(i, 1, k)/bc_dis_ZL + if (bc_dis_mz > 0) then + do m = 1, bc_dis_mz + gz = gz + Zl(m)*sin(2.d0*PI*m*(seta + faiz(m))) + end do + else if (bc_dis_mz == 0) then + gz = 1.d0 + else if (bc_dis_mz < 0) then + gz = sin(-2.d0*PI*bc_dis_mz*seta) + end if + BC%wall_pertb(i, k) = fx*gz + end do + end do + if (bc_dis_mz > 0) deallocate (faiz, Zl) +!----------------------------------------------- + else if (bc_dis_type == 2) then ! random disturbance + do k = 1, nz + do i = 1, nx + if (Axx(i, 1, k) >= bc_dis_Xbegin .and. Axx(i, 1, k) <= bc_dis_Xend) then ! a Bug removed (2021-6-21) + call random_number(rtmp) + BC%wall_pertb(i, k) = 2.d0*(rtmp - 0.5d0) ! -1< wall_pertb < 1 + else + BC%wall_pertb(i, k) = 0.d0 + end if + end do + end do + end if +end + +!-------------------------------- +! perturbation of Rai, see: Rai MM, AIAA 95-0583 +subroutine get_ht_multifrequancy(ht, tt, mtmax, beta) + use OCFD_constants + use Para_mpi + implicit none + integer mtmax, k, m, ierr + integer, save:: Kflag = 0 + real(kind=OCFD_REAL_KIND):: ht, tt, beta, Ttmp, rand_x + real(kind=OCFD_REAL_KIND), parameter:: PI = 3.14159265358979d0 + real(kind=OCFD_REAL_KIND), allocatable, save:: TM(:), fait(:) ! Amplitute and random phase angle + + if (Kflag .eq. 0) then + Kflag = 1 + allocate (TM(mtmax), fait(mtmax)) + + Ttmp = 0.d0 + do k = 1, mtmax + call random_number(rand_x) + fait(k) = rand_x + if (k .eq. 1) then + TM(k) = 1.d0 + else + TM(k) = TM(k - 1)/1.25d0 + end if + Ttmp = Ttmp + TM(k) + end do + do k = 1, mtmax + TM(k) = TM(k)/Ttmp + end do + call MPI_bcast(fait(1), mtmax, OCFD_DATA_TYPE, 0, MPI_COMM_WORLD, ierr) + end if + + ht = 0.d0 + if (beta .gt. 0.d0) then + do m = 1, mtmax + ht = ht + TM(m)*sin(m*beta*tt + 2.d0*PI*fait(m)) + end do + else + ht = 1.d0 + end if +end + +!------------modified 2021-5-10 --------------------- +subroutine ocfd_bc_swept_corner + use flow_data + use BC_data + implicit none + integer i, j, k, m + integer:: BcData_inlet, BcData_upper, bc_upper_nonref, bc_outlet, bc_dis_type, bc_dis_mt, bc_dis_mz, & + bc_Z1, bc_Z2, bc_Wallext + Real(kind=OCFD_REAL_KIND):: Tw, Wall_Xinit, bc_dis_A, bc_dis_Xbegin, bc_dis_Xend, bc_dis_ZL, bc_dis_freq, & + bc_Wall_ZL + Real(kind=OCFD_REAL_KIND):: u0, v0, ht, tmp, A0 + Real(kind=OCFD_REAL_KIND), parameter :: epsl = 1.d-7 +!----------------------------------------------------------------- + BcData_inlet = 1 ! inlet: (0 free-stream; 1 1d data; 2 2d data) + BcData_upper = 0 ! upper boundary: (0 free-stream, 1 1d data , 2 2d data) + bc_upper_nonref = 0 ! upper boundary: 0 auto, 1 Non-Reflection, 2 Dirichlet + + bc_outlet = nint(Para%Bc_para(1)) ! outlet: 0 Non-Reflection, 1 1st order extrapolation, 2 2nd order extrapolation + Tw = Para%Bc_para(2) ! wall temperature + bc_Wall_ZL = Para%Bc_para(3) ! Spanwise Length of wall + bc_dis_ZL = bc_Wall_ZL +! wall perturbation-------- + bc_dis_type = nint(Para%Bc_para(4)) ! wall disturbance type (0 none ; 1 multi-wave blow-and-suction, Ref: Rai MM, AIAA 95-0583) + bc_dis_A = Para%Bc_para(5) ! Amplitude of wall disturbance + bc_dis_Xbegin = Para%Bc_para(6) ! Initial location of wall disturbance + bc_dis_Xend = Para%Bc_para(7) ! End location of wall disturbance + bc_dis_mt = nint(Para%Bc_para(8)) ! multi-frequency + bc_dis_mz = nint(Para%Bc_para(9)) ! multi-wavenumber + bc_dis_freq = Para%Bc_para(10) ! base frequancy of disturbance + bc_Z1 = nint(Para%Bc_para(11)) ! Lift side (Z-) boundary; (0 slide wall; 1 exterploation) + bc_Z2 = nint(Para%Bc_para(12)) ! Right side (Z+) boundary +! bc_Wallext=nint(Para%Bc_para(13)) ! Wall extent region (j=1; z<0 or z> Zwall) + !-------- j=1 wall ---------------- + if (BC%bc_init == 0) then + call init_bcdata_boundarylayer(BcData_inlet, BcData_upper) ! read inlet & upper data + call init_bc_nonRef(bc_upper_nonref) ! upper boundary: Non-Reflection or Dirichlet + call init_bc_wall_perturbation(bc_dis_type, bc_dis_A, bc_dis_Xbegin, bc_dis_Xend, bc_dis_mt, bc_dis_mz, bc_dis_ZL) + Bc%bc_init = 1 ! Run only for initial time + end if + +!----------------Inlet boundary ------------------------------------- + u0 = cos(Para%AoA) + v0 = sin(Para%AoA) + + if (npx .eq. 0) then + do k = 1, nz + do j = 1, ny + d(1, j, k) = BC%flow_inlet1d(j, 1) + u(1, j, k) = BC%flow_inlet1d(j, 2) + v(1, j, k) = BC%flow_inlet1d(j, 3) + w(1, j, k) = BC%flow_inlet1d(j, 4) + T(1, j, k) = BC%flow_inlet1d(j, 5) + end do + end do + end if + +!----------------upper boundary ------------------------------------- + if (npy .eq. npy0 - 1) then + do k = 1, nz + do i = 1, nx + if (Bc%NonReflect_upper(i, k) .eq. 0) then ! Dirichlet BC + d(i, ny, k) = 1.d0 + u(i, ny, k) = u0 + v(i, ny, k) = v0 + w(i, ny, k) = 0.d0 + T(i, ny, k) = 1.d0 + end if + end do + end do + end if +!----wall----------------------------------------------- + call get_ht_multifrequancy(ht, tt, bc_dis_mt, bc_dis_freq) + if (npy .eq. 0) then + do k = 1, nz + do i = 1, nx + if ((Azz(i, 1, k) >= -epsl .and. Azz(i, 1, k) <= bc_Wall_ZL + epsl) .or. Ayy(i, 1, k) <= epsl) then ! non-slide wall , modifyied 2021-5-10 + tmp = 1.d0/(sqrt(Aix(i, 1, k)**2 + Aiy(i, 1, k)**2 + Aiz(i, 1, k)**2)) + A0 = bc_dis_A*ht*BC%wall_pertb(i, k) + u(i, 1, k) = A0*Aix(i, 1, k)*tmp ! Aix*tmp normal vector + v(i, 1, k) = A0*Aiy(i, 1, k)*tmp + w(i, 1, k) = A0*Aiz(i, 1, k)*tmp + if (Tw .gt. 0) then + T(i, 1, k) = Tw + d(i, 1, k) = (4.d0*d(i, 2, k)*T(i, 2, k) - d(i, 3, k)*T(i, 3, k))/(3.d0*Tw) ! P1=(4.d0*P2-P3)/3.d0 2nd order + else + T(i, 1, k) = (4.d0*T(i, 2, k) - T(i, 3, k))/3.d0 + d(i, 1, k) = (4.d0*d(i, 2, k) - d(i, 3, k))/3.d0 + end if + else + ! 1st order exterpolation + d(i, 1, k) = d(i, 2, k) + T(i, 1, k) = T(i, 2, k) + u(i, 1, k) = u(i, 2, k) + v(i, 1, k) = v(i, 2, k) ! modified 2021-4-26 + w(i, 1, k) = w(i, 2, k) + end if + end do + end do + end if + +!-------outlet bounary ------------------------------------------ + if (npx .eq. npx0 - 1) then + if (bc_outlet == 1) then + do k = 1, nz + do j = 1, ny + d(nx, j, k) = d(nx - 1, j, k) + u(nx, j, k) = u(nx - 1, j, k) + v(nx, j, k) = v(nx - 1, j, k) + w(nx, j, k) = w(nx - 1, j, k) + T(nx, j, k) = T(nx - 1, j, k) + end do + end do + else if (bc_outlet == 2) then + do k = 1, nz + do j = 1, ny + d(nx, j, k) = 2.d0*d(nx - 1, j, k) - d(nx - 2, j, k) + u(nx, j, k) = 2.d0*u(nx - 1, j, k) - u(nx - 2, j, k) + v(nx, j, k) = 2.d0*v(nx - 1, j, k) - v(nx - 2, j, k) + w(nx, j, k) = 2.d0*w(nx - 1, j, k) - w(nx - 2, j, k) + T(nx, j, k) = 2.d0*T(nx - 1, j, k) - T(nx - 2, j, k) + end do + end do + end if + end if + +!----------side boundary (slide (symmetry)/exterpolation )------------------------- + if (npz .eq. 0) then +! if(bc_Z1 .eq. 0) then ! not support 2021-6-14 (do not work well) +! do j=1,ny +! do i=1,nx +! d(i,j,1)=d(i,j,2) +! u(i,j,1)=u(i,j,2) +! v(i,j,1)=v(i,j,2) +! w(i,j,1)=0.d0 +! T(i,j,1)=T(i,j,2) +! enddo +! enddo +! else if (bc_Z1 .eq. 1) then + if (bc_Z1 .eq. 1) then + do j = 1, ny + do i = 1, nx + d(i, j, 1) = d(i, j, 2) + u(i, j, 1) = u(i, j, 2) + v(i, j, 1) = v(i, j, 2) + w(i, j, 1) = w(i, j, 2) + T(i, j, 1) = T(i, j, 2) + end do + end do + end if + end if + + if (npz .eq. npz0 - 1) then +! if(bc_Z2 .eq. 0) then +! do j=1,ny +! do i=1,nx +! d(i,j,nz)=d(i,j,nz-1) +! u(i,j,nz)=u(i,j,nz-1) +! v(i,j,nz)=v(i,j,nz-1) +! w(i,j,nz)=0.d0 +! T(i,j,nz)=T(i,j,nz-1) +! enddo +! enddo +! else if(bc_Z2 .eq. 1) then + if (bc_Z2 .eq. 1) then + do j = 1, ny + do i = 1, nx + d(i, j, nz) = d(i, j, nz - 1) + u(i, j, nz) = u(i, j, nz - 1) + v(i, j, nz) = v(i, j, nz - 1) + w(i, j, nz) = w(i, j, nz - 1) + T(i, j, nz) = T(i, j, nz - 1) + end do + end do + end if + end if +end + diff --git a/src/OCFD_BC_Def.f90 b/src/OCFD_BC_Def.f90 new file mode 100644 index 0000000..d4f7a1c --- /dev/null +++ b/src/OCFD_BC_Def.f90 @@ -0,0 +1,33 @@ +! boundary conditions defined 已预设的几种边界条件 + +!--------Blunt wedge (or half-cylinder )-------------- + subroutine ocfd_bc_blunt2d + use flow_data + implicit none + integer i, j, k +!-------- j=1 wall ---------------- + if (npy .eq. 0) then + do k = 1, nz + do i = 1, nx + d(i, 1, k) = d(i, 2, k) + u(i, 1, k) = 0.d0 + v(i, 1, k) = 0.d0 + w(i, 1, k) = 0.d0 + T(i, 1, k) = T(i, 2, k) + end do + end do + end if +!-------j=ny free-stream ---------- + if (npy .eq. npy0 - 1) then + do k = 1, nz + do i = 1, nx + d(i, ny, k) = 1.d0 + u(i, ny, k) = 1.d0 + v(i, ny, k) = 0.d0 + w(i, ny, k) = 0.d0 + T(i, ny, k) = 1.d0 + end do + end do + end if +!---------------------------------------- + end diff --git a/src/OCFD_GhostCell.f90 b/src/OCFD_GhostCell.f90 new file mode 100644 index 0000000..86d9966 --- /dev/null +++ b/src/OCFD_GhostCell.f90 @@ -0,0 +1,501 @@ + subroutine Jac_Ghost_boundary + use flow_data + implicit none + call Jac_Ghost_Extent_1st ! 1st order exterpolation , in case Para%Ghost_Cell(1) .eq. 1 + call Jac_Ghost_Extent_2nd ! 2nd order exterpolation , in case Para%Ghost_Cell(1) .eq. 1 + call Jac_Ghost_Userdef ! User defined Ghost boundary , in case Para%Ghost_Cell(1) .eq. 1 + end + + subroutine Flow_Ghost_boundary + use flow_data + implicit none + call Flow_Ghost_Extent_2nd ! 2nd exterpolation, in case Scheme%Scheme_boundary(:) .eq. 1 or 2 + call Flow_Ghost_Userdef ! User defined Ghost boundary, in case Scheme%Scheme_boundary(:) .eq. -2 + end + +!-------------------------------------------------- +! Ghost Cell for Jacobian coefficients ; 1st order exterpolation + subroutine Jac_Ghost_Extent_1st + use flow_data + implicit none + integer:: i, j, k + if (npx .eq. 0 .and. Para%Ghost_Cell(1) .eq. 1) then !i- + do k = 1, nz + do j = 1, ny + do i = 1 - LAP, 0 + Akx(i, j, k) = Akx(1, j, k) + Aky(i, j, k) = Aky(1, j, k) + Akz(i, j, k) = Akz(1, j, k) + Aix(i, j, k) = Aix(1, j, k) + Aiy(i, j, k) = Aiy(1, j, k) + Aiz(i, j, k) = Aiz(1, j, k) + Asx(i, j, k) = Asx(1, j, k) + Asy(i, j, k) = Asy(1, j, k) + Asz(i, j, k) = Asz(1, j, k) + Ajac(i, j, k) = Ajac(1, j, k) ! A bug romoved, 2021-6-14 + + Axx(i, j, k) = Axx(1, j, k) + (1.d0 - i)*(Axx(1, j, k) - Axx(2, j, k)) + Ayy(i, j, k) = Ayy(1, j, k) + (1.d0 - i)*(Ayy(1, j, k) - Ayy(2, j, k)) + Azz(i, j, k) = Azz(1, j, k) + (1.d0 - i)*(Azz(1, j, k) - Azz(2, j, k)) + end do + end do + end do + end if + + if (npx .eq. npx0 - 1 .and. Para%Ghost_Cell(2) .eq. 1) then ! i+ + do k = 1, nz + do j = 1, ny + do i = nx + 1, nx + LAP + Akx(i, j, k) = Akx(nx, j, k) + Aky(i, j, k) = Aky(nx, j, k) + Akz(i, j, k) = Akz(nx, j, k) + Aix(i, j, k) = Aix(nx, j, k) + Aiy(i, j, k) = Aiy(nx, j, k) + Aiz(i, j, k) = Aiz(nx, j, k) + Asx(i, j, k) = Asx(nx, j, k) + Asy(i, j, k) = Asy(nx, j, k) + Asz(i, j, k) = Asz(nx, j, k) + Ajac(i, j, k) = Ajac(nx, j, k) + + Axx(i, j, k) = Axx(nx, j, k) + (i - nx)*(Axx(nx, j, k) - Axx(nx - 1, j, k)) + Ayy(i, j, k) = Ayy(nx, j, k) + (i - nx)*(Ayy(nx, j, k) - Ayy(nx - 1, j, k)) + Azz(i, j, k) = Azz(nx, j, k) + (i - nx)*(Azz(nx, j, k) - Azz(nx - 1, j, k)) + end do + end do + end do + + end if + + if (npy .eq. 0 .and. Para%Ghost_Cell(3) .eq. 1) then ! j- + do k = 1, nz + do j = 1 - LAP, 0 + do i = 1, nx + Akx(i, j, k) = Akx(i, 1, k) + Aky(i, j, k) = Aky(i, 1, k) + Akz(i, j, k) = Akz(i, 1, k) + Aix(i, j, k) = Aix(i, 1, k) + Aiy(i, j, k) = Aiy(i, 1, k) + Aiz(i, j, k) = Aiz(i, 1, k) + Asx(i, j, k) = Asx(i, 1, k) + Asy(i, j, k) = Asy(i, 1, k) + Asz(i, j, k) = Asz(i, 1, k) + Ajac(i, j, k) = Ajac(i, 1, k) + + Axx(i, j, k) = Axx(i, 1, k) + (1.d0 - j)*(Axx(i, 1, k) - Axx(i, 2, k)) + Ayy(i, j, k) = Ayy(i, 1, k) + (1.d0 - j)*(Ayy(i, 1, k) - Ayy(i, 2, k)) + Azz(i, j, k) = Azz(i, 1, k) + (1.d0 - j)*(Azz(i, 1, k) - Azz(i, 2, k)) + end do + end do + end do + end if + + if (npy .eq. npy0 - 1 .and. Para%Ghost_Cell(4) .eq. 1) then ! j+ + do k = 1, nz + do j = ny + 1, ny + LAP + do i = 1, nx + Akx(i, j, k) = Akx(i, ny, k) + Aky(i, j, k) = Aky(i, ny, k) + Akz(i, j, k) = Akz(i, ny, k) + Aix(i, j, k) = Aix(i, ny, k) + Aiy(i, j, k) = Aiy(i, ny, k) + Aiz(i, j, k) = Aiz(i, ny, k) + Asx(i, j, k) = Asx(i, ny, k) + Asy(i, j, k) = Asy(i, ny, k) + Asz(i, j, k) = Asz(i, ny, k) + Ajac(i, j, k) = Ajac(i, ny, k) + + Axx(i, j, k) = Axx(i, ny, k) + (j - ny)*(Axx(i, ny, k) - Axx(i, ny - 1, k)) + Ayy(i, j, k) = Ayy(i, ny, k) + (j - ny)*(Ayy(i, ny, k) - Ayy(i, ny - 1, k)) + Azz(i, j, k) = Azz(i, ny, k) + (j - ny)*(Azz(i, ny, k) - Azz(i, ny - 1, k)) + end do + end do + end do + end if + + if (npz .eq. 0 .and. Para%Ghost_Cell(5) .eq. 1) then ! k- + do k = 1 - LAP, 0 + do j = 1, ny + do i = 1, nx + Akx(i, j, k) = Akx(i, j, 1) + Aky(i, j, k) = Aky(i, j, 1) + Akz(i, j, k) = Akz(i, j, 1) + Aix(i, j, k) = Aix(i, j, 1) + Aiy(i, j, k) = Aiy(i, j, 1) + Aiz(i, j, k) = Aiz(i, j, 1) + Asx(i, j, k) = Asx(i, j, 1) + Asy(i, j, k) = Asy(i, j, 1) + Asz(i, j, k) = Asz(i, j, 1) + Ajac(i, j, k) = Ajac(i, j, 1) + + Axx(i, j, k) = Axx(i, j, 1) + (1.d0 - k)*(Axx(i, j, 1) - Axx(i, j, 2)) + Ayy(i, j, k) = Ayy(i, j, 1) + (1.d0 - k)*(Ayy(i, j, 1) - Ayy(i, j, 2)) + Azz(i, j, k) = Azz(i, j, 1) + (1.d0 - k)*(Azz(i, j, 1) - Azz(i, j, 2)) + end do + end do + end do + end if + + if (npz .eq. npz0 - 1 .and. Para%Ghost_Cell(6) .eq. 1) then ! k+ + do k = nz + 1, nz + LAP + do j = 1, ny + do i = 1, nx + Akx(i, j, k) = Akx(i, j, nz) + Aky(i, j, k) = Aky(i, j, nz) + Akz(i, j, k) = Akz(i, j, nz) + Aix(i, j, k) = Aix(i, j, nz) + Aiy(i, j, k) = Aiy(i, j, nz) + Aiz(i, j, k) = Aiz(i, j, nz) + Asx(i, j, k) = Asx(i, j, nz) + Asy(i, j, k) = Asy(i, j, nz) + Asz(i, j, k) = Asz(i, j, nz) + Ajac(i, j, k) = Ajac(i, j, nz) + + Axx(i, j, k) = Axx(i, j, nz) + (k - nz)*(Axx(i, j, nz) - Axx(i, j, nz - 1)) + Ayy(i, j, k) = Ayy(i, j, nz) + (k - nz)*(Ayy(i, j, nz) - Ayy(i, j, nz - 1)) + Azz(i, j, k) = Azz(i, j, nz) + (k - nz)*(Azz(i, j, nz) - Azz(i, j, nz - 1)) + end do + end do + end do + end if + end + +!----------------------------------------------- +! 2nd Exter-ploation Ghost Cell , in case Para%Ghost_Cell(:) ==1 or 2 + subroutine Flow_Ghost_Extent_2nd + use flow_data + implicit none + integer i, j, k + Real(kind=OCFD_REAL_KIND), parameter:: s1 = 0.8d0, s2 = 1.2d0 ! limter + + if (npx == 0 .and. (Para%Ghost_Cell(1) == 1 .or. Para%Ghost_Cell(1) == 2)) then ! i- + do k = 1, nz + do j = 1, ny + do i = 1 - LAP, 0 + u(i, j, k) = 2.d0*u(1, j, k) - u(2 - i, j, k) + v(i, j, k) = 2.d0*v(1, j, k) - v(2 - i, j, k) + w(i, j, k) = 2.d0*w(1, j, k) - w(2 - i, j, k) + + d(i, j, k) = 2.d0*d(1, j, k) - d(2 - i, j, k) + T(i, j, k) = 2.d0*T(1, j, k) - T(2 - i, j, k) + if (d(i, j, k) < s1*d(1, j, k)) d(i, j, k) = s1*d(1, j, k) + if (d(i, j, k) > s2*d(1, j, k)) d(i, j, k) = s2*d(1, j, k) + if (T(i, j, k) < s1*T(1, j, k)) T(i, j, k) = s1*T(1, j, k) + if (T(i, j, k) > s2*T(1, j, k)) T(i, j, k) = s2*T(1, j, k) + + end do + end do + end do + end if + + if (npx == npx0 - 1 .and. (Para%Ghost_Cell(2) == 1 .or. Para%Ghost_Cell(2) == 2)) then ! i+ + do k = 1, nz + do j = 1, ny + do i = nx + 1, nx + LAP + u(i, j, k) = 2.d0*u(nx, j, k) - u(2*nx - i, j, k) + v(i, j, k) = 2.d0*v(nx, j, k) - v(2*nx - i, j, k) + w(i, j, k) = 2.d0*w(nx, j, k) - w(2*nx - i, j, k) + + d(i, j, k) = 2.d0*d(nx, j, k) - d(2*nx - i, j, k) + T(i, j, k) = 2.d0*T(nx, j, k) - T(2*nx - i, j, k) + + if (d(i, j, k) < s1*d(nx, j, k)) d(i, j, k) = s1*d(nx, j, k) + if (d(i, j, k) > s2*d(nx, j, k)) d(i, j, k) = s2*d(nx, j, k) + if (T(i, j, k) < s1*T(nx, j, k)) T(i, j, k) = s1*T(nx, j, k) + if (T(i, j, k) > s2*T(nx, j, k)) T(i, j, k) = s2*T(nx, j, k) + + end do + end do + end do + end if + + if (npy == 0 .and. (Para%Ghost_Cell(3) == 1 .or. Para%Ghost_Cell(3) == 2)) then ! j- + do k = 1, nz + do j = 1 - LAP, 0 + do i = 1, nx + u(i, j, k) = 2.d0*u(i, 1, k) - u(i, 2 - j, k) + v(i, j, k) = 2.d0*v(i, 1, k) - v(i, 2 - j, k) + w(i, j, k) = 2.d0*w(i, 1, k) - w(i, 2 - j, k) + + d(i, j, k) = 2.d0*d(i, 1, k) - d(i, 2 - j, k) + T(i, j, k) = 2.d0*T(i, 1, k) - T(i, 2 - j, k) + if (d(i, j, k) < s1*d(i, 1, k)) d(i, j, k) = s1*d(i, 1, k) + if (d(i, j, k) > s2*d(i, 1, k)) d(i, j, k) = s2*d(i, 1, k) + if (T(i, j, k) < s1*T(i, 1, k)) T(i, j, k) = s1*T(i, 1, k) + if (T(i, j, k) > s2*T(i, 1, k)) T(i, j, k) = s2*T(i, 1, k) + end do + end do + end do + end if + + if (npy == npy0 - 1 .and. (Para%Ghost_Cell(4) == 1 .or. Para%Ghost_Cell(4) == 2)) then ! j+ + do k = 1, nz + do j = ny + 1, ny + LAP + do i = 1, nx + u(i, j, k) = 2.d0*u(i, ny, k) - u(i, 2*ny - j, k) + v(i, j, k) = 2.d0*v(i, ny, k) - v(i, 2*ny - j, k) + w(i, j, k) = 2.d0*w(i, ny, k) - w(i, 2*ny - j, k) + + d(i, j, k) = 2.d0*d(i, ny, k) - d(i, 2*ny - j, k) + T(i, j, k) = 2.d0*T(i, ny, k) - T(i, 2*ny - j, k) + if (d(i, j, k) < s1*d(i, ny, k)) d(i, j, k) = s1*d(i, ny, k) + if (d(i, j, k) > s2*d(i, ny, k)) d(i, j, k) = s2*d(i, ny, k) + if (T(i, j, k) < s1*T(i, ny, k)) T(i, j, k) = s1*T(i, ny, k) + if (T(i, j, k) > s2*T(i, ny, k)) T(i, j, k) = s2*T(i, ny, k) + end do + end do + end do + end if + + if (npz == 0 .and. (Para%Ghost_Cell(5) == 1 .or. Para%Ghost_Cell(5) == 2)) then ! k- + do k = 1 - LAP, 0 + do j = 1, ny + do i = 1, nx + u(i, j, k) = 2.d0*u(i, j, 1) - u(i, j, 2 - k) + v(i, j, k) = 2.d0*v(i, j, 1) - v(i, j, 2 - k) + w(i, j, k) = 2.d0*w(i, j, 1) - w(i, j, 2 - k) + d(i, j, k) = 2.d0*d(i, j, 1) - d(i, j, 2 - k) + T(i, j, k) = 2.d0*T(i, j, 1) - T(i, j, 2 - k) + if (d(i, j, k) < s1*d(i, j, 1)) d(i, j, k) = s1*d(i, j, 1) + if (d(i, j, k) > s2*d(i, j, 1)) d(i, j, k) = s2*d(i, j, 1) + if (T(i, j, k) < s1*T(i, j, 1)) T(i, j, k) = s1*T(i, j, 1) + if (T(i, j, k) > s2*T(i, j, 1)) T(i, j, k) = s2*T(i, j, 1) + + end do + end do + end do + end if + + if (npz == npz0 - 1 .and. (Para%Ghost_Cell(6) == 1 .or. Para%Ghost_Cell(6) == 2)) then ! k+ + do k = nz + 1, nz + LAP + do j = 1, ny + do i = 1, nx + u(i, j, k) = 2.d0*u(i, j, nz) - u(i, j, 2*nz - k) + v(i, j, k) = 2.d0*v(i, j, nz) - v(i, j, 2*nz - k) + w(i, j, k) = 2.d0*w(i, j, nz) - w(i, j, 2*nz - k) + d(i, j, k) = 2.d0*d(i, j, nz) - d(i, j, 2*nz - k) + T(i, j, k) = 2.d0*T(i, j, nz) - T(i, j, 2*nz - k) + if (d(i, j, k) < s1*d(i, j, nz)) d(i, j, k) = s1*d(i, j, nz) + if (d(i, j, k) > s2*d(i, j, nz)) d(i, j, k) = s2*d(i, j, nz) + if (T(i, j, k) < s1*T(i, j, nz)) T(i, j, k) = s1*T(i, j, nz) + if (T(i, j, k) > s2*T(i, j, nz)) T(i, j, k) = s2*T(i, j, nz) + + end do + end do + end do + end if + end + +!-------------------------------------------------- +! Ghost Cell for Jacobian coefficients ; 2nd order exterpolation + subroutine Jac_Ghost_Extent_2nd + use flow_data + implicit none + integer:: i, j, k, i1, j1, k1 + if (npx .eq. 0 .and. Para%Ghost_Cell(1) .eq. 2) then !i- + do k = 1, nz + do j = 1, ny + do i = 1 - LAP, 0 + i1 = 2 - i + Axx(i, j, k) = 2.d0*Axx(1, j, k) - Axx(i1, j, k) + Ayy(i, j, k) = 2.d0*Ayy(1, j, k) - Ayy(i1, j, k) + Azz(i, j, k) = 2.d0*Azz(1, j, k) - Azz(i1, j, k) + end do + end do + end do + + call comput_Jacobian3d_Ghost(1) ! Comput Jocabian coefficient of the Ghost Cells + + end if + + if (npx .eq. npx0 - 1 .and. Para%Ghost_Cell(2) .eq. 2) then ! i+ + do k = 1, nz + do j = 1, ny + do i = nx + 1, nx + LAP + i1 = 2*nx - i + Axx(i, j, k) = 2.d0*Axx(nx, j, k) - Axx(i1, j, k) + Ayy(i, j, k) = 2.d0*Ayy(nx, j, k) - Ayy(i1, j, k) + Azz(i, j, k) = 2.d0*Azz(nx, j, k) - Azz(i1, j, k) + end do + end do + end do + + call comput_Jacobian3d_Ghost(2) ! Comput Jocabian coefficient of the Ghost Cells + end if + + if (npy .eq. 0 .and. Para%Ghost_Cell(3) .eq. 2) then ! j- + do k = 1, nz + do j = 1 - LAP, 0 + do i = 1, nx + j1 = 2 - j + Axx(i, j, k) = 2.d0*Axx(i, 1, k) - Axx(i, j1, k) + Ayy(i, j, k) = 2.d0*Ayy(i, 1, k) - Ayy(i, j1, k) + Azz(i, j, k) = 2.d0*Azz(i, 1, k) - Azz(i, j1, k) + end do + end do + end do + call comput_Jacobian3d_Ghost(3) ! Comput Jocabian coefficient of the Ghost Cells + end if + + if (npy .eq. npy0 - 1 .and. Para%Ghost_Cell(4) .eq. 2) then ! j+ + do k = 1, nz + do j = ny + 1, ny + LAP + do i = 1, nx + j1 = 2*ny - j + Axx(i, j, k) = 2.d0*Axx(i, ny, k) - Axx(i, j1, k) + Ayy(i, j, k) = 2.d0*Ayy(i, ny, k) - Ayy(i, j1, k) + Azz(i, j, k) = 2.d0*Azz(i, ny, k) - Azz(i, j1, k) + end do + end do + end do + call comput_Jacobian3d_Ghost(4) ! Comput Jocabian coefficient of the Ghost Cells + end if + + if (npz .eq. 0 .and. Para%Ghost_Cell(5) .eq. 2) then ! k- + do k = 1 - LAP, 0 + do j = 1, ny + do i = 1, nx + k1 = 2 - k + Axx(i, j, k) = 2.d0*Axx(i, j, 1) - Axx(i, j, k1) + Ayy(i, j, k) = 2.d0*Ayy(i, j, 1) - Ayy(i, j, k1) + Azz(i, j, k) = 2.d0*Azz(i, j, 1) - Azz(i, j, k1) + end do + end do + end do + call comput_Jacobian3d_Ghost(5) ! Comput Jocabian coefficient of the Ghost Cells + end if + + if (npz .eq. npz0 - 1 .and. Para%Ghost_Cell(6) .eq. 2) then ! k+ + do k = nz + 1, nz + LAP + do j = 1, ny + do i = 1, nx + k1 = 2*nz - k + Axx(i, j, k) = 2.d0*Axx(i, j, nz) - Axx(i, j, k1) + Ayy(i, j, k) = 2.d0*Ayy(i, j, nz) - Ayy(i, j, k1) + Azz(i, j, k) = 2.d0*Azz(i, j, nz) - Azz(i, j, k1) + end do + end do + end do + call comput_Jacobian3d_Ghost(6) ! Comput Jocabian coefficient of the Ghost Cells + end if + +! test test ------------------------ +! if(npx .eq. 11 .and. npy .eq. 0 .and. npz .eq. 4) then +! open(99,file="test-jac.dat") +! do j=1-LAP, 5 +! write(99,"(15F16.8)") 1.d0*j, Axx(1,j,1),Ayy(1,j,1),Azz(1,j,1),Akx(1,j,1),Aky(1,j,1),Akz(1,j,1), & +! Aix(1,j,1),Aiy(1,j,1),Aiz(1,j,1),Asx(1,j,1),Asy(1,j,1),Asz(1,j,1),Ajac(1,j,1) +! enddo +! close(99) +! endif + + end + +!--------Comput Jocabian coefficients at Ghost Cells + subroutine comput_Jacobian3d_Ghost(nb) + Use flow_data + implicit none + integer:: nb, ib, ie, jb, je, kb, ke ! Jocabian data range + integer:: ib1, ie1, jb1, je1, kb1, ke1 ! coordinate data range + real(kind=OCFD_REAL_KIND):: xi1, xj1, xk1, yi1, yj1, yk1, zi1, zj1, zk1, Jac1 + integer:: i, j, k + + if (nb .eq. 1) then ! i- + ib = 1 - LAP; ie = 0; jb = 1; je = ny; kb = 1; ke = nz + ib1 = ib; ie1 = 1; jb1 = jb; je1 = je; kb1 = kb; ke1 = ke + else if (nb .eq. 2) then ! i+ + ib = nx + 1; ie = nx + LAP; jb = 1; je = ny; kb = 1; ke = nz + ib1 = nx; ie1 = ie; jb1 = jb; je1 = je; kb1 = kb; ke1 = ke + else if (nb .eq. 3) then + ib = 1; ie = nx; jb = 1 - LAP; je = 0; kb = 1; ke = nz + ib1 = ib; ie1 = ie; jb1 = jb; je1 = 1; kb1 = kb; ke1 = ke + else if (nb .eq. 4) then + ib = 1; ie = nx; jb = ny + 1; je = ny + LAP; kb = 1; ke = nz + ib1 = ib; ie1 = ie; jb1 = ny; je1 = je; kb1 = kb; ke1 = ke + else if (nb .eq. 5) then + ib = 1; ie = nx; jb = 1; je = ny; kb = 1 - LAP; ke = 0 + ib1 = ib; ie1 = ie; jb1 = jb; je1 = je; kb1 = kb; ke1 = 1 + else if (nb .eq. 6) then + ib = 1; ie = nx; jb = 1; je = ny; kb = nz + 1; ke = nz + LAP + ib1 = ib; ie1 = ie; jb1 = jb; je1 = je; kb1 = nz; ke1 = ke + end if + + do k = kb, ke + do j = jb, je + do i = ib, ie + + if (i .eq. ib1) then + xi1 = (-3.d0*Axx(i, j, k) + 4.d0*Axx(i + 1, j, k) - Axx(i + 2, j, k))/(2.d0*hx) ! 2nd one-side scheme + yi1 = (-3.d0*Ayy(i, j, k) + 4.d0*Ayy(i + 1, j, k) - Ayy(i + 2, j, k))/(2.d0*hx) + zi1 = (-3.d0*Azz(i, j, k) + 4.d0*Azz(i + 1, j, k) - Azz(i + 2, j, k))/(2.d0*hx) + else if (i .eq. ie1) then + xi1 = (Axx(i - 2, j, k) - 4.d0*Axx(i - 1, j, k) + 3.d0*Axx(i, j, k))/(2.d0*hx) ! 2nd one-side scheme + yi1 = (Ayy(i - 2, j, k) - 4.d0*Ayy(i - 1, j, k) + 3.d0*Ayy(i, j, k))/(2.d0*hx) ! 2nd one-side scheme + zi1 = (Azz(i - 2, j, k) - 4.d0*Azz(i - 1, j, k) + 3.d0*Azz(i, j, k))/(2.d0*hx) ! 2nd one-side scheme + else if (i .eq. ib1 + 1 .or. i .eq. ie1 - 1) then + xi1 = (Axx(i + 1, j, k) - Axx(i - 1, j, k))/(2.d0*hx) ! 2nd centeral scheme + yi1 = (Ayy(i + 1, j, k) - Ayy(i - 1, j, k))/(2.d0*hx) + zi1 = (Azz(i + 1, j, k) - Azz(i - 1, j, k))/(2.d0*hx) + else + xi1 = (8.d0*(Axx(i + 1, j, k) - Axx(i - 1, j, k)) - (Axx(i + 2, j, k) - Axx(i - 2, j, k)))/(12.d0*hx) ! 4th central scheme + yi1 = (8.d0*(Ayy(i + 1, j, k) - Ayy(i - 1, j, k)) - (Ayy(i + 2, j, k) - Ayy(i - 2, j, k)))/(12.d0*hx) + zi1 = (8.d0*(Azz(i + 1, j, k) - Azz(i - 1, j, k)) - (Azz(i + 2, j, k) - Azz(i - 2, j, k)))/(12.d0*hx) + end if + + if (j .eq. jb1) then + xj1 = (-3.d0*Axx(i, j, k) + 4.d0*Axx(i, j + 1, k) - Axx(i, j + 2, k))/(2.d0*hy) ! 2nd one-side scheme + yj1 = (-3.d0*Ayy(i, j, k) + 4.d0*Ayy(i, j + 1, k) - Ayy(i, j + 2, k))/(2.d0*hy) + zj1 = (-3.d0*Azz(i, j, k) + 4.d0*Azz(i, j + 1, k) - Azz(i, j + 2, k))/(2.d0*hy) + + else if (j .eq. je1) then + xj1 = (Axx(i, j - 2, k) - 4.d0*Axx(i, j - 1, k) + 3.d0*Axx(i, j, k))/(2.d0*hy) ! 2nd one-side scheme + yj1 = (Ayy(i, j - 2, k) - 4.d0*Ayy(i, j - 1, k) + 3.d0*Ayy(i, j, k))/(2.d0*hy) + zj1 = (Azz(i, j - 2, k) - 4.d0*Azz(i, j - 1, k) + 3.d0*Azz(i, j, k))/(2.d0*hy) + else if (j .eq. jb1 + 1 .or. j .eq. je1 - 1) then + xj1 = (Axx(i, j + 1, k) - Axx(i, j - 1, k))/(2.d0*hy) ! 2nd centeral scheme + yj1 = (Ayy(i, j + 1, k) - Ayy(i, j - 1, k))/(2.d0*hy) + zj1 = (Azz(i, j + 1, k) - Azz(i, j - 1, k))/(2.d0*hy) + else + xj1 = (8.d0*(Axx(i, j + 1, k) - Axx(i, j - 1, k)) - (Axx(i, j + 2, k) - Axx(i, j - 2, k)))/(12.d0*hy) ! 4th central scheme + yj1 = (8.d0*(Ayy(i, j + 1, k) - Ayy(i, j - 1, k)) - (Ayy(i, j + 2, k) - Ayy(i, j - 2, k)))/(12.d0*hy) + zj1 = (8.d0*(Azz(i, j + 1, k) - Azz(i, j - 1, k)) - (Azz(i, j + 2, k) - Azz(i, j - 2, k)))/(12.d0*hy) + end if + + if (k .eq. kb1) then + xk1 = (-3.d0*Axx(i, j, k) + 4.d0*Axx(i, j, k + 1) - Axx(i, j, k + 2))/(2.d0*hz) ! 2nd one-side scheme + yk1 = (-3.d0*Ayy(i, j, k) + 4.d0*Ayy(i, j, k + 1) - Ayy(i, j, k + 2))/(2.d0*hz) + zk1 = (-3.d0*Azz(i, j, k) + 4.d0*Azz(i, j, k + 1) - Azz(i, j, k + 2))/(2.d0*hz) + else if (k .eq. ke1) then + xk1 = (Axx(i, j, k - 2) - 4.d0*Axx(i, j, k - 1) + 3.d0*Axx(i, j, k))/(2.d0*hz) ! 2nd one-side scheme + yk1 = (Ayy(i, j, k - 2) - 4.d0*Ayy(i, j, k - 1) + 3.d0*Ayy(i, j, k))/(2.d0*hz) + zk1 = (Azz(i, j, k - 2) - 4.d0*Azz(i, j, k - 1) + 3.d0*Azz(i, j, k))/(2.d0*hz) + else if (k .eq. kb1 + 1 .or. k .eq. ke1 - 1) then + xk1 = (Axx(i, j, k + 1) - Axx(i, j, k - 1))/(2.d0*hz) ! 2nd centeral scheme + yk1 = (Ayy(i, j, k + 1) - Ayy(i, j, k - 1))/(2.d0*hz) + zk1 = (Azz(i, j, k + 1) - Azz(i, j, k - 1))/(2.d0*hz) + else + xk1 = (8.d0*(Axx(i, j, k + 1) - Axx(i, j, k - 1)) - (Axx(i, j, k + 2) - Axx(i, j, k - 2)))/(12.d0*hz) ! 4th central scheme + yk1 = (8.d0*(Ayy(i, j, k + 1) - Ayy(i, j, k - 1)) - (Ayy(i, j, k + 2) - Ayy(i, j, k - 2)))/(12.d0*hz) + zk1 = (8.d0*(Azz(i, j, k + 1) - Azz(i, j, k - 1)) - (Azz(i, j, k + 2) - Azz(i, j, k - 2)))/(12.d0*hz) + end if + + Jac1 = 1.d0/(xi1*yj1*zk1 + yi1*zj1*xk1 + zi1*xj1*yk1 - zi1*yj1*xk1 - yi1*xj1*zk1 - xi1*zj1*yk1) ! 1./Jocabian = d(x,y,z)/d(i,j,k) + Ajac(i, j, k) = Jac1 + Akx(i, j, k) = Jac1*(yj1*zk1 - zj1*yk1) + Aky(i, j, k) = Jac1*(zj1*xk1 - xj1*zk1) + Akz(i, j, k) = Jac1*(xj1*yk1 - yj1*xk1) + Aix(i, j, k) = Jac1*(yk1*zi1 - zk1*yi1) + Aiy(i, j, k) = Jac1*(zk1*xi1 - xk1*zi1) + Aiz(i, j, k) = Jac1*(xk1*yi1 - yk1*xi1) + Asx(i, j, k) = Jac1*(yi1*zj1 - zi1*yj1) + Asy(i, j, k) = Jac1*(zi1*xj1 - xi1*zj1) + Asz(i, j, k) = Jac1*(xi1*yj1 - yi1*xj1) + if (Jac1 .lt. 0) then + print *, " Jocabian < 0 !!! , Jac=", Jac1 + print *, "i,j,k=", i_offset(npx) + i - 1, j_offset(npy) + j - 1, k_offset(npz) + k - 1 + end if + end do + end do + end do + + end + diff --git a/src/OCFD_GhostCell_UserDef.f90 b/src/OCFD_GhostCell_UserDef.f90 new file mode 100644 index 0000000..e7c3d04 --- /dev/null +++ b/src/OCFD_GhostCell_UserDef.f90 @@ -0,0 +1,136 @@ +! User Defined Ghost-Cell boundary, for Jacobian and flow +!-------------------------------------------------- +! Ghost Cell for Jacobian coefficients (User defined) + subroutine Jac_Ghost_Userdef + use flow_data + implicit none + if (Para%IBC .eq. BC_SweptCorner) then + call Jac_Ghost_Sweptcorner + else if (Para%IBC .eq. BC_BoundaryLayer) then + call Jac_Ghost_flatplate ! only work in flatplate case ( invalid for compression corner or curve wall case) + end if + end + + subroutine Flow_Ghost_Userdef + use flow_data + implicit none + if (Para%IBC .eq. BC_SweptCorner) then + call Flow_Ghost_Sweptcorner + else if (Para%IBC .eq. BC_BoundaryLayer) then + call Flow_Ghost_flatplate + end if + end + +! Ghost Cell for Jacobian coefficients for sweptcorner (symmetry in plane z=0) + subroutine Jac_Ghost_Sweptcorner + use flow_data + implicit none + integer:: i, j, k, k1 + if (npz .eq. 0 .and. Para%Ghost_Cell(5) .eq. -1) then !k- + do k = 1 - LAP, 0 + k1 = 1 - k + do j = 1, ny + do i = 1, nx + Akx(i, j, k) = Akx(i, j, k1) + Aky(i, j, k) = Aky(i, j, k1) + Akz(i, j, k) = -Akz(i, j, k1) + Aix(i, j, k) = Aix(i, j, k1) + Aiy(i, j, k) = Aiy(i, j, k1) + Aiz(i, j, k) = -Aiz(i, j, k1) + Asx(i, j, k) = -Asx(i, j, k1) + Asy(i, j, k) = -Asy(i, j, k1) + Asz(i, j, k) = Asz(i, j, k1) + Ajac(i, j, k) = Ajac(i, j, k1) + + Axx(i, j, k) = Axx(i, j, k1) + Ayy(i, j, k) = Ayy(i, j, k1) + Azz(i, j, k) = -Azz(i, j, k1) + end do + end do + end do + end if + end + +!----------------------------------------------- +! Ghost Cell for Sweptcorner (z=0 : symmetry ) + subroutine Flow_Ghost_Sweptcorner + use flow_data + implicit none + integer i, j, k, k1 + + if (npz == 0 .and. Para%Ghost_Cell(5) .eq. -1) then ! k- + do k = 1 - LAP, 0 + k1 = 1 - k + do j = 1, ny + do i = 1, nx + u(i, j, k) = u(i, j, k1) + v(i, j, k) = v(i, j, k1) + w(i, j, k) = -w(i, j, k1) + d(i, j, k) = d(i, j, k1) + T(i, j, k) = T(i, j, k1) + end do + end do + end do + end if + + end + +! Used for flatplate boundary layers at y=0 (symmetry in y=0) + subroutine Jac_Ghost_flatplate + use flow_data + implicit none + integer:: i, j, k, j1 + if (npy .eq. 0 .and. Para%Ghost_Cell(3) .eq. -1) then !j- + do k = 1, nz + do j = 1 - LAP, 0 + j1 = 2 - j ! 0 <---> 2 ; -1 <----> 3 + do i = 1, nx + Akx(i, j, k) = Akx(i, j1, k) + Aky(i, j, k) = -Aky(i, j1, k) + Akz(i, j, k) = Akz(i, j1, k) + Aix(i, j, k) = -Aix(i, j1, k) + Aiy(i, j, k) = Aiy(i, j1, k) + Aiz(i, j, k) = -Aiz(i, j1, k) + Asx(i, j, k) = Asx(i, j1, k) + Asy(i, j, k) = -Asy(i, j1, k) + Asz(i, j, k) = Asz(i, j1, k) + Ajac(i, j, k) = Ajac(i, j1, k) + + Axx(i, j, k) = Axx(i, j1, k) + Ayy(i, j, k) = -Ayy(i, j1, k) + Azz(i, j, k) = Azz(i, j1, k) + end do + end do + end do + end if + end + +!----------------------------------------------- +! Ghost Cell for flatplate (y=0 : symmetry ) + subroutine Flow_Ghost_flatplate + use flow_data + implicit none + integer i, j, k, j1 + Real(kind=OCFD_REAL_KIND), parameter:: s1 = 0.5d0, s2 = 2.d0 ! limter + + if (npy == 0 .and. Para%Ghost_Cell(3) == -1) then ! j- + + do k = 1, nz + do j = 1 - LAP, 0 + j1 = 2 - j + do i = 1, nx + u(i, j, k) = 2.d0*u(i, 1, k) - u(i, j1, k) + v(i, j, k) = 2.d0*v(i, 1, k) - v(i, j1, k) + w(i, j, k) = 2.d0*w(i, 1, k) - w(i, j1, k) + + d(i, j, k) = 2.d0*d(i, 1, k) - d(i, j1, k) + T(i, j, k) = 2.d0*T(i, 1, k) - T(i, j1, k) + if (d(i, j, k) < s1*d(i, 1, k)) d(i, j, k) = s1*d(i, 1, k) + if (d(i, j, k) > s2*d(i, 1, k)) d(i, j, k) = s2*d(i, 1, k) + if (T(i, j, k) < s1*T(i, 1, k)) T(i, j, k) = s1*T(i, 1, k) + if (T(i, j, k) > s2*T(i, 1, k)) T(i, j, k) = s2*T(i, 1, k) + end do + end do + end do + end if + end diff --git a/src/OCFD_IO.f90 b/src/OCFD_IO.f90 new file mode 100644 index 0000000..e03407b --- /dev/null +++ b/src/OCFD_IO.f90 @@ -0,0 +1,104 @@ +!Read & save file +!Copyright by Li Xinliang, lixl@lnm.imech.ac.cn +!----------------------------------------------------------------------------------------- +! read file, OpenCFD-1.5 + subroutine read_flow_data + use flow_data + implicit none + character(len=100):: filename + integer:: ierr + logical :: file_exist +!----------------------------------------------------------- + filename = "opencfd.dat" + + ! Check if the file exists + inquire( file=trim(filename), exist=file_exist ) + + if(.not. file_exist) then + call flowfield_init('TGV') + return + endif + + if (my_id .eq. 0) then + print *, 'read initial data file: ', filename + open (55, file=filename, form='unformatted') + read (55) Istep, tt + print *, Istep, tt + end if + + call MPI_bcast(Istep, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) + call MPI_bcast(tt, 1, OCFD_DATA_TYPE, 0, MPI_COMM_WORLD, ierr) + call read_3d1(55, d) + call read_3d1(55, u) + call read_3d1(55, v) + call read_3d1(55, w) + call read_3d1(55, T) + + if (my_id .eq. 0) then + close (55) + print *, 'read data ok' + end if + end + +!================================================================================ +! save file, OpenCFD 1.5 + subroutine save_flow_data + use flow_data + implicit none + character(len=100) filename1 + write (filename1, "('OCFD'I8.8'.dat')") Istep + + if (my_id .eq. 0) then + print *, 'write data file:', filename1 + open (155, file=filename1, form='unformatted') + write (155) Istep, tt + end if + call write_3d1(155, d) + call write_3d1(155, u) + call write_3d1(155, v) + call write_3d1(155, w) + call write_3d1(155, T) + if (my_id .eq. 0) then + close (155) + print *, 'write data ok' + end if + end +!------------------------------------------------------------------------------------------- + +!--------------------------------------------------------------------------------------------- + subroutine write_3d1(file_no, U) + use flow_para + implicit none + integer file_no, i, j, k + real(kind=OCFD_REAL_KIND):: U(1 - LAP:nx + LAP, 1 - LAP:ny + LAP, 1 - LAP:nz + LAP) + real(kind=OCFD_REAL_KIND), allocatable:: U1(:, :, :) + allocate (U1(nx, ny, nz)) + do k = 1, nz + do j = 1, ny + do i = 1, nx + U1(i, j, k) = U(i, j, k) + end do + end do + end do + call write_3d(file_no, U1, nx, ny, nz, nx_global, ny_global, nz_global) + deallocate (U1) + end + + subroutine read_3d1(file_no, U) + use flow_para + implicit none + integer file_no, i, j, k + real(kind=OCFD_REAL_KIND):: U(1 - LAP:nx + LAP, 1 - LAP:ny + LAP, 1 - LAP:nz + LAP) + real(kind=OCFD_REAL_KIND), allocatable:: U1(:, :, :) + allocate (U1(nx, ny, nz)) + call read_3d(file_no, U1, nx, ny, nz, nx_global, ny_global, nz_global) + do k = 1, nz + do j = 1, ny + do i = 1, nx + U(i, j, k) = U1(i, j, k) + end do + end do + end do + deallocate (U1) + end + diff --git a/src/OCFD_IO_mpi.f90 b/src/OCFD_IO_mpi.f90 new file mode 100644 index 0000000..a4c5bda --- /dev/null +++ b/src/OCFD_IO_mpi.f90 @@ -0,0 +1,330 @@ +! Read and write files by MPI +! Copyright by Li Xinliang +!------------------------------------------------------------ + +!-------------------------------------------------------------------------- +! write f(1:nx_global, 1:ny_global, ka) (f=d,u,v,w,T) + subroutine write_2d_XYa(file_no, ka, U) +! write a xy-plane data, i.e U_globle(1:nx_global,1:ny_lobal,ka) +! Use MPI_REDUCE + use flow_para + implicit none + integer file_no, ka, node_k, k_local, i, j, i1, j1, ierr + real(kind=OCFD_REAL_KIND):: U(1 - LAP:nx + LAP, 1 - LAP:ny + LAP, 1 - LAP:nz + LAP) + real(kind=OCFD_REAL_KIND), allocatable, dimension(:, :) :: U2d, U0 + + allocate (U2d(nx_global, ny_global), U0(nx_global, ny_global)) + U2d = 0.d0 + U0 = 0.d0 + call get_k_node(ka, node_k, k_local) + if (npz .eq. node_k) then + do j = 1, ny + do i = 1, nx + i1 = i_offset(npx) + i - 1 + j1 = j_offset(npy) + j - 1 + U2d(i1, j1) = U(i, j, k_local) + end do + end do + end if + call MPI_Reduce(U2d, U0, nx_global*ny_global, OCFD_DATA_TYPE, MPI_SUM, 0, MPI_COMM_WORLD, ierr) + if (my_id .eq. 0) then + write (file_no) U0 + end if + deallocate (U2d, U0) + end + +!-------------------------------------------------------------- +!-----Write a 2D Y-Z (j-k) plane from 3-D array + subroutine write_2d_YZa(file_no, ia, U) + use flow_para + implicit none + integer ierr, ia, node_i, i_local + integer file_no, j, k, j1, k1 + real(kind=OCFD_REAL_KIND):: U(1 - LAP:nx + LAP, 1 - LAP:ny + LAP, 1 - LAP:nz + LAP) + real(kind=OCFD_REAL_KIND), allocatable, dimension(:, :):: U2d, U0 + +!-------------------------------------------- + allocate (U2d(ny_global, nz_global), U0(ny_global, nz_global)) + U2d = 0.d0 + U0 = 0.d0 + + call get_i_node(ia, node_i, i_local) + if (npx .eq. node_i) then + do k = 1, nz + do j = 1, ny + j1 = j_offset(npy) + j - 1 + k1 = k_offset(npz) + k - 1 + U2d(j1, k1) = U(i_local, j, k) + end do + end do + end if + + call MPI_Reduce(U2d, U0, ny_global*nz_global, OCFD_DATA_TYPE, MPI_SUM, 0, MPI_COMM_WORLD, ierr) + if (my_id .eq. 0) then + write (file_no) U0 + end if + deallocate (U2d, U0) + end + +!------------------------------------------------- +!----Write a 2d xz-plane from 3d array------------------------ + + subroutine write_2d_XZa(file_no, ja, U) + use flow_para + implicit none + integer file_no, ierr, i, k, i1, k1, ja, node_j, j_local + real(kind=OCFD_REAL_KIND):: U(1 - LAP:nx + LAP, 1 - LAP:ny + LAP, 1 - LAP:nz + LAP) + real(kind=OCFD_REAL_KIND), allocatable, dimension(:, :):: U2d, U0 + allocate (U2d(nx_global, nz_global), U0(nx_global, nz_global)) + + U2d = 0.d0 + U0 = 0.d0 + call get_j_node(ja, node_j, j_local) + if (npy .eq. node_j) then + do k = 1, nz + do i = 1, nx + i1 = i_offset(npx) + i - 1 + k1 = k_offset(npz) + k - 1 + U2d(i1, k1) = U(i, j_local, k) + end do + end do + end if + call MPI_Reduce(U2d, U0, nx_global*nz_global, OCFD_DATA_TYPE, MPI_SUM, 0, MPI_COMM_WORLD, ierr) + if (my_id .eq. 0) then + write (file_no) U0 + end if + deallocate (U2d, U0) + end + +!-------------------------------------------------- + +!----Write points from 3d array------------------------ + + subroutine write_points(file_no, U, mpoints, ia, ja, ka) + use flow_para + implicit none + integer mpoints, m, nrecv + integer Status(MPI_status_Size), ierr + integer file_no, node_i, node_j, node_k, i_local, j_local, k_local + integer, dimension(mpoints):: ia, ja, ka + real(kind=OCFD_REAL_KIND):: U(1 - LAP:nx + LAP, 1 - LAP:ny + LAP, 1 - LAP:nz + LAP) + real(kind=OCFD_REAL_KIND):: U1(mpoints) +!-------------------------------- + do m = 1, mpoints + call get_i_node(ia(m), node_i, i_local) + call get_j_node(ja(m), node_j, j_local) + call get_k_node(ka(m), node_k, k_local) + if (npx .eq. node_i .and. npy .eq. node_j .and. npz .eq. node_k) then + call MPI_Bsend(U(i_local, j_local, k_local), 1, OCFD_DATA_TYPE, 0, 0, MPI_COMM_WORLD, ierr) + end if + + if (my_id .eq. 0) then + nrecv = node_k*npx0*npy0 + node_j*npx0 + node_i + call MPI_Recv(U1(m), 1, OCFD_DATA_TYPE, nrecv, 0, MPI_COMM_WORLD, status, ierr) + end if + end do + if (my_id .eq. 0) then + write (file_no) U1 + end if + end + +!-------------------------------------------------- + subroutine read_3d(file_no, U, nx, ny, nz, nx0, ny0, nz0) + use OCFD_precision + use Para_mpi + implicit none + integer nx, ny, nz, nx0, ny0, nz0 + integer Status(MPI_status_Size), ierr, i1, j1, k1, nk, i0, j0, ia, i, j, k, kk + integer file_no, npx1, npy1, npz1, recvcount + real(kind=OCFD_REAL_KIND):: U(nx, ny, nz) + real(kind=OCFD_REAL_KIND), allocatable:: buff2d(:, :), buff1(:, :), buff2(:), buff_recv(:) + integer, allocatable:: sendcounts1(:), displs1(:), sendcounts2(:), displs2(:) +!--------------------------------------------------------------- + allocate (buff2d(nx0, ny0), buff1(nx0, ny), buff2(nx0*ny), buff_recv(nx*ny)) + allocate (sendcounts1(npy0), displs1(npy0), sendcounts2(npx0), displs2(npx0)) + + if (my_id .eq. 0) print *, 'read 3d data ...' + + do npy1 = 0, npy0 - 1 + sendcounts1(npy1 + 1) = nx0*j_nn(npy1) + if (npy1 .eq. 0) then + displs1(npy1 + 1) = 0 + else + displs1(npy1 + 1) = displs1(npy1) + sendcounts1(npy1) + end if + end do + + do npx1 = 0, npx0 - 1 + sendcounts2(npx1 + 1) = i_nn(npx1)*ny + if (npx1 .eq. 0) then + displs2(npx1 + 1) = 0 + else + displs2(npx1 + 1) = displs2(npx1) + sendcounts2(npx1) + end if + end do + + do kk = 1, nz0 + call get_k_node(kk, nk, k1) + + if (my_id .eq. 0) then + read (file_no) buff2d + end if + + if (nk .ne. 0) then + if (my_id .eq. 0) call MPI_Send(buff2d, nx0*ny0, OCFD_DATA_TYPE, nk*(npx0*npy0), 6666, MPI_COMM_WORLD, ierr) + if (npx .eq. 0 .and. npy .eq. 0 .and. npz .eq. nk) & + call MPI_recv(buff2d, nx0*ny0, OCFD_DATA_TYPE, 0, 6666, MPI_COMM_WORLD, status, ierr) + end if + + if (npz .eq. nk) then + if (npx .eq. 0) then + call MPI_scatterv(buff2d, sendcounts1, displs1, OCFD_DATA_TYPE, buff1, nx0*ny, OCFD_DATA_TYPE, 0, MPI_COMM_Y, ierr) + end if + ! re-arrage data ......, transfer buff1 to buff2 + ia = 0 + do npx1 = 0, npx0 - 1 + do i = 1, i_nn(npx1)*ny + i0 = i_offset(npx1) + mod(i - 1, i_nn(npx1)) + j0 = int((i - 1)/i_nn(npx1)) + 1 + buff2(ia + i) = buff1(i0, j0) + end do + ia = ia + i_nn(npx1)*ny + end do + + call MPI_scatterv(buff2, sendcounts2, displs2, OCFD_DATA_TYPE, buff_recv, nx*ny, OCFD_DATA_TYPE, 0, MPI_COMM_X, ierr) + + do j1 = 1, ny + do i1 = 1, nx + U(i1, j1, k1) = buff_recv(i1 + (j1 - 1)*nx) + end do + end do + end if + end do + deallocate (buff2d, buff1, buff2, buff_recv) + deallocate (sendcounts1, displs1, sendcounts2, displs2) + end + +!------------------------------------------------------------------------------------------ + subroutine write_3d(file_no, U, nx, ny, nz, nx0, ny0, nz0) + use OCFD_precision + use Para_mpi + implicit none + integer nx, ny, nz, nx0, ny0, nz0 + integer Status(MPI_status_Size), ierr, i1, j1, k1, nk, i0, j0, ia, i, j, k, kk + integer file_no, npx1, npy1, npz1, recvcount + real(kind=OCFD_REAL_KIND):: U(nx, ny, nz) + real(kind=OCFD_REAL_KIND), allocatable:: buff2d(:, :), buff1(:, :), buff2(:), buff_send(:) + integer, allocatable:: recvcounts1(:), displs1(:), recvcounts2(:), displs2(:) +!--------------------------------------------------------------- + allocate (buff2d(nx0, ny0), buff1(nx0, ny), buff2(nx0*ny), buff_send(nx*ny)) + allocate (recvcounts1(npy0), displs1(npy0), recvcounts2(npx0), displs2(npx0)) + + if (my_id .eq. 0) print *, 'write 3d data ...' + + do npy1 = 0, npy0 - 1 + recvcounts1(npy1 + 1) = nx0*j_nn(npy1) + if (npy1 .eq. 0) then + displs1(npy1 + 1) = 0 + else + displs1(npy1 + 1) = displs1(npy1) + recvcounts1(npy1) + end if + end do + + do npx1 = 0, npx0 - 1 + recvcounts2(npx1 + 1) = i_nn(npx1)*ny + if (npx1 .eq. 0) then + displs2(npx1 + 1) = 0 + else + displs2(npx1 + 1) = displs2(npx1) + recvcounts2(npx1) + end if + end do + + do kk = 1, nz0 + call get_k_node(kk, nk, k1) + + if (npz .eq. nk) then + do j1 = 1, ny + do i1 = 1, nx + buff_send(i1 + (j1 - 1)*nx) = U(i1, j1, k1) + end do + end do + call MPI_gatherv(buff_send, nx*ny, OCFD_DATA_TYPE, buff2, recvcounts2, displs2, OCFD_DATA_TYPE, 0, MPI_COMM_X, ierr) + + ia = 0 + do npx1 = 0, npx0 - 1 + do i = 1, i_nn(npx1)*ny + i0 = i_offset(npx1) + mod(i - 1, i_nn(npx1)) ! i_offset(npx1)+(mod(i-1,i_nn(npx1))+1) -1 + j0 = int((i - 1)/i_nn(npx1)) + 1 + buff1(i0, j0) = buff2(ia + i) + end do + ia = ia + i_nn(npx1)*ny + end do + + if (npx .eq. 0) then + call MPI_gatherv(buff1, nx0*ny, OCFD_DATA_TYPE, buff2d, recvcounts1, displs1, OCFD_DATA_TYPE, 0, MPI_COMM_Y, ierr) + end if + end if + + if (nk .ne. 0) then + if (npx .eq. 0 .and. npy .eq. 0 .and. npz .eq. nk) & + call MPI_send(buff2d, nx0*ny0, OCFD_DATA_TYPE, 0, 6666, MPI_COMM_WORLD, ierr) + if (my_id .eq. 0) call MPI_recv(buff2d, nx0*ny0, OCFD_DATA_TYPE, nk*(npx0*npy0), 6666, MPI_COMM_WORLD, status, ierr) + end if + + if (my_id .eq. 0) then + write (file_no) buff2d + end if + end do + + deallocate (buff2d, buff1, buff2, buff_send) + deallocate (recvcounts1, displs1, recvcounts2, displs2) + + end + +!--------------------------------Write blockdata from 3d array------------------------------------------------- + + subroutine write_blockdata(file_no, U, ib, ie, jb, je, kb, ke) + use flow_para + implicit none + integer Status(MPI_status_Size), ierr + integer:: file_no, ib, ie, jb, je, kb, ke, nx1, ny1, nz1, i, j, k, i0, j0, k0, i1, j1, k1 + real(kind=OCFD_REAL_KIND):: U(1 - LAP:nx + LAP, 1 - LAP:ny + LAP, 1 - LAP:nz + LAP) + real(kind=OCFD_REAL_KIND), allocatable, dimension(:, :, :):: U1, U0 +!-------------------------------- + nx1 = ie - ib + 1; ny1 = je - jb + 1; nz1 = ke - kb + 1 + allocate (U1(nx1, ny1, nz1), U0(nx1, ny1, nz1)) + do k = 1, nz1 + do j = 1, ny1 + do i = 1, nx1 + U1(i, j, k) = 0.d0 + U0(i, j, k) = 0.d0 + end do + end do + end do + + do k = 1, nz + do j = 1, ny + do i = 1, nx + k0 = k_offset(npz) + k - 1 + j0 = j_offset(npy) + j - 1 + i0 = i_offset(npx) + i - 1 + if (i0 >= ib .and. i0 <= ie .and. j0 >= jb .and. j0 <= je .and. k0 >= kb .and. k0 <= ke) then + i1 = i0 - ib + 1 + j1 = j0 - jb + 1 + k1 = k0 - kb + 1 + U1(i1, j1, k1) = U(i, j, k) + end if + end do + end do + end do + + call MPI_Reduce(U1, U0, nx1*ny1*nz1, OCFD_DATA_TYPE, MPI_SUM, 0, MPI_COMM_WORLD, ierr) + + if (my_id .eq. 0) then + write (file_no) U0 + end if + deallocate (U1, U0) + end + +!-------------------------------------------------- + diff --git a/src/OCFD_NS_Solver.f90 b/src/OCFD_NS_Solver.f90 new file mode 100644 index 0000000..eaabbcc --- /dev/null +++ b/src/OCFD_NS_Solver.f90 @@ -0,0 +1,160 @@ +! 3D Compressible N-S Finite Difference Solver +! CopyRight by Li Xinliang Email: lixl@imech.ac.cn +! Version 2.x 2021-2 +!--------------------------------------------------------------------- + subroutine NS_solver + use flow_data + implicit none + real*8:: wall_time,wall_time_beg,wall_time_end + integer:: KRK, i, j, k, m, ierr +!----------------------------------------------------------------------- + call allocate_flow_data ! f, fn, d,u,v,w,T, Axx,Ayy,....,Ajac + call allocate_inviscous_data ! work data for inviscous terms + call allocate_vicous_data ! work data for viscous terms + call init3d + call OCFD_bc ! boundary condition + + if (my_id .eq. 0) print *, 'init ok' + wall_time = MPI_wtime() + wall_time_beg=wall_time +!c----------------------------------------------------------------------- + do while (tt < Para%End_time - Para%dt*1.d-4) ! -dt*1.d-4 , considering rounding error + + do m = 1, 5 + do k = 1, nz + do j = 1, ny + do i = 1, nx + fn(i, j, k, m) = f(i, j, k, m) + end do + end do + end do + end do + + do KRK = 1, 3 ! 3-step Runge-Kutta + + call exchange_boundary_xyz(d) + call exchange_boundary_xyz(u) + call exchange_boundary_xyz(v) + call exchange_boundary_xyz(w) + call exchange_boundary_xyz(T) + + if (KRK .eq. 1 .and. Scheme%Scheme_Invis == OCFD_Scheme_Hybrid) then + call comput_Rhybrid ! comput only KRK=1 + end if + + if (Para%IF_Scheme_Character .eq. 0) then + call du_inviscous ! inviscous term (non-character type) + else + call du_inviscous_Character ! inviscous term (character type) + end if + + if (Para%IF_Viscous .eq. 1) then + call du_viscous + end if + + call OCFD_time_adv_RK3(KRK) ! time advance (3-step RK) + + call comput_duvwT ! comput d,u,v,w,T + call OCFD_bc ! boundary condition + + end do + +!c ---------------4. Loop of t ------------------ + + Istep = Istep + 1 + tt = tt + Para%dt + + call filtering(f) + + if (mod(Istep, Para%Istep_show) .eq. 0) then + call show_flow_msg(wall_time) ! CPU time, Total energy, Kinetic energy, Total entropy + end if + + call OCFD_analysis + if (mod(Istep, Para%Istep_Save) .eq. 0) call save_flow_data + +! call MPI_barrier(MPI_COMM_WORLD,ierr) + + end do + wall_time_end = MPI_wtime() + if (my_id .eq. 0) print*,'total wtime cost:',wall_time_end-wall_time_beg +!c--------------------------------------------------------------------- + call save_flow_data + if (my_id .eq. 0) print *, 'OK The END of opencfd' + + call deallocate_flow_data + call deallocate_inviscous_data + call deallocate_vicous_data + end + +!----------------------------------------------------------------------------------- + +!----------------------------------------------------------------------------------- + subroutine allocate_flow_data + use flow_data + implicit none +!----------------------------------------------------------------------- + +! allocate flow data space + allocate (f(nx, ny, nz, 5), fn(nx, ny, nz, 5), & + du(nx, ny, nz, 5), Amu(nx, ny, nz)) + + allocate (d(1 - LAP:nx + LAP, 1 - LAP:ny + LAP, 1 - LAP:nz + LAP), & + u(1 - LAP:nx + LAP, 1 - LAP:ny + LAP, 1 - LAP:nz + LAP), & + v(1 - LAP:nx + LAP, 1 - LAP:ny + LAP, 1 - LAP:nz + LAP), & + w(1 - LAP:nx + LAP, 1 - LAP:ny + LAP, 1 - LAP:nz + LAP), & + T(1 - LAP:nx + LAP, 1 - LAP:ny + LAP, 1 - LAP:nz + LAP)) + + d = 1.d0; u = 1.d0; v = 1.d0; w = 1.d0; T = 1.d0 ! initial as 1.0 + Amu = 0.d0 ! initial as 0 + du = 0.d0 ! initial as 0 +! Amu_t=0.d0 + +!-----Coordinate and Jacobian coefficients (Akx1=Akx/Ajac) ----------- + allocate (Axx(1 - LAP:nx + LAP, 1 - LAP:ny + LAP, 1 - LAP:nz + LAP), & + Ayy(1 - LAP:nx + LAP, 1 - LAP:ny + LAP, 1 - LAP:nz + LAP), & + Azz(1 - LAP:nx + LAP, 1 - LAP:ny + LAP, 1 - LAP:nz + LAP), & + Akx(1 - LAP:nx + LAP, 1 - LAP:ny + LAP, 1 - LAP:nz + LAP), & + Aky(1 - LAP:nx + LAP, 1 - LAP:ny + LAP, 1 - LAP:nz + LAP), & + Akz(1 - LAP:nx + LAP, 1 - LAP:ny + LAP, 1 - LAP:nz + LAP), & + Aix(1 - LAP:nx + LAP, 1 - LAP:ny + LAP, 1 - LAP:nz + LAP), & + Aiy(1 - LAP:nx + LAP, 1 - LAP:ny + LAP, 1 - LAP:nz + LAP), & + Aiz(1 - LAP:nx + LAP, 1 - LAP:ny + LAP, 1 - LAP:nz + LAP), & + Asx(1 - LAP:nx + LAP, 1 - LAP:ny + LAP, 1 - LAP:nz + LAP), & + Asy(1 - LAP:nx + LAP, 1 - LAP:ny + LAP, 1 - LAP:nz + LAP), & + Asz(1 - LAP:nx + LAP, 1 - LAP:ny + LAP, 1 - LAP:nz + LAP), & + Ajac(1 - LAP:nx + LAP, 1 - LAP:ny + LAP, 1 - LAP:nz + LAP), & + Akx1(1 - LAP:nx + LAP, 1 - LAP:ny + LAP, 1 - LAP:nz + LAP), & + Aky1(1 - LAP:nx + LAP, 1 - LAP:ny + LAP, 1 - LAP:nz + LAP), & + Akz1(1 - LAP:nx + LAP, 1 - LAP:ny + LAP, 1 - LAP:nz + LAP), & + Aix1(1 - LAP:nx + LAP, 1 - LAP:ny + LAP, 1 - LAP:nz + LAP), & + Aiy1(1 - LAP:nx + LAP, 1 - LAP:ny + LAP, 1 - LAP:nz + LAP), & + Aiz1(1 - LAP:nx + LAP, 1 - LAP:ny + LAP, 1 - LAP:nz + LAP), & + Asx1(1 - LAP:nx + LAP, 1 - LAP:ny + LAP, 1 - LAP:nz + LAP), & + Asy1(1 - LAP:nx + LAP, 1 - LAP:ny + LAP, 1 - LAP:nz + LAP), & + Asz1(1 - LAP:nx + LAP, 1 - LAP:ny + LAP, 1 - LAP:nz + LAP)) + + if (Scheme%Scheme_Invis == OCFD_Scheme_Hybrid) then + allocate (Rhybrid(1 - LAP:nx + LAP, 1 - LAP:ny + LAP, 1 - LAP:nz + LAP)) + Rhybrid = 0.d0 + end if + +! ------initial as 1.0 -------- + Axx = 1.d0; Ayy = 1.d0; Azz = 1.d0 + Akx = 1.d0; Aky = 1.d0; Akz = 1.d0 + Aix = 1.d0; Aiy = 1.d0; Aiz = 1.d0 + Asx = 1.d0; Asy = 1.d0; Asz = 1.d0 + Ajac = 1.d0 + Akx1 = 1.d0; Aky1 = 1.d0; Akz1 = 1.d0 + Aix1 = 1.d0; Aiy1 = 1.d0; Aiz1 = 1.d0 + Asx1 = 1.d0; Asy1 = 1.d0; Asz1 = 1.d0 + end + + subroutine deallocate_flow_data + use flow_data + implicit none + deallocate (f, fn, du, Amu, d, u, v, T, Axx, Ayy, Akx, Aky, Aix, Aiy, Ajac, Akx1, Aky1, Aix1, Aiy1) + if (Scheme%Scheme_Invis == OCFD_Scheme_Hybrid) then + deallocate (Rhybrid) + end if + end diff --git a/src/OCFD_Schemes.f90 b/src/OCFD_Schemes.f90 new file mode 100644 index 0000000..31611a6 --- /dev/null +++ b/src/OCFD_Schemes.f90 @@ -0,0 +1,358 @@ +! Shock Capturing Schemes: WENO5, WENO7, OMP6 +! The same as that in OCFD2d_Scheme_1.f90, but more efficiently; +! 与OCFD2d_Scheme_1.f90 中的代码算法与功能均相同, 且计算效率更高 (但不适用于特征分裂) +! 5th order WENO scheme (for single scheme ib= 0, ie=nx ) +! orient==1 for flux+ ; -1 for flux- + subroutine OCFD_weno5P(v, hh, nx, LAP, ib, ie) + Use OCFD_constants + implicit none + integer nx, LAP, i, ib, ie + real(kind=OCFD_REAL_KIND):: v(1 - LAP:nx + LAP), hh(0:nx) + real(kind=OCFD_REAL_KIND):: S0, S1, S2, a0, a1, a2, am, q03, q13, q23 + real(kind=OCFD_REAL_KIND), parameter:: ep = 1.d-6, C03 = 3.d0/10.d0, C13 = 3.d0/5.d0, C23 = 1.d0/10.d0 + +! do i=0,nx + do i = ib, ie + S0 = 13.d0/12.d0*(v(i) - 2.d0*v(i + 1) + v(i + 2))**2 + 1.d0/4.d0*(3.d0*v(i) - 4.d0*v(i + 1) + v(i + 2))**2 + S1 = 13.d0/12.d0*(v(i - 1) - 2.d0*v(i) + v(i + 1))**2 + 1.d0/4.d0*(v(i - 1) - v(i + 1))**2 + S2 = 13.d0/12.d0*(v(i - 2) - 2.d0*v(i - 1) + v(i))**2 + 1.d0/4.d0*(v(i - 2) - 4.d0*v(i - 1) + 3.d0*v(i))**2 + a0 = C03/((ep + S0)**2) + a1 = C13/((ep + S1)**2) + a2 = C23/((ep + S2)**2) + am = a0 + a1 + a2 + q03 = 1.d0/3.d0*v(i) + 5.d0/6.d0*v(i + 1) - 1.d0/6.d0*v(i + 2) + q13 = -1.d0/6.d0*v(i - 1) + 5.d0/6.d0*v(i) + 1.d0/3.d0*v(i + 1) + q23 = 1.d0/3.d0*v(i - 2) - 7.d0/6.d0*v(i - 1) + 11.d0/6.d0*v(i) + hh(i) = (a0*q03 + a1*q13 + a2*q23)/am + end do + end + + subroutine OCFD_weno5M(v, hh, nx, LAP, ib, ie) + Use OCFD_constants + implicit none + integer nx, LAP, i, ib, ie + real(kind=OCFD_REAL_KIND):: v(1 - LAP:nx + LAP), hh(0:nx) + real(kind=OCFD_REAL_KIND):: S0, S1, S2, a0, a1, a2, am, q03, q13, q23 + real(kind=OCFD_REAL_KIND), parameter:: ep = 1.d-6, C03 = 3.d0/10.d0, C13 = 3.d0/5.d0, C23 = 1.d0/10.d0 + ! for flux- +! do i=1,nx+1 + do i = ib + 1, ie + 1 + S0 = 13.d0/12.d0*(v(i) - 2.d0*v(i - 1) + v(i - 2))**2 + 1.d0/4.d0*(3.d0*v(i) - 4.d0*v(i - 1) + v(i - 2))**2 + S1 = 13.d0/12.d0*(v(i + 1) - 2.d0*v(i) + v(i - 1))**2 + 1.d0/4.d0*(v(i + 1) - v(i - 1))**2 + S2 = 13.d0/12.d0*(v(i + 2) - 2.d0*v(i + 1) + v(i))**2 + 1.d0/4.d0*(v(i + 2) - 4.d0*v(i + 1) + 3.d0*v(i))**2 + a0 = C03/((ep + S0)**2) + a1 = C13/((ep + S1)**2) + a2 = C23/((ep + S2)**2) + am = a0 + a1 + a2 + q03 = 1.d0/3.d0*v(i) + 5.d0/6.d0*v(i - 1) - 1.d0/6.d0*v(i - 2) + q13 = -1.d0/6.d0*v(i + 1) + 5.d0/6.d0*v(i) + 1.d0/3.d0*v(i - 1) + q23 = 1.d0/3.d0*v(i + 2) - 7.d0/6.d0*v(i + 1) + 11.d0/6.d0*v(i) + hh(i - 1) = (a0*q03 + a1*q13 + a2*q23)/am + end do + + end + +!----------------------------------------------------------------------------------------------------- +! 7th order WENO-JS schemes + +!---------------------------------------------------------------------------------- + subroutine OCFD_weno7P(v, hh, nx, LAP, ib, ie) + Use OCFD_constants + implicit none + integer nx, LAP, i, ib, ie + real(kind=OCFD_REAL_KIND):: v(1 - LAP:nx + LAP), hh(0:nx) + real(kind=OCFD_REAL_KIND):: S0, S1, S2, S3, s10, s11, s12, s13, s20, s21, s22, s23, s30, s31, s32, s33, & + a0, a1, a2, a3, am, q0, q1, q2, q3 + real(kind=OCFD_REAL_KIND), parameter:: & + C0 = 1.d0/35.d0, C1 = 12.d0/35.d0, C2 = 18.d0/35.d0, C3 = 4.d0/35.d0, & + a11 = -2.d0/6.d0, a12 = 9.d0/6.d0, a13 = -18.d0/6.d0, a14 = 11.d0/6.d0, & + a21 = 1.d0/6.d0, a23 = 3.d0/6.d0, a24 = 2.d0/6.d0, & + a31 = -2.d0/6.d0, a32 = -3.d0/6.d0, a34 = -1.d0/6.d0, & + a41 = -11.d0/6.d0, a42 = 18.d0/6.d0, a43 = -9.d0/6.d0, a44 = 2.d0/6.d0, & + b12 = 4.d0, b13 = -5.d0, b14 = 2.d0, b22 = -2.d0, & + b41 = 2.d0, b42 = -5.d0, b43 = 4.d0, c12 = 3.d0, & + d12 = 13.d0/12.d0, d13 = 1043.d0/960.d0, d14 = 1.d0/12.d0 + real(kind=OCFD_REAL_KIND), parameter:: & + e11 = -3.d0/12.d0, e12 = 13.d0/12.d0, e13 = -23.d0/12.d0, e14 = 25.d0/12.d0, & + e21 = 1.d0/12.d0, e22 = -5.d0/12.d0, e23 = 13.d0/12.d0, e24 = 3.d0/12.d0, & + e31 = -1.d0/12.d0, e32 = 7.d0/12.d0, e33 = 7.d0/12.d0, e34 = -1.d0/12.d0, & + e41 = 3.d0/12.d0, e42 = 13.d0/12.d0, e43 = -5.d0/12.d0, e44 = 1.d0/12.d0, & + ep = 1.d-8 !! WENO-JS + +! do i=0,nx + do i = ib, ie +! 7th order WENO scheme +! 1 阶导数 + S10 = a11*v(i - 3) + a12*v(i - 2) + a13*v(i - 1) + a14*v(i) + S11 = a21*v(i - 2) - v(i - 1) + a23*v(i) + a24*v(i + 1) + S12 = a31*v(i - 1) + a32*v(i) + v(i + 1) + a34*v(i + 2) + S13 = a41*v(i) + a42*v(i + 1) + a43*v(i + 2) + a44*v(i + 3) + ! 2 阶导数 + S20 = -v(i - 3) + b12*v(i - 2) + b13*v(i - 1) + b14*v(i) + S21 = v(i - 1) + b22*v(i) + v(i + 1) + S22 = v(i) + b22*v(i + 1) + v(i + 2) + S23 = b41*v(i) + b42*v(i + 1) + b43*v(i + 2) - v(i + 3) +! 3 阶导数 + S30 = -v(i - 3) + c12*(v(i - 2) - v(i - 1)) + v(i) + S31 = -v(i - 2) + c12*(v(i - 1) - v(i)) + v(i + 1) + S32 = -v(i - 1) + c12*(v(i) - v(i + 1)) + v(i + 2) + S33 = -v(i) + c12*(v(i + 1) - v(i + 2)) + v(i + 3) + + S0 = S10*S10 + d12*S20*S20 + d13*S30*S30 + d14*S10*S30 + S1 = S11*S11 + d12*S21*S21 + d13*S31*S31 + d14*S11*S31 + S2 = S12*S12 + d12*S22*S22 + d13*S32*S32 + d14*S12*S32 + S3 = S13*S13 + d12*S23*S23 + d13*S33*S33 + d14*S13*S33 + +!-------WENO J-S---------------------- + a0 = C0/((ep + S0)**2) + a1 = C1/((ep + S1)**2) + a2 = C2/((ep + S2)**2) + a3 = C3/((ep + S3)**2) +!----------------------------------------------- + am = a0 + a1 + a2 + a3 + +! 4阶差分格式的通量 + q0 = e11*v(i - 3) + e12*v(i - 2) + e13*v(i - 1) + e14*v(i) + q1 = e21*v(i - 2) + e22*v(i - 1) + e23*v(i) + e24*v(i + 1) + q2 = e31*v(i - 1) + e32*v(i) + e33*v(i + 1) + e34*v(i + 2) + q3 = e41*v(i) + e42*v(i + 1) + e43*v(i + 2) + e44*v(i + 3) + +! 由4个4阶差分格式组合成1个7阶差分格式 +! hj(i)=W0*q0+W1*q1+W2*q2+W3*q3 + hh(i) = (a0*q0 + a1*q1 + a2*q2 + a3*q3)/am + end do + end + +!----------WENO7 for flux- + subroutine OCFD_weno7M(v, hh, nx, LAP, ib, ie) + Use OCFD_constants + implicit none + integer nx, LAP, i, ib, ie + real(kind=OCFD_REAL_KIND):: v(1 - LAP:nx + LAP), hh(0:nx) + real(kind=OCFD_REAL_KIND):: S0, S1, S2, S3, s10, s11, s12, s13, s20, s21, s22, s23, s30, s31, s32, s33, & + a0, a1, a2, a3, am, q0, q1, q2, q3 + real(kind=OCFD_REAL_KIND), parameter:: & + C0 = 1.d0/35.d0, C1 = 12.d0/35.d0, C2 = 18.d0/35.d0, C3 = 4.d0/35.d0, & + a11 = -2.d0/6.d0, a12 = 9.d0/6.d0, a13 = -18.d0/6.d0, a14 = 11.d0/6.d0, & + a21 = 1.d0/6.d0, a23 = 3.d0/6.d0, a24 = 2.d0/6.d0, & + a31 = -2.d0/6.d0, a32 = -3.d0/6.d0, a34 = -1.d0/6.d0, & + a41 = -11.d0/6.d0, a42 = 18.d0/6.d0, a43 = -9.d0/6.d0, a44 = 2.d0/6.d0, & + b12 = 4.d0, b13 = -5.d0, b14 = 2.d0, b22 = -2.d0, & + b41 = 2.d0, b42 = -5.d0, b43 = 4.d0, c12 = 3.d0, & + d12 = 13.d0/12.d0, d13 = 1043.d0/960.d0, d14 = 1.d0/12.d0 + real(kind=OCFD_REAL_KIND), parameter:: & + e11 = -3.d0/12.d0, e12 = 13.d0/12.d0, e13 = -23.d0/12.d0, e14 = 25.d0/12.d0, & + e21 = 1.d0/12.d0, e22 = -5.d0/12.d0, e23 = 13.d0/12.d0, e24 = 3.d0/12.d0, & + e31 = -1.d0/12.d0, e32 = 7.d0/12.d0, e33 = 7.d0/12.d0, e34 = -1.d0/12.d0, & + e41 = 3.d0/12.d0, e42 = 13.d0/12.d0, e43 = -5.d0/12.d0, e44 = 1.d0/12.d0, & + ep = 1.d-8 !! WENO-JS + +! do i= 1,nx+1 + do i = ib + 1, ie + 1 +! 7th order WENO scheme +! 1 阶导数 + S10 = a11*v(i + 3) + a12*v(i + 2) + a13*v(i + 1) + a14*v(i) + S11 = a21*v(i + 2) - v(i + 1) + a23*v(i) + a24*v(i - 1) + S12 = a31*v(i + 1) + a32*v(i) + v(i - 1) + a34*v(i - 2) + S13 = a41*v(i) + a42*v(i - 1) + a43*v(i - 2) + a44*v(i - 3) +! 2 阶导数 + S20 = -v(i + 3) + b12*v(i + 2) + b13*v(i + 1) + b14*v(i) + S21 = v(i + 1) + b22*v(i) + v(i - 1) + S22 = v(i) + b22*v(i - 1) + v(i - 2) + S23 = b41*v(i) + b42*v(i - 1) + b43*v(i - 2) - v(i - 3) +! 3 阶导数 + S30 = -v(i + 3) + c12*(v(i + 2) - v(i + 1)) + v(i) + S31 = -v(i + 2) + c12*(v(i + 1) - v(i)) + v(i - 1) + S32 = -v(i + 1) + c12*(v(i) - v(i - 1)) + v(i - 2) + S33 = -v(i) + c12*(v(i - 1) - v(i - 2)) + v(i - 3) + + S0 = S10*S10 + d12*S20*S20 + d13*S30*S30 + d14*S10*S30 + S1 = S11*S11 + d12*S21*S21 + d13*S31*S31 + d14*S11*S31 + S2 = S12*S12 + d12*S22*S22 + d13*S32*S32 + d14*S12*S32 + S3 = S13*S13 + d12*S23*S23 + d13*S33*S33 + d14*S13*S33 + + a0 = C0/((ep + S0)**2) + a1 = C1/((ep + S1)**2) + a2 = C2/((ep + S2)**2) + a3 = C3/((ep + S3)**2) + +!----------------------------------------------- + + am = a0 + a1 + a2 + a3 + +! 4阶差分格式的通量 + q0 = e11*v(i + 3) + e12*v(i + 2) + e13*v(i + 1) + e14*v(i) + q1 = e21*v(i + 2) + e22*v(i + 1) + e23*v(i) + e24*v(i - 1) + q2 = e31*v(i + 1) + e32*v(i) + e33*v(i - 1) + e34*v(i - 2) + q3 = e41*v(i) + e42*v(i - 1) + e43*v(i - 2) + e44*v(i - 3) + +! 由4个4阶差分格式组合成1个7阶差分格式 + hh(i - 1) = (a0*q0 + a1*q1 + a2*q2 + a3*q3)/am + end do + + end + +!--------------------------------------------- + +!--------------------------------------------- +! Optimized 6th order Monotonicity-Preserving Schemes +! Scheme by Leng Yan & Li Xinliang see: Int. J. Numer. Meth. Fluids 2013; 73:560–577 +!================================================================================ + subroutine OCFD_OMP6P(v, hh, nx, LAP, ib, ie) + Use OCFD_constants + implicit none + integer nx, LAP, i, ib, ie + real(kind=OCFD_REAL_KIND):: v(1 - LAP:nx + LAP), hh(0:nx) + real(kind=OCFD_REAL_KIND)::mid_nf + real(kind=OCFD_REAL_KIND)::minmod2, minmod4 + real(kind=OCFD_REAL_KIND)::d1, d2, d3, ul, md, lc, mp, fmax, fmin + real(kind=OCFD_REAL_KIND), parameter ::kappa = 4.d0, ep = 1.e-10 + real(kind=OCFD_REAL_KIND), parameter:: OMP_m = 0.015d0, OMP_n = 0.d0 !defaut (robust) ; !!! low viscous: OMP_m=0.001d0 ; OMP_n=0.d0 + real(kind=OCFD_REAL_KIND), parameter:: OMP_a = 0.5d0*(OMP_m + OMP_n), OMP_b = 0.5d0*(OMP_m - OMP_n) + real(kind=OCFD_REAL_KIND), parameter:: OMP_a1 = OMP_a, OMP_a2 = 1.d0/60.d0 - OMP_b - 6.d0*OMP_a, & + OMP_a3 = -2.d0/15.d0 + 6.d0*OMP_b + 15.d0*OMP_a, & + OMP_a4 = 37.d0/60.d0 - 15.d0*OMP_b - 20.d0*OMP_a, OMP_a5 = 37.d0/60.d0 + 20.d0*OMP_b + 15.d0*OMP_a, & + OMP_a6 = -2.d0/15.d0 - 6.d0*OMP_a - 15.d0*OMP_b, OMP_a7 = 1.d0/60.d0 + OMP_a + 6.d0*OMP_b, OMP_a8 = -OMP_b + +! do i=0,nx + do i = ib, ie + mid_nf=OMP_a1*v(i+4)+OMP_a2*v(i+3)+OMP_a3*v(i+2)+OMP_a4*v(i+1)+OMP_a5*v(i)+OMP_a6*v(i-1)+OMP_a7*v(i-2)+OMP_a8*v(i-3) + mp = v(i) + minmod2((v(i + 1) - v(i)), kappa*(v(i) - v(i - 1))) + if ((mid_nf - v(i))*(mid_nf - mp) .ge. ep) then + d1 = v(i - 2) + v(i) - 2.d0*v(i - 1) + d2 = v(i - 1) + v(i + 1) - 2.d0*v(i) + d3 = v(i) + v(i + 2) - 2.d0*v(i + 1) + ul = v(i) + kappa*(v(i) - v(i - 1)) + md = 0.5d0*(v(i) + v(i + 1)) - 0.5d0*minmod4(4.d0*d2 - d3, 4.d0*d3 - d2, d2, d3) + lc = v(i) + 0.5d0*(v(i) - v(i - 1)) + kappa*minmod4(4.d0*d1 - d2, 4.d0*d2 - d1, d2, d1)/3.d0 + fmin = max(min(v(i), v(i + 1), md), min(v(i), ul, lc)) + fmax = min(max(v(i), v(i + 1), md), max(v(i), ul, lc)) + mid_nf = mid_nf + minmod2(fmax - mid_nf, fmin - mid_nf) + end if + hh(i) = mid_nf + end do + end + + subroutine OCFD_OMP6M(v, hh, nx, LAP, ib, ie) + Use OCFD_constants + implicit none + integer nx, LAP, i, ib, ie + real(kind=OCFD_REAL_KIND):: v(1 - LAP:nx + LAP), hh(0:nx) + real(kind=OCFD_REAL_KIND)::mid_nf + real(kind=OCFD_REAL_KIND)::minmod2, minmod4 + real(kind=OCFD_REAL_KIND)::d1, d2, d3, ul, md, lc, mp, fmax, fmin + real(kind=OCFD_REAL_KIND), parameter ::kappa = 4.d0, ep = 1.e-10 + real(kind=OCFD_REAL_KIND), parameter:: OMP_m = 0.015d0, OMP_n = 0.d0 !defaut (robust) ; !!! low viscous: OMP_m=0.001d0 ; OMP_n=0.d0 + real(kind=OCFD_REAL_KIND), parameter:: OMP_a = 0.5d0*(OMP_m + OMP_n), OMP_b = 0.5d0*(OMP_m - OMP_n) + real(kind=OCFD_REAL_KIND), parameter:: OMP_a1 = OMP_a, OMP_a2 = 1.d0/60.d0 - OMP_b - 6.d0*OMP_a, & + OMP_a3 = -2.d0/15.d0 + 6.d0*OMP_b + 15.d0*OMP_a, & + OMP_a4 = 37.d0/60.d0 - 15.d0*OMP_b - 20.d0*OMP_a, OMP_a5 = 37.d0/60.d0 + 20.d0*OMP_b + 15.d0*OMP_a, & + OMP_a6 = -2.d0/15.d0 - 6.d0*OMP_a - 15.d0*OMP_b, OMP_a7 = 1.d0/60.d0 + OMP_a + 6.d0*OMP_b, OMP_a8 = -OMP_b + +! do i=0,nx + do i = ib, ie + mid_nf=OMP_a1*v(i-3)+OMP_a2*v(i-2)+OMP_a3*v(i-1)+OMP_a4*v(i) +OMP_a5*v(i+1)+OMP_a6*v(i+2)+OMP_a7*v(i+3)+OMP_a8*v(i+4) + mp = v(i + 1) + minmod2((v(i) - v(i + 1)), kappa*(v(i + 1) - v(i + 2))) + if ((mid_nf - v(i + 1))*(mid_nf - mp) .ge. ep) then + d1 = v(i + 3) + v(i + 1) - 2.d0*v(i + 2) + d2 = v(i + 2) + v(i) - 2.d0*v(i + 1) + d3 = v(i + 1) + v(i - 1) - 2.d0*v(i) + !---- + ul = v(i + 1) + kappa*(v(i + 1) - v(i + 2)) + md = 0.5d0*(v(i + 1) + v(i)) - 0.5d0*minmod4(4.d0*d2 - d3, 4.d0*d3 - d2, d2, d3) + lc = v(i + 1) + 0.5d0*(v(i + 1) - v(i)) + kappa*minmod4(4.d0*d1 - d2, 4.d0*d2 - d1, d2, d1)/3.d0 + fmin = max(min(v(i + 1), v(i), md), min(v(i + 1), ul, lc)) + fmax = min(max(v(i + 1), v(i), md), max(v(i + 1), ul, lc)) + mid_nf = mid_nf + minmod2(fmax - mid_nf, fmin - mid_nf) + end if + hh(i) = mid_nf + end do + + end + +! ========================================== + function minmod2(x1, x2) + Use OCFD_precision + implicit none + real(kind=OCFD_REAL_KIND):: x1, x2, minmod2 + minmod2 = 0.5d0*(sign(1.d0, x1) + sign(1.d0, x2))*min(abs(x1), abs(x2)) + end +!========================================================= + function minmod4(x1, x2, x3, x4) + Use OCFD_precision + implicit none + real(kind=OCFD_REAL_KIND):: x1, x2, x3, x4, minmod4 + minmod4 = 0.5d0*(sign(1.d0, x1) + sign(1.d0, x2)) + minmod4 = minmod4*abs(0.5d0*(sign(1.d0, x1) + sign(1.d0, x3))) + minmod4 = minmod4*abs(0.5d0*(sign(1.d0, x1) + sign(1.d0, x4))) + minmod4 = minmod4*min(abs(x1), abs(x2), abs(x3), abs(x4)) + end + +!-------7th order low-dissipation scheme (mixing 7th upwind and 8th center) + subroutine OCFD_UD7L_P(v, hh, nx, LAP, ib, ie) + use OCFD_constants + use Scheme_para + implicit none + integer nx, LAP, i, ib, ie + real(kind=OCFD_REAL_KIND):: v(1 - LAP:nx + LAP), hh(0:nx) +! do i=0,nx + do i = ib, ie + hh(i) = Scheme%UD7L(1)*v(i - 3) + Scheme%UD7L(2)*v(i - 2) + Scheme%UD7L(3)*v(i - 1) + Scheme%UD7L(4)*v(i) & + + Scheme%UD7L(5)*v(i + 1) + Scheme%UD7L(6)*v(i + 2) + Scheme%UD7L(7)*v(i + 3) + Scheme%UD7L(8)*v(i + 4) + end do + end + + subroutine OCFD_UD7L_M(v, hh, nx, LAP, ib, ie) + use OCFD_constants + use Scheme_para + implicit none + integer nx, LAP, i, ib, ie + real(kind=OCFD_REAL_KIND):: v(1 - LAP:nx + LAP), hh(0:nx) +! do i=0,nx + do i = ib, ie + hh(i) = Scheme%UD7L(1)*v(i + 4) + Scheme%UD7L(2)*v(i + 3) + Scheme%UD7L(3)*v(i + 2) + Scheme%UD7L(4)*v(i + 1) & + + Scheme%UD7L(5)*v(i) + Scheme%UD7L(6)*v(i - 1) + Scheme%UD7L(7)*v(i - 2) + Scheme%UD7L(8)*v(i - 3) + end do + end + +!-------Hybrid Scheme ------------( HYBRID with UD7L and WENO5) + subroutine OCFD_HybridP(v, hh, nx, LAP, Scm_Hy, ib, ie) + use OCFD_constants + use Scheme_para + implicit none + integer nx, LAP, i, Scm_Hy(0:nx), ib, ie + real(kind=OCFD_REAL_KIND):: v(1 - LAP:nx + LAP), hh(0:nx) + +! do i=0,nx + do i = ib, ie + if (Scm_Hy(i) == 1) then + hh(i) = Scheme%UD7L(1)*v(i - 3) + Scheme%UD7L(2)*v(i - 2) + Scheme%UD7L(3)*v(i - 1) + Scheme%UD7L(4)*v(i) & + + Scheme%UD7L(5)*v(i + 1) + Scheme%UD7L(6)*v(i + 2) + Scheme%UD7L(7)*v(i + 3) + Scheme%UD7L(8)*v(i + 4) + else if (Scm_Hy(i) == 2) then ! WENO 7P + call hh_weno7P(-3, 3, v(i - 3), hh(i)) ! v(i-3) === v(i-3:i+3) + else + call hh_weno5P(-2, 2, v(i - 2), hh(i)) + end if + end do + end + + subroutine OCFD_HybridM(v, hh, nx, LAP, Scm_Hy, ib, ie) + Use OCFD_constants + use Scheme_para + implicit none + integer nx, LAP, i, Scm_Hy(0:nx), ib, ie + real(kind=OCFD_REAL_KIND):: v(1 - LAP:nx + LAP), hh(0:nx) + + ! for flux- +! do i=0,nx + do i = ib, ie + if (Scm_Hy(i) == 1) then + hh(i) = Scheme%UD7L(1)*v(i + 4) + Scheme%UD7L(2)*v(i + 3) + Scheme%UD7L(3)*v(i + 2) + Scheme%UD7L(4)*v(i + 1) & + + Scheme%UD7L(5)*v(i) + Scheme%UD7L(6)*v(i - 1) + Scheme%UD7L(7)*v(i - 2) + Scheme%UD7L(8)*v(i - 3) + else if (Scm_Hy(i) == 2) then + call hh_weno7M(-2, 4, v(i - 2), hh(i)) + else + call hh_weno5M(-1, 3, v(i - 1), hh(i)) + end if + end do + end diff --git a/src/OCFD_Schemes_1.f90 b/src/OCFD_Schemes_1.f90 new file mode 100644 index 0000000..6376abc --- /dev/null +++ b/src/OCFD_Schemes_1.f90 @@ -0,0 +1,402 @@ +! Shock Capturing Schemes: WENO5, WENO7, OMP6 +! 实现的功能于OCFD_Scheme.f90 中的程序相同, 算法也相同, 只是形式有些差异,更易于用于特征通量分裂 (但效率有所降低) + +!--------hh : h(j+1/2), Stencil: [j+Ka, ......, j+Kb]; e.g. Ka=-2, Kb=3 : Stencil [j-2, j-1, j, j+1, j+2, j+3] +! Ka, Kb 是网格基架点的位置; 例如 Ka=-1, Kb=2 表示计算h(j+1/2)的基架点为 [j-1, j, j+1, j+2] +! v(0) ==> v(j) ; v(1) ==> v(j+1) ... +! hh ==> h(j+1/2) + + subroutine hh_weno5P(Ka, Kb, v, hh) ! Ka=-2, Kb=2 + Use OCFD_constants + implicit none + integer Ka, Kb + real(kind=OCFD_REAL_KIND):: v(Ka:Kb), hh + real(kind=OCFD_REAL_KIND):: S0, S1, S2, a0, a1, a2, am, q03, q13, q23 + real(kind=OCFD_REAL_KIND), parameter:: ep = 1.d-6, C03 = 3.d0/10.d0, C13 = 3.d0/5.d0, C23 = 1.d0/10.d0 + + S0 = 13.d0/12.d0*(v(0) - 2.d0*v(1) + v(2))**2 + 1.d0/4.d0*(3.d0*v(0) - 4.d0*v(1) + v(2))**2 + S1 = 13.d0/12.d0*(v(-1) - 2.d0*v(0) + v(1))**2 + 1.d0/4.d0*(v(-1) - v(1))**2 + S2 = 13.d0/12.d0*(v(-2) - 2.d0*v(-1) + v(0))**2 + 1.d0/4.d0*(v(-2) - 4.d0*v(-1) + 3.d0*v(0))**2 + a0 = C03/((ep + S0)**2) + a1 = C13/((ep + S1)**2) + a2 = C23/((ep + S2)**2) + am = a0 + a1 + a2 + q03 = 1.d0/3.d0*v(0) + 5.d0/6.d0*v(1) - 1.d0/6.d0*v(2) + q13 = -1.d0/6.d0*v(-1) + 5.d0/6.d0*v(0) + 1.d0/3.d0*v(1) + q23 = 1.d0/3.d0*v(-2) - 7.d0/6.d0*v(-1) + 11.d0/6.d0*v(0) + hh = (a0*q03 + a1*q13 + a2*q23)/am + + end + + subroutine hh_weno5M(Ka, Kb, v, hh) ! Ka=-1, Kb=3 + Use OCFD_constants + implicit none + integer Ka, Kb + real(kind=OCFD_REAL_KIND):: v(Ka:Kb), hh + real(kind=OCFD_REAL_KIND):: S0, S1, S2, a0, a1, a2, am, q03, q13, q23 + real(kind=OCFD_REAL_KIND), parameter:: ep = 1.d-6, C03 = 3.d0/10.d0, C13 = 3.d0/5.d0, C23 = 1.d0/10.d0 + ! for flux- + + S0 = 13.d0/12.d0*(v(1) - 2.d0*v(0) + v(-1))**2 + 1.d0/4.d0*(3.d0*v(1) - 4.d0*v(0) + v(-1))**2 + S1 = 13.d0/12.d0*(v(2) - 2.d0*v(1) + v(0))**2 + 1.d0/4.d0*(v(2) - v(0))**2 + S2 = 13.d0/12.d0*(v(3) - 2.d0*v(2) + v(1))**2 + 1.d0/4.d0*(v(3) - 4.d0*v(2) + 3.d0*v(1))**2 + a0 = C03/((ep + S0)**2) + a1 = C13/((ep + S1)**2) + a2 = C23/((ep + S2)**2) + am = a0 + a1 + a2 + q03 = 1.d0/3.d0*v(1) + 5.d0/6.d0*v(0) - 1.d0/6.d0*v(-1) + q13 = -1.d0/6.d0*v(2) + 5.d0/6.d0*v(1) + 1.d0/3.d0*v(0) + q23 = 1.d0/3.d0*v(3) - 7.d0/6.d0*v(2) + 11.d0/6.d0*v(1) + hh = (a0*q03 + a1*q13 + a2*q23)/am + + end + +!----------------------------------------------------------------------------------------------------- +! 7th order WENO-JS schemes + +!---------------------------------------------------------------------------------- + subroutine hh_weno7P(Ka, Kb, v, hh) ! Ka=-3, Kb=3 + Use OCFD_constants + implicit none + integer Ka, Kb + real(kind=OCFD_REAL_KIND):: v(Ka:Kb), hh + real(kind=OCFD_REAL_KIND):: S0, S1, S2, S3, s10, s11, s12, s13, s20, s21, s22, s23, s30, s31, s32, s33, & + a0, a1, a2, a3, am, q0, q1, q2, q3 + real(kind=OCFD_REAL_KIND), parameter:: & + C0 = 1.d0/35.d0, C1 = 12.d0/35.d0, C2 = 18.d0/35.d0, C3 = 4.d0/35.d0, & + a11 = -2.d0/6.d0, a12 = 9.d0/6.d0, a13 = -18.d0/6.d0, a14 = 11.d0/6.d0, & + a21 = 1.d0/6.d0, a23 = 3.d0/6.d0, a24 = 2.d0/6.d0, & + a31 = -2.d0/6.d0, a32 = -3.d0/6.d0, a34 = -1.d0/6.d0, & + a41 = -11.d0/6.d0, a42 = 18.d0/6.d0, a43 = -9.d0/6.d0, a44 = 2.d0/6.d0, & + b12 = 4.d0, b13 = -5.d0, b14 = 2.d0, b22 = -2.d0, & + b41 = 2.d0, b42 = -5.d0, b43 = 4.d0, c12 = 3.d0, & + d12 = 13.d0/12.d0, d13 = 1043.d0/960.d0, d14 = 1.d0/12.d0 + real(kind=OCFD_REAL_KIND), parameter:: & + e11 = -3.d0/12.d0, e12 = 13.d0/12.d0, e13 = -23.d0/12.d0, e14 = 25.d0/12.d0, & + e21 = 1.d0/12.d0, e22 = -5.d0/12.d0, e23 = 13.d0/12.d0, e24 = 3.d0/12.d0, & + e31 = -1.d0/12.d0, e32 = 7.d0/12.d0, e33 = 7.d0/12.d0, e34 = -1.d0/12.d0, & + e41 = 3.d0/12.d0, e42 = 13.d0/12.d0, e43 = -5.d0/12.d0, e44 = 1.d0/12.d0, & + ep = 1.d-8 !! WENO-JS + +! 7th order WENO scheme +! 1 阶导数 + S10 = a11*v(-3) + a12*v(-2) + a13*v(-1) + a14*v(0) + S11 = a21*v(-2) - v(-1) + a23*v(0) + a24*v(1) + S12 = a31*v(-1) + a32*v(0) + v(1) + a34*v(2) + S13 = a41*v(0) + a42*v(1) + a43*v(2) + a44*v(3) + ! 2 阶导数 + S20 = -v(-3) + b12*v(-2) + b13*v(-1) + b14*v(0) + S21 = v(-1) + b22*v(0) + v(1) + S22 = v(0) + b22*v(1) + v(2) + S23 = b41*v(0) + b42*v(1) + b43*v(2) - v(3) +! 3 阶导数 + S30 = -v(-3) + c12*(v(-2) - v(-1)) + v(0) + S31 = -v(-2) + c12*(v(-1) - v(0)) + v(1) + S32 = -v(-1) + c12*(v(0) - v(1)) + v(2) + S33 = -v(0) + c12*(v(1) - v(2)) + v(3) + + S0 = S10*S10 + d12*S20*S20 + d13*S30*S30 + d14*S10*S30 + S1 = S11*S11 + d12*S21*S21 + d13*S31*S31 + d14*S11*S31 + S2 = S12*S12 + d12*S22*S22 + d13*S32*S32 + d14*S12*S32 + S3 = S13*S13 + d12*S23*S23 + d13*S33*S33 + d14*S13*S33 + +!-------WENO J-S---------------------- + a0 = C0/((ep + S0)**2) + a1 = C1/((ep + S1)**2) + a2 = C2/((ep + S2)**2) + a3 = C3/((ep + S3)**2) +!----------------------------------------------- + am = a0 + a1 + a2 + a3 + +! 4阶差分格式的通量 + q0 = e11*v(-3) + e12*v(-2) + e13*v(-1) + e14*v(0) + q1 = e21*v(-2) + e22*v(-1) + e23*v(0) + e24*v(1) + q2 = e31*v(-1) + e32*v(0) + e33*v(1) + e34*v(2) + q3 = e41*v(0) + e42*v(1) + e43*v(2) + e44*v(3) + +! 由4个4阶差分格式组合成1个7阶差分格式 +! hj(0)=W0*q0+W1*q1+W2*q2+W3*q3 + hh = (a0*q0 + a1*q1 + a2*q2 + a3*q3)/am + + end + +!----------WENO7 for flux- + subroutine hh_weno7M(Ka, Kb, v, hh) ! Ka=-2, Kb=4 + Use OCFD_constants + implicit none + integer Ka, Kb + real(kind=OCFD_REAL_KIND):: v(Ka:Kb), hh + real(kind=OCFD_REAL_KIND):: S0, S1, S2, S3, s10, s11, s12, s13, s20, s21, s22, s23, s30, s31, s32, s33, & + a0, a1, a2, a3, am, q0, q1, q2, q3 + real(kind=OCFD_REAL_KIND), parameter:: & + C0 = 1.d0/35.d0, C1 = 12.d0/35.d0, C2 = 18.d0/35.d0, C3 = 4.d0/35.d0, & + a11 = -2.d0/6.d0, a12 = 9.d0/6.d0, a13 = -18.d0/6.d0, a14 = 11.d0/6.d0, & + a21 = 1.d0/6.d0, a23 = 3.d0/6.d0, a24 = 2.d0/6.d0, & + a31 = -2.d0/6.d0, a32 = -3.d0/6.d0, a34 = -1.d0/6.d0, & + a41 = -11.d0/6.d0, a42 = 18.d0/6.d0, a43 = -9.d0/6.d0, a44 = 2.d0/6.d0, & + b12 = 4.d0, b13 = -5.d0, b14 = 2.d0, b22 = -2.d0, & + b41 = 2.d0, b42 = -5.d0, b43 = 4.d0, c12 = 3.d0, & + d12 = 13.d0/12.d0, d13 = 1043.d0/960.d0, d14 = 1.d0/12.d0 + real(kind=OCFD_REAL_KIND), parameter:: & + e11 = -3.d0/12.d0, e12 = 13.d0/12.d0, e13 = -23.d0/12.d0, e14 = 25.d0/12.d0, & + e21 = 1.d0/12.d0, e22 = -5.d0/12.d0, e23 = 13.d0/12.d0, e24 = 3.d0/12.d0, & + e31 = -1.d0/12.d0, e32 = 7.d0/12.d0, e33 = 7.d0/12.d0, e34 = -1.d0/12.d0, & + e41 = 3.d0/12.d0, e42 = 13.d0/12.d0, e43 = -5.d0/12.d0, e44 = 1.d0/12.d0, & + ep = 1.d-8 !! WENO-JS + +! 7th order WENO scheme +! 1 阶导数 + S10 = a11*v(4) + a12*v(3) + a13*v(2) + a14*v(1) + S11 = a21*v(3) - v(2) + a23*v(1) + a24*v(0) + S12 = a31*v(2) + a32*v(1) + v(0) + a34*v(-1) + S13 = a41*v(1) + a42*v(0) + a43*v(-1) + a44*v(-2) +! 2 阶导数 + S20 = -v(4) + b12*v(3) + b13*v(2) + b14*v(1) + S21 = v(2) + b22*v(1) + v(0) + S22 = v(1) + b22*v(0) + v(-1) + S23 = b41*v(1) + b42*v(0) + b43*v(-1) - v(-2) +! 3 阶导数 + S30 = -v(4) + c12*(v(3) - v(2)) + v(1) + S31 = -v(3) + c12*(v(2) - v(1)) + v(0) + S32 = -v(2) + c12*(v(1) - v(0)) + v(-1) + S33 = -v(1) + c12*(v(0) - v(-1)) + v(-2) + + S0 = S10*S10 + d12*S20*S20 + d13*S30*S30 + d14*S10*S30 + S1 = S11*S11 + d12*S21*S21 + d13*S31*S31 + d14*S11*S31 + S2 = S12*S12 + d12*S22*S22 + d13*S32*S32 + d14*S12*S32 + S3 = S13*S13 + d12*S23*S23 + d13*S33*S33 + d14*S13*S33 + + a0 = C0/((ep + S0)**2) + a1 = C1/((ep + S1)**2) + a2 = C2/((ep + S2)**2) + a3 = C3/((ep + S3)**2) + +!----------------------------------------------- + + am = a0 + a1 + a2 + a3 + +! 4阶差分格式的通量 + q0 = e11*v(4) + e12*v(3) + e13*v(2) + e14*v(1) + q1 = e21*v(3) + e22*v(2) + e23*v(1) + e24*v(0) + q2 = e31*v(2) + e32*v(1) + e33*v(0) + e34*v(-1) + q3 = e41*v(1) + e42*v(0) + e43*v(-1) + e44*v(-2) + +! 由4个4阶差分格式组合成1个7阶差分格式 + hh = (a0*q0 + a1*q1 + a2*q2 + a3*q3)/am + + end + +!--------------------------------------------- + +!--------------------------------------------- +! Optimized 6th order Monotonicity-Preserving Schemes +! Scheme by Leng Yan & Li Xinliang see: Int. J. Numer. Meth. Fluids 2013; 73:560–577 +!================================================================================ + subroutine hh_OMP6P(Ka, Kb, v, hh) !Ka=-3, Kb=4 + Use OCFD_constants + implicit none + integer Ka, Kb + real(kind=OCFD_REAL_KIND):: v(Ka:Kb), hh + real(kind=OCFD_REAL_KIND)::mid_nf + real(kind=OCFD_REAL_KIND)::minmod2, minmod4 + real(kind=OCFD_REAL_KIND)::d1, d2, d3, ul, md, lc, mp, fmax, fmin + real(kind=OCFD_REAL_KIND), parameter ::kappa = 4.d0, ep = 1.e-10 + real(kind=OCFD_REAL_KIND), parameter:: OMP_m = 0.015d0, OMP_n = 0.d0 !defaut (robust) ; !!! low viscous: OMP_m=0.001d0 ; OMP_n=0.d0 + real(kind=OCFD_REAL_KIND), parameter:: OMP_a = 0.5d0*(OMP_m + OMP_n), OMP_b = 0.5d0*(OMP_m - OMP_n) + real(kind=OCFD_REAL_KIND), parameter:: OMP_a1 = OMP_a, OMP_a2 = 1.d0/60.d0 - OMP_b - 6.d0*OMP_a, & + OMP_a3 = -2.d0/15.d0 + 6.d0*OMP_b + 15.d0*OMP_a, & + OMP_a4 = 37.d0/60.d0 - 15.d0*OMP_b - 20.d0*OMP_a, OMP_a5 = 37.d0/60.d0 + 20.d0*OMP_b + 15.d0*OMP_a, & + OMP_a6 = -2.d0/15.d0 - 6.d0*OMP_a - 15.d0*OMP_b, OMP_a7 = 1.d0/60.d0 + OMP_a + 6.d0*OMP_b, OMP_a8 = -OMP_b + + mid_nf = OMP_a1*v(4) + OMP_a2*v(3) + OMP_a3*v(2) + OMP_a4*v(1) + OMP_a5*v(0) + OMP_a6*v(-1) + OMP_a7*v(-2) + OMP_a8*v(-3) + mp = v(0) + minmod2((v(1) - v(0)), kappa*(v(0) - v(-1))) + if ((mid_nf - v(0))*(mid_nf - mp) .ge. ep) then + d1 = v(-2) + v(0) - 2.d0*v(-1) + d2 = v(-1) + v(1) - 2.d0*v(0) + d3 = v(0) + v(2) - 2.d0*v(1) + ul = v(0) + kappa*(v(0) - v(-1)) + md = 0.5d0*(v(0) + v(1)) - 0.5d0*minmod4(4.d0*d2 - d3, 4.d0*d3 - d2, d2, d3) + lc = v(0) + 0.5d0*(v(0) - v(-1)) + kappa*minmod4(4.d0*d1 - d2, 4.d0*d2 - d1, d2, d1)/3.d0 + fmin = max(min(v(0), v(1), md), min(v(0), ul, lc)) + fmax = min(max(v(0), v(1), md), max(v(0), ul, lc)) + mid_nf = mid_nf + minmod2(fmax - mid_nf, fmin - mid_nf) + end if + hh = mid_nf + + end + + subroutine hh_OMP6M(Ka, Kb, v, hh) ! Ka=-3, Kb=4 + Use OCFD_constants + implicit none + integer Ka, Kb + real(kind=OCFD_REAL_KIND):: v(Ka:Kb), hh + real(kind=OCFD_REAL_KIND)::mid_nf + real(kind=OCFD_REAL_KIND)::minmod2, minmod4 + real(kind=OCFD_REAL_KIND)::d1, d2, d3, ul, md, lc, mp, fmax, fmin + real(kind=OCFD_REAL_KIND), parameter ::kappa = 4.d0, ep = 1.e-10 + real(kind=OCFD_REAL_KIND), parameter:: OMP_m = 0.015d0, OMP_n = 0.d0 !defaut (robust) ; !!! low viscous: OMP_m=0.001d0 ; OMP_n=0.d0 + real(kind=OCFD_REAL_KIND), parameter:: OMP_a = 0.5d0*(OMP_m + OMP_n), OMP_b = 0.5d0*(OMP_m - OMP_n) + real(kind=OCFD_REAL_KIND), parameter:: OMP_a1 = OMP_a, OMP_a2 = 1.d0/60.d0 - OMP_b - 6.d0*OMP_a, & + OMP_a3 = -2.d0/15.d0 + 6.d0*OMP_b + 15.d0*OMP_a, & + OMP_a4 = 37.d0/60.d0 - 15.d0*OMP_b - 20.d0*OMP_a, OMP_a5 = 37.d0/60.d0 + 20.d0*OMP_b + 15.d0*OMP_a, & + OMP_a6 = -2.d0/15.d0 - 6.d0*OMP_a - 15.d0*OMP_b, OMP_a7 = 1.d0/60.d0 + OMP_a + 6.d0*OMP_b, OMP_a8 = -OMP_b + + mid_nf = OMP_a1*v(-3) + OMP_a2*v(-2) + OMP_a3*v(-1) + OMP_a4*v(0) + OMP_a5*v(1) + OMP_a6*v(2) + OMP_a7*v(3) + OMP_a8*v(4) + mp = v(1) + minmod2((v(0) - v(1)), kappa*(v(1) - v(2))) + if ((mid_nf - v(1))*(mid_nf - mp) .ge. ep) then + d1 = v(3) + v(1) - 2.d0*v(2) + d2 = v(2) + v(0) - 2.d0*v(1) + d3 = v(1) + v(-1) - 2.d0*v(0) + !---- + ul = v(1) + kappa*(v(1) - v(2)) + md = 0.5d0*(v(1) + v(0)) - 0.5d0*minmod4(4.d0*d2 - d3, 4.d0*d3 - d2, d2, d3) + lc = v(1) + 0.5d0*(v(1) - v(0)) + kappa*minmod4(4.d0*d1 - d2, 4.d0*d2 - d1, d2, d1)/3.d0 + fmin = max(min(v(1), v(0), md), min(v(1), ul, lc)) + fmax = min(max(v(1), v(0), md), max(v(1), ul, lc)) + mid_nf = mid_nf + minmod2(fmax - mid_nf, fmin - mid_nf) + end if + hh = mid_nf + + end + +!------------------------------------------------------ +! Boundary Scheme (WENO5 Delete Stencil type) +! 边界格式: 基于WENO5, 删除掉出界的模板 + + subroutine hh_weno5P_boundary(Ka, Kb, v, hh, Del_Stencil) ! Ka=-2, Kb=2 + Use OCFD_constants + implicit none + integer Ka, Kb, Del_Stencil + real(kind=OCFD_REAL_KIND):: v(Ka:Kb), hh + real(kind=OCFD_REAL_KIND):: S0, S1, S2, a0, a1, a2, am, q03, q13, q23 + real(kind=OCFD_REAL_KIND), parameter:: ep = 1.d-6, C03 = 3.d0/10.d0, C13 = 3.d0/5.d0, C23 = 1.d0/10.d0 +!-------for flux+ + a0 = 0.d0; q03 = 0.d0 + a2 = 0.d0; q23 = 0.d0 + + if (Del_Stencil .ne. DEL_RIGHT) then + S0 = 13.d0/12.d0*(v(0) - 2.d0*v(1) + v(2))**2 + 1.d0/4.d0*(3.d0*v(0) - 4.d0*v(1) + v(2))**2 + a0 = C03/((ep + S0)**2) + q03 = 1.d0/3.d0*v(0) + 5.d0/6.d0*v(1) - 1.d0/6.d0*v(2) + end if + + S1 = 13.d0/12.d0*(v(-1) - 2.d0*v(0) + v(1))**2 + 1.d0/4.d0*(v(-1) - v(1))**2 + a1 = C13/((ep + S1)**2) + q13 = -1.d0/6.d0*v(-1) + 5.d0/6.d0*v(0) + 1.d0/3.d0*v(1) + + if (Del_Stencil .ne. DEL_LIFT) then + S2 = 13.d0/12.d0*(v(-2) - 2.d0*v(-1) + v(0))**2 + 1.d0/4.d0*(v(-2) - 4.d0*v(-1) + 3.d0*v(0))**2 + a2 = C23/((ep + S2)**2) + q23 = 1.d0/3.d0*v(-2) - 7.d0/6.d0*v(-1) + 11.d0/6.d0*v(0) + end if + am = a0 + a1 + a2 + hh = (a0*q03 + a1*q13 + a2*q23)/am + + end + + subroutine hh_weno5M_boundary(Ka, Kb, v, hh, Del_Stencil) ! Ka=-1, Kb=3 + Use OCFD_constants + implicit none + integer Ka, Kb, Del_Stencil + real(kind=OCFD_REAL_KIND):: v(Ka:Kb), hh + real(kind=OCFD_REAL_KIND):: S0, S1, S2, a0, a1, a2, am, q03, q13, q23 + real(kind=OCFD_REAL_KIND), parameter:: ep = 1.d-6, C03 = 3.d0/10.d0, C13 = 3.d0/5.d0, C23 = 1.d0/10.d0 + ! for flux- + a0 = 0.d0; q03 = 0.d0 + a2 = 0.d0; q23 = 0.d0 + + if (Del_Stencil .ne. DEL_LIFT) then + S0 = 13.d0/12.d0*(v(1) - 2.d0*v(0) + v(-1))**2 + 1.d0/4.d0*(3.d0*v(1) - 4.d0*v(0) + v(-1))**2 + a0 = C03/((ep + S0)**2) + q03 = 1.d0/3.d0*v(1) + 5.d0/6.d0*v(0) - 1.d0/6.d0*v(-1) + end if + S1 = 13.d0/12.d0*(v(2) - 2.d0*v(1) + v(0))**2 + 1.d0/4.d0*(v(2) - v(0))**2 + a1 = C13/((ep + S1)**2) + q13 = -1.d0/6.d0*v(2) + 5.d0/6.d0*v(1) + 1.d0/3.d0*v(0) + + if (Del_Stencil .ne. DEL_RIGHT) then + S2 = 13.d0/12.d0*(v(3) - 2.d0*v(2) + v(1))**2 + 1.d0/4.d0*(v(3) - 4.d0*v(2) + 3.d0*v(1))**2 + a2 = C23/((ep + S2)**2) + q23 = 1.d0/3.d0*v(3) - 7.d0/6.d0*v(2) + 11.d0/6.d0*v(1) + end if + am = a0 + a1 + a2 + hh = (a0*q03 + a1*q13 + a2*q23)/am + + end + +!-------7th order low-dissipation scheme (mixing 7th upwind and 8th center) + subroutine hh_UD7L_P(Ka, Kb, v, hh) + use OCFD_constants + use Scheme_para + implicit none + integer Ka, Kb + real(kind=OCFD_REAL_KIND):: v(Ka:Kb), hh + + hh = Scheme%UD7L(1)*v(-3) + Scheme%UD7L(2)*v(-2) + Scheme%UD7L(3)*v(-1) + Scheme%UD7L(4)*v(0) & + + Scheme%UD7L(5)*v(1) + Scheme%UD7L(6)*v(2) + Scheme%UD7L(7)*v(3) + Scheme%UD7L(8)*v(4) + end + + subroutine hh_UD7L_M(Ka, Kb, v, hh) + use OCFD_constants + use Scheme_para + implicit none + integer Ka, Kb + real(kind=OCFD_REAL_KIND):: v(Ka:Kb), hh + + hh = Scheme%UD7L(1)*v(4) + Scheme%UD7L(2)*v(3) + Scheme%UD7L(3)*v(2) + Scheme%UD7L(4)*v(1) & + + Scheme%UD7L(5)*v(0) + Scheme%UD7L(6)*v(-1) + Scheme%UD7L(7)*v(-2) + Scheme%UD7L(8)*v(-3) + end +!----------------------------------------------------------------------------- +! Hybrid scheme (UD7L + WENO7+ WENO5) + subroutine hh_HybridP(Ka, Kb, v, hh, Ihybrid) ! Ka=-4, Kb=4 + Use OCFD_constants + use Scheme_para + implicit none + integer Ka, Kb, Ihybrid + real(kind=OCFD_REAL_KIND):: v(Ka:Kb), hh + if (Ihybrid == 1) then ! UD7L + hh = Scheme%UD7L(1)*v(-3) + Scheme%UD7L(2)*v(-2) + Scheme%UD7L(3)*v(-1) + Scheme%UD7L(4)*v(0) & + + Scheme%UD7L(5)*v(1) + Scheme%UD7L(6)*v(2) + Scheme%UD7L(7)*v(3) + Scheme%UD7L(8)*v(4) + else if (Ihybrid == 2) then ! WENO7 scheme + call hh_weno7P(Ka, Kb, v, hh) + else + call hh_weno5P(Ka, Kb, v, hh) + end if + end + + subroutine hh_HybridM(Ka, Kb, v, hh, Ihybrid) ! Ka=-4, Kb=4 + Use OCFD_constants + use Scheme_para + implicit none + integer Ka, Kb, Ihybrid + real(kind=OCFD_REAL_KIND):: v(Ka:Kb), hh + real(kind=OCFD_REAL_KIND):: S0, S1, S2, a0, a1, a2, am, q03, q13, q23 + real(kind=OCFD_REAL_KIND), parameter:: ep = 1.d-6, C03 = 3.d0/10.d0, C13 = 3.d0/5.d0, C23 = 1.d0/10.d0 + ! for flux- + if (Ihybrid == 1) then + hh = Scheme%UD7L(1)*v(4) + Scheme%UD7L(2)*v(3) + Scheme%UD7L(3)*v(2) + Scheme%UD7L(4)*v(1) & + + Scheme%UD7L(5)*v(0) + Scheme%UD7L(6)*v(-1) + Scheme%UD7L(7)*v(-2) + Scheme%UD7L(8)*v(-3) + else if (Ihybrid == 2) then ! WENO7 scheme + call hh_weno7M(Ka, Kb, v, hh) + else + call hh_weno5M(Ka, Kb, v, hh) + end if + end + +!================================================================================ + + subroutine hh_NND2P(Ka, Kb, v, hh) ! Ka=-1, Kb=1 + Use OCFD_precision + implicit none + integer Ka, Kb + real(kind=OCFD_REAL_KIND):: v(Ka:Kb), hh, minmod2 + hh = v(0) + 0.5d0*minmod2(v(1) - v(0), v(0) - v(-1)) ! v(0) ==> v(j); hh==> h(j+1/2) + end + + subroutine hh_NND2M(Ka, Kb, v, hh) ! Ka=0, Kb=2 + Use OCFD_precision + implicit none + integer Ka, Kb + real(kind=OCFD_REAL_KIND):: v(Ka:Kb), hh, minmod2 + hh = v(1) - 0.5d0*minmod2(v(2) - v(1), v(1) - v(0)) + end diff --git a/src/OCFD_SetHybrid.f90 b/src/OCFD_SetHybrid.f90 new file mode 100644 index 0000000..d8ab08e --- /dev/null +++ b/src/OCFD_SetHybrid.f90 @@ -0,0 +1,153 @@ + ! Scheme%Hybrid_para (:) 1: Shock sensor, 2 seta1, 3 seta2 , 4 Num_patch, 5 ib, 6 ie, 7, jb, 8 je, 9 kb, 10 ke + function set_hybrid_scheme(R0) + use OCFD_precision + use Scheme_para + implicit none + real(kind=OCFD_REAL_KIND):: R0 + integer:: set_hybrid_scheme + if (R0 <= Scheme%Hybrid_para(2)) then + set_hybrid_scheme = 1 ! linear scheme + else if (R0 <= Scheme%Hybrid_para(3)) then + set_hybrid_scheme = 2 ! shock caputure scheme 1 (WENO7) + else + set_hybrid_scheme = 3 ! shock capture scheme 2 (WENO5) + end if + end +!====================================================== + subroutine comput_Rhybrid + use flow_data + implicit none + real(kind=OCFD_REAL_KIND), allocatable, dimension(:, :, :)::p, pk, pi, ps + integer:: i, j, k, ierr, NS1(4), NS0(4) + integer:: m, mpatch, ib, ie, jb, je, kb, ke, Shock_Sensor + real(kind=OCFD_REAL_KIND):: p00, px, py, pz, dp0, dp_av, dp_av1, epsl, R0 +!------------------------------------------------------------------------ + Shock_sensor = nint(Scheme%Hybrid_para(1)) + if (Shock_sensor == 1) then + allocate (p(1 - LAP:nx + LAP, 1 - LAP:ny + LAP, 1 - LAP:nz + LAP)) + else + allocate (p(1 - LAP:nx + LAP, 1 - LAP:ny + LAP, 1 - LAP:nz + LAP), pk(nx, ny, nz), pi(nx, ny, nz), ps(nx, ny, nz)) + end if + + p00 = 1.d0/(Para%gamma*Para%Ma*Para%Ma) + epsl = 1.d-30 + + do k = 1 - LAP, nz + LAP + do j = 1 - LAP, ny + LAP + do i = 1 - LAP, nx + LAP + p(i, j, k) = p00*d(i, j, k)*T(i, j, k) + end do + end do + end do + + if (Shock_sensor == 1) then + do k = 1, nz + do j = 1, ny + do i = 1, nx + Rhybrid(i, j, k) = abs((p(i - 1, j, k) - 2.d0*p(i, j, k) + p(i + 1, j, k))/(p(i - 1, j, k) + 2.d0*p(i, j, k) + p(i + 1, j, k))) & + + abs((p(i, j - 1, k) - 2.d0*p(i, j, k) + p(i, j + 1, k))/(p(i, j - 1, k) + 2.d0*p(i, j, k) + p(i, j + 1, k))) & + + abs((p(i, j, k - 1) - 2.d0*p(i, j, k) + p(i, j, k + 1))/(p(i, j, k - 1) + 2.d0*p(i, j, k) + p(i, j, k + 1))) + end do + end do + end do + + else + + call OCFD_dx0(p, pk, Scheme%Scheme_Vis) + call OCFD_dy0(p, pi, Scheme%Scheme_Vis) + call OCFD_dz0(p, ps, Scheme%Scheme_Vis) + + dp0 = 0.d0 + do k = 1, nz + do j = 1, ny + do i = 1, nx + px = pk(i, j, k)*Akx(i, j, k) + pi(i, j, k)*Aix(i, j, k) + ps(i, j, k)*Asx(i, j, k) + py = pk(i, j, k)*Aky(i, j, k) + pi(i, j, k)*Aiy(i, j, k) + ps(i, j, k)*Asy(i, j, k) + pz = pk(i, j, k)*Akz(i, j, k) + pi(i, j, k)*Aiz(i, j, k) + ps(i, j, k)*Asz(i, j, k) + Rhybrid(i, j, k) = sqrt(px*px + py*py + pz*pz) + dp0 = dp0 + Rhybrid(i, j, k) + end do + end do + end do + + call MPI_ALLREDUCE(dp0, dp_av, 1, OCFD_DATA_TYPE, MPI_SUM, MPI_COMM_WORLD, ierr) + + dp_av = dp_av/(1.d0*nx_global*ny_global*nz_global) + dp_av1 = 1.d0/(dp_av + epsl) + + do k = 1, nz + do j = 1, ny + do i = 1, nx + Rhybrid(i, j, k) = Rhybrid(i, j, k)*dp_av1 + end do + end do + end do + end if + +!----------------------------------------------- + mpatch = nint(Scheme%Hybrid_para(4)) + do m = 1, mpatch + ib = nint(Scheme%Hybrid_para(5 + (m - 1)*6)) + ie = nint(Scheme%Hybrid_para(6 + (m - 1)*6)) + jb = nint(Scheme%Hybrid_para(7 + (m - 1)*6)) + ie = nint(Scheme%Hybrid_para(8 + (m - 1)*6)) + kb = nint(Scheme%Hybrid_para(9 + (m - 1)*6)) + ke = nint(Scheme%Hybrid_para(10 + (m - 1)*6)) + ib = max(ib - i_offset(npx) + 1, 1) ! transform global index to local index + ie = min(ie - i_offset(npx) + 1, nx) + jb = max(jb - j_offset(npy) + 1, 1) + je = min(je - j_offset(npy) + 1, ny) + kb = max(kb - k_offset(npz) + 1, 1) + ke = min(ke - k_offset(npz) + 1, nz) + + do k = kb, ke + do j = jb, je + do i = ib, ie + Rhybrid(i, j, k) = Rhybrid(i, j, k) + 100.d0 ! set to be a large number (using highest rubust scheme) + end do + end do + end do + end do + + call exchange_boundary_xyz(Rhybrid) + !------------------------------------------ + + if (mod(Istep, Para%Istep_show) .eq. 0) then + NS1 = 0 + do k = 1, nz + do j = 1, ny + do i = 0, nx + R0 = max(Rhybrid(i, j, k), Rhybrid(i + 1, j, k)) + if (R0 <= Scheme%Hybrid_para(2)) then + NS1(1) = NS1(1) + 1 + else if (R0 <= Scheme%Hybrid_para(3)) then + NS1(2) = NS1(2) + 1 + else + NS1(3) = NS1(3) + 1 + end if + end do + end do + end do + NS1(4) = (nx + 1)*ny*nz + call MPI_Reduce(NS1, NS0, 4, MPI_INTEGER, MPI_SUM, 0, MPI_COMM_WORLD, ierr) + if (my_id .eq. 0) then + print *, "---the percent of 3 schemes (linear ,WENO7,WENO5 are: ", NS0(1:3)/(1.d0*NS0(4)) + end if + + end if + + if (Shock_sensor == 1) then + deallocate (p) + else + deallocate (p, pk, pi, ps) + end if + +! if(my_id .eq. 0) open(99,file="Rhybrid.dat",form="unformatted") +! call write_3d1(99,Rhybrid) +! if(my_id .eq. 0) then +! close(99) +! stop +! endif +!----------------------------------- + end + diff --git a/src/OCFD_Time_Adv.f90 b/src/OCFD_Time_Adv.f90 new file mode 100644 index 0000000..54cec42 --- /dev/null +++ b/src/OCFD_Time_Adv.f90 @@ -0,0 +1,105 @@ + +!----------------------------------------------------------------------------------- +! 3 steps 3rd order TVD type Runge-Kutta method by Jiang & Shu + subroutine OCFD_time_adv_RK3(KRK) + use flow_data + implicit none + integer KRK, m, i, j, k + real(kind=OCFD_REAL_KIND):: Ralfa(3), Rbeta(3) + + Ralfa(1) = 1.d0; Rbeta(1) = 1.d0 + Ralfa(2) = 3.d0/4.d0; Rbeta(2) = 1.d0/4.d0 + Ralfa(3) = 1.d0/3.d0; Rbeta(3) = 2.d0/3.d0 + + if (KRK .eq. 1) then + do m = 1, 5 + do k = 1, nz + do j = 1, ny + do i = 1, nx +! f(i,j,m)=Ralfa(KRK)*fn(i,j,m) +dt*du(i,j,m)*Rbeta(KRK) + f(i, j, k, m) = fn(i, j, k, m) + Para%dt*du(i, j, k, m) + end do + end do + end do + end do + else + do m = 1, 5 + do k = 1, nz + do j = 1, ny + do i = 1, nx + f(i, j, k, m) = Ralfa(KRK)*fn(i, j, k, m) + Rbeta(KRK)*(f(i, j, k, m) + Para%dt*du(i, j, k, m)) + end do + end do + end do + end do + end if + end + +!---------------------------------------------- + + subroutine comput_duvwT + Use flow_data + implicit none + integer:: Num_NegT, i, j, k + Num_NegT = 0 + do k = 1, nz + do j = 1, ny + do i = 1, nx + d(i, j, k) = f(i, j, k, 1) + u(i, j, k) = f(i, j, k, 2)/f(i, j, k, 1) + v(i, j, k) = f(i, j, k, 3)/f(i, j, k, 1) + w(i, j, k) = f(i, j, k, 4)/f(i, j, k, 1) + T(i,j,k)=(f(i,j,k,5) -(f(i,j,k,2)*u(i,j,k) +f(i,j,k,3)*v(i,j,k) +f(i,j,k,4)*w(i,j,k))*0.5d0 )/(f(i,j,k,1)*Cv) +!------------------------------------------------------------------ +! if T<=0, Error ! computation will stop (very useful message for debugging at overflow case)------- + if (T(i, j, k) <= 0) then + call handle_NegativeT(i, j, k, Num_NegT) + end if +!---------------------------------- + end do + end do + end do + + end + + subroutine show_flow_msg(wall_time) + use flow_data + implicit none + real*8:: wall_time, wtmp, E0(3), E1(3), p00, tmp0, tmp1 + integer:: i, j, k, ierr + wtmp = wall_time + wall_time = MPI_wtime() + p00 = 1.d0/(Para%gamma*Para%Ma*Para%Ma) + tmp1 = 1.d0 - Para%gamma + + E1(:) = 0.d0 + E0(:) = 0.d0 + do k = 1, nz + do j = 1, ny + do i = 1, nx + tmp0 = 1.d0/Ajac(i, j, k) + E1(1) = E1(1) + f(i, j, k, 5)*tmp0 ! Total Energy + E1(2) = E1(2) + d(i, j, k)*(u(i, j, k)*u(i, j, k) + v(i, j, k)*v(i, j, k) + w(i, j, k)*w(i, j, k))*0.5d0*tmp0 !Kinetic Energy + E1(3) = E1(3) + p00*d(i, j, k)**tmp1*T(i, j, k)*tmp0 !Entropy p/rho**gamma + end do + end do + end do + + call MPI_REDUCE(E1, E0, 3, OCFD_DATA_TYPE, MPI_SUM, 0, MPI_COMM_WORLD, ierr) + E0 = E0/(nx_global*ny_global*nz_global) + + if (my_id .eq. 0) then + print *, 'Istep=', Istep, 'tt=', tt + print *, 'CPU time per', Para%Istep_show, 'step is: ', wall_time - wtmp + write (*, "(3A25)") "Averaged Total-energy E","Kinetic-energy K","Entropy S" + write (*, "(3E25.15)") E0(1), E0(2), E0(3) + + open (66, file='opencfd.log', position='append') + write (66, *) 'Istep=', Istep, 'tt=', tt, 'CPU time is', wall_time - wtmp + write (66, "(3A25)") "Averaged Total-energy E","Kinetic-energy K","Entropy S" + write (66, "(3E25.15)") E0(1), E0(2), E0(3) + close (66) + end if + + end + diff --git a/OCFD_User_Def.f90 b/src/OCFD_User_Def.f90 similarity index 100% rename from OCFD_User_Def.f90 rename to src/OCFD_User_Def.f90 diff --git a/src/OCFD_dxyz_viscous.f90 b/src/OCFD_dxyz_viscous.f90 new file mode 100644 index 0000000..a0e9bd8 --- /dev/null +++ b/src/OCFD_dxyz_viscous.f90 @@ -0,0 +1,241 @@ +! Finite difference for viscous terms (Centeral Schemes) + + subroutine OCFD_dx0(f, fx, Num_Scheme) + use flow_para + implicit none + integer Num_Scheme, i, j, k + real(kind=OCFD_REAL_KIND):: f(1 - LAP:nx + LAP, 1 - LAP:ny + LAP, 1 - LAP:nz + LAP), fx(nx, ny, nz) + real(kind=OCFD_REAL_KIND):: a1, a2, a3, c1, c2, c3, c4 + a1 = 1.d0/(60.d0*hx) ! 6th centeral scheme + a2 = -3.d0/(20.d0*hx) + a3 = 3.d0/(4.d0*hx) + + c1 = 0.8d0/hx ! 8th centreral scheme + c2 = -0.2d0/hx + c3 = 3.80952380952380952d-2/hx + c4 = -3.571428571428571428d-3/hx + +!------Scheme for inner points ( CD6, CD8) + if (Num_Scheme == OCFD_Scheme_CD6) then + do k = 1, nz + do j = 1, ny + do i = 1, nx + fx(i, j, k) = a1*(f(i + 3, j, k) - f(i - 3, j, k)) + a2*(f(i + 2, j, k) - f(i - 2, j, k)) + a3*(f(i + 1, j, k) - f(i - 1, j, k)) + end do + end do + end do + + else if (Num_Scheme == OCFD_Scheme_CD8) then + do k = 1, nz + do j = 1, ny + do i = 1, nx + fx(i, j, k) = c1*(f(i + 1, j, k) - f(i - 1, j, k)) + c2*(f(i + 2, j, k) - f(i - 2, j, k)) & + + c3*(f(i + 3, j, k) - f(i - 3, j, k)) + c4*(f(i + 4, j, k) - f(i - 4, j, k)) + end do + end do + end do + else + print *, 'This Numerical Scheme is not supported in viscous terms !' + print *, 'Only CD6 or CD8 can be used in viscous terms' + stop + end if + +!---------Boundary Scheme ------- (low-order scheme)---- +!---------- i- boundary --------------------------- + if (npx .eq. 0 .and. Para%Iperiodic_X .eq. 0) then + do k = 1, nz + do j = 1, ny + fx(1, j, k) = (-3.d0*f(1, j, k) + 4.d0*f(2, j, k) - f(3, j, k))/(2.d0*hx) ! 2nd one-side scheme + fx(2, j, k) = (f(3, j, k) - f(1, j, k))/(2.d0*hx) ! 2nd centeral scheme + fx(3, j, k) = (8.d0*(f(4, j, k) - f(2, j, k)) - (f(5, j, k) - f(1, j, k)))/(12.d0*hx) ! 4th central scheme + end do + end do + if (Num_Scheme == OCFD_Scheme_CD8) then + do k = 1, nz + do j = 1, ny + fx(4, j, k) = a1*(f(7, j, k) - f(1, j, k)) + a2*(f(6, j, k) - f(2, j, k)) + a3*(f(5, j, k) - f(3, j, k)) ! 6th centeral scheme + end do + end do + end if + end if +!--------- i+ boundary ------------------------ + if (npx .eq. npx0 - 1 .and. Para%Iperiodic_X .eq. 0) then + do k = 1, nz + do j = 1, ny + fx(nx, j, k) = (f(nx - 2, j, k) - 4.d0*f(nx - 1, j, k) + 3.d0*f(nx, j, k))/(2.d0*hx) ! 2nd one-side scheme + fx(nx - 1, j, k) = (f(nx, j, k) - f(nx - 2, j, k))/(2.d0*hx) ! 2nd centeral scheme + fx(nx - 2, j, k) = (8.d0*(f(nx - 1, j, k) - f(nx - 3, j, k)) - (f(nx, j, k) - f(nx - 4, j, k)))/(12.d0*hx) ! 4th central scheme + end do + end do + if (Num_Scheme == OCFD_Scheme_CD8) then + do k = 1, nz + do j = 1, ny + fx(nx-3,j,k)=a1*(f(nx,j,k)-f(nx-6,j,k)) +a2*(f(nx-1,j,k)-f(nx-5,j,k)) +a3*(f(nx-2,j,k)-f(nx-4,j,k)) ! 6th centeral scheme + end do + end do + end if + end if + + end + +!c---------------------------------------------------------- + + subroutine OCFD_dy0(f, fy, Num_Scheme) + use flow_para + implicit none + integer Num_Scheme, i, j, k + real(kind=OCFD_REAL_KIND):: f(1 - LAP:nx + LAP, 1 - LAP:ny + LAP, 1 - LAP:nz + LAP), fy(nx, ny, nz) + real(kind=OCFD_REAL_KIND):: a1, a2, a3, c1, c2, c3, c4 + a1 = 1.d0/(60.d0*hy) + a2 = -3.d0/(20.d0*hy) + a3 = 3.d0/(4.d0*hy) + c1 = 0.8d0/hy + c2 = -0.2d0/hy + c3 = 3.80952380952380952d-2/hy + c4 = -3.571428571428571428d-3/hy + +!------Scheme for inner points ( CD6, CD8) + if (Num_Scheme == OCFD_Scheme_CD6) then + do k = 1, nz + do j = 1, ny + do i = 1, nx + fy(i, j, k) = a1*(f(i, j + 3, k) - f(i, j - 3, k)) + a2*(f(i, j + 2, k) - f(i, j - 2, k)) + a3*(f(i, j + 1, k) - f(i, j - 1, k)) + end do + end do + end do + + else if (Num_Scheme == OCFD_Scheme_CD8) then + do k = 1, nz + do j = 1, ny + do i = 1, nx + fy(i, j, k) = c1*(f(i, j + 1, k) - f(i, j - 1, k)) + c2*(f(i, j + 2, k) - f(i, j - 2, k)) & + + c3*(f(i, j + 3, k) - f(i, j - 3, k)) + c4*(f(i, j + 4, k) - f(i, j - 4, k)) + end do + end do + end do + else + + print *, 'This Numerical Scheme is not supported in viscous terms !' + print *, 'Only CD6 or CD8 can be used in viscous terms' + stop + end if + +!---------Boundary Scheme ------- (low-order scheme)---- +!---------- j- boundary --------------------------- + if (npy .eq. 0 .and. Para%Iperiodic_Y .eq. 0) then + do k = 1, nz + do i = 1, nx + fy(i, 1, k) = (-3.d0*f(i, 1, k) + 4.d0*f(i, 2, k) - f(i, 3, k))/(2.d0*hy) ! 2nd one-side scheme + fy(i, 2, k) = (f(i, 3, k) - f(i, 1, k))/(2.d0*hy) ! 2nd centeral scheme + fy(i, 3, k) = (8.d0*(f(i, 4, k) - f(i, 2, k)) - (f(i, 5, k) - f(i, 1, k)))/(12.d0*hy) ! 4th central scheme + end do + end do + if (Num_Scheme == OCFD_Scheme_CD8) then + do k = 1, nz + do i = 1, nx + fy(i, 4, k) = a1*(f(i, 7, k) - f(i, 1, k)) + a2*(f(i, 6, k) - f(i, 2, k)) + a3*(f(i, 5, k) - f(i, 3, k)) ! 6th centeral scheme + end do + end do + end if + end if +!--------- j+ boundary ------------------------ + if (npy .eq. npy0 - 1 .and. Para%Iperiodic_Y .eq. 0) then + do k = 1, nz + do i = 1, nx + fy(i, ny, k) = (f(i, ny - 2, k) - 4.d0*f(i, ny - 1, k) + 3.d0*f(i, ny, k))/(2.d0*hy) ! 2nd one-side scheme + fy(i, ny - 1, k) = (f(i, ny, k) - f(i, ny - 2, k))/(2.d0*hy) ! 2nd centeral scheme + fy(i, ny - 2, k) = (8.d0*(f(i, ny - 1, k) - f(i, ny - 3, k)) - (f(i, ny, k) - f(i, ny - 4, k)))/(12.d0*hy) ! 4th central scheme + end do + end do + if (Num_Scheme == OCFD_Scheme_CD8) then + do k = 1, nz + do i = 1, nx + fy(i,ny-3,k)=a1*(f(i,ny,k)-f(i,ny-6,k)) +a2*(f(i,ny-1,k)-f(i,ny-5,k)) +a3*(f(i,ny-2,k)-f(i,ny-4,k)) ! 6th centeral scheme + end do + end do + end if + end if + + end + +!c---------------------------------------------------------- + + subroutine OCFD_dz0(f, fz, Num_Scheme) + use flow_para + implicit none + integer Num_Scheme, i, j, k + real(kind=OCFD_REAL_KIND):: f(1 - LAP:nx + LAP, 1 - LAP:ny + LAP, 1 - LAP:nz + LAP), fz(nx, ny, nz) + real(kind=OCFD_REAL_KIND):: a1, a2, a3, c1, c2, c3, c4 + a1 = 1.d0/(60.d0*hz) + a2 = -3.d0/(20.d0*hz) + a3 = 3.d0/(4.d0*hz) + c1 = 0.8d0/hz + c2 = -0.2d0/hz + c3 = 3.80952380952380952d-2/hz + c4 = -3.571428571428571428d-3/hz + +!------Scheme for inner points ( CD6, CD8) + if (Num_Scheme == OCFD_Scheme_CD6) then + do k = 1, nz + do j = 1, ny + do i = 1, nx + fz(i, j, k) = a1*(f(i, j, k + 3) - f(i, j, k - 3)) + a2*(f(i, j, k + 2) - f(i, j, k - 2)) + a3*(f(i, j, k + 1) - f(i, j, k - 1)) + end do + end do + end do + + else if (Num_Scheme == OCFD_Scheme_CD8) then + do k = 1, nz + do j = 1, ny + do i = 1, nx + fz(i, j, k) = c1*(f(i, j, k + 1) - f(i, j, k - 1)) + c2*(f(i, j, k + 2) - f(i, j, k - 2)) & + + c3*(f(i, j, k + 3) - f(i, j, k - 3)) + c4*(f(i, j, k + 4) - f(i, j, k - 4)) + end do + end do + end do + else + + print *, 'This Numerical Scheme is not supported in viscous terms !' + print *, 'Only CD6 or CD8 can be used in viscous terms' + stop + end if + +!---------Boundary Scheme ------- (low-order scheme)---- +!---------- k- boundary --------------------------- + if (npz .eq. 0 .and. Para%Iperiodic_Z .eq. 0) then + do j = 1, ny + do i = 1, nx + fz(i, j, 1) = (-3.d0*f(i, j, 1) + 4.d0*f(i, j, 2) - f(i, j, 3))/(2.d0*hz) ! 2nd one-side scheme + fz(i, j, 2) = (f(i, j, 3) - f(i, j, 1))/(2.d0*hz) ! 2nd centeral scheme + fz(i, j, 3) = (8.d0*(f(i, j, 4) - f(i, j, 2)) - (f(i, j, 5) - f(i, j, 1)))/(12.d0*hz) ! 4th central scheme + end do + end do + if (Num_Scheme == OCFD_Scheme_CD8) then + do j = 1, ny + do i = 1, nx + fz(i, j, 4) = a1*(f(i, j, 7) - f(i, j, 1)) + a2*(f(i, j, 6) - f(i, j, 2)) + a3*(f(i, j, 5) - f(i, j, 3)) ! 6th centeral scheme + end do + end do + end if + end if +!--------- k+ boundary ------------------------ + if (npz .eq. npz0 - 1 .and. Para%Iperiodic_Z .eq. 0) then + do j = 1, ny + do i = 1, nx + fz(i, j, nz) = (f(i, j, nz - 2) - 4.d0*f(i, j, nz - 1) + 3.d0*f(i, j, nz))/(2.d0*hz) ! 2nd one-side scheme + fz(i, j, nz - 1) = (f(i, j, nz) - f(i, j, nz - 2))/(2.d0*hz) ! 2nd centeral scheme + fz(i, j, nz - 2) = (8.d0*(f(i, j, nz - 1) - f(i, j, nz - 3)) - (f(i, j, nz) - f(i, j, nz - 4)))/(12.d0*hz) ! 4th central scheme + end do + end do + if (Num_Scheme == OCFD_Scheme_CD8) then + do j = 1, ny + do i = 1, nx + fz(i,j,nz-3)=a1*(f(i,j,nz)-f(i,j,nz-6)) +a2*(f(i,j,nz-1)-f(i,j,nz-5)) +a3*(f(i,j,nz-2)-f(i,j,nz-4)) ! 6th centeral scheme + end do + end do + end if + end if + + end + +!c---------------------------------------------------------- \ No newline at end of file diff --git a/src/OCFD_filtering.f90 b/src/OCFD_filtering.f90 new file mode 100644 index 0000000..5b3de56 --- /dev/null +++ b/src/OCFD_filtering.f90 @@ -0,0 +1,365 @@ +! Filtering, to remove high-wavenumber oscillations +! Bogey C, Bailly C, J. Comput. Phys. 194 (2004) 194-214 + + subroutine filtering(f) + Use flow_para + implicit none + integer:: m, ib, ie, jb, je, kb, ke, IF_filter, Filter_X, Filter_Y, Filter_Z, Filter_scheme + real(kind=OCFD_REAL_KIND):: f(nx, ny, nz, Nvars), s0, rth + real(kind=OCFD_REAL_KIND), allocatable, dimension(:, :, :):: f0, p + integer, parameter:: Filter_Fo9p = 1, Filter_Fopt_shock = 2 + + IF_filter = 0 + do m = 1, Para%Nfiltering + if (mod(Istep, nint(Para%Filter(1, m))) == 0) IF_filter = 1 + end do + if (IF_filter == 0) return ! do not filtering in this step + + allocate (f0(1 - LAP:nx + LAP, 1 - LAP:ny + LAP, 1 - LAP:nz + LAP), p(1 - LAP:nx + LAP, 1 - LAP:ny + LAP, 1 - LAP:nz + LAP)) +! --------------Filtering -------------------- + if (my_id .eq. 0) print *, "filtering ......" + + do m = 1, Para%NFiltering + if (mod(Istep, nint(Para%Filter(1, m))) == 0) then + Filter_X = nint(Para%Filter(2, m)) + Filter_Y = nint(Para%Filter(3, m)) + Filter_Z = nint(Para%Filter(4, m)) + ib = nint(Para%Filter(5, m)) + ie = nint(Para%Filter(6, m)) + jb = nint(Para%Filter(7, m)) + je = nint(Para%Filter(8, m)) + kb = nint(Para%Filter(9, m)) + ke = nint(Para%Filter(10, m)) + ib = max(ib - i_offset(npx) + 1, 1) ! transform global index to local index + ie = min(ie - i_offset(npx) + 1, nx) + jb = max(jb - j_offset(npy) + 1, 1) + je = min(je - j_offset(npy) + 1, ny) + kb = max(kb - k_offset(npz) + 1, 1) + ke = min(ke - k_offset(npz) + 1, nz) + + Filter_scheme = nint(Para%Filter(11, m)) ! 1 9-point filtering Fo9P; 2 shock-capturing filtering (more robust but more dissipative) + s0 = Para%Filter(12, m) ! filtering amplitude (s=1 for default) + rth = Para%Filter(13, m) ! flitering threshold (1E-5 for default); smaller: more dissipation (robust) rth=0: 100% filtering + + if (Filter_X == 1) then + if (Filter_scheme == Filter_Fo9p) then + call filter_x3d(f, f0, s0, ib, ie, jb, je, kb, ke) + else if (Filter_scheme == Filter_Fopt_shock) then + call filter_x3d_shock(f, f0, p, s0, rth, ib, ie, jb, je, kb, ke) + end if + end if + + if (Filter_Y == 1) then + if (Filter_scheme == Filter_Fo9p) then + call filter_y3d(f, f0, s0, ib, ie, jb, je, kb, ke) + else if (Filter_scheme == Filter_Fopt_shock) then + call filter_y3d_shock(f, f0, p, s0, rth, ib, ie, jb, je, kb, ke) + end if + end if + + if (Filter_Z == 1) then + if (Filter_scheme == Filter_Fo9p) then + call filter_z3d(f, f0, s0, ib, ie, jb, je, kb, ke) + else if (Filter_scheme == Filter_Fopt_shock) then + call filter_z3d_shock(f, f0, p, s0, rth, ib, ie, jb, je, kb, ke) + end if + end if + end if + end do + deallocate (f0, p) + end + +!--------------------------------------------------- + subroutine filter_x3d(f, f0, s0, ib, ie, jb, je, kb, ke) + Use flow_para + implicit none + + integer:: i, j, k, m, ib, ie, jb, je, kb, ke, ib1, ie1 + real(kind=OCFD_REAL_KIND):: f0(1 - LAP:nx + LAP, 1 - LAP:ny + LAP, 1 - LAP:nz + LAP) + real(kind=OCFD_REAL_KIND):: f(nx, ny, nz, Nvars), s0 + real(kind=OCFD_REAL_KIND), parameter:: d0 = 0.243527493120d0, d1 = -0.204788880640d0, d2 = 0.120007591680d0, & + d3 = -0.045211119360d0, d4 = 0.008228661760d0 + + ib1 = ib; ie1 = ie + if (npx == 0 .and. Para%Iperiodic_X .ne. 1) ib1 = max(ib, 6) + if (npx == npx0 - 1 .and. Para%Iperiodic_X .ne. 1) ie1 = min(ie, nx - 5) + + do m = 1, Nvars + do k = 1, nz + do j = 1, ny + do i = 1, nx + f0(i, j, k) = f(i, j, k, m) + end do + end do + end do + + call exchange_boundary_x(f0) + + do k = kb, ke + do j = jb, je + do i = ib1, ie1 +f(i, j, k, m) = f0(i, j, k) - s0*(d0*f0(i, j, k) + d1*(f0(i - 1, j, k) + f0(i + 1, j, k)) + d2*(f0(i - 2, j, k) + f0(i + 2, j, k)) & + + d3*(f0(i - 3, j, k) + f0(i + 3, j, k)) + d4*(f0(i - 4, j, k) + f0(i + 4, j, k))) + end do + end do + end do + end do + + end + +!--------------------------------------------------- + subroutine filter_y3d(f, f0, s0, ib, ie, jb, je, kb, ke) + Use flow_para + implicit none + + integer:: i, j, k, m, ib, ie, jb, je, kb, ke, jb1, je1 + real(kind=OCFD_REAL_KIND):: f0(1 - LAP:nx + LAP, 1 - LAP:ny + LAP, 1 - LAP:nz + LAP) + real(kind=OCFD_REAL_KIND):: f(nx, ny, nz, Nvars), s0 + real(kind=OCFD_REAL_KIND), parameter:: d0 = 0.243527493120d0, d1 = -0.204788880640d0, d2 = 0.120007591680d0, & + d3 = -0.045211119360d0, d4 = 0.008228661760d0 + + jb1 = jb; je1 = je + if (npy == 0 .and. Para%Iperiodic_Y .ne. 1) jb1 = max(jb, 6) + if (npy == npy0 - 1 .and. Para%Iperiodic_Y .ne. 1) je1 = min(je, ny - 5) + + do m = 1, Nvars + do k = 1, nz + do j = 1, ny + do i = 1, nx + f0(i, j, k) = f(i, j, k, m) + end do + end do + end do + + call exchange_boundary_y(f0) + + do k = kb, ke + do j = jb1, je1 + do i = ib, ie +f(i, j, k, m) = f0(i, j, k) - s0*(d0*f0(i, j, k) + d1*(f0(i, j - 1, k) + f0(i, j + 1, k)) + d2*(f0(i, j - 2, k) + f0(i, j + 2, k)) & + + d3*(f0(i, j - 3, k) + f0(i, j + 3, k)) + d4*(f0(i, j - 4, k) + f0(i, j + 4, k))) + end do + end do + end do + end do + + end + +!--------------------------------------------------- + subroutine filter_z3d(f, f0, s0, ib, ie, jb, je, kb, ke) + Use flow_para + implicit none + + integer:: i, j, k, m, ib, ie, jb, je, kb, ke, kb1, ke1 + real(kind=OCFD_REAL_KIND):: f0(1 - LAP:nx + LAP, 1 - LAP:ny + LAP, 1 - LAP:nz + LAP) + real(kind=OCFD_REAL_KIND):: f(nx, ny, nz, Nvars), s0 + real(kind=OCFD_REAL_KIND), parameter:: d0 = 0.243527493120d0, d1 = -0.204788880640d0, d2 = 0.120007591680d0, & + d3 = -0.045211119360d0, d4 = 0.008228661760d0 + kb1 = kb; ke1 = ke + if (npz == 0 .and. Para%Iperiodic_Z .ne. 1) kb1 = max(kb, 6) + if (npz == npz0 - 1 .and. Para%Iperiodic_Z .ne. 1) ke1 = min(ke, nz - 5) + + do m = 1, Nvars + do k = 1, nz + do j = 1, ny + do i = 1, nx + f0(i, j, k) = f(i, j, k, m) + end do + end do + end do + + call exchange_boundary_z(f0) + + do k = kb1, ke1 + do j = jb, je + do i = ib, ie +f(i, j, k, m) = f0(i, j, k) - s0*(d0*f0(i, j, k) + d1*(f0(i, j, k - 1) + f0(i, j, k + 1)) + d2*(f0(i, j, k - 2) + f0(i, j, k + 2)) & + + d3*(f0(i, j, k - 3) + f0(i, j, k + 3)) + d4*(f0(i, j, k - 4) + f0(i, j, k + 4))) + end do + end do + end do + end do + + end + +!------------------------------------------------------------ +! Shock cpaturing filtering + + subroutine filter_x3d_shock(f, f0, p, s0, rth, ib, ie, jb, je, kb, ke) + Use flow_para + implicit none + + integer:: i, j, k, m, ib, ie, jb, je, kb, ke, ib1, ie1 + real(kind=OCFD_REAL_KIND), dimension(1 - LAP:nx + LAP, 1 - LAP:ny + LAP, 1 - LAP:nz + LAP):: f0, p + real(kind=OCFD_REAL_KIND):: f(nx, ny, nz, Nvars), sc0(0:nx + 1), s0, rth, dp0, dp1, dp2, ri, sc1, sc2 + real(kind=OCFD_REAL_KIND), parameter:: c1 = -0.210383d0, c2 = 0.039617d0 + + ib1 = ib; ie1 = ie + if (npx == 0 .and. Para%Iperiodic_X .ne. 1) ib1 = max(ib, 4) + if (npx == npx0 - 1 .and. Para%Iperiodic_X .ne. 1) ie1 = min(ie, nx - 3) + + do k = 1, nz + do j = 1, ny + do i = 1, nx + p(i, j, k) = (f(i, j, k, 5) - 0.5d0*(f(i, j, k, 2)**2 + f(i, j, k, 3)**2 + f(i, j, k, 4)**2)/f(i, j, k, 1))*(Para%gamma - 1.d0) + end do + end do + end do + + call exchange_boundary_x(p) + + do m = 1, Nvars + do k = 1, nz + do j = 1, ny + do i = 1, nx + f0(i, j, k) = f(i, j, k, m) + end do + end do + end do + + call exchange_boundary_x(f0) + + do k = kb, ke + do j = jb, je + + do i = ib1 - 1, ie1 + 1 + dp0 = 0.25d0*(-p(i + 1, j, k) + 2.d0*p(i, j, k) - p(i - 1, j, k)) + dp1 = 0.25d0*(-p(i + 2, j, k) + 2.d0*p(i + 1, j, k) - p(i, j, k)) + dp2 = 0.25d0*(-p(i, j, k) + 2.d0*p(i - 1, j, k) - p(i - 2, j, k)) + ri = 0.5d0*((dp0 - dp1)**2 + (dp0 - dp2)**2)/(p(i, j, k)*p(i, j, k)) + 1.d-16 + sc0(i) = 0.5d0*(1.d0 - rth/ri + abs(1.d0 - rth/ri)) + end do + + do i = ib1, ie1 + sc1 = 0.5d0*(sc0(i) + sc0(i + 1)) + sc2 = 0.5d0*(sc0(i) + sc0(i - 1)) + + f(i, j, k, m) = f0(i, j, k) - s0*(Sc1*(c1*(f0(i + 1, j, k) - f0(i, j, k)) + c2*(f0(i + 2, j, k) - f0(i - 1, j, k))) & + - Sc2*(c1*(f0(i, j, k) - f0(i - 1, j, k)) + c2*(f0(i + 1, j, k) - f0(i - 2, j, k)))) + end do + end do + end do + end do + + end + +!--------------------------------------------------- + subroutine filter_y3d_shock(f, f0, p, s0, rth, ib, ie, jb, je, kb, ke) + Use flow_para + implicit none + + integer:: i, j, k, m, ib, ie, jb, je, kb, ke, jb1, je1 + real(kind=OCFD_REAL_KIND), dimension(1 - LAP:nx + LAP, 1 - LAP:ny + LAP, 1 - LAP:nz + LAP):: f0, p + real(kind=OCFD_REAL_KIND):: f(nx, ny, nz, Nvars), sc0(0:ny + 1), s0, rth, dp0, dp1, dp2, ri, sc1, sc2 + real(kind=OCFD_REAL_KIND), parameter:: c1 = -0.210383d0, c2 = 0.039617d0 + + jb1 = jb; je1 = je + if (npy == 0 .and. Para%Iperiodic_Y .ne. 1) jb1 = max(jb, 4) + if (npy == npy0 - 1 .and. Para%Iperiodic_Y .ne. 1) je1 = min(je, ny - 3) + + do k = 1, nz + do j = 1, ny + do i = 1, nx + p(i, j, k) = (f(i, j, k, 5) - 0.5d0*(f(i, j, k, 2)**2 + f(i, j, k, 3)**2 + f(i, j, k, 4)**2)/f(i, j, k, 1))*(Para%gamma - 1.d0) + end do + end do + end do + + call exchange_boundary_y(p) + + do m = 1, Nvars + do k = 1, nz + do j = 1, ny + do i = 1, nx + f0(i, j, k) = f(i, j, k, m) + end do + end do + end do + + call exchange_boundary_y(f0) + + do k = kb, ke + do i = ib, ie + + do j = jb1 - 1, je1 + 1 + dp0 = 0.25d0*(-p(i, j + 1, k) + 2.d0*p(i, j, k) - p(i, j - 1, k)) + dp1 = 0.25d0*(-p(i, j + 2, k) + 2.d0*p(i, j + 1, k) - p(i, j, k)) + dp2 = 0.25d0*(-p(i, j, k) + 2.d0*p(i, j - 1, k) - p(i, j - 2, k)) + ri = 0.5d0*((dp0 - dp1)**2 + (dp0 - dp2)**2)/(p(i, j, k)*p(i, j, k)) + 1.d-16 + sc0(j) = 0.5d0*(1.d0 - rth/ri + abs(1.d0 - rth/ri)) + end do + + do j = jb1, je1 + sc1 = 0.5d0*(sc0(j) + sc0(j + 1)) + sc2 = 0.5d0*(sc0(j) + sc0(j - 1)) + + f(i, j, k, m) = f0(i, j, k) - s0*(Sc1*(c1*(f0(i, j + 1, k) - f0(i, j, k)) + c2*(f0(i, j + 2, k) - f0(i, j - 1, k))) & + - Sc2*(c1*(f0(i, j, k) - f0(i, j - 1, k)) + c2*(f0(i, j + 1, k) - f0(i, j - 2, k)))) + end do + + end do + end do + end do + + end +!--------------------------------------------------- + subroutine filter_z3d_shock(f, f0, p, s0, rth, ib, ie, jb, je, kb, ke) + Use flow_para + implicit none + + integer:: i, j, k, m, ib, ie, jb, je, kb, ke, kb1, ke1 + real(kind=OCFD_REAL_KIND), dimension(1 - LAP:nx + LAP, 1 - LAP:ny + LAP, 1 - LAP:nz + LAP):: f0, p + real(kind=OCFD_REAL_KIND):: f(nx, ny, nz, Nvars), sc0(0:nz + 1), s0, rth, dp0, dp1, dp2, ri, sc1, sc2 + real(kind=OCFD_REAL_KIND), parameter:: c1 = -0.210383d0, c2 = 0.039617d0 + + kb1 = kb; ke1 = ke + if (npz == 0 .and. Para%Iperiodic_Z .ne. 1) kb1 = max(kb, 4) + if (npz == npz0 - 1 .and. Para%Iperiodic_Z .ne. 1) ke1 = min(ke, nz - 3) + + do k = 1, nz + do j = 1, ny + do i = 1, nx + p(i, j, k) = (f(i, j, k, 5) - 0.5d0*(f(i, j, k, 2)**2 + f(i, j, k, 3)**2 + f(i, j, k, 4)**2)/f(i, j, k, 1))*(Para%gamma - 1.d0) + end do + end do + end do + + call exchange_boundary_z(p) + + do m = 1, Nvars + do k = 1, nz + do j = 1, ny + do i = 1, nx + f0(i, j, k) = f(i, j, k, m) + end do + end do + end do + + call exchange_boundary_z(f0) + + do j = jb, je + do i = ib, ie + + do k = kb1 - 1, ke1 + 1 + dp0 = 0.25d0*(-p(i, j, k + 1) + 2.d0*p(i, j, k) - p(i, j, k - 1)) + dp1 = 0.25d0*(-p(i, j, k + 2) + 2.d0*p(i, j, k + 1) - p(i, j, k)) + dp2 = 0.25d0*(-p(i, j, k) + 2.d0*p(i, j, k - 1) - p(i, j, k - 2)) + ri = 0.5d0*((dp0 - dp1)**2 + (dp0 - dp2)**2)/(p(i, j, k)*p(i, j, k)) + 1.d-16 + sc0(k) = 0.5d0*(1.d0 - rth/ri + abs(1.d0 - rth/ri)) + end do + + do k = kb1, ke1 + sc1 = 0.5d0*(sc0(k) + sc0(k + 1)) + sc2 = 0.5d0*(sc0(k) + sc0(k - 1)) + + f(i, j, k, m) = f0(i, j, k) - s0*(Sc1*(c1*(f0(i, j, k + 1) - f0(i, j, k)) + c2*(f0(i, j, k + 2) - f0(i, j, k - 1))) & + - Sc2*(c1*(f0(i, j, k) - f0(i, j, k - 1)) + c2*(f0(i, j, k + 1) - f0(i, j, k - 2)))) + end do + + end do + end do + end do + + end + +!------------------------------------------------------------ diff --git a/src/OCFD_flowinit.f90 b/src/OCFD_flowinit.f90 new file mode 100644 index 0000000..212935d --- /dev/null +++ b/src/OCFD_flowinit.f90 @@ -0,0 +1,35 @@ + + subroutine flowfield_init(flowtype) + + Use flow_data + + implicit none + + ! argument + character(len=*), intent(in) :: flowtype + + ! local data + integer :: i,j,k,ierr + + Istep=0 + + tt=0.d0 + + do k = 1, nz + do j = 1, ny + do i = 1, nx + d(i,j,k)=1.d0 + u(i,j,k)= sin(Axx(i,j,k))*cos(Ayy(i,j,k))*cos(Azz(i,j,k)) + v(i,j,k)=-cos(Axx(i,j,k))*sin(Ayy(i,j,k))*cos(Azz(i,j,k)) + w(i,j,k)=0.d0 + T(i,j,k)=1.d0 + enddo + enddo + enddo + + call MPI_bcast(Istep, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) + call MPI_bcast(tt, 1, OCFD_DATA_TYPE, 0, MPI_COMM_WORLD, ierr) + + if (my_id == 0) print *, "flow initialized" + + end subroutine flowfield_init \ No newline at end of file diff --git a/src/OCFD_flux_split.f90 b/src/OCFD_flux_split.f90 new file mode 100644 index 0000000..8fd8b3a --- /dev/null +++ b/src/OCFD_flux_split.f90 @@ -0,0 +1,104 @@ + +!============================================================================================= +! Steger-Warming Splitting, See Dexun Fu, Computational Aerodynamics, page 160-162 (in Chinese) +! Ref: Steger J I, warming R F, JCP 40, 263-293, 1981 + subroutine split_Stager_Warming(nx1, LAP1, c1, d1, u1, v1, w1, A1, A2, A3, fP, fm) + Use flow_para + implicit none + integer nx1, LAP1, i + real(kind=OCFD_REAL_KIND), dimension(1 - LAP1:nx1 + LAP1):: c1, d1, u1, v1, w1, A1, A2, A3 + real(kind=OCFD_REAL_KIND), dimension(1 - LAP1:nx1 + LAP1, 5):: fp, fm + + real(kind=OCFD_REAL_KIND):: ss, ss1, ak1, ak2, ak3, tmp0, tmp1, tmp2, tmp3, & + E1, E2, E3, E1P, E2P, E3P, E1M, E2M, E3M, & + vs, uc1, uc2, vc1, vc2, wc1, wc2, vvc1, vvc2, vv, W2, P2 + + tmp1 = 2.d0*(Para%gamma - 1.d0) + tmp2 = 1.d0/(2.d0*Para%gamma) + tmp3 = (3.d0 - Para%gamma)/(2.d0*(Para%gamma - 1.d0)) + + do i = 1 - LAP1, nx1 + LAP1 + ss = sqrt(A1(i)*A1(i) + A2(i)*A2(i) + A3(i)*A3(i)) + ss1 = 1.d0/ss + ak1 = A1(i)*ss1 + ak2 = A2(i)*ss1 + ak3 = A3(i)*ss1 + vs = A1(i)*u1(i) + A2(i)*v1(i) + A3(i)*w1(i) +!c E1 is lamda1, lamda2 and lamda3; E2 is lamda4; E3 is lamda5 + E1 = vs + E2 = vs - c1(i)*ss + E3 = vs + c1(i)*ss +!---------------------------------------- + E1P = (E1 + abs(E1))*0.5d0 + E2P = (E2 + abs(E2))*0.5d0 + E3P = (E3 + abs(E3))*0.5d0 + + E1M = E1 - E1P + E2M = E2 - E2P + E3M = E3 - E3P +!---------------------------------------- + tmp0 = d1(i)/(2.d0*Para%gamma) + uc1 = u1(i) - c1(i)*ak1 + uc2 = u1(i) + c1(i)*ak1 + vc1 = v1(i) - c1(i)*ak2 + vc2 = v1(i) + c1(i)*ak2 + wc1 = w1(i) - c1(i)*ak3 + wc2 = w1(i) + c1(i)*ak3 + vvc1 = (uc1*uc1 + vc1*vc1 + wc1*wc1)*0.5d0 + vvc2 = (uc2*uc2 + vc2*vc2 + wc2*wc2)*0.5d0 + vv = (Para%gamma - 1.d0)*(u1(i)*u1(i) + v1(i)*v1(i) + w1(i)*w1(i)) + W2 = tmp3*c1(i)*c1(i) +! --------The equation seems wrong ! P2 should be zero ! +! P2=tmp1*d1(i)*ak1*(ak2*w1(i)-ak3*v1(i)) ! ??????? Error +!-------------------------------------------------------- + fp(i, 1) = tmp0*(tmp1*E1P + E2P + E3P) + fp(i, 2) = tmp0*(tmp1*E1P*u1(i) + E2P*uc1 + E3P*uc2) + fp(i, 3) = tmp0*(tmp1*E1P*v1(i) + E2P*vc1 + E3P*vc2) + fp(i, 4) = tmp0*(tmp1*E1P*w1(i) + E2P*wc1 + E3P*wc2) +! P2 should be zero !!! +! fp(i,5)=tmp0*(E1P*vv+E2p*vvc1+E3P*vvc2+W2*(E2P+E3P)+P2*E1P) ! Error + fp(i, 5) = tmp0*(E1P*vv + E2p*vvc1 + E3P*vvc2 + W2*(E2P + E3P)) + + fm(i, 1) = tmp0*(tmp1*E1M + E2M + E3M) + fm(i, 2) = tmp0*(tmp1*E1M*u1(i) + E2M*uc1 + E3M*uc2) + fm(i, 3) = tmp0*(tmp1*E1M*v1(i) + E2M*vc1 + E3M*vc2) + fm(i, 4) = tmp0*(tmp1*E1M*w1(i) + E2M*wc1 + E3M*wc2) + +! fm(i,5)=tmp0*(E1M*vv+E2M*vvc1+E3M*vvc2+W2*(E2M+E3M)+P2*E1M) ! Error + fm(i, 5) = tmp0*(E1M*vv + E2M*vvc1 + E3M*vvc2 + W2*(E2M + E3M)) + end do + end +!-------------------------------------------- + + subroutine split_Local_LaxFriedrichs(nx1, LAP1, c1, d1, u1, v1, w1, A1, A2, A3, fP, fm) + Use flow_para + implicit none + integer nx1, LAP1, i + real(kind=OCFD_REAL_KIND), dimension(1 - LAP1:nx1 + LAP1):: c1, d1, u1, v1, w1, A1, A2, A3 + real(kind=OCFD_REAL_KIND), dimension(1 - LAP1:nx1 + LAP1, 5):: fp, fm + + real(kind=OCFD_REAL_KIND):: ss, un, p1, lamda0, E0, h0, tmp0, tmp1 + tmp0 = 1.d0/Para%gamma + tmp1 = 1.d0/(Para%gamma - 1.d0) + + do i = 1 - LAP1, nx1 + LAP1 + ss = sqrt(A1(i)*A1(i) + A2(i)*A2(i) + A3(i)*A3(i)) + un = A1(i)*u1(i) + A2(i)*v1(i) + A3(i)*w1(i) + lamda0 = abs(un) + ss*c1(i) + p1 = tmp0*d1(i)*c1(i)*c1(i) + E0 = tmp1*p1 + 0.5d0*d1(i)*(u1(i)*u1(i) + v1(i)*v1(i) + w1(i)*w1(i)) + h0 = E0 + p1 ! Total H (=E+p) + + fp(i, 1) = 0.5d0*(d1(i)*un + lamda0*d1(i)) + fp(i, 2) = 0.5d0*(d1(i)*u1(i)*un + A1(i)*p1 + lamda0*d1(i)*u1(i)) + fp(i, 3) = 0.5d0*(d1(i)*v1(i)*un + A2(i)*p1 + lamda0*d1(i)*v1(i)) + fp(i, 4) = 0.5d0*(d1(i)*w1(i)*un + A3(i)*p1 + lamda0*d1(i)*w1(i)) + fp(i, 5) = 0.5d0*(h0*un + lamda0*E0) + + fm(i, 1) = 0.5d0*(d1(i)*un - lamda0*d1(i)) + fm(i, 2) = 0.5d0*(d1(i)*u1(i)*un + A1(i)*p1 - lamda0*d1(i)*u1(i)) + fm(i, 3) = 0.5d0*(d1(i)*v1(i)*un + A2(i)*p1 - lamda0*d1(i)*v1(i)) + fm(i, 4) = 0.5d0*(d1(i)*w1(i)*un + A3(i)*p1 - lamda0*d1(i)*w1(i)) + fm(i, 5) = 0.5d0*(h0*un - lamda0*E0) + end do + end diff --git a/src/OCFD_handle_NegativeT.f90 b/src/OCFD_handle_NegativeT.f90 new file mode 100644 index 0000000..0f47cdc --- /dev/null +++ b/src/OCFD_handle_NegativeT.f90 @@ -0,0 +1,18 @@ + subroutine handle_NegativeT(i, j, k, Num_NegT) + use flow_data + implicit none + integer:: i, j, k, i1, j1, k1, Num_NegT + integer, parameter:: Max_NegT = 10 + ! input you code here !!! + i1 = i_offset(npx) + i - 1 + j1 = j_offset(npy) + j - 1 + k1 = k_offset(npz) + k - 1 + print *, "Negative T found !", i1, j1, k1 + T(i, j, k) = (T(i + 1, j, k) + T(i - 1, j, k) + T(i, j + 1, k) + T(i, j - 1, k) + T(i, j, k + 1) + T(i, j, k - 1))/6.d0 + Num_NegT = Num_NegT + 1 + if (Num_NegT > 10) then + print *, "Number of Negative Temperature Points > Limit, STOP !" + stop + end if + end + diff --git a/src/OCFD_init.f90 b/src/OCFD_init.f90 new file mode 100644 index 0000000..11a7d31 --- /dev/null +++ b/src/OCFD_init.f90 @@ -0,0 +1,21 @@ + subroutine init3d + use flow_data + implicit none + integer:: i, j, k, ierr + + call init_mesh + + call read_flow_data + + do k = 1, nz + do j = 1, ny + do i = 1, nx + f(i, j, k, 1) = d(i, j, k) + f(i, j, k, 2) = d(i, j, k)*u(i, j, k) + f(i, j, k, 3) = d(i, j, k)*v(i, j, k) + f(i, j, k, 4) = d(i, j, k)*w(i, j, k) + f(i, j, k, 5) = d(i, j, k)*((u(i, j, k)*u(i, j, k) + v(i, j, k)*v(i, j, k) + w(i, j, k)*w(i, j, k))*0.5d0 + Cv*T(i, j, k)) + end do + end do + end do + end diff --git a/src/OCFD_inviscous.f90 b/src/OCFD_inviscous.f90 new file mode 100644 index 0000000..b25bb8c --- /dev/null +++ b/src/OCFD_inviscous.f90 @@ -0,0 +1,364 @@ +! Inviscous term for Jacobian-transformed N-S equation (Non-Characterical flux) --------------------- + +module inviscous_data ! data used by inviscous term + use OCFD_precision + implicit none + real(kind=OCFD_REAL_KIND), allocatable, dimension(:, :, :):: cc ! speed of sound + real(kind=OCFD_REAL_KIND), allocatable, dimension(:) :: & + c1x, d1x, u1x, v1x, w1x, A1x, A2x, A3x, hhx1, hhx2, & + c1y, d1y, u1y, v1y, w1y, A1y, A2y, A3y, hhy1, hhy2, & + c1z, d1z, u1z, v1z, w1z, A1z, A2z, A3z, hhz1, hhz2 + real(kind=OCFD_REAL_KIND), allocatable, dimension(:, :):: fpx, fmx, fpy, fmy, fpz, fmz, hhx, hhy, hhz + integer, allocatable, dimension(:)::Scm_Hbx, Scm_Hby, Scm_Hbz ! hybrid scheme index +end + +subroutine allocate_inviscous_data + use flow_para + use inviscous_data + implicit none + allocate (cc(1 - LAP:nx + LAP, 1 - LAP:ny + LAP, 1 - LAP:nz + LAP)) + allocate (fpx(1 - LAP:nx + LAP, 5), fmx(1 - LAP:nx + LAP, 5)) + allocate (c1x(1 - LAP:nx + LAP), d1x(1 - LAP:nx + LAP), u1x(1 - LAP:nx + LAP), & + v1x(1 - LAP:nx + LAP), w1x(1 - LAP:nx + LAP), A1x(1 - LAP:nx + LAP), & + A2x(1 - LAP:nx + LAP), A3x(1 - LAP:nx + LAP), & + hhx1(0:nx), hhx2(0:nx), hhx(0:nx, 5)) + + allocate (fpy(1 - LAP:ny + LAP, 5), fmy(1 - LAP:ny + LAP, 5)) + allocate (c1y(1 - LAP:ny + LAP), d1y(1 - LAP:ny + LAP), u1y(1 - LAP:ny + LAP), & + v1y(1 - LAP:ny + LAP), w1y(1 - LAP:ny + LAP), A1y(1 - LAP:ny + LAP), & + A2y(1 - LAP:ny + LAP), A3y(1 - LAP:ny + LAP), & + hhy1(0:ny), hhy2(0:ny), hhy(0:ny, 5)) + + allocate (fpz(1 - LAP:nz + LAP, 5), fmz(1 - LAP:nz + LAP, 5)) + allocate (c1z(1 - LAP:nz + LAP), d1z(1 - LAP:nz + LAP), u1z(1 - LAP:nz + LAP), & + v1z(1 - LAP:nz + LAP), w1z(1 - LAP:nz + LAP), A1z(1 - LAP:nz + LAP), & + A2z(1 - LAP:nz + LAP), A3z(1 - LAP:nz + LAP), & + hhz1(0:nz), hhz2(0:nz), hhz(0:nz, 5)) + + allocate (Scm_Hbx(0:nx), Scm_Hby(0:ny), Scm_Hbz(0:nz)) + Scm_Hbx = 0; Scm_Hby = 0; Scm_Hbz = 0 ! 2021-6-7 (initialized as zero, in case of non-hybrid scheme, character-type flux used) +end + +subroutine deallocate_inviscous_data + use flow_para + use inviscous_data + implicit none + deallocate (c1x, d1x, u1x, v1x, w1x, A1x, A2x, A3x, hhx1, hhx2, hhx, & + c1y, d1y, u1y, v1y, w1y, A1y, A2y, A3y, hhy1, hhy2, hhy, & + c1z, d1z, u1z, v1z, w1z, A1z, A2z, A3z, hhz1, hhz2, hhz, & + fpx, fmx, fpy, fmy, fpz, fmz, Scm_Hbx, Scm_Hby, Scm_Hbz) +end + +!-----------Inviscous term (non-character type)---------------------------- +subroutine du_inviscous + use flow_data + use inviscous_data + implicit none + integer:: i, j, k, m, set_hybrid_scheme + real(kind=OCFD_REAL_KIND):: hx_1, hy_1, hz_1, Rhb0 +!c------------------------------------------------- + hx_1 = 1.d0/hx + hy_1 = 1.d0/hy + hz_1 = 1.d0/hz + + do k = 1 - LAP, nz + LAP + do j = 1 - LAP, ny + LAP + do i = 1 - LAP, nx + LAP + cc(i, j, k) = sqrt(T(i, j, k))/Para%Ma + end do + end do + end do + +!c---------x direction------------------------- + do k = 1, nz + do j = 1, ny + + if (Scheme%Scheme_Invis == OCFD_Scheme_Hybrid) then + do i = 0, nx + Rhb0 = max(Rhybrid(i, j, k), Rhybrid(i + 1, j, k)) + Scm_Hbx(i) = set_hybrid_scheme(Rhb0) + end do + end if + + do i = 1 - LAP, nx + LAP + c1x(i) = cc(i, j, k) + d1x(i) = d(i, j, k) + u1x(i) = u(i, j, k) + v1x(i) = v(i, j, k) + w1x(i) = w(i, j, k) + A1x(i) = Akx1(i, j, k) + A2x(i) = Aky1(i, j, k) + A3x(i) = Akz1(i, j, k) + end do + + ! Steger-Warming Flux Vector Splitting (SW-FVS) + if (Para%Flux_Splitting .eq. OCFD_Split_SW) then + call split_Stager_Warming(nx, LAP, c1x, d1x, u1x, v1x, w1x, A1x, A2x, A3x, fpx, fmx) + else + call split_Local_LaxFriedrichs(nx, LAP, c1x, d1x, u1x, v1x, w1x, A1x, A2x, A3x, fpx, fmx) + end if + + do m = 1, 5 + ! upwind finite-difference: dx1 for Positive flux ; dx2 for Negative flux + call OCFD2d_flux1(fpx(1 - LAP, m), hhx1, nx, LAP, Scheme%Bound_index(1, 1), Scm_Hbx, Scheme%Scheme_boundary(1:2)) + call OCFD2d_flux2(fmx(1 - LAP, m), hhx2, nx, LAP, Scheme%Bound_index(1, 1), Scm_Hbx, Scheme%Scheme_boundary(1:2)) + + do i = 1, nx + du(i, j, k, m) = (hhx1(i) - hhx1(i - 1) + hhx2(i) - hhx2(i - 1))*hx_1 + end do + end do + end do + end do +!c-------y direction ------------------------ + do k = 1, nz + do i = 1, nx + + if (Scheme%Scheme_Invis == OCFD_Scheme_Hybrid) then + do j = 0, ny + Rhb0 = max(Rhybrid(i, j, k), Rhybrid(i, j + 1, k)) + Scm_Hby(j) = set_hybrid_scheme(Rhb0) + end do + end if + + do j = 1 - LAP, ny + LAP + c1y(j) = cc(i, j, k) + d1y(j) = d(i, j, k) + u1y(j) = u(i, j, k) + v1y(j) = v(i, j, k) + w1y(j) = w(i, j, k) + A1y(j) = Aix1(i, j, k) + A2y(j) = Aiy1(i, j, k) + A3y(j) = Aiz1(i, j, k) + end do + + if (Para%Flux_Splitting .eq. OCFD_Split_SW) then + call split_Stager_Warming(ny, LAP, c1y, d1y, u1y, v1y, w1y, A1y, A2y, A3y, fpy, fmy) + else + call split_Local_LaxFriedrichs(ny, LAP, c1y, d1y, u1y, v1y, w1y, A1y, A2y, A3y, fpy, fmy) + end if + + do m = 1, 5 + ! dy1 for positive flux; dy2 for negative flux + call OCFD2d_flux1(fpy(1 - LAP, m), hhy1, ny, LAP, Scheme%Bound_index(1, 2), Scm_Hby, Scheme%Scheme_boundary(3:4)) + call OCFD2d_flux2(fmy(1 - LAP, m), hhy2, ny, LAP, Scheme%Bound_index(1, 2), Scm_Hby, Scheme%Scheme_boundary(3:4)) + do j = 1, ny + du(i, j, k, m) = du(i, j, k, m) + (hhy1(j) - hhy1(j - 1) + hhy2(j) - hhy2(j - 1))*hy_1 ! df/dt=-du + end do + end do + end do + end do + +!c-------z direction ------------------------ + do j = 1, ny + do i = 1, nx + if (Scheme%Scheme_Invis == OCFD_Scheme_Hybrid) then + do k = 0, nz + Rhb0 = max(Rhybrid(i, j, k), Rhybrid(i, j, k + 1)) + Scm_Hbz(k) = set_hybrid_scheme(Rhb0) + end do + end if + + do k = 1 - LAP, nz + LAP + c1z(k) = cc(i, j, k) + d1z(k) = d(i, j, k) + u1z(k) = u(i, j, k) + v1z(k) = v(i, j, k) + w1z(k) = w(i, j, k) + A1z(k) = Asx1(i, j, k) + A2z(k) = Asy1(i, j, k) + A3z(k) = Asz1(i, j, k) + end do + + if (Para%Flux_Splitting .eq. OCFD_Split_SW) then + call split_Stager_Warming(nz, LAP, c1z, d1z, u1z, v1z, w1z, A1z, A2z, A3z, fpz, fmz) + else + call split_Local_LaxFriedrichs(nz, LAP, c1z, d1z, u1z, v1z, w1z, A1z, A2z, A3z, fpz, fmz) + end if + + do m = 1, 5 + ! dz1 for positive flux; dz2 for negative flux + call OCFD2d_flux1(fpz(1 - LAP, m), hhz1, nz, LAP, Scheme%Bound_index(1, 3), Scm_Hbz, Scheme%Scheme_boundary(5:6)) + call OCFD2d_flux2(fmz(1 - LAP, m), hhz2, nz, LAP, Scheme%Bound_index(1, 3), Scm_Hbz, Scheme%Scheme_boundary(5:6)) + do k = 1, nz + du(i, j, k, m) = -(du(i, j, k, m) + (hhz1(k) - hhz1(k - 1) + hhz2(k) - hhz2(k - 1))*hz_1)*Ajac(i, j, k) ! df/dt=-du + end do + end do + end do + end do + + if (Para%IF_Mass_Force .eq. 1) then + do k = 1, nz + do j = 1, ny + do i = 1, nx + du(i, j, k, 2) = du(i, j, k, 2) + d(i, j, k)*Para%Mass_Force(1) + du(i, j, k, 3) = du(i, j, k, 3) + d(i, j, k)*Para%Mass_Force(2) + du(i, j, k, 4) = du(i, j, k, 4) + d(i, j, k)*Para%Mass_Force(3) + du(i, j, k, 5) = du(i, j, k, 5) + d(i, j, k)*(u(i, j, k)*Para%Mass_Force(1) & + + v(i, j, k)*Para%Mass_Force(2) + w(i, j, k)*Para%Mass_Force(3)) + end do + end do + end do + end if + +end + +!c----------------------------------- +!Scheme_boundary(:)==0 ! WENO5-type boundary scheme (default); ==-1 Ghost Cell + +! Finite difference Numerical flux for inviscous terms (Upwind Schemes) +! In this version, Only WENO5/WENO7/OMP6 schemes are supported! +subroutine OCFD2d_flux1(f1d, hh, nx1, LAP1, Bound_index, Scm_Hy, Scheme_boundary) + use OCFD_constants + use Scheme_Para + implicit none + integer nx1, LAP1, Bound_index(2), Ka, Kb, i, Scm_Hy(0:nx1), Scheme_boundary(2), ib, ie + real(kind=OCFD_REAL_KIND):: f1d(1 - LAP1:nx1 + LAP1), hh(0:nx1) + Ka = Scheme%Ka1; Kb = Scheme%Kb1 + + if (Bound_index(1) .eq. 0 .or. Scheme_boundary(1) .eq. -1) then ! inner point [ib,ie] + ib = 0 + else + ib = -Ka + 1 + end if + + if (Bound_index(2) .eq. 0 .or. Scheme_boundary(2) .eq. -1) then + ie = nx1 + else + ie = nx1 - Kb + end if + + select case (Scheme%Scheme_Invis) + case (OCFD_Scheme_OMP6) + call OCFD_OMP6P(f1d, hh, nx1, LAP1, ib, ie) + case (OCFD_Scheme_WENO7) + call OCFD_WENO7P(f1d, hh, nx1, LAP1, ib, ie) + case (OCFD_Scheme_WENO5) + call OCFD_WENO5P(f1d, hh, nx1, LAP1, ib, ie) + case (OCFD_Scheme_UD7L) + call OCFD_UD7L_P(f1d, hh, nx1, LAP1, ib, ie) + case (OCFD_Scheme_Hybrid) + call OCFD_HybridP(f1d, hh, nx1, LAP1, Scm_Hy, ib, ie) + case (OCFD_Scheme_USER) + call OCFD_Scheme_USER_P(f1d, hh, nx1, LAP1, ib, ie) + + end select + +!------------boundary scheme -------------------------------- + if (Bound_index(1) .eq. 1) then ! i- (j-, k-) boundary + if (Scheme_boundary(1) .eq. 0) then ! Default (WENO5-type) + do i = 0, -Ka + if (i == 0 .or. i == 1) then + hh(i) = (2.d0*f1d(1) + 5.d0*f1d(2) - f1d(3))/6.d0 + else if (i == 2) then + call hh_weno5P_boundary(Ka, Kb, f1d(i + Ka:i + Kb), hh(i), DEL_LIFT) + else + call hh_weno5P(Ka, Kb, f1d(i + Ka:i + Kb), hh(i)) + end if + end do +! -1 : WENO5 + Ghost Cell; + else if (Scheme_boundary(1) .eq. 1) then ! WENO5 (with Ghost Cell) + do i = 0, -Ka + call hh_weno5P(Ka, Kb, f1d(i + Ka:i + Kb), hh(i)) + end do + end if + end if + + if (Bound_index(2) .eq. 1) then ! i+ (j+, k+) boundary + if (Scheme_boundary(2) .eq. 0) then ! Default (WENO5 Del-substencil type) + do i = nx1 - Kb + 1, nx1 + if (i == nx1) then + hh(i) = (2.d0*f1d(nx1 - 2) - 7.d0*f1d(nx1 - 1) + 11.d0*f1d(nx1))/6.d0 + else if (i == nx1 - 1) then + call hh_weno5P_boundary(Ka, Kb, f1d(i + Ka:i + Kb), hh(i), DEL_RIGHT) + else + call hh_weno5P(Ka, Kb, f1d(i + Ka:i + Kb), hh(i)) + end if + end do + else if (Scheme_boundary(2) .eq. 1) then ! WENO5 with Ghost Cell + do i = nx1 - Kb + 1, nx1 + call hh_weno5P(Ka, Kb, f1d(i + Ka:i + Kb), hh(i)) + end do + end if + end if +end + +!--------------------------------------------------------- +! Scheme for flux- +subroutine OCFD2d_flux2(f1d, hh, nx1, LAP1, Bound_index, Scm_Hy, Scheme_boundary) + use OCFD_constants + use Scheme_Para + implicit none + integer nx1, LAP1, Bound_index(2), Ka, Kb, i, Scm_Hy(0:nx1), Scheme_boundary(2), ib, ie + real(kind=OCFD_REAL_KIND):: f1d(1 - LAP1:nx1 + LAP1), hh(0:nx1) + Ka = Scheme%Ka2; Kb = Scheme%Kb2 + + if (Bound_index(1) .eq. 0 .or. Scheme_boundary(1) .eq. -1) then ! inner point [ib,ie] + ib = 0 + else + ib = -Ka + 1 + end if + + if (Bound_index(2) .eq. 0 .or. Scheme_boundary(2) .eq. -1) then + ie = nx1 + else + ie = nx1 - Kb + end if + + select case (Scheme%Scheme_Invis) + case (OCFD_Scheme_OMP6) + call OCFD_OMP6M(f1d, hh, nx1, LAP1, ib, ie) + case (OCFD_Scheme_WENO7) + call OCFD_WENO7M(f1d, hh, nx1, LAP1, ib, ie) + case (OCFD_Scheme_WENO5) + call OCFD_WENO5M(f1d, hh, nx1, LAP1, ib, ie) + case (OCFD_Scheme_UD7L) + call OCFD_UD7L_M(f1d, hh, nx1, LAP1, ib, ie) + case (OCFD_Scheme_Hybrid) + call OCFD_HybridM(f1d, hh, nx1, LAP1, Scm_Hy, ib, ie) + case (OCFD_Scheme_USER) + call OCFD_Scheme_USER_M(f1d, hh, nx1, LAP1, ib, ie) + end select + +!------------boundary scheme -------------- + if (Bound_index(1) .eq. 1) then ! i- boundary + if (Scheme_boundary(1) .eq. 0) then ! Default (WENO5-type) + do i = 0, -Ka + if (i == 0) then + hh(i) = (2.d0*f1d(3) - 7.d0*f1d(2) + 11.d0*f1d(1))/6.d0 + else if (i == 1) then + call hh_weno5M_boundary(Ka, Kb, f1d(i + Ka:i + Kb), hh(i), DEL_LIFT) + else + call hh_weno5M(Ka, Kb, f1d(i + Ka:i + Kb), hh(i)) + end if + end do + + else if (Scheme_boundary(1) .eq. 1) then ! WENO5 + Ghost Cell + do i = 0, -Ka + call hh_weno5M(Ka, Kb, f1d(i + Ka:i + Kb), hh(i)) + end do + + end if + end if + + if (Bound_index(2) .eq. 1) then ! i+ boundary + if (Scheme_boundary(2) .eq. 0) then ! Default (WENO5-type) + do i = nx1 - Kb + 1, nx1 + if (i == nx1 .or. i == nx1 - 1) then + hh(i) = (2.d0*f1d(nx1) + 5.d0*f1d(nx1 - 1) - f1d(nx1 - 2))/6.d0 + else if (i == nx1 - 2) then + call hh_weno5M_boundary(Ka, Kb, f1d(i + Ka:i + Kb), hh(i), DEL_RIGHT) + else + call hh_weno5M(Ka, Kb, f1d(i + Ka:i + Kb), hh(i)) + end if + end do + else if (Scheme_boundary(2) .eq. 1) then ! (WENO5 +Ghost Cell ) + do i = nx1 - Kb + 1, nx1 + call hh_weno5M(Ka, Kb, f1d(i + Ka:i + Kb), hh(i)) + end do + end if + end if + +end + +!c---------------------------------------------------------- + diff --git a/src/OCFD_inviscous_character.f90 b/src/OCFD_inviscous_character.f90 new file mode 100644 index 0000000..47de54a --- /dev/null +++ b/src/OCFD_inviscous_character.f90 @@ -0,0 +1,444 @@ +!c inviscous term for Jacobian- transformed N-S equation --------------------- +! Characteristic flux + subroutine du_inviscous_Character + use flow_data + use inviscous_data + implicit none + + integer:: i, j, k, m, Ka1, Kb1, Ka2, Kb2, set_hybrid_scheme + real(kind=OCFD_REAL_KIND):: hx_1, hy_1, hz_1, Rhb0 +!c------------------------------------------------- + Ka1 = Scheme%Ka1 + Kb1 = Scheme%Kb1 + Ka2 = Scheme%Ka2 + Kb2 = Scheme%Kb2 + hx_1 = 1.d0/hx + hy_1 = 1.d0/hy + hz_1 = 1.d0/hz + + do k = 1 - LAP, nz + LAP + do j = 1 - LAP, ny + LAP + do i = 1 - LAP, nx + LAP + cc(i, j, k) = sqrt(T(i, j, k))/Para%Ma ! speed of sound + end do + end do + end do + +!c---------x direction------------------------- + do k = 1, nz + do j = 1, ny + + if (Scheme%Scheme_Invis == OCFD_Scheme_Hybrid) then + do i = 0, nx + Rhb0 = max(Rhybrid(i, j, k), Rhybrid(i + 1, j, k)) + Scm_Hbx(i) = set_hybrid_scheme(Rhb0) + end do + end if + + do i = 1 - LAP, nx + LAP + c1x(i) = cc(i, j, k) + d1x(i) = d(i, j, k) + u1x(i) = u(i, j, k) + v1x(i) = v(i, j, k) + w1x(i) = w(i, j, k) + A1x(i) = Akx1(i, j, k) + A2x(i) = Aky1(i, j, k) + A3x(i) = Akz1(i, j, k) + end do + + if (Para%Flux_Splitting .eq. OCFD_Split_SW) then + call split_Stager_Warming(nx, LAP, c1x, d1x, u1x, v1x, w1x, A1x, A2x, A3x, fpx, fmx) + else + call split_Local_LaxFriedrichs(nx, LAP, c1x, d1x, u1x, v1x, w1x, A1x, A2x, A3x, fpx, fmx) + end if + + call flux_charteric(nx, LAP, Ka1, Kb1, Ka2, Kb2, & + hhx, fpx, fmx, A1x, A2x, A3x, & + c1x, d1x, u1x, v1x, w1x, Scheme%Bound_index(1, 1), Scm_Hbx, Scheme%Scheme_boundary(1:2)) + do m = 1, 5 + do i = 1, nx + du(i, j, k, m) = (hhx(i, m) - hhx(i - 1, m))*hx_1 + end do + end do + end do + end do + +!c-------y direction --------------------------- + do k = 1, nz + do i = 1, nx + + if (Scheme%Scheme_Invis == OCFD_Scheme_Hybrid) then + do j = 0, ny + Rhb0 = max(Rhybrid(i, j, k), Rhybrid(i, j + 1, k)) + Scm_Hby(j) = set_hybrid_scheme(Rhb0) + end do + end if + + do j = 1 - LAP, ny + LAP + c1y(j) = cc(i, j, k) + d1y(j) = d(i, j, k) + u1y(j) = u(i, j, k) + v1y(j) = v(i, j, k) + w1y(j) = w(i, j, k) + A1y(j) = Aix1(i, j, k) + A2y(j) = Aiy1(i, j, k) + A3y(j) = Aiz1(i, j, k) + end do + + if (Para%Flux_Splitting .eq. OCFD_Split_SW) then + call split_Stager_Warming(ny, LAP, c1y, d1y, u1y, v1y, w1y, A1y, A2y, A3y, fpy, fmy) + else + call split_Local_LaxFriedrichs(ny, LAP, c1y, d1y, u1y, v1y, w1y, A1y, A2y, A3y, fpy, fmy) + end if + + call flux_charteric(ny, LAP, Ka1, Kb1, Ka2, Kb2, & + hhy, fpy, fmy, A1y, A2y, A3y, & + c1y, d1y, u1y, v1y, w1y, Scheme%Bound_index(1, 2), Scm_Hby, Scheme%Scheme_boundary(3:4)) + + do m = 1, 5 + do j = 1, ny + du(i, j, k, m) = du(i, j, k, m) + (hhy(j, m) - hhy(j - 1, m))*hy_1 + end do + end do + end do + end do +!c-------z direction --------------------------- + do j = 1, ny + do i = 1, nx + + if (Scheme%Scheme_Invis == OCFD_Scheme_Hybrid) then + do k = 0, nz + Rhb0 = max(Rhybrid(i, j, k), Rhybrid(i, j, k + 1)) + Scm_Hbz(k) = set_hybrid_scheme(Rhb0) + end do + end if + + do k = 1 - LAP, nz + LAP + c1z(k) = cc(i, j, k) + d1z(k) = d(i, j, k) + u1z(k) = u(i, j, k) + v1z(k) = v(i, j, k) + w1z(k) = w(i, j, k) + A1z(k) = Asx1(i, j, k) + A2z(k) = Asy1(i, j, k) + A3z(k) = Asz1(i, j, k) + end do + + if (Para%Flux_Splitting .eq. OCFD_Split_SW) then + call split_Stager_Warming(nz, LAP, c1z, d1z, u1z, v1z, w1z, A1z, A2z, A3z, fpz, fmz) + else + call split_Local_LaxFriedrichs(nz, LAP, c1z, d1z, u1z, v1z, w1z, A1z, A2z, A3z, fpz, fmz) + end if + + call flux_charteric(nz, LAP, Ka1, Kb1, Ka2, Kb2, & + hhz, fpz, fmz, A1z, A2z, A3z, & + c1z, d1z, u1z, v1z, w1z, Scheme%Bound_index(1, 3), Scm_Hbz, Scheme%Scheme_boundary(5:6)) + + do m = 1, 5 + do k = 1, nz + du(i, j, k, m) = -(du(i, j, k, m) + (hhz(k, m) - hhz(k - 1, m))*hz_1)*Ajac(i, j, k) ! df/dt=-du + end do + end do + end do + end do + + if (Para%IF_Mass_Force .eq. 1) then + do k = 1, nz + do j = 1, ny + do i = 1, nx + du(i, j, k, 2) = du(i, j, k, 2) + d(i, j, k)*Para%Mass_Force(1) + du(i, j, k, 3) = du(i, j, k, 3) + d(i, j, k)*Para%Mass_Force(2) + du(i, j, k, 4) = du(i, j, k, 4) + d(i, j, k)*Para%Mass_Force(3) + du(i, j, k, 5) = du(i, j, k, 5) + d(i, j, k)*(u(i, j, k)*Para%Mass_Force(1) + v(i, j, k)*Para%Mass_Force(2) & + + w(i, j, k)*Para%Mass_Force(3)) + end do + end do + end do + end if + + end + +!c----------------------------------- + subroutine flux_charteric(nn, LAP1, Ka1, Kb1, Ka2, Kb2, hh, fp, fm, AA1, AA2, AA3, & + cc, dd, uu, vv, ww, Bound_index, Scm_Hb, Scheme_boundary) + use flow_para + implicit none + + integer nn, LAP1, Ka1, Kb1, Ka2, Kb2, i, m, mm, Bound_index(2), ia, ib, Scheme_boundary(2), Ka1h, Kb1h, Ka2h, Kb2h + real(kind=OCFD_REAL_KIND), dimension(1 - LAP1:nn + LAP1):: cc, dd, uu, vv, ww, AA1, AA2, AA3 + real(kind=OCFD_REAL_KIND), dimension(1 - LAP1:nn + LAP1, 5):: fp, fm + real(kind=OCFD_REAL_KIND):: hh(0:nn, 5) + real(kind=OCFD_REAL_KIND):: fpc(Ka1:Kb1, 5), fmc(Ka2:Kb2, 5), h1(5), h2(5), h0(5) + real(kind=OCFD_REAL_KIND):: S(5, 5), S1(5, 5) + real(kind=OCFD_REAL_KIND):: d1, u1, v1, w1, c1, V2, un, ul, um + real(kind=OCFD_REAL_KIND):: a1, a2, a3, ss, n1, n2, n3, l1, l2, l3, m1, m2, m3, KK1, KK, X1, H + integer:: Scm_Hb(0:nn) ! Hybrid scheme index (1 linear scheme ; 2 shock-capturing scheme) + logical If_Char ! Characteristic +!------------------------------------------------------ + if (Bound_index(1) .eq. 0 .or. Scheme_boundary(1) .ne. 0) then ! 1 WENO5+ Ghost Cell ; -1 Inner scheme + Ghost Cell + ia = 0 + else + ia = 1 ! boundary scheme + end if + if (Bound_index(2) .eq. 0 .or. Scheme_boundary(2) .ne. 0) then + ib = nn + else + ib = nn - 1 + end if +!------------------------------------------------------- + + do i = ia, ib + + if (Scm_Hb(i) == 1) then ! linear scheme (DO NOT use character construction) + fpc(Ka1:Kb1, :) = fp(i + Ka1:i + Kb1, :) + fmc(Ka2:Kb2, :) = fm(i + Ka2:i + Kb2, :) + else + if (Scm_Hb(i) == 0) then ! other nonlinear scheme (not hybrid scheme) + Ka1h = Ka1; Kb1h = Kb1; Ka2h = Ka2; Kb2h = Kb2 + else if (Scm_Hb(i) == 2) then ! WENO7 scheme + Ka1h = Scheme%Ka1_H2; Kb1h = Scheme%Kb1_H2; Ka2h = Scheme%Ka2_H2; Kb2h = Scheme%Kb2_H2 + else ! WENO5 scheme + Ka1h = Scheme%Ka1_H3; Kb1h = Scheme%Kb1_H3; Ka2h = Scheme%Ka2_H3; Kb2h = Scheme%Kb2_H3 + end if + ! Shock capturing scheme (Using character construction) + ! Transform variables to character space + u1 = (uu(i) + uu(i + 1))*0.5d0 + v1 = (vv(i) + vv(i + 1))*0.5d0 + w1 = (ww(i) + ww(i + 1))*0.5d0 + c1 = (cc(i) + cc(i + 1))*0.5d0 + a1 = (AA1(i) + AA1(i + 1))*0.5d0 + a2 = (AA2(i) + AA2(i + 1))*0.5d0 + a3 = (AA3(i) + AA3(i + 1))*0.5d0 + +! A=S(-1)*LAMDA*S = R * LAMDA * L +! See Katate Masatsuka's Book: "I do like CFD, Vol. 1" page 77-78 + + ss = sqrt(a1*a1 + a2*a2 + a3*a3) + n1 = a1/ss; n2 = a2/ss; n3 = a3/ss + + if (abs(n3) <= abs(n2)) then + ss = sqrt(n1*n1 + n2*n2) + l1 = -n2/ss; l2 = n1/ss; l3 = 0.d0 + else + ss = sqrt(n1*n1 + n3*n3) + l1 = -n3/ss; l2 = 0.d0; l3 = n1/ss + end if + m1 = n2*l3 - n3*l2 + m2 = n3*l1 - n1*l3 + m3 = n1*l2 - n2*l1 + un = u1*n1 + v1*n2 + w1*n3 + ul = u1*l1 + v1*l2 + w1*l3 + um = u1*m1 + v1*m2 + w1*m3 + V2 = (u1*u1 + v1*v1 + w1*w1)*0.5d0 + KK = (para%gamma - 1.d0)/(c1*c1) + KK1 = KK*0.5d0 + X1 = 1.d0/(2.d0*c1) + H = V2 + 1.d0/KK +!==============S=L (Lift Characteristic Matrix) + S(1, 1) = 1.d0 - KK*V2; S(1, 2) = KK*u1; S(1, 3) = KK*v1; S(1, 4) = KK*w1; S(1, 5) = -KK + S(2, 1) = -ul; S(2, 2) = l1; S(2, 3) = l2; S(2, 4) = l3; S(2, 5) = 0.d0 + S(3, 1) = -um; S(3, 2) = m1; S(3, 3) = m2; S(3, 4) = m3; S(3, 5) = 0.d0 + S(4, 1) = KK1*V2 + X1*un; S(4, 2) = -X1*n1 - KK1*u1; S(4, 3) = -X1*n2 - KK1*v1; S(4, 4) = -X1*n3 - KK1*w1; S(4, 5) = KK1 + S(5, 1) = KK1*V2 - X1*un; S(5, 2) = X1*n1 - KK1*u1; S(5, 3) = X1*n2 - KK1*v1; S(5, 4) = X1*n3 - KK1*w1; S(5, 5) = KK1 +!=======S1 = S^(-1)=R (Right Characteristic Matrix) + S1(1, 1) = 1.d0; S1(1, 2) = 0.d0; S1(1, 3) = 0.d0; S1(1, 4) = 1.d0; S1(1, 5) = 1.d0 + S1(2, 1) = u1; S1(2, 2) = l1; S1(2, 3) = m1; S1(2, 4) = u1 - c1*n1; S1(2, 5) = u1 + c1*n1 + S1(3, 1) = v1; S1(3, 2) = l2; S1(3, 3) = m2; S1(3, 4) = v1 - c1*n2; S1(3, 5) = v1 + c1*n2 + S1(4, 1) = w1; S1(4, 2) = l3; S1(4, 3) = m3; S1(4, 4) = w1 - c1*n3; S1(4, 5) = w1 + c1*n3 + S1(5, 1) = V2; S1(5, 2) = ul; S1(5, 3) = um; S1(5, 4) = H - c1*un; S1(5, 5) = H + c1*un + +! call test_S(S,S1) + +! V=SU V=S*F ! transform into character space +! do mm=Ka1,Kb1 + do mm = Ka1h, Kb1h + m = i + mm + fpc(mm, 1) = S(1, 1)*fp(m, 1) + S(1, 2)*fp(m, 2) + S(1, 3)*fp(m, 3) + S(1, 4)*fp(m, 4) + S(1, 5)*fp(m, 5) + fpc(mm, 2) = S(2, 1)*fp(m, 1) + S(2, 2)*fp(m, 2) + S(2, 3)*fp(m, 3) + S(2, 4)*fp(m, 4) + S(2, 5)*fp(m, 5) + fpc(mm, 3) = S(3, 1)*fp(m, 1) + S(3, 2)*fp(m, 2) + S(3, 3)*fp(m, 3) + S(3, 4)*fp(m, 4) + S(3, 5)*fp(m, 5) + fpc(mm, 4) = S(4, 1)*fp(m, 1) + S(4, 2)*fp(m, 2) + S(4, 3)*fp(m, 3) + S(4, 4)*fp(m, 4) + S(4, 5)*fp(m, 5) + fpc(mm, 5) = S(5, 1)*fp(m, 1) + S(5, 2)*fp(m, 2) + S(5, 3)*fp(m, 3) + S(5, 4)*fp(m, 4) + S(5, 5)*fp(m, 5) + end do + +! do mm=Ka2,Kb2 + do mm = Ka2h, Kb2h + m = i + mm + fmc(mm, 1) = S(1, 1)*fm(m, 1) + S(1, 2)*fm(m, 2) + S(1, 3)*fm(m, 3) + S(1, 4)*fm(m, 4) + S(1, 5)*fm(m, 5) + fmc(mm, 2) = S(2, 1)*fm(m, 1) + S(2, 2)*fm(m, 2) + S(2, 3)*fm(m, 3) + S(2, 4)*fm(m, 4) + S(2, 5)*fm(m, 5) + fmc(mm, 3) = S(3, 1)*fm(m, 1) + S(3, 2)*fm(m, 2) + S(3, 3)*fm(m, 3) + S(3, 4)*fm(m, 4) + S(3, 5)*fm(m, 5) + fmc(mm, 4) = S(4, 1)*fm(m, 1) + S(4, 2)*fm(m, 2) + S(4, 3)*fm(m, 3) + S(4, 4)*fm(m, 4) + S(4, 5)*fm(m, 5) + fmc(mm, 5) = S(5, 1)*fm(m, 1) + S(5, 2)*fm(m, 2) + S(5, 3)*fm(m, 3) + S(5, 4)*fm(m, 4) + S(5, 5)*fm(m, 5) + end do + end if + + do m = 1, 5 + ! scheme (including boundary scheme) + call flux_x1(Ka1, Kb1, fpc(Ka1, m), h1(m), Scheme%Scheme_Invis, Bound_index, i, nn, Scm_Hb(i), Scheme_boundary) + call flux_x2(Ka2, Kb2, fmc(Ka2, m), h2(m), Scheme%Scheme_Invis, Bound_index, i, nn, Scm_Hb(i), Scheme_boundary) + end do + + h0 = h1 + h2 + if (Scm_Hb(i) == 1) then ! linear scheme (do not use character flux) + hh(i, :) = h0(:) + else ! Transform to phyics space + hh(i, 1) = S1(1, 1)*h0(1) + S1(1, 2)*h0(2) + S1(1, 3)*h0(3) + S1(1, 4)*h0(4) + S1(1, 5)*h0(5) + hh(i, 2) = S1(2, 1)*h0(1) + S1(2, 2)*h0(2) + S1(2, 3)*h0(3) + S1(2, 4)*h0(4) + S1(2, 5)*h0(5) + hh(i, 3) = S1(3, 1)*h0(1) + S1(3, 2)*h0(2) + S1(3, 3)*h0(3) + S1(3, 4)*h0(4) + S1(3, 5)*h0(5) + hh(i, 4) = S1(4, 1)*h0(1) + S1(4, 2)*h0(2) + S1(4, 3)*h0(3) + S1(4, 4)*h0(4) + S1(4, 5)*h0(5) + hh(i, 5) = S1(5, 1)*h0(1) + S1(5, 2)*h0(2) + S1(5, 3)*h0(3) + S1(5, 4)*h0(4) + S1(5, 5)*h0(5) + end if + end do + +!--------non Reflaction boundary (i==0, i==nn) -------------- +! 实现无反射边界条件, 在i=0处 hh+(0)=hh+ (1); 是的df+/dx =0 (i=0处) + + if (Bound_index(1) .eq. 1) then + if (Scheme_boundary(1) .eq. 0) then ! Default (WENO5-type) + do m = 1, 5 + hh(0, m) = (2.d0*fp(1, m) + 5.d0*fp(2, m) - fp(3, m) + 2.d0*fm(3, m) - 7.d0*fm(2, m) + 11.d0*fm(1, m))/6.d0 + end do + end if + end if + + if (Bound_index(2) .eq. 1) then + if (Scheme_boundary(2) .eq. 0) then ! Default (WENO5-type) + do m = 1, 5 + hh(nn, m) = (2.d0*fp(nn - 2, m) - 7.d0*fp(nn - 1, m) + 11.d0*fp(nn, m) + 2.d0*fm(nn, m) + 5.d0*fm(nn - 1, m) - fm(nn - 2, m))/6.d0 + end do + end if + end if + end + +!----------------------------------------------------------------------------- + subroutine flux_x1(Ka, Kb, ff, hh, Num_Scheme, Bound_index, i, nn, Ihybrid, Scheme_boundary) + use flow_para + implicit none + integer Num_Scheme, i, nn, Ka, Kb, Bound_index(2), Ihybrid, Scheme_boundary(2) + real(kind=OCFD_REAL_KIND):: ff(Ka:Kb), hh + + if ((Bound_index(1) .eq. 0 .or. i > -Ka .or. Scheme_boundary(1) .eq. -1) & + .and. (Bound_index(2) .eq. 0 .or. i <= nn - Kb .or. Scheme_boundary(2) .eq. -1)) then +! inner point + if (Num_Scheme .eq. OCFD_Scheme_OMP6) then + call hh_OMP6P(Ka, Kb, ff, hh) + else if (Num_Scheme .eq. OCFD_Scheme_WENO7) then + call hh_WENO7P(Ka, Kb, ff, hh) + else if (Num_Scheme .eq. OCFD_Scheme_WENO5) then + call hh_WENO5P(Ka, Kb, ff, hh) + else if (Num_Scheme .eq. OCFD_Scheme_UD7L) then + call hh_UD7L_P(Ka, Kb, ff, hh) + else if (Num_Scheme .eq. OCFD_Scheme_Hybrid) then + call hh_HybridP(Ka, Kb, ff, hh, Ihybrid) + else if (Num_Scheme .eq. OCFD_Scheme_USER) then + call hh_Scheme_USER_P(Ka, Kb, ff, hh) + end if + ! Boundary scheme + else if (i <= -Ka .and. Bound_index(1) .eq. 1 .and. Scheme_boundary(1) .ne. -1) then +! Lift boundary point + if (Scheme_boundary(1) .eq. 0) then ! Default (WENO5-type) + if (i == 1) then + hh = (2.d0*ff(0) + 5.d0*ff(1) - ff(2))/6.d0 ! 3rd one-side + else if (i == 2) then + call hh_weno5P_boundary(Ka, Kb, ff, hh, DEL_LIFT) + else + call hh_weno5P(Ka, Kb, ff, hh) ! full WENO5 scheme + end if + else if (Scheme_boundary(1) .eq. 1) then ! WENO5 + Ghost Cell + call hh_weno5P(Ka, Kb, ff, hh) ! full WENO5 scheme + end if + + else if (i > nn - Kb .and. Bound_index(2) .eq. 1 .and. Scheme_boundary(2) .ne. -1) then +! Right boundary point + if (Scheme_boundary(2) .eq. 0) then ! Default (WENO5-type) + if (i == nn - 1) then + call hh_weno5P_boundary(Ka, Kb, ff, hh, DEL_RIGHT) + else + call hh_WENO5P(Ka, Kb, ff, hh) + end if + else if (Scheme_boundary(2) .eq. 1) then ! WENO5+ Ghost Cell + call hh_WENO5P(Ka, Kb, ff, hh) + end if + + end if + + end + +!----------------------------------------------------------------------------- + subroutine flux_x2(Ka, Kb, ff, hh, Num_Scheme, Bound_index, i, nn, Ihybrid, Scheme_boundary) + use flow_para + implicit none + integer Num_Scheme, i, nn, Ka, Kb, Bound_index(2), Ihybrid, Scheme_boundary(2) + real(kind=OCFD_REAL_KIND):: ff(Ka:Kb), hh + + if ((Bound_index(1) .eq. 0 .or. i > -Ka .or. Scheme_boundary(1) .eq. -1) & + .and. (Bound_index(2) .eq. 0 .or. i <= nn - Kb .or. Scheme_boundary(2) .eq. -1)) then +! inner point + if (Num_Scheme .eq. OCFD_Scheme_OMP6) then + call hh_OMP6M(Ka, Kb, ff, hh) + else if (Num_Scheme .eq. OCFD_Scheme_WENO7) then + call hh_WENO7M(Ka, Kb, ff, hh) + else if (Num_Scheme .eq. OCFD_Scheme_WENO5) then + call hh_WENO5M(Ka, Kb, ff, hh) + else if (Num_Scheme .eq. OCFD_Scheme_UD7L) then + call hh_UD7L_M(Ka, Kb, ff, hh) + else if (Num_Scheme .eq. OCFD_Scheme_Hybrid) then + call hh_HybridM(Ka, Kb, ff, hh, Ihybrid) + else if (Num_Scheme .eq. OCFD_Scheme_USER) then + call hh_Scheme_USER_M(Ka, Kb, ff, hh) + end if + + else if (i <= -Ka .and. Bound_index(1) .eq. 1 .and. Scheme_boundary(1) .ne. -1) then + if (Scheme_boundary(1) .eq. 0) then ! Default (WENO5-type) + if (i == 1) then + call hh_weno5M_boundary(Ka, Kb, ff, hh, DEL_LIFT) + else + call hh_WENO5M(Ka, Kb, ff, hh) + end if + else if (Scheme_boundary(1) .eq. 1) then ! WENO5 + Ghost Cell + call hh_WENO5M(Ka, Kb, ff, hh) + end if + + else if (i > nn - Kb .and. Bound_index(2) .eq. 1 .and. Scheme_boundary(2) .ne. -1) then + if (Scheme_boundary(2) .eq. 0) then ! Default (WENO5-type) + if (i == nn - 1) then + hh = (2.d0*ff(1) + 5.d0*ff(0) - ff(-1))/6.d0 + else if (i == nn - 2) then + call hh_weno5M_boundary(Ka, Kb, ff, hh, DEL_RIGHT) + else + call hh_WENO5M(Ka, Kb, ff, hh) + end if + else if (Scheme_boundary(2) .eq. 1) then ! WENO5 + Ghost Cell + call hh_WENO5M(Ka, Kb, ff, hh) + end if + + end if + + end + +!------------------------------- +! Test S and S1 (Characteristic Matrix) + subroutine test_S(S, S1) + implicit none + integer:: i, j, m + real*8:: S(5, 5), S1(5, 5), ST(5, 5) + ST = 0.d0 + do j = 1, 5 + do i = 1, 5 + ST(i, j) = S(i, 1)*S1(1, j) + S(i, 2)*S1(2, j) + S(i, 3)*S1(3, j) + S(i, 4)*S1(4, j) + S(i, 5)*S1(5, j) + end do + end do + print *, "---------test S ------------------" + print *, " -----s= " + do i = 1, 5 + write (*, "(5F20.15)") S(i, :) + end do + print *, " -------S1=---" + do i = 1, 5 + write (*, "(5F20.15)") S1(i, :) + end do + print *, "-------ST=----" + do i = 1, 5 + write (*, "(5F20.15)") ST(i, :) + end do + end + diff --git a/src/OCFD_mesh.f90 b/src/OCFD_mesh.f90 new file mode 100644 index 0000000..1aa262f --- /dev/null +++ b/src/OCFD_mesh.f90 @@ -0,0 +1,354 @@ + subroutine init_mesh + Use flow_data + implicit none + integer:: i, j, k + + if (Para%Iflag_Gridtype .eq. GRID1D) then + call read_mesh1d + else if (Para%Iflag_Gridtype .eq. GRID2D_PLANE) then + call read_mesh2d_plane + else if (Para%Iflag_Gridtype .eq. GRID2D_AXIAL_SYMM) then + call read_mesh2d_AxialSymm + else if (Para%Iflag_Gridtype .eq. GRID3D .or. Para%Iflag_Gridtype .eq. GRID_AND_JACOBIAN3D) then + call read_mesh3d + else + call mesh_gen('box') + end if + + call exchange_boundary_xyz(Axx) + call exchange_boundary_xyz(Ayy) + call exchange_boundary_xyz(Azz) + + call updata_Axyz_periodic + + if (Para%Iflag_Gridtype .ne. GRID_AND_JACOBIAN3D) then + call comput_Jacobian3d + end if + + call exchange_boundary_xyz(Akx) + call exchange_boundary_xyz(Aky) + call exchange_boundary_xyz(Akz) + call exchange_boundary_xyz(Aix) + call exchange_boundary_xyz(Aiy) + call exchange_boundary_xyz(Aiz) + call exchange_boundary_xyz(Asx) + call exchange_boundary_xyz(Asy) + call exchange_boundary_xyz(Asz) + call exchange_boundary_xyz(Ajac) + + call Jac_Ghost_boundary ! Ghost Cell boundary for Jacobian coefficients + + do k = 1 - LAP, nz + LAP + do j = 1 - LAP, ny + LAP + do i = 1 - LAP, nx + LAP + Akx1(i, j, k) = Akx(i, j, k)/Ajac(i, j, k) + Aky1(i, j, k) = Aky(i, j, k)/Ajac(i, j, k) + Akz1(i, j, k) = Akz(i, j, k)/Ajac(i, j, k) + Aix1(i, j, k) = Aix(i, j, k)/Ajac(i, j, k) + Aiy1(i, j, k) = Aiy(i, j, k)/Ajac(i, j, k) + Aiz1(i, j, k) = Aiz(i, j, k)/Ajac(i, j, k) + Asx1(i, j, k) = Asx(i, j, k)/Ajac(i, j, k) + Asy1(i, j, k) = Asy(i, j, k)/Ajac(i, j, k) + Asz1(i, j, k) = Asz(i, j, k)/Ajac(i, j, k) + end do + end do + end do + if (my_id == 0) print *, "Initial Mesh OK " + + end +!-------------------------------------------------------- + + subroutine comput_Jacobian3d + Use flow_data + implicit none + real(kind=OCFD_REAL_KIND), allocatable, dimension(:, :, :):: xi, xj, xk, yi, yj, yk, zi, zj, zk + real(kind=OCFD_REAL_KIND):: xi1, xj1, xk1, yi1, yj1, yk1, zi1, zj1, zk1, Jac1 + integer:: i, j, k + + allocate (xi(nx, ny, nz), xj(nx, ny, nz), xk(nx, ny, nz), & + yi(nx, ny, nz), yj(nx, ny, nz), yk(nx, ny, nz), & + zi(nx, ny, nz), zj(nx, ny, nz), zk(nx, ny, nz)) + + call OCFD_dx0(Axx, xi, Scheme%Scheme_Vis) + call OCFD_dx0(Ayy, yi, Scheme%Scheme_Vis) + call OCFD_dx0(Azz, zi, Scheme%Scheme_Vis) + call OCFD_dy0(Axx, xj, Scheme%Scheme_Vis) + call OCFD_dy0(Ayy, yj, Scheme%Scheme_Vis) + call OCFD_dy0(Azz, zj, Scheme%Scheme_Vis) + call OCFD_dz0(Axx, xk, Scheme%Scheme_Vis) + call OCFD_dz0(Ayy, yk, Scheme%Scheme_Vis) + call OCFD_dz0(Azz, zk, Scheme%Scheme_Vis) + + do k = 1, nz + do j = 1, ny + do i = 1, nx + xi1 = xi(i, j, k); xj1 = xj(i, j, k); xk1 = xk(i, j, k) + yi1 = yi(i, j, k); yj1 = yj(i, j, k); yk1 = yk(i, j, k) + zi1 = zi(i, j, k); zj1 = zj(i, j, k); zk1 = zk(i, j, k) + Jac1 = 1.d0/(xi1*yj1*zk1 + yi1*zj1*xk1 + zi1*xj1*yk1 - zi1*yj1*xk1 - yi1*xj1*zk1 - xi1*zj1*yk1) ! 1./Jocabian = d(x,y,z)/d(i,j,k) + Ajac(i, j, k) = Jac1 + Akx(i, j, k) = Jac1*(yj1*zk1 - zj1*yk1) + Aky(i, j, k) = Jac1*(zj1*xk1 - xj1*zk1) + Akz(i, j, k) = Jac1*(xj1*yk1 - yj1*xk1) + Aix(i, j, k) = Jac1*(yk1*zi1 - zk1*yi1) + Aiy(i, j, k) = Jac1*(zk1*xi1 - xk1*zi1) + Aiz(i, j, k) = Jac1*(xk1*yi1 - yk1*xi1) + Asx(i, j, k) = Jac1*(yi1*zj1 - zi1*yj1) + Asy(i, j, k) = Jac1*(zi1*xj1 - xi1*zj1) + Asz(i, j, k) = Jac1*(xi1*yj1 - yi1*xj1) + if (Jac1 .lt. 0) then + print *, " Jocabian < 0 !!! , Jac=", Jac1 + print *, "i,j,k=", i_offset(npx) + i - 1, j_offset(npy) + j - 1, k_offset(npz) + k - 1 + end if + end do + end do + end do + deallocate (xi, xj, xk, yi, yj, yk, zi, zj, zk) + end + + subroutine updata_Axyz_periodic + use flow_data + implicit none + integer:: i, j, k + if (Para%Iperiodic_X .eq. 1 .and. npx .eq. 0) then + do k = 1, nz + do j = 1, ny + do i = 1 - LAP, 0 + Axx(i, j, k) = Axx(i, j, k) - Para%Periodic_ISpan(1) + Ayy(i, j, k) = Ayy(i, j, k) - Para%Periodic_ISpan(2) + Azz(i, j, k) = Azz(i, j, k) - Para%Periodic_ISpan(3) + end do + end do + end do + end if + + if (Para%Iperiodic_X .eq. 1 .and. npx .eq. npx0 - 1) then + do k = 1, nz + do j = 1, ny + do i = nx + 1, nx + LAP + Axx(i, j, k) = Axx(i, j, k) + Para%Periodic_ISpan(1) + Ayy(i, j, k) = Ayy(i, j, k) + Para%Periodic_ISpan(2) + Azz(i, j, k) = Azz(i, j, k) + Para%Periodic_ISpan(3) + end do + end do + end do + end if + + if (Para%Iperiodic_Y .eq. 1 .and. npy .eq. 0) then + do k = 1, nz + do j = 1 - LAP, 0 + do i = 1, nx + Axx(i, j, k) = Axx(i, j, k) - Para%Periodic_JSpan(1) + Ayy(i, j, k) = Ayy(i, j, k) - Para%Periodic_JSpan(2) + Azz(i, j, k) = Azz(i, j, k) - Para%Periodic_JSpan(3) + end do + end do + end do + end if + + if (Para%Iperiodic_Y .eq. 1 .and. npy .eq. npy0 - 1) then + do k = 1, nz + do j = ny + 1, ny + LAP + do i = 1, nx + Axx(i, j, k) = Axx(i, j, k) + Para%Periodic_JSpan(1) + Ayy(i, j, k) = Ayy(i, j, k) + Para%Periodic_JSpan(2) + Azz(i, j, k) = Azz(i, j, k) + Para%Periodic_JSpan(3) + end do + end do + end do + end if + + if (Para%Iperiodic_Z .eq. 1 .and. npz .eq. 0) then + do k = 1 - LAP, 0 + do j = 1, ny + do i = 1, nx + Axx(i, j, k) = Axx(i, j, k) - Para%Periodic_KSpan(1) + Ayy(i, j, k) = Ayy(i, j, k) - Para%Periodic_KSpan(2) + Azz(i, j, k) = Azz(i, j, k) - Para%Periodic_KSpan(3) + end do + end do + end do + end if + + if (Para%Iperiodic_Z .eq. 1 .and. npz .eq. npz0 - 1) then + do k = nz + 1, nz + LAP + do j = 1, ny + do i = 1, nx + Axx(i, j, k) = Axx(i, j, k) + Para%Periodic_KSpan(1) + Ayy(i, j, k) = Ayy(i, j, k) + Para%Periodic_KSpan(2) + Azz(i, j, k) = Azz(i, j, k) + Para%Periodic_KSpan(3) + end do + end do + end do + end if + + end +!-------------------------------------------- + subroutine read_mesh3d + Use flow_data + implicit none + if (my_id .eq. 0) then + print *, "read 3D mesh ..." + open (56, file='OCFD-grid.dat', form='unformatted') + end if + + call read_3d1(56, Axx) + call read_3d1(56, Ayy) + call read_3d1(56, Azz) + + if (Para%Iflag_Gridtype .eq. GRID_AND_JACOBIAN3D) then + call read_3d1(56, Akx) + call read_3d1(56, Aky) + call read_3d1(56, Akz) + call read_3d1(56, Aix) + call read_3d1(56, Aiy) + call read_3d1(56, Aiz) + call read_3d1(56, Asx) + call read_3d1(56, Asy) + call read_3d1(56, Asz) + call read_3d1(56, Ajac) + end if + + if (my_id .eq. 0) then + print *, 'read 3D mesh OK ' + close (56) + end if + end +!-------------------------------------------- + subroutine read_mesh1d + Use flow_data + implicit none + real(kind=OCFD_REAL_KIND), allocatable, dimension(:):: x0, y0, z0 + integer:: i, j, k, i1, j1, k1, ierr + allocate (x0(nx_global), y0(ny_global), z0(nz_global)) + + if (my_id .eq. 0) then + print *, "read 1D mesh ..." + open (56, file='OCFD-grid.dat', form='unformatted') + read (56) x0 + read (56) y0 + read (56) z0 + close (56) + end if + call MPI_bcast(x0(1), nx_global, OCFD_DATA_TYPE, 0, MPI_COMM_WORLD, ierr) + call MPI_bcast(y0(1), ny_global, OCFD_DATA_TYPE, 0, MPI_COMM_WORLD, ierr) + call MPI_bcast(z0(1), nz_global, OCFD_DATA_TYPE, 0, MPI_COMM_WORLD, ierr) + do k = 1, nz + do j = 1, ny + do i = 1, nx + i1 = i_offset(npx) + i - 1 + j1 = j_offset(npy) + j - 1 + k1 = k_offset(npz) + k - 1 + Axx(i, j, k) = x0(i1) + Ayy(i, j, k) = y0(j1) + Azz(i, j, k) = z0(k1) + end do + end do + end do + deallocate (x0, y0, z0) + end +!-------------------------------------------- +! 2D PLANE type mesh, 2d in x-y plane (nx,ny); 1d in z- direcition (nz) + subroutine read_mesh2d_plane + Use flow_data + implicit none + real(kind=OCFD_REAL_KIND), allocatable:: x2(:, :), y2(:, :), z1(:) + integer:: i, j, k, i1, j1, k1, ierr + allocate (x2(nx_global, ny_global), y2(nx_global, ny_global), z1(nz_global)) + + if (my_id .eq. 0) then + print *, "read 1D mesh ..." + open (56, file='OCFD-grid.dat', form='unformatted') + read (56) x2 + read (56) y2 + read (56) z1 + close (56) + end if + call MPI_bcast(x2(1, 1), nx_global*ny_global, OCFD_DATA_TYPE, 0, MPI_COMM_WORLD, ierr) + call MPI_bcast(y2(1, 1), nx_global*ny_global, OCFD_DATA_TYPE, 0, MPI_COMM_WORLD, ierr) + call MPI_bcast(z1(1), nz_global, OCFD_DATA_TYPE, 0, MPI_COMM_WORLD, ierr) + do k = 1, nz + do j = 1, ny + do i = 1, nx + i1 = i_offset(npx) + i - 1 + j1 = j_offset(npy) + j - 1 + k1 = k_offset(npz) + k - 1 + Axx(i, j, k) = x2(i1, j1) + Ayy(i, j, k) = y2(i1, j1) + Azz(i, j, k) = z1(k1) + end do + end do + end do + deallocate (x2, y2, z1) + end + +! 2D Axial-Symmetry type mesh, 2d in x-y plane (nx,ny); 1d in z- direcition (nz) + subroutine read_mesh2d_AxialSymm + Use flow_data + implicit none + real(kind=OCFD_REAL_KIND), allocatable:: x2(:, :), R2(:, :), seta1(:) + integer:: i, j, k, i1, j1, k1, ierr + allocate (x2(nx_global, ny_global), R2(nx_global, ny_global), seta1(nz_global)) + + if (my_id .eq. 0) then + print *, "read 1D mesh ..." + open (56, file='OCFD-grid.dat', form='unformatted') + read (56) x2 + read (56) R2 + read (56) seta1 + close (56) + end if + call MPI_bcast(x2(1, 1), nx_global*ny_global, OCFD_DATA_TYPE, 0, MPI_COMM_WORLD, ierr) + call MPI_bcast(R2(1, 1), nx_global*ny_global, OCFD_DATA_TYPE, 0, MPI_COMM_WORLD, ierr) + call MPI_bcast(seta1(1), nz_global, OCFD_DATA_TYPE, 0, MPI_COMM_WORLD, ierr) + do k = 1, nz + do j = 1, ny + do i = 1, nx + i1 = i_offset(npx) + i - 1 + j1 = j_offset(npy) + j - 1 + k1 = k_offset(npz) + k - 1 + Axx(i, j, k) = x2(i1, j1) + Ayy(i, j, k) = R2(i1, j1)*cos(seta1(k)) ! y- is horizontal ; seta- angle with y- axil + Azz(i, j, k) = R2(i1, j1)*sin(seta1(k)) ! z- is up + end do + end do + end do + deallocate (x2, R2, seta1) + end + + subroutine mesh_gen(mesh_type) + + Use flow_data + + implicit none + + ! argument + character(len=*), intent(in) :: mesh_type + + ! local data + integer :: i,j,k,i1,j1,k1 + real*8, parameter:: PI = 3.1415926535897932d0 + + if (mesh_type=='box') then + ! generate a simple box mesh + + do k = 1, nz + do j = 1, ny + do i = 1, nx + i1 = i_offset(npx) + i - 1 + j1 = j_offset(npy) + j - 1 + k1 = k_offset(npz) + k - 1 + + Axx(i, j, k) = 2.d0*PI/dble(nx_global)*dble(i1) + Ayy(i, j, k) = 2.d0*PI/dble(ny_global)*dble(j1) + Azz(i, j, k) = 2.d0*PI/dble(nz_global)*dble(k1) + end do + end do + end do + else + stop ' !! mesh_type not defined @ mesh_gen' + end if + + if (my_id == 0) print *, "mesh gerenated " + + end subroutine mesh_gen diff --git a/src/OCFD_mpi.f90 b/src/OCFD_mpi.f90 new file mode 100644 index 0000000..35b6600 --- /dev/null +++ b/src/OCFD_mpi.f90 @@ -0,0 +1,235 @@ +!OpenCFD ver 2, CopyRight by Li Xinliang, LHD, Institute of Mechanics, CAS, lixl@imech.ac.cn +!MPI Subroutines, such as computational domain partation, MPI message send and recv + + subroutine partation3d_mpi +! Domain partation---------------------------------------------------------------------------- + Use flow_para + implicit none + integer k, ka, ierr + integer npx1, npy1, npz1, npx2, npy2, npz2, my_mod1 +!--------------------------------------------------------------------------------------------- + call mpi_comm_size(MPI_COMM_WORLD, np_size, ierr) + if (np_size .ne. npx0*npy0*npz0) then + if (my_id .eq. 0) print *, 'The Number of total Processes is not equal to npx0*npy0*npz0 !' + stop + end if + + npx = mod(my_id, npx0) + npy = mod(my_id, npx0*npy0)/npx0 + npz = my_id/(npx0*npy0) +!------commonicaters----------------------------------------------------------------------------- + + CALL MPI_COMM_SPLIT(MPI_COMM_WORLD, npz*npx0*npy0 + npy*npx0, 0, MPI_COMM_X, ierr) ! 1-D + CALL MPI_COMM_SPLIT(MPI_COMM_WORLD, npz*npx0*npy0 + npx, 0, MPI_COMM_Y, ierr) + CALL MPI_COMM_SPLIT(MPI_COMM_WORLD, npy*npx0 + npx, 0, MPI_COMM_Z, ierr) + CALL MPI_COMM_SPLIT(MPI_COMM_WORLD, npz, 0, MPI_COMM_XY, ierr) ! 2-D + CALL MPI_COMM_SPLIT(MPI_COMM_WORLD, npy, 0, MPI_COMM_XZ, ierr) + CALL MPI_COMM_SPLIT(MPI_COMM_WORLD, npx, 0, MPI_COMM_YZ, ierr) + +!------------------------------------------------------------------------------------------------ +! 均匀分配网格, 如果nx_global不能被npx0整除,将余下的网格点分到靠前的节点 +!------------------------------------------------------------------------------------------------ + nx = nx_global/npx0 + ny = ny_global/npy0 + nz = nz_global/npz0 + if (npx .lt. mod(nx_global, npx0)) nx = nx + 1 + if (npy .lt. mod(ny_global, npy0)) ny = ny + 1 + if (npz .lt. mod(nz_global, npz0)) nz = nz + 1 + +!------npx=k的节点上x方向网格点的个数,起始位置 ----------------------------- + allocate (i_offset(0:npx0 - 1), i_nn(0:npx0 - 1), & + j_offset(0:npy0 - 1), j_nn(0:npy0 - 1), & + k_offset(0:npz0 - 1), k_nn(0:npz0 - 1)) + +!-------------------------------------------------------------------- + do k = 0, npx0 - 1 + ka = min(k, mod(nx_global, npx0)) + i_offset(k) = int(nx_global/npx0)*k + ka + 1 + i_nn(k) = nx_global/npx0 + if (k .lt. mod(nx_global, npx0)) i_nn(k) = i_nn(k) + 1 + end do + + do k = 0, npy0 - 1 + ka = min(k, mod(ny_global, npy0)) + j_offset(k) = int(ny_global/npy0)*k + ka + 1 + j_nn(k) = ny_global/npy0 + if (k .lt. mod(ny_global, npy0)) j_nn(k) = j_nn(k) + 1 + end do + + do k = 0, npz0 - 1 + ka = min(k, mod(nz_global, npz0)) + k_offset(k) = int(nz_global/npz0)*k + ka + 1 + k_nn(k) = nz_global/npz0 + if (k .lt. mod(nz_global, npz0)) k_nn(k) = k_nn(k) + 1 + end do +!-------------------------------------------------------------------------------- +!-------New Data TYPE------------------------------------------------------------ + call New_MPI_datatype + +!--------define proc id: the right, lift, up, bottom, frint and backward procs + npx1 = my_mod1(npx - 1, npx0) + npx2 = my_mod1(npx + 1, npx0) + ID_XM1 = npz*(npx0*npy0) + npy*npx0 + npx1 ! -1 proc in x-direction + ID_XP1 = npz*(npx0*npy0) + npy*npx0 + npx2 ! +1 proc in x-direction + if (Para%Iperiodic_X .eq. 0 .and. npx .eq. 0) ID_XM1 = MPI_PROC_NULL ! if not periodic, 0 node donot send mesg to npx0-1 node + if (Para%Iperiodic_X .eq. 0 .and. npx .eq. npx0 - 1) ID_XP1 = MPI_PROC_NULL + + npy1 = my_mod1(npy - 1, npy0) + npy2 = my_mod1(npy + 1, npy0) + ID_YM1 = npz*(npx0*npy0) + npy1*npx0 + npx + ID_YP1 = npz*(npx0*npy0) + npy2*npx0 + npx + if (Para%Iperiodic_Y .eq. 0 .and. npy .eq. 0) ID_YM1 = MPI_PROC_NULL ! if not periodic, 0 node donot send mesg to npy0-1 node + if (Para%Iperiodic_Y .eq. 0 .and. npy .eq. npy0 - 1) ID_YP1 = MPI_PROC_NULL + + npz1 = my_mod1(npz - 1, npz0) + npz2 = my_mod1(npz + 1, npz0) + ID_ZM1 = npz1*(npx0*npy0) + npy*npx0 + npx + ID_ZP1 = npz2*(npx0*npy0) + npy*npx0 + npx + if (Para%Iperiodic_Z .eq. 0 .and. npz .eq. 0) ID_ZM1 = MPI_PROC_NULL ! if not periodic, 0 node donot send mesg to npz0-1 node + if (Para%Iperiodic_Z .eq. 0 .and. npz .eq. npz0 - 1) ID_ZP1 = MPI_PROC_NULL + +!-------------------------------------------------------------- + + end + +!-------------------------------------------------------------------------------- + function my_mod1(i, n) + implicit none + integer my_mod1, i, n + if (i < 0) then + my_mod1 = i + n + else if (i > n - 1) then + my_mod1 = i - n + else + my_mod1 = i + end if + end +!----------------------------------------------------------------------------------------------- +! Send Recv non-continuous data using derivative data type + subroutine New_MPI_datatype + Use flow_para + implicit none + integer:: ierr, TYPE_tmp + + call MPI_TYPE_Vector(ny, LAP, nx + 2*LAP, OCFD_DATA_TYPE, TYPE_LAPX1, ierr) + call MPI_TYPE_Vector(LAP, nx, nx + 2*LAP, OCFD_DATA_TYPE, TYPE_LAPY1, ierr) + call MPI_TYPE_Vector(LAP, nx, (nx + 2*LAP)*(ny + 2*LAP), OCFD_DATA_TYPE, TYPE_LAPZ1, ierr) + + call MPI_TYPE_Vector(ny, nx, nx + 2*LAP, OCFD_DATA_TYPE, TYPE_tmp, ierr) + + call MPI_TYPE_HVector(nz, 1, (nx + 2*LAP)*(ny + 2*LAP)*OCFD_REAL_KIND, TYPE_LAPX1, TYPE_LAPX2, ierr) + call MPI_TYPE_HVector(nz, 1, (nx + 2*LAP)*(ny + 2*LAP)*OCFD_REAL_KIND, TYPE_LAPY1, TYPE_LAPY2, ierr) + call MPI_TYPE_HVector(LAP, 1, (nx + 2*LAP)*(ny + 2*LAP)*OCFD_REAL_KIND, TYPE_tmp, TYPE_LAPZ2, ierr) + + call MPI_TYPE_COMMIT(TYPE_LAPX1, ierr) + call MPI_TYPE_COMMIT(TYPE_LAPY1, ierr) + call MPI_TYPE_COMMIT(TYPE_LAPZ1, ierr) + + call MPI_TYPE_COMMIT(TYPE_LAPX2, ierr) + call MPI_TYPE_COMMIT(TYPE_LAPY2, ierr) + call MPI_TYPE_COMMIT(TYPE_LAPZ2, ierr) + + call MPI_barrier(MPI_COMM_WORLD, ierr) + end +!----------------------------------------------------------------------------------------------- + +!------------------------------------------------------------------------------- +!----Form a Global index, get the node information and local index + subroutine get_i_node(i_global, node_i, i_local) + Use Para_mpi + implicit none + integer i_global, node_i, i_local, ia + + node_i = npx0 - 1 + do ia = 0, npx0 - 2 + if (i_global .ge. i_offset(ia) .and. i_global .lt. i_offset(ia + 1)) node_i = ia + end do + i_local = i_global - i_offset(node_i) + 1 + end +!------------------------------------------------------------------------------- + subroutine get_j_node(j_global, node_j, j_local) + Use Para_mpi + implicit none + integer j_global, node_j, j_local, ja + node_j = npy0 - 1 + do ja = 0, npy0 - 2 + if (j_global .ge. j_offset(ja) .and. j_global .lt. j_offset(ja + 1)) node_j = ja + end do + j_local = j_global - j_offset(node_j) + 1 + end +!----------------------------------------------------------------------------------- + subroutine get_k_node(k_global, node_k, k_local) + Use Para_mpi + implicit none + integer k_global, node_k, k_local, ka + + node_k = npz0 - 1 + do ka = 0, npz0 - 2 + if (k_global .ge. k_offset(ka) .and. k_global .lt. k_offset(ka + 1)) node_k = ka + end do + k_local = k_global - k_offset(node_k) + 1 + end + +!------------------------------------------------------------------------------------ + function get_id(npx1, npy1, npz1) + Use Para_mpi + implicit none + integer get_id, npx1, npy1, npz1 + get_id = npz1*(npx0*npy0) + npy1*npx0 + npx1 + return + end +!------------------------------------------------------------------------------------- +! Message send and recv at inner boundary (or 'MPI boundary') + subroutine exchange_boundary_xyz(f) + Use flow_para + implicit none + real(kind=OCFD_REAL_KIND):: f(1 - LAP:nx + LAP, 1 - LAP:ny + LAP, 1 - LAP:nz + LAP) + call exchange_boundary_x(f) + call exchange_boundary_y(f) + call exchange_boundary_z(f) + return + end + +!========================================================================================================= +! Boundary message communication (exchange bounary message) +!========================================================================================================= + +! mpi message send and recv, using user defined data type + subroutine exchange_boundary_x(f) + Use flow_para + implicit none + integer Status(MPI_status_Size), ierr + real(kind=OCFD_REAL_KIND):: f(1 - LAP:nx + LAP, 1 - LAP:ny + LAP, 1 - LAP:nz + LAP) + + call MPI_Sendrecv(f(1, 1, 1), 1, TYPE_LAPX2, ID_XM1, 9000, & + f(nx + 1, 1, 1), 1, TYPE_LAPX2, ID_XP1, 9000, MPI_COMM_WORLD, Status, ierr) + call MPI_Sendrecv(f(nx + 1 - LAP, 1, 1), 1, TYPE_LAPX2, ID_XP1, 8000, & + f(1 - LAP, 1, 1), 1, TYPE_LAPX2, ID_XM1, 8000, MPI_COMM_WORLD, Status, ierr) + + end +!------------------------------------------------------ + subroutine exchange_boundary_y(f) + Use flow_para + implicit none + integer Status(MPI_status_Size), ierr + real(kind=OCFD_REAL_KIND):: f(1 - LAP:nx + LAP, 1 - LAP:ny + LAP, 1 - LAP:nz + LAP) + + call MPI_Sendrecv(f(1, 1, 1), 1, TYPE_LAPY2, ID_YM1, 9000, & + f(1, ny + 1, 1), 1, TYPE_LAPY2, ID_YP1, 9000, MPI_COMM_WORLD, Status, ierr) + call MPI_Sendrecv(f(1, ny + 1 - LAP, 1), 1, TYPE_LAPY2, ID_YP1, 8000, & + f(1, 1 - LAP, 1), 1, TYPE_LAPY2, ID_YM1, 8000, MPI_COMM_WORLD, Status, ierr) + end +!------------------------------------------------------------ + subroutine exchange_boundary_z(f) + Use flow_para + implicit none + integer Status(MPI_status_Size), ierr + real(kind=OCFD_REAL_KIND):: f(1 - LAP:nx + LAP, 1 - LAP:ny + LAP, 1 - LAP:nz + LAP) + + call MPI_Sendrecv(f(1, 1, 1), 1, TYPE_LAPZ2, ID_ZM1, 9000, & + f(1, 1, nz + 1), 1, TYPE_LAPZ2, ID_ZP1, 9000, MPI_COMM_WORLD, Status, ierr) + call MPI_Sendrecv(f(1, 1, nz + 1 - LAP), 1, TYPE_LAPZ2, ID_ZP1, 8000, & + f(1, 1, 1 - LAP), 1, TYPE_LAPZ2, ID_ZM1, 8000, MPI_COMM_WORLD, Status, ierr) + end + +!----------------------------------------------------------------------- \ No newline at end of file diff --git a/src/OCFD_parameters.f90 b/src/OCFD_parameters.f90 new file mode 100644 index 0000000..b9e9e42 --- /dev/null +++ b/src/OCFD_parameters.f90 @@ -0,0 +1,109 @@ +!-----OpenCFD-SC version 2 -------------------------------------------------------------------- +! Copyright by Li Xinliang, LHD, Institute of Mechanics, CAS, lixl@imech.ac.cn +! Codey by Li Xinliang, 2021-2 +!---------------------------------------------------------------------------------------------- + +! Double precsion (real*8) or Single Precision (real*4) (default: double precision) +module OCFD_precision + implicit none + include "mpif.h" +!------For Doubleprecision (real*8)-------------------------------------------------------------------------- + integer, parameter::OCFD_REAL_KIND = 8, OCFD_DATA_TYPE = MPI_DOUBLE_PRECISION ! double precison computing +! ------For Single precision (real*4)------------------------------------------------------------------------- +! integer,parameter::OCFD_REAL_KIND=4, OCFD_DATA_TYPE=MPI_REAL ! single precision computing +end module OCFD_precision + +!------parameters used in OpenCFD--------------------------------------- +module OCFD_constants + Use OCFD_precision + implicit none + integer, parameter:: Nvars = 5 ! 5 conservative variables, 5 Equations + integer, parameter:: OCFD_Turb_None = 0 ! Turbulence model + + integer, parameter:: OCFD_Scheme_WENO5 = 1, OCFD_Scheme_WENO7 = 2, & ! Schemes + OCFD_Scheme_OMP6 = 3, OCFD_Scheme_UD7L = 4, & + OCFD_Scheme_CD6 = 5, OCFD_Scheme_CD8 = 6, & + OCFD_Scheme_Hybrid = 10, & + OCFD_Scheme_USER = 99 + + integer, parameter:: OCFD_Split_SW = 1, OCFD_Split_LLF = 2 + + integer, parameter:: BC_None = 0, BC_Blunt2d = 1, BC_BoundaryLayer = 2, BC_SweptCorner = 3, BC_User_Def = 99 + + integer, parameter:: GRID1D = 10, GRID2D_PLANE = 20, GRID2D_AXIAL_SYMM = 21, GRID3D = 30, GRID_AND_JACOBIAN3D = 31, GRIDGEN = 0 + + integer, parameter:: DEL_LIFT = 1, DEL_RIGHT = 2, DEL_NONE = 0 ! WENO5-type boundary Scheme + integer, parameter:: OCFD_ANA_USER = 99, OCFD_ANA_time_average = 100, & + OCFD_ANA_Q = 101, OCFD_ANA_BOX = 102, OCFD_ANA_SAVEDATA = 103, OCFD_ANA_Corner = 104 +end + +!----mpi parameters------------------------------------------------ +module Para_mpi + implicit none + integer:: my_id, npx, npy, npz, npx0, npy0, npz0, np_size, & ! npx0, npy0 : zone numbers in x- and y- direction + MPI_COMM_X, MPI_COMM_Y, MPI_COMM_Z, MPI_COMM_XY, MPI_COMM_YZ, MPI_COMM_XZ, & + ID_XM1, ID_XP1, ID_YM1, ID_YP1, ID_ZM1, ID_ZP1 ! ID_XM1: MPI ID for zone-1 (lift one) in x-direction + integer:: LAP ! Overlap length for Block-Block + integer, allocatable, dimension(:):: i_offset, j_offset, k_offset, i_nn, j_nn, k_nn + integer:: TYPE_LAPX1, TYPE_LAPY1, TYPE_LAPZ1, TYPE_LAPX2, TYPE_LAPY2, TYPE_LAPZ2 ! user defined MPI DATA TYPE (for Send & Recv) +end + +!-----------parameters for numerical schemes------------------------ +module Scheme_Para + use OCFD_precision + implicit none + TYPE TYPE_Scheme + integer:: Scheme_Invis, Scheme_Vis + integer:: Bound_index(2, 3), Scheme_boundary(6) !Bound_index(:,:) if using boundary scheme(0/1) + !Scheme_boundary(:) : boundary scheme type ( i-, i+, j-, j+, k-, k+: 0 : default, WENO5 Del-substencil type; -1 full-WENO5 type) + integer:: Ka1, Kb1, Ka2, Kb2 ! [Ka1,Kb1] stencil for flux+ ; [Ka2,Kb2] stencil for flux- + integer:: Ka1_H1, Kb1_H1, Ka2_H1, Kb2_H1, Ka1_H2, Kb1_H2, Ka2_H2, Kb2_H2, Ka1_H3, Kb1_H3, Ka2_H3, Kb2_H3 ! [Ka,Kb] for Hybrid scheme (scheme1, scheme2, scheme3) + Real(kind=OCFD_REAL_KIND):: UD7L_Diss, UD7L(8), Hybrid_para(100) + ! UD7L_Diss: dissipation coefficient (0-1; 0 : CD8, 1: UD7) + ! UD7L coefficients for 7th low-dissipation upwind difference sheme + end TYPE + TYPE(TYPE_Scheme):: Scheme + +end + +!-----------flow parameters ---------------------------------------------- +module flow_para + use OCFD_constants + use Para_mpi + use Scheme_para + implicit none + + TYPE TYPE_Para ! input parameters + integer:: Iperiodic_X, Iperiodic_Y, Iperiodic_Z ! 1/0 : If periodic or not + integer:: IF_Scheme_Character, IF_Viscous, Istep_Show, Istep_Save, Flux_Splitting, & + Iflag_Gridtype, & ! 0: Grid only, 1: Grid and Jocabian + IBC, IF_Mass_Force, & ! boundary conditon ; IF_Mase_Force : 0 (default): no mass force; 1 with mass force + ANA_Number, & ! number of analysis process + Nfiltering, & ! Number of filtering + Ghost_cell(6) ! 0 : non-GhostCell (default); 1 Ghost Cell (Auto, exterpolation); 2 Ghost cell (user defined) + Real(kind=OCFD_REAL_KIND):: Periodic_ISpan(3), Periodic_JSpan(3), Periodic_KSpan(3) ! Span in peridoic direction + Real(kind=OCFD_REAL_KIND):: Re, Ma, gamma, Pr, Ref_Amu_T0, dt, End_time, AoA ! AoA angle of attack + Real(kind=OCFD_REAL_KIND):: BC_para(100) ! parameters for boundary conditions + Real(kind=OCFD_REAL_KIND):: Mass_Force(3) ! Mass force (such as gravity) + Real(kind=OCFD_REAL_KIND):: ANA_Para(100, 10) ! parameters for post analysis code + Real(kind=OCFD_REAL_KIND):: Filter(100, 10) ! parameters for filtering + end TYPE + + TYPE(TYPE_Para):: Para + + integer:: nx_global, ny_global, nz_global, nx, ny, nz, Istep + Real(kind=OCFD_REAL_KIND):: Cp, Cv, tt, hx, hy, hz +end + +!---------flow data--------------------------------------------------------- +module flow_data + use flow_para + implicit none + + real(kind=OCFD_REAL_KIND), allocatable, dimension(:, :, :):: Axx, Ayy, Azz, & ! Coordinates + Akx, Aky, Akz, Aix, Aiy, Aiz, Asx, Asy, Asz, Ajac, & ! Jacobian coefficients + Akx1, Aky1, Akz1, Aix1, Aiy1, Aiz1, Asx1, Asy1, Asz1 ! Akx1=Akx/Ajac + real(kind=OCFD_REAL_KIND), allocatable:: f(:, :, :, :), fn(:, :, :, :), du(:, :, :, :), Amu(:, :, :), Amu_t(:, :, :) + real(kind=OCFD_REAL_KIND), allocatable, dimension(:, :, :):: d, u, v, w, T + real(kind=OCFD_REAL_KIND), allocatable, dimension(:, :, :):: Rhybrid ! Index of hybrid scheme +end diff --git a/src/OCFD_readpara.f90 b/src/OCFD_readpara.f90 new file mode 100644 index 0000000..cbda459 --- /dev/null +++ b/src/OCFD_readpara.f90 @@ -0,0 +1,342 @@ +! ------------------------------------------------------------------------------- +! read flow parameters (Namelist type) + subroutine read_parameter + use flow_para + implicit none + integer:: IF_Scheme_Character, Iperiodic_X, Iperiodic_Y, Iperiodic_Z, IF_Viscous, Istep_Show, Istep_Save, & + Iflag_Gridtype, Scheme_boundary(6), IF_Mass_Force, ANA_Number, NFiltering, Flux_Splitting, & + Ghost_Cell(6), ierr + character(len=50):: Scheme_Invis, Scheme_Vis, BoundaryCondition + real(kind=OCFD_REAL_KIND):: Ma, Re, gamma, Pr, Ref_Amu_T0, dt, End_time, AoA, & + Periodic_ISpan(3), Periodic_JSpan(3), Periodic_KSpan(3), & + BC_Para(100), Mass_Force(3), ANA_Para(100, 10), Filter_Para(100, 10), & + Hybrid_para(100), UD7L_Diss + namelist /control_opencfd/ Ma, Re, gamma, Pr, Ref_Amu_T0, dt, End_time, AoA, & + nx_global, ny_global, nz_global, npx0, npy0, npz0, LAP, & + Iperiodic_X, Iperiodic_Y, Iperiodic_Z, & + Scheme_Invis, Scheme_Vis, IF_Scheme_Character, IF_Viscous, & + Istep_Show, Istep_Save, Iflag_Gridtype, & + Periodic_ISpan, Periodic_JSpan, Periodic_KSpan, & + BoundaryCondition, BC_Para, Scheme_boundary, IF_Mass_Force, Mass_Force, & + ANA_Number, ANA_Para, NFiltering, Filter_Para, UD7L_Diss, Hybrid_para, Flux_Splitting, & + Ghost_Cell + + integer:: nparameters(100) + real(kind=OCFD_REAL_KIND):: rparameters(100) + real*8, parameter:: PI = 3.1415926535897932d0 +!--------Set defalut parameter ---------------- + gamma = 1.4d0 + Re = 100.d0 + Ma = 1.d0 + Pr = 0.7d0 + npx0 = 1 + npy0 = 1 + npz0 = 1 + LAP = 4 + Iperiodic_X = 0 + Iperiodic_Y = 0 + Iperiodic_Z = 0 + Scheme_Invis = "WENO5" + Scheme_Vis = "CD6" + IF_Scheme_Character = 0 + Ref_Amu_T0 = 288.15d0 + dt = 1.d-4 + End_time = 100.d0 + Iflag_Gridtype = GRID3D + Periodic_ISpan(:) = 0.d0 + Periodic_JSpan(:) = 0.d0 + Periodic_KSpan(:) = 0.d0 + BC_Para(:) = 0.d0 + BoundaryCondition = "BC_None" + Istep_show = 1 + Istep_save = 1000 + IF_Viscous = 1 + Scheme_boundary(:) = 0 + IF_Mass_Force = 0 + Mass_Force(:) = 0.d0 + AoA = 0.d0 + ANA_Number = 0 + ANA_Para = 0.d0 + NFiltering = 0 + Filter_Para = 0.d0 + UD7L_Diss = 1.d0 ! Disspation for Low-dissipative Upwind difference scheme (0-1, 0 CD8 scheme, 1 UD7 scheme) + Hybrid_para(:) = 1.d0 ! parameters for Hybrid scheme + Flux_Splitting = OCFD_Split_SW + Ghost_Cell(:) = 0 + +!---------------------------------------------- + + if (my_id .eq. 0) then + print *, "---------OpenCFD-SC Version 2-------------" + print *, "- code by Li Xinliang -" + print *, "- LHD, Institue of Mechanics, CAS -" + print *, "- lixl@imech.ac.cn -" + print *, "------------------------------------------" + + open (99, file="opencfd2.in") + read (99, nml=control_opencfd) + close (99) + print *, "Re=", Re + print *, "Ma=", Ma + print *, "Scheme_Invis=", Scheme_Invis + print *, "Scheme_Vis=", Scheme_Vis + print *, "Flux_Splitting (1 SW; 2 LLF)= ", Flux_Splitting + print *, "IF_Scheme_Character (0/1) = ", IF_Scheme_Character + print *, "-----------------------------------------------------" + + call capitalize(Scheme_Invis) + call capitalize(Scheme_Vis) + call capitalize(BoundaryCondition) + + call find_scheme(Scheme_Invis, Scheme%Scheme_Invis) ! Scheme for inviscous terms + call find_scheme(Scheme_Vis, Scheme%Scheme_Vis) ! Scheme for viscous terms + call find_bc(BoundaryCondition, Para%IBC) ! boundary condition + if (ANA_Number > 10 .or. NFiltering > 10) then + print *, "ANA_Number and NFiltering should <=10, please check !!!" + stop + end if + + Para%BC_Para(1:100) = BC_Para(1:100) + Para%ANA_Para(:, :) = ANA_Para(:, :) + Para%Filter(:, :) = Filter_Para(:, :) + Scheme%Hybrid_para(:) = Hybrid_para(:) + + nparameters(1) = nx_global + nparameters(2) = ny_global + nparameters(3) = nz_global + + nparameters(4) = npx0 + nparameters(5) = npy0 + nparameters(6) = npz0 + + nparameters(7) = LAP + nparameters(8) = Iperiodic_X + nparameters(9) = Iperiodic_Y + nparameters(10) = Iperiodic_Z + + nparameters(11) = Scheme%Scheme_Invis + nparameters(12) = Scheme%Scheme_Vis + nparameters(13) = If_Scheme_Character + nparameters(14) = IF_Viscous + nparameters(15) = Istep_Show + nparameters(16) = Istep_Save + nparameters(17) = Iflag_Gridtype + nparameters(18) = Para%IBC + nparameters(19:24) = Scheme_boundary(1:6) + nparameters(25) = IF_Mass_Force + nparameters(26) = ANA_Number + nparameters(27) = NFiltering + nparameters(28) = Flux_Splitting + nparameters(29:34) = Ghost_Cell(1:6) + + rparameters(1) = Ma + rparameters(2) = Re + rparameters(3) = gamma + rparameters(4) = Pr + rparameters(5) = Ref_Amu_T0 + rparameters(6) = dt + rparameters(7) = End_time + rparameters(8:10) = Periodic_ISpan + rparameters(11:13) = Periodic_JSpan + rparameters(14:16) = Periodic_KSpan + rparameters(17:19) = Mass_Force + rparameters(20) = AoA*PI/180.d0 ! angle of attack (in degree) + rparameters(21) = UD7L_Diss + end if + +! Broadcast the parameters to all MPI procs + + call MPI_bcast(nparameters(1), 100, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr) + call MPI_bcast(rparameters(1), 100, OCFD_DATA_TYPE, 0, MPI_COMM_WORLD, ierr) + + nx_global = nparameters(1) + ny_global = nparameters(2) + nz_global = nparameters(3) + + npx0 = nparameters(4) + npy0 = nparameters(5) + npz0 = nparameters(6) + + LAP = nparameters(7) + Para%Iperiodic_X = nparameters(8) + Para%Iperiodic_Y = nparameters(9) + Para%Iperiodic_Z = nparameters(10) + + Scheme%Scheme_Invis = nparameters(11) + Scheme%Scheme_Vis = nparameters(12) + Para%IF_Scheme_Character = nparameters(13) + Para%IF_Viscous = nparameters(14) + Para%Istep_Show = nparameters(15) + Para%Istep_Save = nparameters(16) + Para%Iflag_Gridtype = nparameters(17) + Para%IBC = nparameters(18) + Scheme%Scheme_boundary(1:6) = nparameters(19:24) + Para%IF_Mass_Force = nparameters(25) + Para%ANA_Number = nparameters(26) + Para%NFiltering = nparameters(27) + Para%Flux_Splitting = nparameters(28) + Para%Ghost_Cell(1:6) = nparameters(29:34) + +!---------------------------- + + Para%Ma = rparameters(1) + Para%Re = rparameters(2) + Para%gamma = rparameters(3) + Para%Pr = rparameters(4) + Para%Ref_Amu_T0 = rparameters(5) + Para%dt = rparameters(6) + Para%End_time = rparameters(7) + Para%Periodic_ISpan(:) = rparameters(8:10) + Para%Periodic_JSpan(:) = rparameters(11:13) + Para%Periodic_KSpan(:) = rparameters(14:16) + Para%Mass_Force(:) = rparameters(17:19) + Para%AoA = rparameters(20) + Scheme%UD7L_Diss = rparameters(21) + + call MPI_bcast(Para%BC_Para(1), 100, OCFD_DATA_TYPE, 0, MPI_COMM_WORLD, ierr) + call MPI_bcast(Para%ANA_Para(1, 1), 1000, OCFD_DATA_TYPE, 0, MPI_COMM_WORLD, ierr) + call MPI_bcast(Para%Filter(1, 1), 1000, OCFD_DATA_TYPE, 0, MPI_COMM_WORLD, ierr) + call MPI_bcast(Scheme%Hybrid_para(1), 100, OCFD_DATA_TYPE, 0, MPI_COMM_WORLD, ierr) + end + +!----------------------------------------------- + subroutine find_scheme(Schm1, scheme) + use OCFD_constants + implicit none + character(len=50):: Schm1 + integer:: scheme + + select case (trim(Schm1)) + + case ("WENO5") + Scheme = OCFD_Scheme_WENO5 + case ("WENO7") + Scheme = OCFD_Scheme_WENO7 + case ("OMP6") + Scheme = OCFD_Scheme_OMP6 + case ("CD6") + Scheme = OCFD_Scheme_CD6 + case ("CD8") + Scheme = OCFD_Scheme_CD8 + case ("UD7L") + Scheme = OCFD_Scheme_UD7L + case ("HYBRID") + scheme = OCFD_Scheme_Hybrid + case ("SCHEME_USER") + Scheme = OCFD_Scheme_USER + case default + print *, "This Scheme is not supported !!", trim(Schm1) + print *, "Scheme_Invis can be WENO5, WENO7 or OMP6 " + print *, "Scheme_Vis can be CD6 or CD8 (6th or 8th Centeral Scheme)" + stop + end select + end + + subroutine find_bc(bc, ibc) + use OCFD_constants + implicit none + character(len=50):: bc + integer:: ibc + + select case (trim(bc)) + + case ("BC_NONE") + ibc = BC_None + case ("BC_BLUNT2D") + ibc = BC_Blunt2d + case ("BC_BOUNDARYLAYER") + ibc = BC_BoundaryLayer + case ("BC_SWEPTCORNER") + ibc = BC_SweptCorner + case ("BC_USER_DEF") + ibc = BC_User_Def + case default + print *, "This Boundary Condition is not supported !!", trim(bc) + print *, "Please read OCFD2d_BoundaryConditions.f90 to find the supported BCs" + stop + end select + end + +!------------Set parameters -------------------------------- + subroutine set_parameters + use flow_para + implicit none + + hx = 1.d0/(nx_global - 1.d0) + hy = 1.d0/(ny_global - 1.d0) + hz = 1.d0/(nz_global - 1.d0) + + Cv = 1.d0/(Para%gamma*(Para%gamma - 1.d0)*Para%Ma*Para%Ma) + Cp = Cv*Para%gamma + +!---------Set Scheme%bound_index (指示6个边界 是否采用边界格式) +! Scheme%Scheme_boundary(:)==-1 ! Ghost-Cell type boundary (Do not use boundary scheme) + Scheme%bound_index(:, :) = 0 ! default : not use boundary scheme + + if (npx .eq. 0 .and. Para%Iperiodic_X .eq. 0) Scheme%bound_index(1, 1) = 1 ! i- + if (npx .eq. npx0 - 1 .and. Para%Iperiodic_X .eq. 0) Scheme%bound_index(2, 1) = 1 ! i+ + + if (npy .eq. 0 .and. Para%Iperiodic_Y .eq. 0) Scheme%bound_index(1, 2) = 1 ! j- + if (npy .eq. npy0 - 1 .and. Para%Iperiodic_Y .eq. 0) Scheme%bound_index(2, 2) = 1 ! j+ + + if (npz .eq. 0 .and. Para%Iperiodic_Z .eq. 0) Scheme%bound_index(1, 3) = 1 ! k- + if (npz .eq. npz0 - 1 .and. Para%Iperiodic_Z .eq. 0) Scheme%bound_index(2, 3) = 1 ! k+ + +! ----[Ka1,Kb1]: Stencil of positive flux F(i+1/2) : [i+Ka1, i+Kb1] ; +! [Ka2,Kb2]: Stencil of negative flux ; + + select case (Scheme%Scheme_Invis) + case (OCFD_Scheme_WENO5) + Scheme%Ka1 = -2; Scheme%Kb1 = 2 ! Stencil for F(i+1/2) of WENO5+ : [i-2, ..., i+2] + Scheme%Ka2 = -1; Scheme%Kb2 = 3 ! Stencil for F(i+1/2) of WENO5- : [i-1, ..., i+3] + case (OCFD_Scheme_WENO7) + Scheme%Ka1 = -3; Scheme%Kb1 = 3 + Scheme%Ka2 = -2; Scheme%Kb2 = 4 + case (OCFD_Scheme_OMP6) + Scheme%Ka1 = -3; Scheme%Kb1 = 4 + Scheme%Ka2 = -3; Scheme%Kb2 = 4 + case (OCFD_Scheme_UD7L) ! low-dissipative Upwind Difference scheme + Scheme%Ka1 = -3; Scheme%Kb1 = 4 + Scheme%Ka2 = -3; Scheme%Kb2 = 4 + case (OCFD_Scheme_Hybrid) ! Hybrid scheme + Scheme%Ka1 = -3; Scheme%Kb1 = 4 + Scheme%Ka2 = -3; Scheme%Kb2 = 4 + case (OCFD_Scheme_USER) +! call Stencil_Scheme_User(Scheme%Ka1, Scheme%Kb1, Scheme%Ka2, Scheme%Kb2) + + case default + print *, "The Inviscous Scheme is not supported" + stop + end select + +! [Ka,Kb] for hybrid scheme + Scheme%Ka1_H1 = -3; Scheme%Kb1_H1 = 4; Scheme%Ka2_H1 = -3; Scheme%Kb2_H1 = 4 ! UD7L + Scheme%Ka1_H2 = -3; Scheme%Kb1_H2 = 3; Scheme%Ka2_H2 = -2; Scheme%Kb2_H2 = 4 ! WENO7 + Scheme%Ka1_H3 = -2; Scheme%Kb1_H3 = 2; Scheme%Ka2_H3 = -1; Scheme%Kb2_H3 = 3 ! WENO5 + + call set_scheme_para + + end + +!----------------change to capital letters ------------------- + subroutine capitalize(string) + implicit none + character(len=*):: string + integer::i, length + length = len(string) + do i = 1, length + if (lge(string(i:i), 'a') .and. lle(string(i:i), 'z')) then + string(i:i) = achar(iachar(string(i:i)) - 32) + end if + end do + end +! ---------Coefficients for low-dissipative upwind scheme (UD7L) + subroutine set_scheme_para + use flow_para + implicit none + real(kind=OCFD_REAL_KIND):: UD7(8), CD8(8) + UD7 = (/-3.d0, 25.d0, -101.d0, 319.d0, 214.d0, -38.d0, 4.d0, 0.d0/) ! coefficients for UD7 + CD8 = (/-3.0, 29.0, -139.0, 533.0, 533.0, -139.0, 29.0, -3.0/) ! coefficients for CD8 + Scheme%UD7L = Scheme%UD7L_Diss*UD7/420.d0 + (1.d0 - Scheme%UD7L_Diss)*CD8/840.d0 + end + diff --git a/src/OCFD_viscous.f90 b/src/OCFD_viscous.f90 new file mode 100644 index 0000000..571d7e1 --- /dev/null +++ b/src/OCFD_viscous.f90 @@ -0,0 +1,158 @@ +!======================================================== +! Viscous term ! 3D Jacobian transformation +! Copyright by Li Xinliang +module viscous_data ! data used by inviscous term + use OCFD_precision + implicit none + real(kind=OCFD_REAL_KIND), allocatable, dimension(:, :, :, :):: Ev1, Ev2, Ev3 + real(kind=OCFD_REAL_KIND), allocatable, dimension(:, :, :):: uk, ui, us, vk, vi, vs, wk, wi, ws, Tk, Ti, Ts +end + +subroutine allocate_vicous_data + Use flow_para + Use viscous_data + implicit none + allocate (Ev1(1 - LAP:nx + LAP, 1 - LAP:ny + LAP, 1 - LAP:nz + LAP, 4), & + Ev2(1 - LAP:nx + LAP, 1 - LAP:ny + LAP, 1 - LAP:nz + LAP, 4), & + Ev3(1 - LAP:nx + LAP, 1 - LAP:ny + LAP, 1 - LAP:nz + LAP, 4)) + allocate (uk(nx, ny, nz), ui(nx, ny, nz), us(nx, ny, nz), vk(nx, ny, nz), vi(nx, ny, nz), vs(nx, ny, nz), & + wk(nx, ny, nz), wi(nx, ny, nz), ws(nx, ny, nz), Tk(nx, ny, nz), Ti(nx, ny, nz), Ts(nx, ny, nz)) +end + +subroutine deallocate_vicous_data + Use viscous_data + implicit none + deallocate (Ev1, Ev2, Ev3, uk, ui, us, vk, vi, vs, wk, wi, ws, Tk, Ti, Ts) +end + +!-------------Viscous term ----------------------------------------------------------------- +subroutine du_viscous + Use flow_data + Use viscous_data + implicit none + + real(kind=OCFD_REAL_KIND):: div, ux, uy, uz, vx, vy, vz, wx, wy, wz, Tx, Ty, Tz, Amu1, Amuk, & + s11, s12, s13, s22, s23, s33, E1, E2, E3 + real(kind=OCFD_REAL_KIND), parameter:: Prt = 0.9d0, tmp2_3 = 2.d0/3.d0 + integer:: i, j, k, m +!------------------------------------------------------------------------ + + call comput_Amu ! comput viscous coefficient (by using Sutherland eq.) + + call OCFD_dx0(u, uk, Scheme%Scheme_Vis) + call OCFD_dx0(v, vk, Scheme%Scheme_Vis) + call OCFD_dx0(w, wk, Scheme%Scheme_Vis) + call OCFD_dx0(T, Tk, Scheme%Scheme_Vis) + call OCFD_dy0(u, ui, Scheme%Scheme_Vis) + call OCFD_dy0(v, vi, Scheme%Scheme_Vis) + call OCFD_dy0(w, wi, Scheme%Scheme_Vis) + call OCFD_dy0(T, Ti, Scheme%Scheme_Vis) + call OCFD_dz0(u, us, Scheme%Scheme_Vis) + call OCFD_dz0(v, vs, Scheme%Scheme_Vis) + call OCFD_dz0(w, ws, Scheme%Scheme_Vis) + call OCFD_dz0(T, Ts, Scheme%Scheme_Vis) + +!------------------------------------------------------------- + + do k = 1, nz + do j = 1, ny + do i = 1, nx + ux = uk(i, j, k)*Akx(i, j, k) + ui(i, j, k)*Aix(i, j, k) + us(i, j, k)*Asx(i, j, k) + vx = vk(i, j, k)*Akx(i, j, k) + vi(i, j, k)*Aix(i, j, k) + vs(i, j, k)*Asx(i, j, k) + wx = wk(i, j, k)*Akx(i, j, k) + wi(i, j, k)*Aix(i, j, k) + ws(i, j, k)*Asx(i, j, k) + Tx = Tk(i, j, k)*Akx(i, j, k) + Ti(i, j, k)*Aix(i, j, k) + Ts(i, j, k)*Asx(i, j, k) + + uy = uk(i, j, k)*Aky(i, j, k) + ui(i, j, k)*Aiy(i, j, k) + us(i, j, k)*Asy(i, j, k) + vy = vk(i, j, k)*Aky(i, j, k) + vi(i, j, k)*Aiy(i, j, k) + vs(i, j, k)*Asy(i, j, k) + wy = wk(i, j, k)*Aky(i, j, k) + wi(i, j, k)*Aiy(i, j, k) + ws(i, j, k)*Asy(i, j, k) + Ty = Tk(i, j, k)*Aky(i, j, k) + Ti(i, j, k)*Aiy(i, j, k) + Ts(i, j, k)*Asy(i, j, k) + + uz = uk(i, j, k)*Akz(i, j, k) + ui(i, j, k)*Aiz(i, j, k) + us(i, j, k)*Asz(i, j, k) + vz = vk(i, j, k)*Akz(i, j, k) + vi(i, j, k)*Aiz(i, j, k) + vs(i, j, k)*Asz(i, j, k) + wz = wk(i, j, k)*Akz(i, j, k) + wi(i, j, k)*Aiz(i, j, k) + ws(i, j, k)*Asz(i, j, k) + Tz = Tk(i, j, k)*Akz(i, j, k) + Ti(i, j, k)*Aiz(i, j, k) + Ts(i, j, k)*Asz(i, j, k) + div = ux + vy + wz + +! Amu1=Amu(i,j,k)+Amu_t(i,j,k) ! Turbulent or LES model ! +! Amuk=Cp*(Amu(i,j,k)/Pr+Amu_t(i,j,k)/Prt) + + Amu1 = Amu(i, j, k) ! In this version, turbulence model is not supported ! + Amuk = Cp*Amu(i, j, k)/Para%Pr + + s11 = (2.d0*ux - tmp2_3*div)*Amu1 ! tmp2_3=2.d0/3.d0 + s22 = (2.d0*vy - tmp2_3*div)*Amu1 + s33 = (2.d0*wz - tmp2_3*div)*Amu1 + + s12 = (uy + vx)*Amu1 + s13 = (uz + wx)*Amu1 + s23 = (vz + wy)*Amu1 + + E1 = u(i, j, k)*s11 + v(i, j, k)*s12 + w(i, j, k)*s13 + Amuk*Tx + E2 = u(i, j, k)*s12 + v(i, j, k)*s22 + w(i, j, k)*s23 + Amuk*Ty + E3 = u(i, j, k)*s13 + v(i, j, k)*s23 + w(i, j, k)*s33 + Amuk*Tz + + Ev1(i, j, k, 1) = Akx1(i, j, k)*s11 + Aky1(i, j, k)*s12 + Akz1(i, j, k)*s13 + Ev1(i, j, k, 2) = Akx1(i, j, k)*s12 + Aky1(i, j, k)*s22 + Akz1(i, j, k)*S23 + Ev1(i, j, k, 3) = Akx1(i, j, k)*s13 + Aky1(i, j, k)*s23 + Akz1(i, j, k)*s33 + Ev1(i, j, k, 4) = Akx1(i, j, k)*E1 + Aky1(i, j, k)*E2 + Akz1(i, j, k)*E3 + + Ev2(i, j, k, 1) = Aix1(i, j, k)*s11 + Aiy1(i, j, k)*s12 + Aiz1(i, j, k)*s13 + Ev2(i, j, k, 2) = Aix1(i, j, k)*s12 + Aiy1(i, j, k)*s22 + Aiz1(i, j, k)*S23 + Ev2(i, j, k, 3) = Aix1(i, j, k)*s13 + Aiy1(i, j, k)*s23 + Aiz1(i, j, k)*s33 + Ev2(i, j, k, 4) = Aix1(i, j, k)*E1 + Aiy1(i, j, k)*E2 + Aiz1(i, j, k)*E3 + + Ev3(i, j, k, 1) = Asx1(i, j, k)*s11 + Asy1(i, j, k)*s12 + Asz1(i, j, k)*s13 + Ev3(i, j, k, 2) = Asx1(i, j, k)*s12 + Asy1(i, j, k)*s22 + Asz1(i, j, k)*S23 + Ev3(i, j, k, 3) = Asx1(i, j, k)*s13 + Asy1(i, j, k)*s23 + Asz1(i, j, k)*s33 + Ev3(i, j, k, 4) = Asx1(i, j, k)*E1 + Asy1(i, j, k)*E2 + Asz1(i, j, k)*E3 + + end do + end do + end do + +!------ x,y,z direction + do m = 1, 4 + call exchange_boundary_x(Ev1(1 - LAP, 1 - LAP, 1 - LAP, m)) + call exchange_boundary_y(Ev2(1 - LAP, 1 - LAP, 1 - LAP, m)) + call exchange_boundary_z(Ev3(1 - LAP, 1 - LAP, 1 - LAP, m)) + + call OCFD_dx0(Ev1(1 - LAP, 1 - LAP, 1 - LAP, m), uk, Scheme%Scheme_Vis) + call OCFD_dy0(Ev2(1 - LAP, 1 - LAP, 1 - LAP, m), ui, Scheme%Scheme_Vis) + call OCFD_dz0(Ev3(1 - LAP, 1 - LAP, 1 - LAP, m), us, Scheme%Scheme_Vis) + do k = 1, nz + do j = 1, ny + do i = 1, nx + du(i, j, k, m + 1) = du(i, j, k, m + 1) + (uk(i, j, k) + ui(i, j, k) + us(i, j, k))*Ajac(i, j, k) + end do + end do + end do + end do + +end + +!---------------------------------------------------------- +! viscous coefficient: Sutherland Eq. +subroutine comput_Amu + use flow_data + implicit none + real(kind=OCFD_REAL_KIND):: Tsb, tmpR + integer:: i, j, k + Tsb = 110.4d0/Para%Ref_Amu_T0 + TmpR = 1.d0/Para%Re + do k = 1, nz + do j = 1, ny + do i = 1, nx + Amu(i, j, k) = TmpR*(1.d0 + Tsb)*sqrt(T(i, j, k)**3)/(Tsb + T(i, j, k)) + end do + end do + end do +end + +!c======================================================== +!c subroutine add_symmetry_Ev(kv,Ev,nx,ny,nz,LAP) +!c include 'OpenCFD.h' +!c real Ev +!c integer i,j,k,LAP,kv +!c dimension Ev(1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP) +!c end +!c-------------------------------------------------------- diff --git a/opencfd.f90 b/src/opencfd.f90 similarity index 52% rename from opencfd.f90 rename to src/opencfd.f90 index 00a0e3d..acdbd00 100644 --- a/opencfd.f90 +++ b/src/opencfd.f90 @@ -1,31 +1,32 @@ -! ------------------------------------------------------------------------------------------------- -! OpenCFD-SC Ver 2.x, 3D Compressible Naver-Stoker Finite Difference solver -! Copyright by Li Xinliang, LHD, Institute of Mechanics. Email: lixl@imech.ac.cn +! ------------------------------------------------------------------------------------------------- +! OpenCFD-SC Ver 2.x, 3D Compressible Naver-Stoker Finite Difference solver +! Copyright by Li Xinliang, LHD, Institute of Mechanics. Email: lixl@imech.ac.cn ! Last version 2021-2 -! New feature in version 2: +! New feature in version 2: ! Character flux resconstruction is supported ! WENO5-type boundary scheme -! code is more simple (3d Jocabian solver is used for all geometry -!------------------------------------------------------------------------------------------------------ +! code is more simple (3d Jocabian solver is used for all geometry +!------------------------------------------------------------------------------------------------------ ! OpenCFD-SC use Double-Precision for default, If you want SINGLE-PRECISION computation, -! you can change OCFD_REAL_KIND=8 to OCFD_REAL_KIND=4, and change +! you can change OCFD_REAL_KIND=8 to OCFD_REAL_KIND=4, and change ! OCFD_DATA_TYPE=MPI_DOUBLE_PRECISION to OCFD_DATA_TYPE=MPI_REAL in OCFD_parameters.f90 !------------------------------------------------------------------------------------------------------- - use flow_para - implicit none - integer,parameter ::IBUFFER_SIZE=10000000 + program opencfd_sc + use flow_para + implicit none + integer, parameter ::IBUFFER_SIZE = 10000000 real(kind=8):: BUFFER_MPI(IBUFFER_SIZE) - integer:: ierr -!---------------------------------------------- - call mpi_init(ierr) ! initial of MPI - call mpi_comm_rank(MPI_COMM_WORLD,my_id,ierr) ! get my_id - call MPI_BUFFER_ATTACH(BUFFER_MPI,8*IBUFFER_SIZE,ierr) ! attach buffer for MPI_Bsend( ) + integer:: ierr +!---------------------------------------------- + call mpi_init(ierr) ! initial of MPI + call mpi_comm_rank(MPI_COMM_WORLD, my_id, ierr) ! get my_id + call MPI_BUFFER_ATTACH(BUFFER_MPI, 8*IBUFFER_SIZE, ierr) ! attach buffer for MPI_Bsend( ) !---------------------------- - - call read_parameter ! read opencfd-sc2d.in (flow parameters) - call partation3d_mpi ! partation for MPI (npx0*npy0*npz0 MPI precesses) - call set_parameters ! Set parameters such as Scheme%Bound_Index - call NS_Solver ! Solve 3d N-S eq. - call mpi_finalize(ierr) - end + + call read_parameter ! read opencfd2.in (flow parameters) + call partation3d_mpi ! partation for MPI (npx0*npy0*npz0 MPI precesses) + call set_parameters ! Set parameters such as Scheme%Bound_Index + call NS_Solver ! Solve 3d N-S eq. + call mpi_finalize(ierr) + end program opencfd_sc diff --git a/readme.txt b/src/readme.txt similarity index 100% rename from readme.txt rename to src/readme.txt diff --git a/src/test-dx-invis.f90 b/src/test-dx-invis.f90 new file mode 100644 index 0000000..c98e25c --- /dev/null +++ b/src/test-dx-invis.f90 @@ -0,0 +1,38 @@ +! test scheme in inviscous term +!--------------------------------------------------------------------- + subroutine NS_solver + use flow_data + implicit none + real(kind=OCFD_REAL_KIND), allocatable, dimension(:) :: fpx, fmx, Scm_Hbx, hhx1, hhx2 + real(kind=OCFD_REAL_KIND):: PI, x, dx1, dx2, dx0 + integer:: i + +!----------------------------------------------------------------------- + allocate (fpx(1 - LAP:nx + LAP), fmx(1 - LAP:nx + LAP), Scm_Hbx(0:nx), hhx1(0:nx), hhx2(0:nx)) + + PI = 3.14159265358979d0 + hx = 2.d0*PI/nx_global + + Scm_Hbx = 0 + + do i = 1 - LAP, nx + LAP + x = (i - 1.d0)*hx + fpx(i) = cos(x) + fmx(i) = cos(x) + end do + + call OCFD2d_flux1(fpx, hhx1, nx, LAP, Scheme%Bound_index(1, 1), Scm_Hbx, Scheme%Scheme_boundary(1:2)) + call OCFD2d_flux2(fmx, hhx2, nx, LAP, Scheme%Bound_index(1, 1), Scm_Hbx, Scheme%Scheme_boundary(1:2)) + + open (99, file="test-dx.dat") + do i = 1, nx + x = (i - 1.d0)*hx + dx1 = (hhx1(i) - hhx1(i - 1))/hx + dx2 = (hhx2(i) - hhx2(i - 1))/hx + dx0 = -sin(x) + write (99, "(I5,2E20.10)") i, dx1 - dx0, dx2 - dx0 + end do + + deallocate (fpx, fmx, Scm_Hbx, hhx1, hhx2) + end + diff --git a/src/test-dxyz0.f90 b/src/test-dxyz0.f90 new file mode 100644 index 0000000..b475075 --- /dev/null +++ b/src/test-dxyz0.f90 @@ -0,0 +1,178 @@ +! 2-D Compressible N-S Solver +! CopyRight by Li Xinliang Email: lixl@imech.ac.cn +! Ver 2.0.x 2021-1 +!--------------------------------------------------------------------- + subroutine NS_solver + use flow_data + implicit none + real(kind=OCFD_REAL_KIND), allocatable:: uu(:, :, :), ux1(:, :, :), ux2(:, :, :), ux0(:, :, :) + real(kind=OCFD_REAL_KIND):: PI, x, y, z, err1, err2, err3, u1 + real*8:: wt(4) + integer:: i, j, k, i1, j1, k1, ierr + character(len=30):: filename +!----------------------------------------------------------------------- + allocate (uu(1 - LAP:nx + LAP, 1 - LAP:ny + LAP, 1 - LAP:nz + LAP), ux0(nx, ny, nz)) + PI = 3.14159265358979d0 + hx = 2.d0*PI/nx_global + hy = 2.d0*PI/ny_global + hz = 2.d0*PI/nz_global + do k = 1, nz + do j = 1, ny + do i = 1, nx + i1 = i_offset(npx) + i - 1 + j1 = j_offset(npy) + j - 1 + k1 = k_offset(npz) + k - 1 + + x = (i1 - 1.d0)*hx + y = (j1 - 1.d0)*hy + z = (k1 - 1.d0)*hz + uu(i, j, k) = cos(x)*cos(y)*cos(z) + end do + end do + end do + + call exchange_boundary_xyz(uu) + +!--------x- -------------------------------------- + if (my_id .eq. 0) print *, "--------test dx -----------" + + wt(1) = MPI_wtime() + call OCFD2d_dx0(uu, ux0, Scheme%Scheme_Vis) + call MPI_Barrier(MPI_COMM_WORLD, ierr) + wt(2) = MPI_wtime() + + if (my_id .eq. 0) then + print *, 'CPU for x-direction is ...' + print *, wt(2) - wt(1) + end if + + err1 = 0.d0 + do k = 1, nz + do j = 1, ny + do i = 1, nx + i1 = i_offset(npx) + i - 1 + j1 = j_offset(npy) + j - 1 + k1 = k_offset(npz) + k - 1 + x = (i1 - 1.d0)*hx + y = (j1 - 1.d0)*hy + z = (k1 - 1.d0)*hz + + u1 = -sin(x)*cos(y)*cos(z) + + if (abs(u1 - ux0(i, j, k)) .gt. err1) err1 = abs(u1 - ux0(i, j, k)) + + end do + end do + end do + + print *, 'test x ... my_id,err1=', my_id, err1 + + if (npy .eq. 0 .and. npz .eq. 0) then + write (filename, "('err-x'I3.3'.dat')") npx + open (33, file=filename) + do i = 1, nx + i1 = i_offset(npx) + i - 1 + x = (i1 - 1.d0)*hx + u1 = -sin(x) + write (33, '(I5,3E25.15)') i1, ux0(i, 1, 1) - u1 + end do + close (33) + end if + call MPI_Barrier(MPI_COMM_WORLD, ierr) + +!--------y- -------------------------------------- + if (my_id .eq. 0) print *, "--------test dx -----------" + + wt(1) = MPI_wtime() + call OCFD2d_dy0(uu, ux0, Scheme%Scheme_Vis) + call MPI_Barrier(MPI_COMM_WORLD, ierr) + wt(2) = MPI_wtime() + + if (my_id .eq. 0) then + print *, 'CPU for y-direction is ...' + print *, wt(2) - wt(1) + end if + + err1 = 0.d0 + do k = 1, nz + do j = 1, ny + do i = 1, nx + i1 = i_offset(npx) + i - 1 + j1 = j_offset(npy) + j - 1 + k1 = k_offset(npz) + k - 1 + x = (i1 - 1.d0)*hx + y = (j1 - 1.d0)*hy + z = (k1 - 1.d0)*hz + + u1 = -cos(x)*sin(y)*cos(z) + + if (abs(u1 - ux0(i, j, k)) .gt. err1) err1 = abs(u1 - ux0(i, j, k)) + + end do + end do + end do + + print *, 'test y ... my_id,err1=', my_id, err1 + + if (npx .eq. 0 .and. npz .eq. 0) then + write (filename, "('err-y'I3.3'.dat')") npy + open (33, file=filename) + do j = 1, ny + j1 = j_offset(npy) + j - 1 + y = (j1 - 1.d0)*hy + u1 = -sin(y) + write (33, '(I5,3E25.15)') j1, ux0(1, j, 1) - u1 + end do + close (33) + end if + call MPI_Barrier(MPI_COMM_WORLD, ierr) + + !--------k- ------------------------------------------------------ + if (my_id .eq. 0) print *, "--------test dz -----------" + + wt(1) = MPI_wtime() + call OCFD2d_dz0(uu, ux0, Scheme%Scheme_Vis) + call MPI_Barrier(MPI_COMM_WORLD, ierr) + wt(2) = MPI_wtime() + + if (my_id .eq. 0) then + print *, 'CPU for y-direction is ...' + print *, wt(2) - wt(1) + end if + + err1 = 0.d0 + do k = 1, nz + do j = 1, ny + do i = 1, nx + i1 = i_offset(npx) + i - 1 + j1 = j_offset(npy) + j - 1 + k1 = k_offset(npz) + k - 1 + x = (i1 - 1.d0)*hx + y = (j1 - 1.d0)*hy + z = (k1 - 1.d0)*hz + + u1 = -cos(x)*cos(y)*sin(z) + + if (abs(u1 - ux0(i, j, k)) .gt. err1) err1 = abs(u1 - ux0(i, j, k)) + + end do + end do + end do + + print *, 'test z ... my_id,err1=', my_id, err1 + + if (npx .eq. 0 .and. npy .eq. 0) then + write (filename, "('err-z'I3.3'.dat')") npz + open (33, file=filename) + do k = 1, nz + k1 = k_offset(npz) + k - 1 + z = (k1 - 1.d0)*hz + u1 = -sin(z) + write (33, '(I5,3E25.15)') k1, ux0(1, 1, k) - u1 + end do + close (33) + end if + call MPI_Barrier(MPI_COMM_WORLD, ierr) + deallocate (uu, ux0) + end + diff --git a/test-dx-invis.f90 b/test-dx-invis.f90 deleted file mode 100644 index bd8ff50..0000000 --- a/test-dx-invis.f90 +++ /dev/null @@ -1,47 +0,0 @@ -! test scheme in inviscous term -!--------------------------------------------------------------------- - subroutine NS_solver - use flow_data - implicit none - real(kind=OCFD_REAL_KIND),allocatable,dimension(:) :: fpx,fmx,Scm_Hbx,hhx1,hhx2 - real(kind=OCFD_REAL_KIND):: PI,x,dx1,dx2,dx0 - integer:: i - -!----------------------------------------------------------------------- - allocate( fpx(1-LAP:nx+LAP),fmx(1-LAP:nx+LAP),Scm_Hbx(0:nx),hhx1(0:nx),hhx2(0:nx)) - - PI=3.14159265358979d0 - hx=2.d0*PI/nx_global - - Scm_Hbx=0 - - do i=1-LAP, nx+LAP - x=(i-1.d0)*hx - fpx(i)=cos(x) - fmx(i)=cos(x) - enddo - - call OCFD2d_flux1(fpx,hhx1,nx,LAP,Scheme%Bound_index(1,1),Scm_Hbx, Scheme%Scheme_boundary(1:2)) - call OCFD2d_flux2(fmx,hhx2,nx,LAP,Scheme%Bound_index(1,1),Scm_Hbx, Scheme%Scheme_boundary(1:2)) - - open(99,file="test-dx.dat") - do i=1,nx - x=(i-1.d0)*hx - dx1=(hhx1(i)-hhx1(i-1))/hx - dx2=(hhx2(i)-hhx2(i-1))/hx - dx0=-sin(x) - write(99,"(I5,2E20.10)") i, dx1-dx0, dx2-dx0 - enddo - - deallocate(fpx,fmx,Scm_Hbx,hhx1,hhx2) - end - - - - - - - - - - diff --git a/test-dxyz0.f90 b/test-dxyz0.f90 deleted file mode 100644 index 0822c71..0000000 --- a/test-dxyz0.f90 +++ /dev/null @@ -1,188 +0,0 @@ -! 2-D Compressible N-S Solver -! CopyRight by Li Xinliang Email: lixl@imech.ac.cn -! Ver 2.0.x 2021-1 -!--------------------------------------------------------------------- - subroutine NS_solver - use flow_data - implicit none - real(kind=OCFD_REAL_KIND),allocatable:: uu(:,:,:), ux1(:,:,:), ux2(:,:,:), ux0(:,:,:) - real(kind=OCFD_REAL_KIND):: PI,x,y,z, err1,err2,err3 ,u1 - real*8:: wt(4) - integer:: i,j,k,i1,j1,k1,ierr - character (len=30):: filename -!----------------------------------------------------------------------- - allocate(uu(1-LAP:nx+LAP,1-LAP:ny+LAP,1-LAP:nz+LAP),ux0(nx,ny,nz)) - PI=3.14159265358979d0 - hx=2.d0*PI/nx_global - hy=2.d0*PI/ny_global - hz=2.d0*PI/nz_global - do k=1,nz - do j=1,ny - do i=1,nx - i1=i_offset(npx)+i-1 - j1=j_offset(npy)+j-1 - k1=k_offset(npz)+k-1 - - x=(i1-1.d0)*hx - y=(j1-1.d0)*hy - z=(k1-1.d0)*hz - uu(i,j,k)=cos(x)*cos(y)*cos(z) - enddo - enddo - enddo - - call exchange_boundary_xyz(uu) - -!--------x- -------------------------------------- - if(my_id .eq. 0) print*, "--------test dx -----------" - - wt(1)=MPI_wtime() - call OCFD2d_dx0(uu,ux0,Scheme%Scheme_Vis) - call MPI_Barrier(MPI_COMM_WORLD,ierr) - wt(2)=MPI_wtime() - - - if(my_id.eq.0) then - print*, 'CPU for x-direction is ...' - print*, wt(2)-wt(1) - endif - - - - err1=0.d0 - do k=1,nz - do j=1,ny - do i=1,nx - i1=i_offset(npx)+i-1 - j1=j_offset(npy)+j-1 - k1=k_offset(npz)+k-1 - x=(i1-1.d0)*hx - y=(j1-1.d0)*hy - z=(k1-1.d0)*hz - - u1=-sin(x)*cos(y)*cos(z) - - if(abs(u1-ux0(i,j,k)).gt.err1) err1=abs(u1-ux0(i,j,k)) - - enddo - enddo - enddo - - print*, 'test x ... my_id,err1=',my_id,err1 - - if( npy.eq.0 .and. npz .eq. 0 ) then - write(filename,"('err-x'I3.3'.dat')") npx - open(33,file=filename) - do i=1,nx - i1=i_offset(npx)+i-1 - x=(i1-1.d0)*hx - u1=-sin(x) - write(33,'(I5,3E25.15)') i1,ux0(i,1,1)-u1 - enddo - close(33) - endif - call MPI_Barrier(MPI_COMM_WORLD,ierr) - -!--------y- -------------------------------------- - if(my_id .eq. 0) print*, "--------test dx -----------" - - wt(1)=MPI_wtime() - call OCFD2d_dy0(uu,ux0,Scheme%Scheme_Vis) - call MPI_Barrier(MPI_COMM_WORLD,ierr) - wt(2)=MPI_wtime() - - - if(my_id.eq.0) then - print*, 'CPU for y-direction is ...' - print*, wt(2)-wt(1) - endif - - - - err1=0.d0 - do k=1,nz - do j=1,ny - do i=1,nx - i1=i_offset(npx)+i-1 - j1=j_offset(npy)+j-1 - k1=k_offset(npz)+k-1 - x=(i1-1.d0)*hx - y=(j1-1.d0)*hy - z=(k1-1.d0)*hz - - u1=-cos(x)*sin(y)*cos(z) - - if(abs(u1-ux0(i,j,k)).gt.err1) err1=abs(u1-ux0(i,j,k)) - - enddo - enddo - enddo - - print*, 'test y ... my_id,err1=',my_id,err1 - - if( npx.eq.0 .and. npz .eq. 0 ) then - write(filename,"('err-y'I3.3'.dat')") npy - open(33,file=filename) - do j=1,ny - j1=j_offset(npy)+j-1 - y=(j1-1.d0)*hy - u1=-sin(y) - write(33,'(I5,3E25.15)') j1,ux0(1,j,1)-u1 - enddo - close(33) - endif - call MPI_Barrier(MPI_COMM_WORLD,ierr) - - !--------k- ------------------------------------------------------ - if(my_id .eq. 0) print*, "--------test dz -----------" - - wt(1)=MPI_wtime() - call OCFD2d_dz0(uu,ux0,Scheme%Scheme_Vis) - call MPI_Barrier(MPI_COMM_WORLD,ierr) - wt(2)=MPI_wtime() - - - if(my_id.eq.0) then - print*, 'CPU for y-direction is ...' - print*, wt(2)-wt(1) - endif - - - - err1=0.d0 - do k=1,nz - do j=1,ny - do i=1,nx - i1=i_offset(npx)+i-1 - j1=j_offset(npy)+j-1 - k1=k_offset(npz)+k-1 - x=(i1-1.d0)*hx - y=(j1-1.d0)*hy - z=(k1-1.d0)*hz - - u1=-cos(x)*cos(y)*sin(z) - - if(abs(u1-ux0(i,j,k)).gt.err1) err1=abs(u1-ux0(i,j,k)) - - enddo - enddo - enddo - - print*, 'test z ... my_id,err1=',my_id,err1 - - if( npx.eq.0 .and. npy .eq. 0 ) then - write(filename,"('err-z'I3.3'.dat')") npz - open(33,file=filename) - do k=1,nz - k1=k_offset(npz)+k-1 - z=(k1-1.d0)*hz - u1=-sin(z) - write(33,'(I5,3E25.15)') k1,ux0(1,1,k)-u1 - enddo - close(33) - endif - call MPI_Barrier(MPI_COMM_WORLD,ierr) - deallocate(uu,ux0) - end - - \ No newline at end of file diff --git a/util/init3d-1.3.f90 b/util/init3d-1.3.f90 deleted file mode 100644 index 59fa99e..0000000 --- a/util/init3d-1.3.f90 +++ /dev/null @@ -1,59 +0,0 @@ -! ----- Init 3D ---- -! Generate initial data for opencfd-sc, Ver 1.3 - implicit none - integer:: nx,ny,nz,j,Iflag - real*8,allocatable,dimension(:,:):: d,u,v,w,T - real*8:: Pi, AoA, tmp,d1,u1,v1,T1 - print*, "Please input nx,ny,nz ?" - read(*,*) nx,ny,nz - allocate(d(nx,ny),u(nx,ny),v(nx,ny),w(nx,ny),T(nx,ny)) - -!-------------------- - Pi=3.14159265358979d0 - print*, "Please input Iflag (0/1): 0 init wiht free-stream flow, 1 with flow1d-inlet.dat" - read(*,*) Iflag - if(Iflag ==0) then - print*, "Init with free-stream flow" - print*, "please input AoA (Angle of attack, in degree) " - read(*,*) AoA - AoA=AoA*Pi/180.d0 - d=1.d0 - u=cos(AoA) - v=sin(AoA) - w=0.d0 - T=1.d0 - else - open(99,file="flow1d-inlet.dat") - read(99,*) - do j=1,ny - read(99,*) tmp, d1,u1,v1,T1 - d(:,j)=d1 - u(:,j)=u1 - v(:,j)=v1 - w(:,j)=0.d0 - T(:,j)=T1 - enddo - close(99) - endif - - - open(99,file="opencfd0.dat",form="unformatted") - write(99) 0,0.d0 - call write3d1(99,nx,ny,nz,d) - call write3d1(99,nx,ny,nz,u) - call write3d1(99,nx,ny,nz,v) - call write3d1(99,nx,ny,nz,w) - call write3d1(99,nx,ny,nz,T) - close(99) - deallocate(d,u,v,w,T) - end - - subroutine write3d1(no,nx,ny,nz,u) - implicit none - integer:: no,nx,ny,nz,k - real*8:: u(nx,ny) - do k=1,nz - write(no) u - enddo - end - diff --git a/util/interpolation-Z-1.0.f90 b/util/interpolation-Z-1.0.f90 deleted file mode 100644 index a8c8f42..0000000 --- a/util/interpolation-Z-1.0.f90 +++ /dev/null @@ -1,213 +0,0 @@ -!---This Code can interpolate data in z-direction, which should be a periodic dimension----------- -!----------------------------------------------------------------------------------------- - implicit doubleprecision(a-h,o-z) -!----all variables with footmark "1" are variables in old mesh; with "2" are in new mesh - real*8,allocatable,dimension(:):: z1,z2 ,v1,v2,w1,w2 - real*8,allocatable,dimension(:,:,:):: f1,f2 - integer,allocatable,dimension(:) :: ks_k - real*8,allocatable,dimension(:,:):: Ak - integer,parameter:: Periodic=1,Non_Periodic=0 - print*, "Interpolation flow in Z- direction, opencfd.dat --> opencfd-new.dat" - print*, "please input nx,ny " - read(*,*) nx,ny - print*, "Please input nz1 (origent mesh), nz2 (new mesh)" - read(*,*) nz1, nz2 -! --------------------------------------------------------- - - allocate( z1(nz1),z2(nz2)) !Coordinates - allocate ( f1(nx,ny,nz1), f2(nx,ny,nz2) ) - allocate ( ks_k(nz2) ) - allocate (Ak(6,nz2),w1(nz1),w2(nz2)) -!------------------------------------------------------------ - - do k=1,nz1 - z1(k)=(k-1.d0)/nz1 - enddo - - do k=1,nz2 - z2(k)=(k-1.d0)/nz2 - enddo - -!-------------------------------------------------------- - - call get_ks_Ai(nz1,nz2,z1,z2,ks_k,Ak,Periodic,1.d0) ! 1.d0 Z-periodic length - - print*, ks_k - print* - print*, Ak - - - open(44,file="opencfd.dat",form="unformatted") - open(55,file="opencfd-new.dat",form="unformatted") - read(44) Istep,tt - print*, "Istep,tt=", Istep,tt - write(55) Istep,tt - - do m=1,5 - print*, "interpolation ... ",m - call read3d(44,f1,nx,ny,nz1) - -!---------------interpolation in z- direction - do j=1,ny - do i=1,nx - w1=f1(i,j,1:nz1) - call interpolation6(nz1,nz2,ks_k,Ak,w1,w2,Periodic) - f2(i,j,1:nz2)=w2 - enddo - enddo - -!------------------------------------------ - call write3d(55,f2,nx,ny,nz2) - enddo - close(55) - - -!------------test the flow ------------------------------------------- - i=nx/2 - open(44,file="flow2d-yz-1.dat") - write(44,*) "variables=x,y,T" - write(44,*) "zone i= ",ny , " j= ", nz1 - do k=1,nz1 - do j=1,ny - write(44,"(3f15.6)") (j-1.d0)/(ny-1.d0),z1(k),f1(i,j,k) - enddo - enddo - close(44) - open(44,file="flow2d-yz-2.dat") - write(44,*) "variables=x,y,T" - write(44,*) "zone i= ", ny, " j= ", nz2 - do k=1,nz2 - do j=1,ny - write(44,"(3f15.6)") (j-1.d0)/(ny-1.d0),z2(k),f2(i,j,k) - enddo - enddo - close(44) - -!-------------------------------------------------- - deallocate(f1,f2,z1,z2,Ak,ks_k) - end - - - - -!------------------------------------------------------- - subroutine get_ks_Ai(nx1,nx2,xx1,xx2,ks_i,Ai,IF_Periodic,Z_periodic) - implicit doubleprecision(a-h,o-z) - integer nx1,nx2,ks_i(nx2) - real*8 xx1(nx1),xx2(nx2),Ai(6,nx2) - do j=1,nx2 - - if(xx2(j) .lt. xx1(1) ) then - ks_i(j)=0 - goto 100 - endif - - do i=1,nx1-1 - if(xx2(j) .ge. xx1(i) .and. xx2(j) .lt. xx1(i+1)) then - ks_i(j)=i - goto 100 - endif - enddo - ks_i(j)=nx1 -100 continue - enddo - - Ai=0.d0 - - - do i=1,nx2 - ka=4-ks_i(i) - if(ka .lt. 1 .or. IF_Periodic .eq. 1) ka=1 - kb=nx1+3-ks_i(i) - if(kb .gt. 6 .or. IF_Periodic .eq. 1) kb=6 - - do k=ka,kb - Ai(k,i)=1.d0 - -! ik=MOD_N(ks_i(i)+k-3,nx1) - ik=ks_i(i)+k-3 - if(ik < 1) then - ik=ik+nx1 - xxa=xx1(ik)-Z_periodic - else if(ik > nx1) then - ik=ik-nx1 - xxa=xx1(ik)+Z_periodic - else - xxa=xx1(ik) - endif - - do km=ka,kb - ikm=ks_i(i)+km-3 -! ikm=MOD_N(ks_i(i)+km-3,nx1) - if(ikm > nx1) then - ikm=ikm-nx1 - xxb=xx1(ikm)+Z_periodic - else if( ikm < 1) then - ikm=ikm+nx1 - xxb=xx1(ikm)-Z_periodic - else - xxb=xx1(ikm) - endif - - if(km .ne. k) then -! Ai(k,i)=Ai(k,i)*(xx2(i)-xx1(ikm))/(xx1(ik)-xx1(ikm)) - Ai(k,i)=Ai(k,i)*(xx2(i)-xxb)/(xxa-xxb) - endif - enddo - enddo - - enddo - - - end - -!---------------------------------------- - - subroutine interpolation6(nx1,nx2,ks_i,Ai,ux1,ux2,IF_Periodic) - implicit doubleprecision(a-h,o-z) - integer nx1,nx2,ks_i(nx2) - real*8 Ai(6,nx2),ux1(nx1),ux2(nx2) - - do i=1,nx2 - - ka=4-ks_i(i) - if(ka .lt. 1 .or. IF_Periodic .eq. 1 ) ka=1 - kb=nx1+3-ks_i(i) - if(kb .gt. 6 .or. IF_Periodic .eq. 1) kb=6 - - ux2(i)=0.d0 - do k=ka,kb -! ik=ks_i(i)+k-3 - ik=MOD_N(ks_i(i)+k-3,nx1) - ux2(i)=ux2(i)+Ai(k,i)*ux1(ik) - enddo - - if(ks_i(i) .eq. 0 .and. IF_Periodic .eq. 0) ux2(i)=ux1(1) ! do not ext-interpolate - if(ks_i(i) .eq. nx1 .and. IF_Periodic .eq. 0) ux2(i)=ux1(nx1) - - enddo - end -!---------------------------------------------- - subroutine read3d(no,U,nx,ny,nz) - implicit doubleprecision (a-h,o-z) - real*8 U(nx,ny,nz) - do k=1,nz - read(no) U(:,:,k) - enddo - end -!---------------------------------------------- - subroutine write3d(no,U,nx,ny,nz) - implicit doubleprecision (a-h,o-z) - real*8 U(nx,ny,nz) - do k=1,nz - write(no) U(:,:,k) - enddo - end -!--------------------------------------- - function MOD_N(k,N) - integer k,N,MOD_N - MOD_N=k - if(k .lt. 1) MOD_N=k+N - if(K .gt. N) MOD_N=k-N - end - diff --git a/util/interpolation-inlet1d.f90 b/util/interpolation-inlet1d.f90 deleted file mode 100644 index 11e0e98..0000000 --- a/util/interpolation-inlet1d.f90 +++ /dev/null @@ -1,231 +0,0 @@ - implicit none - integer,parameter:: SPLINE_INIT=-1, SPLINE_NORMAL=1 - integer:: ny, ny1, j,tmp , Iflag - real*8,dimension(:),allocatable:: yy, d,u,v,T, yy1,d1,u1,v1,T1 - print*, "interpolate 1d profiles for inlet (flow1d-inlet.dat)......" - print*, "origin data : flow1d-inlet.dat.origin (y,d,u,v,T), new coordinate y1d.dat" - print*, "please input ny (orginate grid number), ny1 (new) " - read(*,*) ny, ny1 - allocate(yy(ny),d(ny),u(ny),v(ny),T(ny), yy1(ny1),d1(ny1),u1(ny1),v1(ny1),T1(ny1)) - - open(99,file="flow1d-inlet.dat.origin") - read(99,*) - do j=1, ny - read(99,*) yy(j), d(j), u(j), v(j), T(j) - enddo - close(99) - - open(100,file="y1d.dat") - do j=1,ny1 - read(100,*) tmp, yy1(j) - enddo - - print*, " input 1 for 6th Lagrange interpolation; 2 for 3rd Spline interpolation " - read(*,*) Iflag - if(Iflag .eq. 1) then - print*, "Interpolation (6th Lagrange) ..." - do j=1,ny1 - call inter1d_6th(yy1(j),d1(j),ny,yy,d) - call inter1d_6th(yy1(j),u1(j),ny,yy,u) - call inter1d_6th(yy1(j),v1(j),ny,yy,v) - call inter1d_6th(yy1(j),T1(j),ny,yy,T) - enddo - else - print*, "Interpolation (3rd Spline) ..." - !--------interpolation for d, u, v, T ------------- - call spline(ny,yy,d,0.d0,0.d0,SPLINE_INIT) - do j=1,ny1 - call spline(ny,yy,d,yy1(j),d1(j),SPLINE_NORMAL) - enddo - - call spline(ny,yy,u,0.d0,0.d0,SPLINE_INIT) - do j=1,ny1 - call spline(ny,yy,u,yy1(j),u1(j),SPLINE_NORMAL) - enddo - - call spline(ny,yy,v,0.d0,0.d0,SPLINE_INIT) - do j=1,ny1 - call spline(ny,yy,v,yy1(j),v1(j),SPLINE_NORMAL) - enddo - - call spline(ny,yy,T,0.d0,0.d0,SPLINE_INIT) - do j=1,ny1 - call spline(ny,yy,T,yy1(j),T1(j),SPLINE_NORMAL) - enddo - endif -!---------------------------------- - open(99,file="flow1d-inlet.dat") - write(99,*) "variables=y, d, u, v, T" - do j=1,ny1 - write(99,"(5F16.8)") yy1(j), d1(j), u1(j), v1(j), T1(j) - enddo - close(99) - - deallocate(yy,d,u,v,T, yy1,d1,u1,v1,T1) -end - -!------------------------------------------------------------------------ -! 6th order Langrage interpolation in one-dimension - subroutine inter1d_6th(x0, f0, nx, xx,ff) - implicit none - integer:: nx,k,k0,ik,ikm,km,ka,kb - real*8:: xx(nx),ff(nx), x0, f0, Ai(6) - if(x0<=xx(1)) then - f0=ff(1) - return - endif - - if(x0>=xx(nx)) then - f0=ff(nx) - return - endif - - k0=0 - do k=1,nx - if(x0 >= xx(k) .and. x0 < xx(k+1) ) then - k0=k - goto 100 - endif - enddo - 100 continue - - ka= max(4-k0,1) - kb= min(nx+3-k0,6) - f0=0.d0 - - do k=ka,kb - ik=k0+k-3 - Ai(k)=1.d0 - do km=ka,kb - ikm=k0+km-3 - if(km .ne. k) Ai(k)=Ai(k)*(x0-xx(ikm))/(xx(ik)-xx(ikm)) - enddo - f0=f0+Ai(k)*ff(ik) - enddo - end - - - -! Spline interpolation -! eg. -! step1: call spline (n, xx,yy, x0, y0, SPLINE_INIT) -! Step2: call spline (n, xx, yy, x0, y0, SPLINE_NORMAL) - - subroutine spline(n,xx,yy,x0,y0,Iflag) - implicit none - integer,parameter:: SPLINE_INIT=-1, SPLINE_NORMAL=1 - integer,parameter:: Nmax=1000000 - integer:: n,j,k, Iflag - integer,save:: Flag1=0 - real*8:: xx(n), yy(n), x0,y0,hj - real*8:: a(n),b(n),c(n),d(n),h(n) - real*8,save:: MM(Nmax) - if(Iflag == SPLINE_INIT) then - Flag1=1 - if(n > Nmax) then - print*, "Error !!! n> Nmax, please modify Nmax in subroutine spline() " - stop - endif - do j=2,n - h(j)=xx(j)-xx(j-1) - enddo - do j=2,n-1 - a(j)=h(j)/(h(j)+h(j+1)) - b(j)=2.d0 - c(j)=h(j+1)/(h(j)+h(j+1)) - d(j)=6.d0*((yy(j+1)-yy(j))/h(j+1)-(yy(j)-yy(j-1))/h(j))/(h(j)+h(j+1)) - enddo - a(1)=0.d0 ; b(1)=1.d0 ; c(1)= 0.d0 ; d(1)=0.d0 - a(n)=0.d0 ; b(n)=1.d0 ; c(n)=0.d0; d(n)=0.d0 - call LU3(n,a,b,c,d,MM) - - - else - if(Flag1 .ne. 1) then - print*, "Error ! Spline interpolation is not initialized !, please run spline(,,,,,-1) first" - stop - endif -! call find_k(n,xx,x0,k) - call find_k_dichotomy(n,xx,x0,k) - j=k+1 - hj=xx(j)-xx(j-1) - y0=(MM(j-1)*(xx(j)-x0)**3/6.d0+MM(j)*(x0-xx(j-1))**3/6.d0 & - +(yy(j-1)-MM(j-1)*hj*hj/6.d0)*(xx(j)-x0) + (yy(j)-MM(j)*hj*hj/6.d0)*(x0-xx(j-1)) ) /hj - - - endif - end - -!--------------搜索插值区间: 线性搜索法 --------------------------------- - subroutine find_k(n,xx,x0,k) - implicit none - integer:: n,k,j - real*8 :: xx(n), x0 - - if(x0 <= xx(2)) then - k=1 - else if(x0 >= xx(n-1)) then - k=n-1 - else - do j=2,n-2 - if( x0 >= xx(j) .and. x0<= xx(j+1)) then - k=j - goto 100 - endif - enddo -100 continue - endif - - end - -!------------------------- 搜索插值区间: 二分法 --------------------- -subroutine find_k_dichotomy(n,xx,x0,k) - implicit none - integer:: n,k,kb,ke,k0 - real*8 :: xx(n), x0 - - if(x0 <= xx(2)) then - k=1 - else if(x0 >= xx(n-1)) then - k=n-1 - else - kb=2 - ke=n-1 - do while( (ke-kb)>1) - k0=(kb+ke)/2 - if(x0 <= xx(k0)) then - ke=k0 - else - kb=k0 - endif - enddo - k=kb - - endif - - end - -! Chasing method (3-line LU ) for 3-line Eq - subroutine LU3(N,a,b,c,d,x) - implicit none - integer:: N,j - real*8,dimension(N):: a,b,c,d,x - real*8,dimension(N):: AA,BB - real*8:: tmp - - AA(1)=0.d0 - BB(1)=d(1) - x(N)=d(N) - x(1)=d(1) - do j=2,N - tmp=1.d0/(a(j)*AA(j-1)+b(j)) - AA(j)=-c(j)*tmp - BB(j)=(d(j)-a(j)*BB(j-1))*tmp - enddo - do j=N-1,2,-1 - x(j)=AA(j)*x(j+1)+BB(j) - enddo - end - - - diff --git a/util/postproc3d-1.0.f90 b/util/postproc3d-1.0.f90 deleted file mode 100644 index cc778e6..0000000 --- a/util/postproc3d-1.0.f90 +++ /dev/null @@ -1,179 +0,0 @@ -! OpenCFD Post-analysis code ----------------------------------------- -! Copyright by Li Xinliang, Email : lixl@imech.ac.cn -! LHD, Institute of Mechanics, CAS - implicit none - real*8,allocatable,dimension(:,:,:):: x,y,z,d,u,v,w,T - real*8:: Ma,gamma,Re,p00 , tt - integer:: nx,ny,nz,num , Istep - print*, "Post-processing code for OpenCFD2, output tecplot-type data" - print*, "Please input nx, ny, nz" - read(*,*) nx,ny,nz - print*, "Please input Ma" - read(*,*) Ma - - gamma=1.4d0 - p00=1.d0/(gamma*Ma*Ma) - - allocate(x(nx,ny,nz),y(nx,ny,nz),z(nx,ny,nz)) - allocate(d(nx,ny,nz),u(nx,ny,nz),v(nx,ny,nz), w(nx,ny,nz),T(nx,ny,nz)) - call read_mesh(nx,ny,nz,x,y,z) - - open(77,file="opencfd.dat",form="unformatted" ) - read(77) Istep,tt - call read3d(77,nx,ny,nz,d) - call read3d(77,nx,ny,nz,u) - call read3d(77,nx,ny,nz,v) - call read3d(77,nx,ny,nz,w) - call read3d(77,nx,ny,nz,T) - close(77) - num=1 - do while( num .ne. 0) - print*, "Plot 2D-plane: 0 quit, 1 i-section, 2 j-section, 3 k-section " - read(*,*) num - if(num .eq. 1) then - call write_i(nx,ny,nz,x,y,z,d,u,v,w,T,P00) - else if (num .eq. 2) then - call write_j(nx,ny,nz,x,y,z,d,u,v,w,T,P00) - else if (num .eq. 3) then - call write_k(nx,ny,nz,x,y,z,d,u,v,w,T,P00) - endif - enddo - deallocate(x,y,z,d,u,v,w,T) - end -!================================== - subroutine read3d(no,nx,ny,nz,u) - implicit none - integer:: no,nx,ny,nz,k - real*8:: u(nx,ny,nz) - print*, "read 3d data ..." - do k=1,nz - read (no) u(:,:,k) - enddo - end - -!======================================== - subroutine write_i(nx,ny,nz,x,y,z,d,u,v,w,T,P00) - implicit none - integer:: nx,ny,nz,i,j,k - real*8:: p00 - real*8,dimension(nx,ny,nz)::x,y,z,d,u,v,w,T - print*, 'please input i ...' - read(*,*) i - - open(44,file='flow2d_i.dat') - write(44,*) 'variables= x,y,z,d,u,v,w,p,T' - write(44,*) 'zone j=',ny, 'k=',nz - do k=1,nz - do j=1,ny - write(44,'(10f16.8)') x(i,j,k),y(i,j,k),z(i,j,k), & - d(i,j,k),u(i,j,k),v(i,j,k),w(i,j,k),p00*d(i,j,k)*T(i,j,k), & - T(i,j,k) - enddo - enddo - close(44) - end - -!c--------------------------------------------------- - subroutine write_j(nx,ny,nz,x,y,z,d,u,v,w,T,P00) - implicit none - integer:: nx,ny,nz,i,j,k - real*8:: p00 - real*8,dimension(nx,ny,nz)::x,y,z,d,u,v,w,T - print*, 'please input j ...' - read(*,*) j - - open(44,file='flow2d_j.dat') - write(44,*) 'variables= x,y,z,d,u,v,w,p,T' - write(44,*) 'zone i=',nx, 'k=',nz - do k=1,nz - do i=1,nx - write(44,'(10f16.8)') x(i,j,k),y(i,j,k),z(i,j,k), & - d(i,j,k),u(i,j,k),v(i,j,k),w(i,j,k),p00*d(i,j,k)*T(i,j,k), & - T(i,j,k) - enddo - enddo - close(44) - end -!c--------------------------------------------------- - subroutine write_k(nx,ny,nz,x,y,z,d,u,v,w,T,P00) - implicit none - integer:: nx,ny,nz,i,j,k - real*8:: p00 - real*8,dimension(nx,ny,nz)::x,y,z,d,u,v,w,T - print*, 'please input k ...' - read(*,*) k - - open(44,file='flow2d_k.dat') - write(44,*) 'variables= x,y,z,d,u,v,w,p,T' - write(44,*) 'zone i=',nx, 'j=',ny - do j=1,ny - do i=1,nx - write(44,'(10f16.8)') x(i,j,k),y(i,j,k),z(i,j,k), & - d(i,j,k),u(i,j,k),v(i,j,k),w(i,j,k),p00*d(i,j,k)*T(i,j,k), & - T(i,j,k) - enddo - enddo - close(44) - end - - -!-------------------------------------------- - subroutine read_mesh(nx,ny,nz,x,y,z) - implicit none - integer:: nx,ny,nz,mesh_type,i,j,k - integer,parameter:: GRID1D=10, GRID2D_PLANE=20, GRID2D_AXIAL_SYMM=21, GRID3D=30, GRID_AND_JACOBIAN3D=31 - real*8:: x(nx,ny,nz),y(nx,ny,nz),z(nx,ny,nz) - real*8,allocatable:: x1d(:),y1d(:),z1d(:),x2d(:,:),y2d(:,:) - allocate(x1d(nx),y1d(ny),z1d(nz),x2d(nx,ny),y2d(nx,ny)) - print*, "read mesh ......" - print*, "pleas input mesh_type, 10: 1D mesh; 20: 2D-plane mesh; 21: 2D-AxialSymmetry mesh; 30: 3D mesh" - read(*,*) mesh_type - - open(56,file='OCFD-grid.dat',form='unformatted') - if(mesh_type ==GRID1D) then - read(56) x1d - read(56) y1d - read(56) z1d - do k=1,nz - do j=1,ny - do i=1,nx - x(i,j,k)=x1d(i) - y(i,j,k)=y1d(j) - z(i,j,k)=z1d(k) - enddo - enddo - enddo - else if( mesh_type ==GRID2D_PLANE) then - read(56) x2d - read(56) y2d - read(56) z1d - do k=1,nz - do j=1,ny - do i=1,nx - x(i,j,k)=x2d(i,j) - y(i,j,k)=y2d(i,j) - z(i,j,k)=z1d(k) - enddo - enddo - enddo - else if( mesh_type ==GRID2D_AXIAL_SYMM) then - read(56) x2d - read(56) y2d - read(56) z1d - do k=1,nz - do j=1,ny - do i=1,nx - x(i,j,k)=x2d(i,j) - y(i,j,k)=y2d(i,j)*cos(z1d(k)) - z(i,j,k)=y2d(i,j)*sin(z1d(k)) - enddo - enddo - enddo - else - call read3d(56,nx,ny,nz,x) - call read3d(56,nx,ny,nz,y) - call read3d(56,nx,ny,nz,z) - endif - close(56) - deallocate(x1d,y1d,z1d,x2d,y2d) - end diff --git a/util/postproc3d-1.1.f90 b/util/postproc3d-1.1.f90 deleted file mode 100644 index 164df75..0000000 --- a/util/postproc3d-1.1.f90 +++ /dev/null @@ -1,214 +0,0 @@ -! OpenCFD Post-analysis code ----------------------------------------- -! Copyright by Li Xinliang, Email : lixl@imech.ac.cn -! LHD, Institute of Mechanics, CAS - implicit none - real*8,allocatable,dimension(:,:,:):: x,y,z,d,u,v,w,T - real*8:: Ma,gamma,Re,p00 , tt - integer:: nx,ny,nz,num , Istep - print*, "Post-processing code for OpenCFD2, output tecplot-type data" - print*, "Please input nx, ny, nz" - read(*,*) nx,ny,nz - print*, "Please input Ma" - read(*,*) Ma - - gamma=1.4d0 - p00=1.d0/(gamma*Ma*Ma) - - allocate(x(nx,ny,nz),y(nx,ny,nz),z(nx,ny,nz)) - allocate(d(nx,ny,nz),u(nx,ny,nz),v(nx,ny,nz), w(nx,ny,nz),T(nx,ny,nz)) - call read_mesh(nx,ny,nz,x,y,z) - - open(77,file="opencfd.dat",form="unformatted" ) - read(77) Istep,tt - print*, "Istep, tt=", Istep, tt - - call read3d(77,nx,ny,nz,d) - call read3d(77,nx,ny,nz,u) - call read3d(77,nx,ny,nz,v) - call read3d(77,nx,ny,nz,w) - call read3d(77,nx,ny,nz,T) - close(77) - num=1 - do while( num .ne. 0) - print*, "Plot 2D-plane/3D: 0 quit, 1 i-section, 2 j-section, 3 k-section , 4 3D " - read(*,*) num - if(num .eq. 1) then - call write_i(nx,ny,nz,x,y,z,d,u,v,w,T,P00) - else if (num .eq. 2) then - call write_j(nx,ny,nz,x,y,z,d,u,v,w,T,P00) - else if (num .eq. 3) then - call write_k(nx,ny,nz,x,y,z,d,u,v,w,T,P00) - else if (num .eq. 4) then - call write_3D(nx,ny,nz,x,y,z,d,u,v,w,T,P00) - endif - enddo - deallocate(x,y,z,d,u,v,w,T) - end -!================================== - subroutine read3d(no,nx,ny,nz,u) - implicit none - integer:: no,nx,ny,nz,k - real*8:: u(nx,ny,nz) - print*, "read 3d data ..." - do k=1,nz - read (no) u(:,:,k) - enddo - end - -!======================================== - subroutine write_i(nx,ny,nz,x,y,z,d,u,v,w,T,P00) - implicit none - integer:: nx,ny,nz,i,j,k - real*8:: p00 - real*8,dimension(nx,ny,nz)::x,y,z,d,u,v,w,T - print*, 'please input i ...' - read(*,*) i - - open(44,file='flow2d_i.dat') - write(44,*) 'variables= x,y,z,d,u,v,w,p,T' - write(44,*) 'zone j=',ny, 'k=',nz - do k=1,nz - do j=1,ny - write(44,'(10f16.8)') x(i,j,k),y(i,j,k),z(i,j,k), & - d(i,j,k),u(i,j,k),v(i,j,k),w(i,j,k),p00*d(i,j,k)*T(i,j,k), & - T(i,j,k) - enddo - enddo - close(44) - end - -!c--------------------------------------------------- - subroutine write_j(nx,ny,nz,x,y,z,d,u,v,w,T,P00) - implicit none - integer:: nx,ny,nz,i,j,k - real*8:: p00 - real*8,dimension(nx,ny,nz)::x,y,z,d,u,v,w,T - print*, 'please input j ...' - read(*,*) j - - open(44,file='flow2d_j.dat') - write(44,*) 'variables= x,y,z,d,u,v,w,p,T' - write(44,*) 'zone i=',nx, 'k=',nz - do k=1,nz - do i=1,nx - write(44,'(10f16.8)') x(i,j,k),y(i,j,k),z(i,j,k), & - d(i,j,k),u(i,j,k),v(i,j,k),w(i,j,k),p00*d(i,j,k)*T(i,j,k), & - T(i,j,k) - enddo - enddo - close(44) - end -!c--------------------------------------------------- - subroutine write_k(nx,ny,nz,x,y,z,d,u,v,w,T,P00) - implicit none - integer:: nx,ny,nz,i,j,k - real*8:: p00 - real*8,dimension(nx,ny,nz)::x,y,z,d,u,v,w,T - print*, 'please input k ...' - read(*,*) k - - open(44,file='flow2d_k.dat') - write(44,*) 'variables= x,y,z,d,u,v,w,p,T' - write(44,*) 'zone i=',nx, 'j=',ny - do j=1,ny - do i=1,nx - write(44,'(10f16.8)') x(i,j,k),y(i,j,k),z(i,j,k), & - d(i,j,k),u(i,j,k),v(i,j,k),w(i,j,k),p00*d(i,j,k)*T(i,j,k), & - T(i,j,k) - enddo - enddo - close(44) - end - - subroutine write_3D(nx,ny,nz,x,y,z,d,u,v,w,T,P00) - implicit none - integer:: ib, ie, jb,je,kb,ke, istep, jstep,kstep - integer:: nx,ny,nz,i,j,k,Iflag_Q - real*8:: p00 - real*8,dimension(nx,ny,nz)::x,y,z,d,u,v,w,T - real*8,allocatable,dimension(:,:,:):: Q - allocate(Q(nx,ny,nz)) - Q=0.d0 - print*, " Plot Q ? (1 Yes, 0 No) ?" - read(*,*) Iflag_Q - if(Iflag_Q .eq. 1) then - open(88,file="Q.dat",form="unformatted") - call read3d(88,nx,ny,nz,Q) - close(88) - endif - print*, "please input ib, ie, jb, je, kb, ke, istep, jstep, kstep" - read(*,*) ib, ie, jb, je, kb, ke, istep, jstep, kstep - open(44,file='flow3d.dat') - write(44,*) 'variables= x,y,z,d,u,v,w,p,T,Q' - write(44,*) 'zone i=', (ie-ib)/istep +1 , 'j=', (je-jb)/jstep +1, 'k=', (ke-kb)/kstep+1 - do k=kb,ke,kstep - do j=jb,je,jstep - do i=ib,ie,istep - write(44,'(11f16.8)') x(i,j,k),y(i,j,k),z(i,j,k), & - d(i,j,k),u(i,j,k),v(i,j,k),w(i,j,k),p00*d(i,j,k)*T(i,j,k), & - T(i,j,k),Q(i,j,k) - enddo - enddo - enddo - close(44) - end -!-------------------------------------------- - subroutine read_mesh(nx,ny,nz,x,y,z) - implicit none - integer:: nx,ny,nz,mesh_type,i,j,k - integer,parameter:: GRID1D=10, GRID2D_PLANE=20, GRID2D_AXIAL_SYMM=21, GRID3D=30, GRID_AND_JACOBIAN3D=31 - real*8:: x(nx,ny,nz),y(nx,ny,nz),z(nx,ny,nz) - real*8,allocatable:: x1d(:),y1d(:),z1d(:),x2d(:,:),y2d(:,:) - allocate(x1d(nx),y1d(ny),z1d(nz),x2d(nx,ny),y2d(nx,ny)) - print*, "read mesh ......" - print*, "pleas input mesh_type, 10: 1D mesh; 20: 2D-plane mesh; 21: 2D-AxialSymmetry mesh; 30: 3D mesh" - read(*,*) mesh_type - - open(56,file='OCFD-grid.dat',form='unformatted') - if(mesh_type ==GRID1D) then - read(56) x1d - read(56) y1d - read(56) z1d - do k=1,nz - do j=1,ny - do i=1,nx - x(i,j,k)=x1d(i) - y(i,j,k)=y1d(j) - z(i,j,k)=z1d(k) - enddo - enddo - enddo - else if( mesh_type ==GRID2D_PLANE) then - read(56) x2d - read(56) y2d - read(56) z1d - do k=1,nz - do j=1,ny - do i=1,nx - x(i,j,k)=x2d(i,j) - y(i,j,k)=y2d(i,j) - z(i,j,k)=z1d(k) - enddo - enddo - enddo - else if( mesh_type ==GRID2D_AXIAL_SYMM) then - read(56) x2d - read(56) y2d - read(56) z1d - do k=1,nz - do j=1,ny - do i=1,nx - x(i,j,k)=x2d(i,j) - y(i,j,k)=y2d(i,j)*cos(z1d(k)) - z(i,j,k)=y2d(i,j)*sin(z1d(k)) - enddo - enddo - enddo - else - call read3d(56,nx,ny,nz,x) - call read3d(56,nx,ny,nz,y) - call read3d(56,nx,ny,nz,z) - endif - close(56) - deallocate(x1d,y1d,z1d,x2d,y2d) - end diff --git a/util/transform-mesh.f90 b/util/transform-mesh.f90 deleted file mode 100644 index 6f777f2..0000000 --- a/util/transform-mesh.f90 +++ /dev/null @@ -1,102 +0,0 @@ -! Transform OCFD-Jacobian2d.dat to OCFD-grid.dat ------------------------------------- -! Copyright by Li Xinliang, Email : lixl@imech.ac.cn -! LHD, Institute of Mechanics, CAS - implicit none - real*8,allocatable:: x1(:),y1(:),z1(:),x2(:,:),y2(:,:) - real*8:: Lz - integer:: Iflag,nx,ny,nz,i,j,k - print*, "Transform OCFD2d-Jacobi.dat/ocfd-grid.dat to OCFD-grid.dat" - print*, " 1 transform 1d (ocfd-grid.dat), 2 transform 2d (OCFD2d-Jacobi.dat)" - read(*,*) Iflag - print*, "please input nx,ny,nz" - read(*,*) nx,ny,nz - print*, "please input Lz (length of spanwise domain)" - read(*,*) Lz - allocate(x1(nx),y1(ny),z1(nz),x2(nx,ny),y2(nx,ny)) - do k=1,nz - z1(k)=Lz*(k-1.d0)/nz - enddo - open(99,file="OCFD-grid.dat",form="unformatted") - if(Iflag .eq. 1) then - open(100,file="ocfd-grid.dat",form="unformatted") ! opencfd-ver 1.x data - read(100) x1 - read(100) y1 - close(100) - write(99) x1 - write(99) y1 - write(99) z1 - else if (Iflag .eq. 2) then - open(100,file="OCFD2d-Jacobi.dat",form="unformatted") - read(100) x2 - read(100) y2 - close(100) - write(99) x2 - write(99) y2 - write(99) z1 - endif - close(99) - deallocate(x1,y1,z1,x2,y2) - end - - - -!-------------------------------------------- - subroutine read_mesh(nx,ny,nz,x,y,z) - implicit none - integer:: nx,ny,nz,mesh_type,i,j,k - integer,parameter:: GRID1D=10, GRID2D_PLANE=20, GRID2D_AXIAL_SYMM=21, GRID3D=30, GRID_AND_JACOBIAN3D=31 - real*8:: x(nx,ny,nz),y(nx,ny,nz),z(nx,ny,nz) - real*8,allocatable:: x1d(:),y1d(:),z1d(:),x2d(:,:),y2d(:,:) - allocate(x1d(nx),y1d(ny),z1d(nz),x2d(nx,ny),y2d(nx,ny)) - print*, "read mesh ......" - print*, "pleas input mesh_type, 10: 1D mesh; 20: 2D-plane mesh; 21: 2D-AxialSymmetry mesh; 30: 3D mesh" - read(*,*) mesh_type - - open(56,file='OCFD-grid.dat',form='unformatted') - if(mesh_type ==GRID1D) then - read(56) x1d - read(56) y1d - read(56) z1d - do k=1,nz - do j=1,ny - do i=1,nx - x(i,j,k)=x1d(i) - y(i,j,k)=y1d(j) - z(i,j,k)=z1d(k) - enddo - enddo - enddo - else if( mesh_type ==GRID2D_PLANE) then - read(56) x2d - read(56) y2d - read(56) z1d - do k=1,nz - do j=1,ny - do i=1,nx - x(i,j,k)=x2d(i,j) - y(i,j,k)=y2d(i,j) - z(i,j,k)=z1d(k) - enddo - enddo - enddo - else if( mesh_type ==GRID2D_AXIAL_SYMM) then - read(56) x2d - read(56) y2d - read(56) z1d - do k=1,nz - do j=1,ny - do i=1,nx - x(i,j,k)=x2d(i,j) - y(i,j,k)=y2d(i,j)*cos(z1d(k)) - z(i,j,k)=y2d(i,j)*sin(z1d(k)) - enddo - enddo - enddo - else - call read3d(56,nx,ny,nz,x) - call read3d(56,nx,ny,nz,y) - call read3d(56,nx,ny,nz,z) - endif - close(56) - deallocate(x1d,y1d,z1d,x2d,y2d) - end