Save the local matrices

Is there a way to display or save the local matrices (per process) to a .dat file after the distributed mesh has been created?

macro dimension 2// EOM            

include "ffddm.idp"
macro def(i)[i, i#B]// EOM
// for def(u), returns [u, uB]
macro init(i)[i, i]// EOM
func Pk = [P1, P1];

real young = 1.0;
real nu = 0.;
real mu = young / (2.0 * (1.0 + nu));
real lambdax = (young * nu) / ((1.0 + nu) * (1.0 - 2.0 * nu));
real rho = getARGV("-rho", 1.);
real f = getARGV("-force", -1.0);

macro epsilon(i) [dx(i), dy(i#B), (dy(i) + dx(i#B)) / sqrt(2.)] // EOM
macro div(i) (dx(i) + dy(i#B)) // EOM

mesh ThGlobal = square(20, 1, [0 + 300*x, 0 + 100*y], flags = 1);



ffddmoverlap = 1;

ffddmbuildDmeshAug(Hmesh, ThGlobal, mpiCommWorld)

ffddmbuildDfespace(HFE, Hmesh, real, def, init, Pk)




macro Varf(varfName, meshName, PhName)
    varf varfName(def(u), def(v)) =
        int2d(meshName)(
              lambdax * (div(u) * div(v))
            + 2.*mu * (epsilon(u)' * epsilon(v))
            + rho * (u*v + uB*vB)
        ); // EOM


real robinCoef = getARGV("-robin", 1); 

macro VarfRobin(varfName, meshName, PhName)
    varf varfName(def(u), def(v)) =
        int2d(meshName)(
              lambdax * (div(u) * div(v))
            + 2.*mu * (epsilon(u)' * epsilon(v))
            + rho * (u*v + uB*vB)
        )
        + int1d(meshName, 10)( robinCoef * (u*v + uB*vB) ); // EOM


macro Varfrhs(varfName, meshName, PhName)
    varf varfName(def(u), def(v)) = int2d(meshName)( f * vB ); // EOM

ffddmsetup(H, HFE, Varf, Varf)                     
// ffddmsetup(H, HFE, Varf, VarfRobin)                      

real[int] rhs(1);
ffddmbuildrhs(H, Varfrhs, rhs)

real[int] x0(rhs.n);
x0 = 0; 

HFEVhi<real> def(u);

if (mpirank == 0) cout << endl << "ONE-LEVEL (" << "cf. -ffddm_schwarz_method) :" << endl;
u[] = HfGMRES(x0, rhs, 1.e-6, 200, "right");
Hwritesummary
ffddmplot(HFE, u, "Deplacement (ffddm/ORAS)");