Ejemplo n.º 1
0
 def formFunction(self, snes, X, F):
     F.zeroEntries() # just in case
     da = self.da.fortran
     vec_X = X.fortran
     vec_F = F.fortran
     ierr = Bratu2D.FormFunction(da, vec_X, vec_F, self.lambda_)
     if ierr: raise PETSc.Error(ierr)
Ejemplo n.º 2
0
 def formJacobian(self, snes, X, J, P):
     P.zeroEntries() # just in case
     da = self.da.fortran
     vec_X = X.fortran
     mat_P = P.fortran
     ierr = Bratu2D.FormJacobian(da, vec_X, mat_P, self.lambda_)
     if ierr: raise PETSc.Error(ierr)
     if J != P: J.assemble() # matrix-free operator
     return PETSc.Mat.Structure.SAME_NONZERO_PATTERN
Ejemplo n.º 3
0
 def formInitGuess(self, snes, X):
     X.zeroEntries() # just in case
     da = self.da.fortran
     vec_X = X.fortran
     ierr = Bratu2D.FormInitGuess(da, vec_X, self.lambda_)
     if ierr: raise PETSc.Error(ierr)