[FLASH-BUGS] 3 flash2.1 bugs
Erik-Jan Rijkhorst
rijkhorst at strw.leidenuniv.nl
Fri Feb 28 09:04:16 CST 2003
Dear Flash developers,
I found 3 bugs in Flash2.1 which I've listed below.
Some info on the system I'm using:
(http://www.sara.nl/userinfo/teras/description/index.html)
Machine: SGI Origin 3800
Compiler: MIPSpro Fortran 90 compiler
Operating system: IRIX64 p1 6.5 04101930 IP35
---------------------
Hard coded value in source/mesh/amr/paramesh2.0/ref_marking.F90:
...
! compute the error
num = 0.
denom = 0.
do kk = 1, ndim2
num = num + delu2(kk)**2
denom = denom + (delu3(kk) + &
& (epsil*delu4(kk)+1.e-20))**2
end do
...
When using very low densities (of the order of 1e-26) the code won't
refine. I solved this by putting my own version of ref_marking.F90 in the
setups/problem directory and replaced the value of 1.e-20 by 1.e-200. It
would be nice to change this to a parameter in a future Flash release?
---------------------
Multiplication by cf_area is done twice at step 7b in
source/hydro/explicit/delta_form/kurganov/hydro_3d.F90
(you'll only notice this when running 3D simulations...)
...
!!!!!!!!! Step 7b: Apply geometry factors.
!!!!!!!!! Update deltaU.
do j=1,ny
do i=1,nx
cf_area = ( ( xr(i)-xl(i) ) ) &
* ( ( yr(j)-yl(j) ) )
flux_block(:,i,j,:) = flux_block(:,i,j,:)* cf_area
do k=1,nz
c_volume_i = 1.0/( cf_area*( zr(k) - zl(k) ) )
flux_block(:,i,j,k) = flux_block(:,i,j,k)* cf_area
du_local(:,i,j,k) = du_local(:,i,j,k ) - &
c_volume_i*( flux_block(:,i,j,k ) &
- flux_block(:,i,j,k-1) )
enddo
enddo
enddo
...
I think this should be
...
!!!!!!!!! Step 7b: Apply geometry factors.
!!!!!!!!! Update deltaU.
do j=1,ny
do i=1,nx
cf_area = ( ( xr(i)-xl(i) ) ) &
* ( ( yr(j)-yl(j) ) )
flux_block(:,i,j,:) = flux_block(:,i,j,:)* cf_area
do k=1,nz
c_volume_i = 1.0/( cf_area*( zr(k) - zl(k) ) )
du_local(:,i,j,k) = du_local(:,i,j,k ) - &
c_volume_i*( flux_block(:,i,j,k ) &
- flux_block(:,i,j,k-1) )
enddo
enddo
enddo
...
---------------------
Wrong index in source/formulation/state_form/du_update_zface.F90:
I used this formulation to implement an approximate Rieman solver that we
have here at Leiden.
I copied source/hydro/explicit/delta_form/kurganov to my own
source/hydro/explicit/delta_form/roe directory (see previous bug).
Note: you won't notice this bug until you start running 3D sims...
...
do 200 j=1,ny
! Transpose ys into eos1d format.
do n=1,ns
ys_line(:,n) = ys(n,:,j)
enddo
call eos1d(2, 1, nx, &
rho(:,k), &
t(:,k), &
p(:,k), &
eint(:,k), &
gamma_c(:,k), &
ys_line(:,: ), &
nx,ns )
200 continue
...
I changed this to:
...
do 200 j=1,ny
! Transpose ys into eos1d format.
do n=1,ns
ys_line(:,n) = ys(n,:,j)
enddo
call eos1d(2, 1, nx, &
rho(:,j), &
t(:,j), &
p(:,j), &
eint(:,j), &
gamma_c(:,j), &
ys_line(:,: ), &
nx,ns )
200 continue
...
---------------------
cheers,
Erik-Jan Rijkhorst
More information about the flash-bugs
mailing list