Exemple #1
0
	iv = 0
	for jy in range(my):
		igy = jigy[jy]
		for jx in range(mx):
			igx = jigx[jx]
			ig = igx + igy*ngx
			cvode.denGETRS(P[ig], mp, pivot[ig], z.ptrto(iv))
			iv += mp
	
	return 0

c = cvode.NVector([0]*NEQ)
rewt = cvode.NVector([0]*NEQ)
wdata = WebData()
for i in range(NGRP):
	wdata.P[i] = cvode.denalloc(NS,NS)
	wdata.pivot[i] = cvode.denallocpiv(NS)
wdata.rewt = rewt.data
InitUserData(wdata)
ns = wdata.ns
mxns = wdata.mxns

PrintIntro()

for jpre in range(cvode.PREC_LEFT, cvode.PREC_RIGHT+1):
	for gstype in range(cvode.MODIFIED_GS,cvode.CLASSICAL_GS+1):
		t = cvode.realtype(T0)
		CInit(c, wdata)
		PrintHeader(jpre, gstype)
		
		firstrun = (jpre == cvode.PREC_LEFT and gstype == cvode.MODIFIED_GS)
Exemple #2
0
	z[:] = r

	for jx in range(MX):
		for jy in range(MY):
			cvode.denGETRS(data.P[jx][jy], NUM_SPECIES, data.pivot[jx][jy], z.ptrto(jx*NUM_SPECIES + jy*NSMX))

	return 0

u = cvode.NVector([0.0]*(NEQ))

#Allocate and initialise user data
t = cvode.realtype(0)
data = UserData()
for jx in range(MX):
	for jy in range(MY):
		data.P[jx][jy] = cvode.denalloc(NUM_SPECIES, NUM_SPECIES)
		data.Jbd[jx][jy] = cvode.denalloc(NUM_SPECIES, NUM_SPECIES)
		data.pivot[jx][jy] = cvode.denallocpiv(NUM_SPECIES)

data.om = PI/HALFDAY
data.dx = (XMAX-XMIN)/(MX-1)
data.dy = (YMAX-YMIN)/(MY-1)
data.hdco = KH/(data.dx**2)
data.haco = VEL/(2.0*data.dx)
data.vdco = (1.0/(data.dy**2))*KV0
pdata = ctypes.pointer(data)

SetInitialProfiles(u, data.dx, data.dy)
abstol= cvode.realtype(1.0e-5*100)
reltol= cvode.realtype(1.0e-5)