def RemoveZeros(A,name ): from PyTrilinos import EpetraExt from numpy import array,loadtxt import scipy.sparse as sps import scipy.io test ="".join([name,".txt"]) EpetraExt.RowMatrixToMatlabFile(test,A) data = loadtxt(test) col,row,values = data[:,0]-1,data[:,1]-1,data[:,2] Asparse = sps.csr_matrix((values, (row, col))) Asparse.eliminate_zeros() comm = Epetra.PyComm() Ap = scipy_csr_matrix2CrsMatrix(Asparse, comm) return Ap
def SaveEpertaMatrix(A, name, xdim, ydim): from PyTrilinos import EpetraExt from numpy import array, loadtxt import scipy.sparse as sps import scipy.io test = "".join([name, ".txt"]) EpetraExt.RowMatrixToMatlabFile(test, A) data = loadtxt(test) col, row, values = data[:, 0] - 1, data[:, 1] - 1, data[:, 2] Asparse = sps.csr_matrix((values, (row, col))) As = Asparse[0:xdim, 0:ydim] comm = Epetra.PyComm() Ap = scipy_csr_matrix2CrsMatrix(Aublas1, comm) return Ap
def SaveEpertaMatrix(A,name,xdim,ydim): from PyTrilinos import EpetraExt from numpy import array,loadtxt import scipy.sparse as sps import scipy.io test ="".join([name,".txt"]) EpetraExt.RowMatrixToMatlabFile(test,A) data = loadtxt(test) col,row,values = data[:,0]-1,data[:,1]-1,data[:,2] Asparse = sps.csr_matrix((values, (row, col))) As = Asparse[0:xdim,0:ydim] comm = Epetra.PyComm() Ap = scipy_csr_matrix2CrsMatrix(Aublas1, comm) return Ap
def NullSpace(A,name): from PyTrilinos import EpetraExt, Epetra from numpy import array,loadtxt import scipy.sparse as sps import scipy.io import matplotlib.pylab as plt test ="".join([name,".txt"]) EpetraExt.RowMatrixToMatlabFile(test,A) data = loadtxt(test) col,row,values = data[:,0]-1,data[:,1]-1,data[:,2] Asparse = sps.csr_matrix((values, (row, col))) (Nb,Mb) = Asparse.shape Aublas1 = Asparse[0:Nb-1,0:Mb-1] comm = Epetra.PyComm() Ap = scipy_csr_matrix2CrsMatrix(Aublas1, comm) return Ap
def NullSpace(A, name): from PyTrilinos import EpetraExt, Epetra from numpy import array, loadtxt import scipy.sparse as sps import scipy.io import matplotlib.pylab as plt test = "".join([name, ".txt"]) EpetraExt.RowMatrixToMatlabFile(test, A) data = loadtxt(test) col, row, values = data[:, 0] - 1, data[:, 1] - 1, data[:, 2] Asparse = sps.csr_matrix((values, (row, col))) (Nb, Mb) = Asparse.shape Aublas1 = Asparse[0:Nb - 1, 0:Mb - 1] comm = Epetra.PyComm() Ap = scipy_csr_matrix2CrsMatrix(Aublas1, comm) return Ap
def NullSpace(Arank): from PyTrilinos import Epetra, EpetraExt from scipy2Trilinos import scipy_csr_matrix2CrsMatrix from scipy.sparse import csr_matrix Aublas = Arank.sparray() # Aublas = sps.csr_matrix((values, (row, col))) scipy.io.savemat("before.mat", {"Aublas": Aublas}, oned_as='row') (Nb, Mb) = Aublas.shape Aublas1 = Aublas[0:Nb - 1, 0:Mb - 1] scipy.io.savemat("after.mat", {"Aublas1": Aublas1}, oned_as='row') comm = Epetra.PyComm() tic() Ap = scipy_csr_matrix2CrsMatrix(Aublas1, comm) print toc() return Ap
def NullSpace(Arank): from PyTrilinos import Epetra, EpetraExt from scipy2Trilinos import scipy_csr_matrix2CrsMatrix from scipy.sparse import csr_matrix Aublas = Arank.sparray() # Aublas = sps.csr_matrix((values, (row, col))) scipy.io.savemat( "before.mat", {"Aublas": Aublas},oned_as='row') (Nb,Mb) = Aublas.shape Aublas1 = Aublas[0:Nb-1,0:Mb-1] scipy.io.savemat( "after.mat", {"Aublas1": Aublas1},oned_as='row') comm = Epetra.PyComm() tic() Ap = scipy_csr_matrix2CrsMatrix(Aublas1, comm) print toc() return Ap
def GradientCorrectSize(A,name,xdim,ydim): from PyTrilinos import EpetraExt from numpy import array,loadtxt import scipy.sparse as sps import scipy.io test ="".join([name,".txt"]) EpetraExt.RowMatrixToMatlabFile(test,A) data = loadtxt(test) col,row,values = data[:,0]-1,data[:,1]-1,data[:,2] Asparse = sps.csr_matrix((values, (row, col))) print xdim,ydim As = Asparse[xdim:,0:xdim] As.eliminate_zeros() As = As.T comm = Epetra.PyComm() Ap = scipy_csr_matrix2CrsMatrix(As, comm) return Ap
"smoother: type (level 4)": "Hiptmair", "smoother: type (level 5)": "Hiptmair", "smoother: type (level 6)": "Hiptmair", "smoother: Hiptmair efficient symmetric": True, "subsmoother: type": "Chebyshev", "subsmoother: Chebyshev alpha": 27.0, "subsmoother: node sweeps": 4, "subsmoother: edge sweeps": 4, "coarse: type": "Amesos-KLU", "coarse: max size": 128, "coarse: pre or post": "post", "coarse: sweeps": 1 } comm = Epetra.PyComm() C = scipy_csr_matrix2CrsMatrix(System["C"].tocsr(), comm) CurlCurl = scipy_csr_matrix2CrsMatrix(System["CurlCurl"].tocsr(), comm) node = scipy_csr_matrix2CrsMatrix(System["node"].tocsr(), comm) ML_Hiptmair = ML.MultiLevelPreconditioner(CurlCurl, C, node, MLList) ML_Hiptmair.ComputePreconditioner() x = System["rhs"][0] b_epetra = TrilinosIO._numpyToTrilinosVector(x) x_epetra = TrilinosIO._numpyToTrilinosVector(System["rhs"] * 0) solver = AztecOO.AztecOO(CurlCurl, x_epetra, b_epetra) solver.SetPrecOperator(ML_Hiptmair) solver.SetAztecOption(AztecOO.AZ_solver, AztecOO.AZ_cg) solver.SetAztecOption(AztecOO.AZ_output, 50) err = solver.Iterate(155000, 1e-10)
"smoother: Hiptmair efficient symmetric":True, "subsmoother: type": "Chebyshev", "subsmoother: Chebyshev alpha": 27.0, "subsmoother: node sweeps":4, "subsmoother: edge sweeps":4, "coarse: type":"Amesos-KLU", "coarse: max size":128, "coarse: pre or post":"post", "coarse: sweeps":1 } comm = Epetra.PyComm() C = scipy_csr_matrix2CrsMatrix(System["C"].tocsr(), comm) CurlCurl = scipy_csr_matrix2CrsMatrix(System["CurlCurl"].tocsr(), comm) node = scipy_csr_matrix2CrsMatrix(System["node"].tocsr(), comm) ML_Hiptmair = ML.MultiLevelPreconditioner(CurlCurl,C,node,MLList) ML_Hiptmair.ComputePreconditioner() x = System["rhs"][0] b_epetra = TrilinosIO._numpyToTrilinosVector(x) x_epetra = TrilinosIO._numpyToTrilinosVector(System["rhs"]*0) solver = AztecOO.AztecOO(CurlCurl, x_epetra, b_epetra) solver.SetPrecOperator(ML_Hiptmair) solver.SetAztecOption(AztecOO.AZ_solver, AztecOO.AZ_cg); solver.SetAztecOption(AztecOO.AZ_output, 50); err = solver.Iterate(155000, 1e-10)
def copy_vec(Vp, Vn): vmap = Vp.Map(); for ii in range(Vp.MyLength()): i = vmap.GID(ii) Vp[ii] =Vn[i] mycomm = Epetra.PyComm() verbose = (mycomm.MyPID() == 0) tps = Epetra.Time(mycomm) tps.ResetStartTime() # load H and convert it #Hs=load_mat("H.mat.npz") Hs=load_mat_matlab("H.mat") H=scipy_csr_matrix2CrsMatrix(Hs, mycomm) #load B and convert it #Bs=load_mat("B.mat.npz") Bs=load_mat_matlab("B.mat") B=scipy_csr_matrix2CrsMatrix(Bs, mycomm) # build Qh diagonal precond Qh=Epetra.Vector(H.DomainMap()) copy_vec(Qh, 2./(Hs.diagonal())) # buld Qs diagonal precond #mpc=load_vec("mpc.mat.npz") m_dic_mat=scipy.io.loadmat('mpc.mat') mpc=m_dic_mat['mpc'][:,0] Qs=Epetra.Vector(B.DomainMap())
from PyTrilinos import EpetraExt, Epetra from numpy import array, loadtxt import scipy.sparse as sps import scipy.io from scipy2Trilinos import scipy_csr_matrix2CrsMatrix import ipdb from dolfin import * tic() data = loadtxt("A_epetra.txt") print toc() tic() col, row, values = data[:, 0] - 1, data[:, 1] - 1, data[:, 2] print toc() tic() A = sps.csr_matrix((values, (row, col))) print toc() tic() comm = Epetra.PyComm() print toc() tic() A = scipy_csr_matrix2CrsMatrix(A, comm) print toc() zz
from PyTrilinos import EpetraExt, Epetra from numpy import array,loadtxt import scipy.sparse as sps import scipy.io from scipy2Trilinos import scipy_csr_matrix2CrsMatrix import ipdb from dolfin import * tic() data = loadtxt("A_epetra.txt") print toc() tic() col,row,values = data[:,0]-1,data[:,1]-1,data[:,2] print toc() tic() A = sps.csr_matrix((values, (row, col))) print toc() tic() comm = Epetra.PyComm() print toc() tic() A = scipy_csr_matrix2CrsMatrix(A, comm) print toc() zz
} comm = Epetra.PyComm() Acurl,b = assemble_system(a,L1,bc) Anode = assemble(l) scipy.io.savemat( "System.mat", {"CurlCurl":Acurl.sparray(),"node":Anode.sparray(),"C":C,"rhs":b.array()},oned_as='row') scipy.io.savemat( "node.mat", {"node":Anode.sparray()},oned_as='row') scipy.io.savemat( "rhs.mat", {"rhs":b.array()},oned_as='row') C = scipy_csr_matrix2CrsMatrix(C, comm) Acurl = scipy_csr_matrix2CrsMatrix(Acurl.sparray(), comm) Anode = scipy_csr_matrix2CrsMatrix(Anode.sparray(), comm) # Acurl = as_backend_type(Acurl).mat() # Anode = as_backend_type(Anode).mat() ML_Hiptmair = ML.MultiLevelPreconditioner(Acurl,C,Anode,MLList,True) ML_Hiptmair.ComputePreconditioner() x = Function(V) b_epetra = x_epetra = TrilinosIO._numpyToTrilinosVector(b.array()) x_epetra = TrilinosIO._numpyToTrilinosVector(x.vector().array()) tic() #u = M.SolveSystem(A,b,V,"cg","amg",1e-6,1e-6,1) print toc()
MLList.set("viz: output format","vtk"); MLList.set("viz: print starting solution", True); comm = Epetra.PyComm() parameters['linear_algebra_backend'] = 'Epetra' Mass = assemble(inner(u,v)*dx) bc.apply(Mass) Acurl,b = assemble_system(a,L1,bc) Anode = assemble(l) # scipy.io.savemat( "CurlCurl.mat", {"CurlCurl":Acurl.sparray()},oned_as='row') # scipy.io.savemat( "node.mat", {"node":Anode.sparray()},oned_as='row') # scipy.io.savemat( "rhs.mat", {"rhs":b.array()},oned_as='row') C = scipy_csr_matrix2CrsMatrix(C, comm) Acurl = as_backend_type(Acurl).mat() Mass = as_backend_type(Mass).mat() Anode = as_backend_type(Anode).mat() ML_Hiptmair = ML.MultiLevelPreconditioner(Acurl,C,Anode,MLList,False) # ML_Hiptmair = ML.MultiLevelPreconditioner(Acurl,False) ML_Hiptmair.ComputePreconditioner() x = Function(Magnetic) # print 'time to create preconditioner ', toc() # A_epetra = as_backend_type(AAA).mat() b_epetra = as_backend_type(b).vec() x_epetra = as_backend_type(x.vector()).vec() tic() #u = M.SolveSystem(A,b,V,"cg","amg",1e-6,1e-6,1)
from PyTrilinos import Epetra, EpetraExt from scipy2Trilinos import scipy_csr_matrix2CrsMatrix from scipy.sparse import csr_matrix, rand import numpy as np comm = Epetra.PyComm() dense = np.array([[0,0,1,4],[1,0,0,0], [0,8,9,7], [0,1,0,0]], dtype='float') sp_csr=csr_matrix(dense) #sp_coo=rand(1000,1000,0.1) #sp_csr = csr_matrix(sp_coo) A = scipy_csr_matrix2CrsMatrix(sp_csr, comm) print A
MLList.set("print unused", 2) MLList.set("viz: output format", "vtk") MLList.set("viz: print starting solution", True) comm = Epetra.PyComm() parameters['linear_algebra_backend'] = 'Epetra' Mass = assemble(inner(u, v) * dx) bc.apply(Mass) Acurl, b = assemble_system(a, L1, bc) Anode = assemble(l) # scipy.io.savemat( "CurlCurl.mat", {"CurlCurl":Acurl.sparray()},oned_as='row') # scipy.io.savemat( "node.mat", {"node":Anode.sparray()},oned_as='row') # scipy.io.savemat( "rhs.mat", {"rhs":b.array()},oned_as='row') C = scipy_csr_matrix2CrsMatrix(C, comm) Acurl = as_backend_type(Acurl).mat() Mass = as_backend_type(Mass).mat() Anode = as_backend_type(Anode).mat() ML_Hiptmair = ML.MultiLevelPreconditioner(Acurl, C, Anode, MLList, False) # ML_Hiptmair = ML.MultiLevelPreconditioner(Acurl,False) ML_Hiptmair.ComputePreconditioner() x = Function(Magnetic) # print 'time to create preconditioner ', toc() # A_epetra = as_backend_type(AAA).mat() b_epetra = as_backend_type(b).vec() x_epetra = as_backend_type(x.vector()).vec() tic() #u = M.SolveSystem(A,b,V,"cg","amg",1e-6,1e-6,1)