Пример #1
0
 def test03_basic(self):
     """ solve """
     myobj = LumpedMatrixSolver(self.V)
     myobj.set_operator(self.M)
     myobj.solve(self.uMdiag.vector(), myobj.Mdiag)
     diff = (myobj.one - self.uMdiag.vector()).array()
     self.assertTrue(np.linalg.norm(diff)/np.linalg.norm(myobj.one.array()) < 1e-14)
Пример #2
0
 def test04_mult(self):
     """ overloaded * operator """
     myobj = LumpedMatrixSolver(self.V)
     myobj.set_operator(self.M)
     self.uMdiag.vector().axpy(1.0, myobj*myobj.one)
     diff = (myobj.Mdiag - self.uMdiag.vector()).array()
     self.assertTrue(np.linalg.norm(diff)/np.linalg.norm(myobj.Mdiag.array()) < 1e-14)
Пример #3
0
 def test01_entries(self):
     """ Lump matrix """
     myobj = LumpedMatrixSolver(self.V)
     myobj.set_operator(self.M)
     err = 0.0
     for index, ii in enumerate(self.M.array()):
         err += abs(ii.sum() - myobj.Mdiag[index])
     self.assertTrue(err < index*1e-16)
Пример #4
0
 def test02(self):
     """ Invert lumped matrix """
     myobj = LumpedMatrixSolver(self.V)
     myobj.set_operator(self.M)
     err = 0.0
     for ii in range(len(myobj.Mdiag.array())):
         err += abs(1./myobj.Mdiag[ii] - myobj.invMdiag[ii])
     self.assertTrue(err < ii*1e-16)
Пример #5
0
 def test04_mult(self):
     """ overloaded * operator """
     myobj = LumpedMatrixSolver(self.V)
     myobj.set_operator(self.M)
     self.uMdiag.vector().axpy(1.0, myobj * myobj.one)
     diff = (myobj.Mdiag - self.uMdiag.vector()).array()
     self.assertTrue(
         np.linalg.norm(diff) / np.linalg.norm(myobj.Mdiag.array()) < 1e-14)
Пример #6
0
 def test02(self):
     """ Invert lumped matrix """
     myobj = LumpedMatrixSolver(self.V)
     myobj.set_operator(self.M)
     err = 0.0
     for ii in range(len(myobj.Mdiag.array())):
         err += abs(1. / myobj.Mdiag[ii] - myobj.invMdiag[ii])
     self.assertTrue(err < ii * 1e-16)
Пример #7
0
 def test01_entries(self):
     """ Lump matrix """
     myobj = LumpedMatrixSolver(self.V)
     myobj.set_operator(self.M)
     err = 0.0
     for index, ii in enumerate(self.M.array()):
         err += abs(ii.sum() - myobj.Mdiag[index])
     self.assertTrue(err < index * 1e-16)
Пример #8
0
 def test03_basic(self):
     """ solve """
     myobj = LumpedMatrixSolver(self.V)
     myobj.set_operator(self.M)
     myobj.solve(self.uMdiag.vector(), myobj.Mdiag)
     diff = (myobj.one - self.uMdiag.vector()).array()
     self.assertTrue(
         np.linalg.norm(diff) / np.linalg.norm(myobj.one.array()) < 1e-14)
Пример #9
0
 def test01_set(self):
     """ Set operator """
     myobj = LumpedMatrixSolver(self.V)
     myobj.set_operator(self.M)
Пример #10
0
 def test01_set(self):
     """ Set operator """
     myobj = LumpedMatrixSolver(self.V)
     myobj.set_operator(self.M)
Пример #11
0
 def test00(self):
     """ Create a lumped solver """
     myobj = LumpedMatrixSolver(self.V)