run Subroutine

public subroutine run()

sph求解器

Arguments

None

Contents

Source Code

run

Source Code

    subroutine run()
        integer :: i

        ! 读取配置文件
        call spc_obj%read()
        call tic_obj%read()
        call ioc_obj%read()

        ! 读取粒子属性
        call pnl_obj%read()
        call pif_obj%read(rgn_obj)
        allocate (float_obj(pif_obj%numbers(5)))  ! 初始化浮动粒子对象
        do i = 1, pif_obj%numbers(5)
            call float_obj(i)%init(pif_obj%ptc, istart=pif_obj%float_objects(1, i), &
                                   iend=pif_obj%float_objects(2, i))
        end do

        ! 储存固定粒子属性
        call rgn_obj%create_backup(backup, istart=pif_obj%nreal + 1, iend=pif_obj%numbers(4))

        ! 初始化输出文件
        call pif_obj%open()
        call pif_obj%write(0.0_rk)
        call skf_obj%init()
        call exf_obj%init()
        call eow_obj%init()
        call dsm_obj%init()
        call nnps_grid%init(rgn_obj%loc, pif_obj%numbers(4))
        call pairs%init(pif_obj%numbers(4)) ! 4096 是初始化的预估粒子对数

        ! ! 力学时间积分求解并输出结果
        call tig_obj%init()
        call tig_obj%run()

        ! 析构
        call pif_obj%close()
        call mem_obj%init()
        call mem_obj%report()

    end subroutine run