qinit.f.html | |
Source file: qinit.f | |
Directory: /Users/rjl/git/clawpack/amrclaw/examples/euler_2d_quadrants | |
Converted: Wed Dec 28 2016 at 22:43:06 using clawcode2html | |
This documentation file will not reflect any later changes in the source file. |
c c c c ===================================================== subroutine qinit(meqn,mbc,mx,my,xlower,ylower, & dx,dy,q,maux,aux) c ===================================================== c c # Set initial conditions for q. c c # Data is piecewise constant with 4 values in 4 quadrants c # 2D Riemann problem from Figure 4 of c @article{csr-col-glaz, c author="C. W. Schulz-Rinne and J. P. Collins and H. M. Glaz", c title="Numerical Solution of the {R}iemann Problem for c Two-Dimensional Gas Dynamics", c journal="SIAM J. Sci. Comput.", c volume="14", c year="1993", c pages="1394-1414" } c implicit double precision (a-h,o-z) dimension q(meqn, 1-mbc:mx+mbc, 1-mbc:my+mbc) dimension aux(maux, 1-mbc:mx+mbc, 1-mbc:my+mbc) dimension rpp(4),rpr(4),rpu(4),rpv(4) common /cparam/ gamma c gamma1 = gamma - 1.d0 c c # First quadrant: rpp(1) = 1.5d0 rpr(1) = 1.5d0 rpu(1) = 0.d0 rpv(1) = 0.d0 c c # Second quadrant: rpp(2) = 0.3d0 rpr(2) = 0.532258064516129d0 rpu(2) = 1.206045378311055d0 rpv(2) = 0.0d0 c c # Third quadrant: rpp(3) = 0.029032258064516d0 rpr(3) = 0.137992831541219d0 rpu(3) = 1.206045378311055d0 rpv(3) = 1.206045378311055d0 c c # Fourth quadrant: rpp(4) = 0.3d0 rpr(4) = 0.532258064516129d0 rpu(4) = 0.0d0 rpv(4) = 1.206045378311055d0 c c # location of four corners: xs = .8d0 ys = .8d0 c do 15 i=1,mx xcell = xlower + (i-0.5d0)*dx do 15 j=1,my ycell = ylower + (j-0.5d0)*dy if (xcell.ge.xs .and. ycell.ge.ys) iq = 1 if (xcell.lt.xs .and. ycell.ge.ys) iq = 2 if (xcell.lt.xs .and. ycell.lt.ys) iq = 3 if (xcell.ge.xs .and. ycell.lt.ys) iq = 4 q(1,i,j) = rpr(iq) q(2,i,j) = rpr(iq)*rpu(iq) q(3,i,j) = rpr(iq)*rpv(iq) q(4,i,j) = rpp(iq)/gamma1 + 0.5d0*rpr(iq)*(rpu(iq)**2 + & rpv(iq)**2) 15 continue return end