Esempio n. 1
0
    bndv = LocalVandermondes(mesh, [[data]] * mesh.nelements, mqs)        
    bndvs.append(bndv)


S, f = assemble(mesh, k, lv, bndvs, mqs, elttobasis, bnddata, params)


print "Solving system"


from pymklpardiso.linsolve import solve

S=S.tocsr()
f=numpy.array(f.todense())
f=f.squeeze()
(X,error)=solve(S,f)


#X = print_timing(spsolve)(S.tocsr(), f.tocsr())

#print X


print "Residual: %e: " % numpy.linalg.norm(S*X-f) 



EvalError=EvalElementError(mesh,elttobasis,quad, bnddata, lv, bndvs)
(ed,en,eb)=EvalError.evaluate(X)
print numpy.linalg.norm(ed),numpy.linalg.norm(en),numpy.linalg.norm(eb)
Esempio n. 2
0
 def pardisoSolve(self, M, b):
     from pymklpardiso.linsolve import solve
     print "pardisosolve"
     (x, error) = solve(M,b.squeeze(),msglvl=0)
     if not error == 0: raise Exception("Pardiso Error")
     return x
Esempio n. 3
0
 def umfpackSolve(self, M, b):
     from scipy.sparse.linalg.dsolve.linsolve import spsolve as solve
     print "umfpacksolve"
     return solve(M,b)
Esempio n. 4
0
 def solve(A,b):
     return pl.solve(A.tocsr().sorted_indices(),np.array(b))[0]