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