Hi Lawrence, So I had a nice working code where it runs point-wise SNES in pyop2, and it ran decently fast. However, with the latest firedrake update, it forced me to make a few additional changes to the pyop2 kernel, namely adding PetcInitialize(....) and PetscFinalize(), and my code now runs really slow after I run it after several time steps on a Unit Interval of 100 elements. Attached is the code as well as the supplemental 1D analytical expressions and pyop2 reactions kernel. Run the code as "python 1D_OS_analytical_ex1.py 100 0 0". If I comment out line 250 in the 1D_OS_analytical.ex1.py file, the program performs well, w.r.t. wall-clock time that I normally get, but now it has become a serious bottleneck. Is there a way to improve what I have written in the reactions kernel? Thanks, Justin On Tue, Nov 3, 2015 at 5:01 AM, Lawrence Mitchell < lawrence.mitchell@imperial.ac.uk> wrote:
On 3 Nov 2015, at 11:56, Lawrence Mitchell < lawrence.mitchell@imperial.ac.uk> wrote:
Hi Justin,
On 3 Nov 2015, at 06:59, Justin Chang <jychang48@gmail.com> wrote:
Lawrence,
So I have implemented PETSc into the PYOP2 kernel, but I am sometimes getting strange errors.
Attached is the working code plus the reactions kernel file.
Run the code by typing "python 1D_analytical_ADR_ex1.py <seed> <0/1> <0/1>". The last option is for using either Newtons Method (0) or Variational Inequality (1).
I note as well that if I remove the bad par_loop code and run with PETSc in debug mode, I get the following error (running with options 5 1 1):
Time = 0.010000 Traceback (most recent call last): File "1D_analytical_ADR_ex1.py", line 187, in <module> u0 = ADsolve(solver_D,u0) File "1D_analytical_ADR_ex1.py", line 171, in ADsolve solver_O.solve(u0_O,b) File "/Users/lmitche1/Documents/work/mapdes/firedrake/firedrake/linear_solver.py", line 138, in solve self.ksp.solve(rhs, solution) File "PETSc/KSP.pyx", line 363, in petsc4py.PETSc.KSP.solve (src/petsc4py.PETSc.c:152597) petsc4py.PETSc.Error: error code 77 [0] KSPSolve() line 527 in /Users/lmitche1/Documents/work/mapdes/petsc/src/ksp/ksp/interface/itfunc.c [0] KSPSetUp() line 332 in /Users/lmitche1/Documents/work/mapdes/petsc/src/ksp/ksp/interface/itfunc.c [0] PCSetUp() line 984 in /Users/lmitche1/Documents/work/mapdes/petsc/src/ksp/pc/interface/precon.c [0] PCSetUp_GAMG() line 566 in /Users/lmitche1/Documents/work/mapdes/petsc/src/ksp/pc/impls/gamg/gamg.c [0] PCGAMGCoarsen_AGG() line 997 in /Users/lmitche1/Documents/work/mapdes/petsc/src/ksp/pc/impls/gamg/agg.c [0] smoothAggs() line 353 in /Users/lmitche1/Documents/work/mapdes/petsc/src/ksp/pc/impls/gamg/agg.c [0] Petsc has generated inconsistent data [0] !(matA_1 && !matA_1->compressedrow.use) ***[0]PCReset_GAMG this should not happen, cleaned up in SetUp
Lawrence
_______________________________________________ firedrake mailing list firedrake@imperial.ac.uk https://mailman.ic.ac.uk/mailman/listinfo/firedrake