예제 #1
0
파일: run_demo.py 프로젝트: rtorresca/ppde
 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)
예제 #2
0
파일: run_demo.py 프로젝트: rtorresca/ppde
 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
예제 #3
0
파일: run_demo.py 프로젝트: rtorresca/ppde
 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)