Re: again, "minor" trouble in detect.F90 & Re: [FLASH-BUGS] "minor" glitch in flatten.F90 (part 2)

From: Markus Gross (m.s.gross@hw.ac.uk)
Date: Wed Jul 23 2003 - 02:41:09 CDT

  • Next message: Tomasz Plewa: "Re: again, "minor" trouble in detect.F90 & Re: [FLASH-BUGS] "minor" glitch in flatten.F90 (part 2)"

    Hi,

    On Tuesday 22 July 2003 19:30, you wrote:

    > I agree with your other. At the same time, I would also suggest to be
    > extra careful when we arrive to the point where numerics becomes a
    > dominant factor in our problem - perhaps we reached a limit when the
    > algorithm itself becomes sensitive to small perturbations. Trying to
    > fix it is one thing, and great if possible (like in some of the cases
    > you mentioned), but it seems to me there exists a limit to that
    > approach as well.

    Yes, my case may be a bit special, it only really occurs at the beginning,
    were I have a point discontinuity in the center of the domain and this may
    somewhat "break" the algorithm. With a point it is of cousre important to
    detect it propperly, wheras with a front the is a broader range.
    Unfortunately I cannot just refine more in order to spread this point out a
    bit, since refining just leads to this situation occuring earlier in time.
    Once it is spread out by time evolution it is not as severe anymore, but of
    course if you "ruin" your data in the first sweep you may end up with some
    interesting "instabilities" but the whole thing is a bit questionable. I
    rather add a small pertubation myself once I know that everything works okay
    ;-)

    If you want to have a look, here comes some data (please do not hesitate to
    write if you need more data, since of course I am interested in your findings
    as well).

    It is a 3D problem with nxb=nyb=nzb=8, nguard = 4
    basically there are two blocks, symmetry in the y-axis.
    2 fluids

    In my original setup these two blocks are located on cpu 2 and the blocks in
    question are block_no 27 and 42.

    In order to make sure that I had identical data on both blocks I did a run
    where I copied the data according to:

    !
    !
    !debug
    CALL MPI_COMM_RANK(MPI_COMM_WORLD,my_pe,ierr)
    if(global_count.eq.16.and.my_pe.eq.2)THEN
    unk(:,:,:,:,27)=unk(:,:,16:1:-1,:,42)
    unk(ively,:,:,:,27)=-unk(ively,:,:,:,27)
    END IF
    !debug
    !
    !

    I then wrote the data into four files, one for each block and two different
    precisions as follows:

      if(block_no.eq.27) THEN
         open (96,file='27.dat.hp')
         write (96,fmt='(16D40.30)') unk(:,:,:,:,block_no)
         close(96)
         open (96,file='27.dat')
         write (96,fmt='(16D22.14)') unk(:,:,:,:,block_no)
      END IF

    These files can the be read in for testruns.

    reading in the D22.14 files gives the expected result with symmetry along y,
    the D40.30 don't

    My investigations were made with flash 2.1, dont know if 2.3 gives different
    results.

    The blocks in question are at refinement level 3

    Have a look at the pressures at k=12, in particular: unk(ipres,5,4:13,12,:)

    It should be straight forward to setup a init block which reads in the data
    for the two blocks and then perform one step.

    here is the beginning of flash.log:

     FLASH log file: 07-22-2003 17:36.42 Run number: 1
     ============================================================================
     Number of processors: 10
     Build stamp: Fri Jan 31 18:42:30 2003
                      Linux lasersim 2.4.4-4GB i686
     Version: FLASH 2.1.20020605
     Build directory: /work/markus/scratch/markus/FLASH2.1/object
     Setup syntax: ./setup.py nozzle -3d -maxblocks=40 -auto
     ============================================================================
     Comment: FLASH 2.1 run
     ============================================================================
     Runtime parameters: read from file "flash.par"
     
     dtmin = 1.0000000000000E-10
     small = 1.0000000000000E-30
     tmax = 4.0000000000000E-04
     zfinal = -2.0000000000000E+00
     tinitial = 0.0000000000000E+00
     dtmax = 1.0000000000000E+05
     smalle = 1.0000000000000E-10
     dtini = 1.0000000000000E-10
     smallx = 1.0000000000000E-10
     zinitial = -1.0000000000000E+00
     smallt = 1.0000000000000E-10
     smallu = 1.0000000000000E-30
     smlrho = 1.0000000000000E-10
     smallp = 1.0000000000000E-10
     temp_factor = 1.0000000000000E-01
     tstep_change_factor = 2.0000000000000E+00
     wall_clock_time_limi = 6.0480000000000E+05
     eint_switch = 1.0000000000000E-04
     cfl = 4.0000000000000E-01
     rieman_tol = 1.0000000000000E-05
     vgrid = 0.0000000000000E+00
     cvisc = 1.0000000000000E-01
     epsiln = 3.3000000000000E-01
     omg2 = 1.0000000000000E+01
     omg1 = 7.5000000000000E-01
     trstrt = 1.0000000000000E-08
     tplot = 1.0000000000000E+00
     wall_clock_checkpoin = 4.3200000000000E+04
     ymin = -1.2000000000000E-01
     xmin = -1.2000000000000E-01
     xmax = 1.2000000000000E-01
     zmin = -1.6000000000000E-01
     ymax = 1.2000000000000E-01
     zmax = 8.0000000000000E-02
     refine_filter = 5.0000000000000E-02
     refine_cutoff = 8.0000000000000E-01
     derefine_cutoff = 2.0000000000000E-01
     nend = 100000000
     ichem = 0
     ishkbn = 0
     itemp_limit = 0
     irenorm = 0
     nriem = 20
     igodu = 0
     iplm = 0
     rolling_checkpoint = 10000
     cpnumber = 0
     wr_integrals_freq = 1
     memory_stat_freq = 100000
     ptnumber = 0
     nrstrt = 10000
     igeomz = 0
     igeomx = 0
     igeomy = 0
     nblockz = 3
     nblocky = 3
     nblockx = 3
     zlboundary = 0
     xrboundary = 0
     yrboundary = 0
     zrboundary = 0
     xlboundary = 0
     ylboundary = 0
     lrefine_min = 1
     lrefine_max = 3
     nrefs = 1
     log_file = "flash.log"
     run_comment = "FLASH 2.1 run"
     run_number = "1"
     plot_var_5 = "velz"
     plot_var_7 = "ga"
     basenm = "gas_pre_"
     plot_var_8 = "va"
     plot_var_6 = "temp"
     plot_var_4 = "vely"
     plot_var_3 = "velx"
     plot_var_2 = "dens"
     plot_var_1 = "pres"
     refine_var_3 = "none"
     refine_var_2 = "dens"
     refine_var_1 = "pres"
     xr_boundary_type = "outflow"
     refine_var_4 = "none"
     yr_boundary_type = "outflow"
     bc_velocity_type = "outflow"
     xl_boundary_type = "outflow"
     zr_boundary_type = "user"
     yl_boundary_type = "outflow"
     zl_boundary_type = "outflow"
     shock_burning = T
     conserved_var = F
     restart = F
     print_tstep_loc = F
     oldvisc = F
     leveque = F
     ppm_modifystates = F
     corners = F
     msgbuffer = F
     
     ============================================================================
     
     Known units of measurement:
     [...]
     ============================================================================
     
     Multifluid database contents:
     
     Full name Abbrev A Z N E Eb gamma EOS?
     ----------------------------------------------------------------------------
     fluid1 f1 27.00 0.00 0.00 0.00 0.00 1.67 1.00
     fluid2 f2 47.87 0.00 0.00 0.00 0.00 1.67 1.00
     ----------------------------------------------------------------------------
     
     ============================================================================
     init_block:

    Markus.

    _______________________________________________________________

    Markus Gross AMIMechE BEng (Hons.) Mechanical Engineering

    Heriot Watt University Edinburgh
    School of Engineering and Physical Sciences
    James Nasmyth Building
    Edinburgh
    EH14 4AS
    UK

    Member of IMechE, SPIE, CSME and VDI
    _______________________________________________________________

    further contact:

    Phone : +44 (0) 131 451 4737

    UNiX talk: talk markus@lasersim.mce.hw.ac.uk

    _______________________________________________________________

    "Plans are a place to begin," Grove said. "They rarely deliver
    you to where you expect. Make your plans knowing you are going
    to throw them away."

    _______________________________________________________________





    This archive was generated by hypermail 2b30 : Wed Jul 23 2003 - 02:41:23 CDT