Changes between Version 7 and Version 8 of u/bliu/pnMapping


Ignore:
Timestamp:
11/19/21 13:42:05 (3 years ago)
Author:
Baowei Liu
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • u/bliu/pnMapping

    v7 v8  
    173173
    174174{{{
     175SUBROUTINE ProblemModuleInit()
     176    INTEGER :: n,i,j,k,edge
     177    real(KIND=qPREC) :: rhoambient,pambient,mass,xloc(3),vel(3),alpha,radiusw
     178    integer :: grav_soft_rad
     179    TYPE(ProjectionDef), POINTER :: Projection
     180    NAMELIST/AmbientData/ rhoambient,pambient
     181    NAMELIST /ParticleData/ mass,xloc,vel,alpha,radiusw,grav_soft_rad
     182    NAMELIST/ProblemData/ outflowstarttime, outflowendtime, outflowdensity, mintracer
     183    open(unit=problem_data_handle,file='problem.data',status='old')
     184    read(problem_data_handle,nml=ProblemData)
     185
     186    ! Make sure interpopts starts at zero for initial grid setup
     187    if (.not. lRestart) then
     188        InterpOpts=0
     189        MinDensity=4d-6  ! << set mindensity higher to overwrite the odd spherical region, change to 1d-10 later in ProblemBeforeGlobalStep
     190        MinTemp=20       ! << set mintemp higher for frame 0, change to 10 later in ProblemBeforeGlobalStep
     191    end if
     192
     193    if (lRestart) then
     194        particle=>SinkParticles%self                ! handle to the particle
     195        Call addtracer(particle%outflowobj%iTracer,'Outflow_Tracer')  ! <<< tracers need to be added in the same order when the code is restarted, but don't re-creat the particle - or the outflow object   
     196    end if
     197
     198    ! Physical bounds of boxes
     199    box_0=64000*reshape((/-1,-1,-1,1,1,1/),(/3,2/))
     200    box_4=4000*reshape((/-1,-1,-1,1,1,1/),(/3,2/))
     201    box_7=750*reshape((/-1,-1,-1,1,1,1/),(/3,2/))
     202
     203    ! index of boxes in each level's index space
     204    ibox_0=nint(box_0-spread(GxBounds(:,1),2,2))/levels(0)%dx + spread((/1,0/),1,3)
     205    if (maxlevel >= 4) then
     206       ibox_4=nint(box_4-spread(GxBounds(:,1),2,2))/levels(4)%dx + spread((/1,0/),1,3)
     207       if (maxlevel >= 7) then
     208          ibox_7=nint(box_7-spread(GxBounds(:,1),2,2))/levels(7)%dx + spread((/1,0/),1,3)
     209       end if
     210    end if
     211
     212    CALL CreateRefinement(RefineJet)
     213    CALL CreateShape(RefineJet%shape, RECTANGULAR_PRISM, (/750d0,750d0,0d0/)) !position defaults to 0,0,0
     214    RefineJet%type=REFINE_INSIDE
     215
    175216    nx=Info%mx(1)
    176217    ny=Info%mx(2)