[FLASH-BUGS] 3 flash2.1 bugs

Greg Weirs weirs at flash.uchicago.edu
Fri Feb 28 15:15:52 CST 2003


Dear Erik-Jan,

Thank you for your report.

The second and third bugs you list are indeed errors, which I am looking
into now. I haven't completely verified them yet but your modifications
seem to be correct.

Greg

__________________

Greg Weirs
weirs at flash.uchicago.edu
773 834 3228
__________________

On Fri, 28 Feb 2003, Erik-Jan Rijkhorst wrote:

> 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