mapc2p.py.html clawcode2html   
 Source file:   mapc2p.py
 Directory:   /home/rjl/www/pubs/cise08/cise08levequeV2
 Converted:   Wed Jul 2 2008 at 13:40:45
 This documentation file will not reflect any later changes in the source file.



def mapc2p(xc,yc):
#
# specifies the mapping to curvilinear coordinates -- should be consistent
# with mapc2p.f
#
#
    import sys
    from clawtools import ClawData

    data = ClawData('setprob.data')
    igrid = data.igrid  # indicates which grid mapping to use

    if igrid==1:
        # Cartesian (no mapping)
	xp = xc
	yp = yc
    elif igrid==2:
        # Polar coordinates (xc = r,  yc = theta)
        xp = xc * cos(yc)
        yp = xc * sin(yc)
    elif igrid==3:
        # New mapping
	r1 = 1
	absxc = abs(xc)
	absyc = abs(yc)
	d = where(absxc>absyc, absxc, absyc)
	r = sqrt(xc**2 + yc**2)
	r = where(r<1e-10, 1e-10, r)  # to avoid divide by zero
	xp = r1 * d * xc/r
	yp = r1 * d * yc/r

        # interpolate
	w = d
	xp = w*xp + (1-w)*xc
	yp = w*yp + (1-w)*yc
    else:
        print 'Error - Mapping not defined for igrid = ',igrid
	sys.exit(1)

    return (xp,yp)