Lines Matching refs:A
49 def productSetFromOptions(self, mat, producttype, A, B, C): argument
52 def productSymbolic(self, mat, product, producttype, A, B, C): argument
54 if mat is A: # product = identity * B
61 product.setType(A.getType())
62 product.setSizes(A.getSizes())
65 A.copy(product)
69 if mat is A: # product = identity^T * B
77 A.transpose(tmp)
86 if mat is A: # product = identity * B^T
95 product.setType(A.getType())
96 product.setSizes(A.getSizes())
99 A.copy(product)
103 if mat is A: # product = P^T * identity * P
112 product.setType(A.getType())
113 product.setSizes(A.getSizes())
116 A.copy(product)
120 if mat is A: # product = R * identity * R^t
129 product.setType(A.getType())
130 product.setSizes(A.getSizes())
133 A.copy(product)
137 if mat is A: # product = identity * B * C
147 A.matMult(C, tmp)
155 A.matMult(B, tmp)
167 def productNumeric(self, mat, product, producttype, A, B, C): argument
169 if mat is A: # product = identity * B
172 A.copy(product, structure=True)
177 if mat is A: # product = identity^T * B
180 A.setTransposePrecursor(product)
181 A.transpose(product)
186 if mat is A: # product = identity * B^T
190 A.copy(product, structure=True)
195 if mat is A: # product = P^T * identity * P
201 A.copy(product, structure=True)
206 if mat is A: # product = R * identity * R^t
212 A.copy(product, structure=True)
217 if mat is A: # product = identity * B * C
223 A.matMult(C, tmp)
227 A.matMult(B, tmp)
302 return self.A.getPythonContext()
306 self.A = PETSc.Mat()
308 self.A.create(self.COMM)
309 self.A.setSizes([N, N])
310 self.A.setType('python')
311 OptDB = PETSc.Options(self.A)
313 self.A.setFromOptions()
319 self.A.createPython([N, N], None, comm=self.COMM)
320 self.A.setPythonContext(context)
321 self.A.setUp()
323 self.A.createPython([N, N], context, comm=self.COMM)
331 self.A.destroy() # XXX
332 self.A = None
337 ctx = self.A.getPythonContext()
341 ctx = self.A.getPythonContext()
343 self.A.setUp()
345 self.A.setPythonContext(ctx)
346 self.A.setUp()
350 f = lambda: self.A.zeroEntries()
354 x, y = self.A.createVecs()
355 f = lambda: self.A.mult(x, y)
359 x, y = self.A.createVecs()
360 f = lambda: self.A.multTranspose(x, y)
364 d = self.A.createVecLeft()
365 f = lambda: self.A.getDiagonal(d)
369 d = self.A.createVecLeft()
370 f = lambda: self.A.setDiagonal(d)
374 x, y = self.A.createVecs()
375 f = lambda: self.A.diagonalScale(x, y)
379 f1 = lambda: self.A.duplicate(True)
380 f2 = lambda: self.A.duplicate(False)
385 self.A.setVecType('mpi')
386 self.assertTrue('mpi' == self.A.getVecType())
391 if self.A.getComm().Get_size() > 1:
396 AA = self.A.getPythonContext()
402 h.createH2OpusFromMat(self.A, leafsize=2)
408 (1, 2, 3), (10, 20, 30), self.A.getSize()[0], dtype=PETSc.RealType
410 h.createH2OpusFromMat(self.A, coords, leafsize=2)
435 ctx = self.A.getPythonContext()
437 self.assertTrue(self.A.getPythonType() == pytype)
445 x, y = self.A.createVecs()
447 self.A.mult(x, y)
452 x, y = self.A.createVecs()
454 self.A.setOption(PETSc.Mat.Option.SYMMETRIC, True)
455 self.A.multTranspose(x, y)
457 self.A.setOption(PETSc.Mat.Option.SYMMETRIC, False)
458 f = lambda: self.A.multTranspose(x, y)
463 x, y = self.A.createVecs()
465 AA = self.A.getPythonContext()
467 self.A.multTranspose(x, y)
473 d = self.A.createVecLeft()
476 self.A.getDiagonal(d)
480 B = self.A.duplicate()
482 B = self.A.duplicate(False)
484 B = self.A.duplicate(True)
485 self.assertTrue(B.getPythonContext().s == self.A.getPythonContext().s)
486 B = self.A.duplicate(PETSc.Mat.DuplicateOption.DO_NOT_COPY_VALUES)
488 B = self.A.duplicate(PETSc.Mat.DuplicateOption.SHARE_NONZERO_PATTERN)
490 B = self.A.duplicate(PETSc.Mat.DuplicateOption.COPY_VALUES)
491 self.assertTrue(B.getPythonContext().s == self.A.getPythonContext().s)
497 A = PETSc.Mat().create(self.COMM)
498 A.setSizes(self.A.getSizes())
499 A.setType(PETSc.Mat.Type.AIJ)
500 A.setPreallocationNNZ(None)
501 A.setRandom(R)
503 B.setSizes(self.A.getSizes())
508 Id.setSizes(self.A.getSizes())
514 self.assertTrue(self.A.matMult(A).equal(Id.matMult(A)))
515 self.assertTrue(A.matMult(self.A).equal(A.matMult(Id)))
516 if self.A.getComm().Get_size() == 1:
517 self.assertTrue(self.A.matTransposeMult(A).equal(Id.matTransposeMult(A)))
518 self.assertTrue(A.matTransposeMult(self.A).equal(A.matTransposeMult(Id)))
519 self.assertTrue(self.A.transposeMatMult(A).equal(Id.transposeMatMult(A)))
520 self.assertTrue(A.transposeMatMult(self.A).equal(A.transposeMatMult(Id)))
521 self.assertAlmostEqual((self.A.ptap(A) - Id.ptap(A)).norm(), 0.0, places=5)
522 self.assertAlmostEqual((A.ptap(self.A) - A.ptap(Id)).norm(), 0.0, places=5)
523 if self.A.getComm().Get_size() == 1:
524 self.assertAlmostEqual((self.A.rart(A) - Id.rart(A)).norm(), 0.0, places=5)
525 self.assertAlmostEqual((A.rart(self.A) - A.rart(Id)).norm(), 0.0, places=5)
527 (self.A.matMatMult(A, B) - Id.matMatMult(A, B)).norm(), 0.0, places=5
530 (A.matMatMult(self.A, B) - A.matMatMult(Id, B)).norm(), 0.0, places=5
533 (A.matMatMult(B, self.A) - A.matMatMult(B, Id)).norm(), 0.0, places=5
538 self.A.shift(-0.5)
544 self.A.scale(-0.5)
551 self.A.getSizes(), s, comm=self.A.getComm()
553 self.assertTrue(self.A.equal(B))
562 D = self.A.createVecLeft()
567 self.A.setDiagonal(D)
570 self.A.zeroEntries()
575 x, y = self.A.createVecs()
577 self.A.mult(x, y)
581 x, y = self.A.createVecs()
583 self.A.setOption(PETSc.Mat.Option.SYMMETRIC, True)
584 self.A.multTranspose(x, y)
586 self.A.setOption(PETSc.Mat.Option.SYMMETRIC, False)
587 f = lambda: self.A.multTranspose(x, y)
591 x, y = self.A.createVecs()
593 AA = self.A.getPythonContext()
595 self.A.multTranspose(x, y)
600 B = self.A.duplicate(False)
601 B = self.A.duplicate(True)
602 self.assertTrue(B.getPythonContext().D.equal(self.A.getPythonContext().D))
605 d = self.A.createVecLeft()
606 self.A.getDiagonal(d)
610 d = self.A.createVecLeft()
612 self.A.setDiagonal(d)
616 x, y = self.A.createVecs()
620 self.A.diagonalScale(x, y)
625 A = self.A
626 A.setOption(PETSc.Mat.Option.SYMMETRIC, True)
627 AT = PETSc.Mat().createTranspose(A)
628 x, y = A.createVecs()
632 A.multTranspose(y, x)
638 A.mult(x, y)
642 del A
645 self.assertTrue(self.A.convert(PETSc.Mat.Type.AIJ, PETSc.Mat()).equal(self.A))
646 self.assertTrue(self.A.convert(PETSc.Mat.Type.BAIJ, PETSc.Mat()).equal(self.A))
647 self.assertTrue(self.A.convert(PETSc.Mat.Type.SBAIJ, PETSc.Mat()).equal(self.A))
648 self.assertTrue(self.A.convert(PETSc.Mat.Type.DENSE, PETSc.Mat()).equal(self.A))
652 self.A.shift(-0.5)
658 self.A.scale(-0.5)
665 self.assertTrue(self.A.equal(B))