[firedrake] More questions

Fabio Luporini f.luporini12 at imperial.ac.uk
Fri Jul 24 11:31:51 BST 2015


Hi,

As Lawrence says (point 2), you can ignore that FFC line since local
assembly optimisation is entirely handled by COFFEE.

Thanks,

-- Fabio

2015-07-24 11:29 GMT+01:00 Mitchell, Lawrence <
lawrence.mitchell at imperial.ac.uk>:

>
> > On 24 Jul 2015, at 11:06, Justin Chang <jychang48 at gmail.com> wrote:
> >
> > Hi everyone,
> >
> > I have some (what I think are) pretty simple questions that I would like
> answered:
> >
> > 1) How do you print out the global size of the matrix?
>
> So PyOP2 (and hence firedrake) don't expose global sizes of objects.
> However, you can ask PETSc:
>
> A = assemble(a)
>
> print A.M.handle.getSizes()
>
> This returns the same as MatGetSizes.
>
> You can get the /local/ sizes with:
>
> A.M.nrows, A.M.ncols
>
> We should probably just expose the global sizes as well.
>
>
> > 2) When FFC/pyop2 is compiling the forms, it says "Skipping
> optimizations, add -O to optimize", how can I tell my program to add this
> optimization?
>
> I believe that many of these optimisations conflict with those that the
> COFFEE kernel compiler subsequently applies, so I /think/ that you can't
> add this optimisation right now.  Maybe Fabio can comment more clearly on
> this point.
>
>
> > 3) Is there a way to simply output the number of KSP iterations? I am
> guessing it involves getIterationNumber() but I am still kind of new to
> petsc4py, so how would I invoke this call in the context of firedrake?
>
>
> Do you want to access this number programmatically, or print to a screen?
>
> If the latter, you can run with 'ksp_converged_reason': True in your
> solver_parameters dict and PETSc will print the converged reason (along
> with the number of iterations).
>
> If programmatically:
>
> solver = XXXVariationalSolver(...)
>
> solver.solve()
>
> print solver.snes.ksp.getIterationNumber()
>
> If you're using preassembled operators and a LinearSolver:
>
> solver = LinearSolver(...)
>
> solver.solve(...)
>
> print solver.ksp.getIterationNumber()
>
> Again, we should expose this programmatically in the public interface.
>
> Lawrence
>
-------------- next part --------------
HTML attachment scrubbed and removed


More information about the firedrake mailing list