Clarification on FreeDofs

I’m dealing with teh advection equation, and in that context I need some clarification as to how the Inverse(fes_space.FreeDofs()) interacts with the Set() method. Essentially, if I create some inverse matrix as such:

        inv_r = mstar_r.mat.Inverse(R.FreeDofs())

And then update the time dependent boundary and right hand side as usual:

        rho_h.Set(rho_ex, definedon=mesh.Boundaries(rhoBndStr)) -= mstar_r.mat*rho_h.vec

Would be more correct to update rho_h with += inv_r*

or = inv_r*

The only difference is the usage of “+=” and “=”, and I am not sure how the application of “=” acts on the boundary dofs in comparison with “+=”. Does the fact that the inverse matrix is created with respect to the dirichlet boundaries, make it so the “=” operator doesn’t override the dirichlet boundary? Should I always use the “+=” operator when I’ve used Set() to update bounadries?

Thanks, and sorry if this is a bit rambly.