예제 #1
0
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
예제 #2
0
파일: mixStokes.py 프로젝트: daveb-dev/UBC
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
예제 #3
0
파일: mixStokes.py 프로젝트: wathen/PhD
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
예제 #4
0
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
예제 #5
0
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
예제 #6
0
파일: mixStokes.py 프로젝트: daveb-dev/UBC
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
예제 #7
0
파일: mixStokes.py 프로젝트: wathen/PhD
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
예제 #8
0
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
예제 #9
0
파일: Hiptmair.py 프로젝트: daveb-dev/UBC
    "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)
예제 #10
0
파일: Hiptmair.py 프로젝트: wathen/PhD
  "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)
예제 #11
0
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())
예제 #12
0
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
예제 #13
0
파일: NullSpace.py 프로젝트: wathen/PhD
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
예제 #14
0
}

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()
예제 #15
0
파일: Hiptmair.py 프로젝트: wathen/PhD
    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)
예제 #16
0
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
예제 #17
0
    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)