Dear Lawrence,

I have the following term in my RHS form (all quantities in there are known functions)

Hb*step_b*inner(grad(0.5*dt*g*eta0-phi0),grad(v))*dx

which is similar to the "local" stiffness matrix Ab. I want to replace this with something of the following form: Mb*Minv*A*(0.5*dt*g*eta0_k-phi0_k)
where eta0_k, phi0_k are the coefficients in the approximations for eta0, phi0, respectively.

Is this possible?

Thanks,
Anna.


On 12/11/15 14:28, Lawrence Mitchell wrote:
Hi Anna,

On 12/11/15 12:38, Anna Kalogirou wrote:
Hi Lawrence,

In the email below you explained to me how to define a matrix free 
operator B. Is there a way to inspect the values of the matrix behind 
this operator?
Assuming that you are not running in parallel, and you do not have two
many degrees of freedom in your problem (I guess you want to look at
the values for a small system), you can do the following:

ctx = B.getPythonContext()

dense_A = ctx.A[:, :]
Q1_array = ctx.Q1.array_r
Q2_array = ctx.Q2.array_r

import numpy as np

dense_B = dense_A + np.outer(Q1_array, Q2_array)

print dense_B

Cheers,

Lawrence


_______________________________________________
firedrake mailing list
firedrake@imperial.ac.uk
https://mailman.ic.ac.uk/mailman/listinfo/firedrake