Is the first system not symmetric? If $D = \mathrm{diag}\{ d_{i} \}$ where $d_{i} > 0$, then $D^{-1} = \mathrm{diag}\{ d^{-1}_{i}\}$; in particular, it is still a diagonal matrix and thus the matrix of the left-hand side is symmetric in both cases.

]]>\[ (I - hD^{-1}L)f_h = f_0 \]

or multiply both sides by \(D\) and solve

\[ (D-hL) f_h = D f_0, \]

as you suggest. The advantage of the latter system is that it’s symmetric, which means that in practice you can use more efficient linear solvers. (By the way, in DEC \(D\) represents the diagonal Hodge star on discrete 0-forms, i.e., it maps a primal 0-form to a dual 2-form by multiplying by the dual cell area.)

]]>No! This is an important misunderstanding about the cotan-Laplace matrix \(L\): it does **not** represent the Laplace operator. Instead, it represents the *“conformal Laplacian”* (see notes above). More concretely, \(Lx\) gives you the value of \(\Delta x\) *integrated over each dual cell*. So an equation like \(Lx = y\) doesn’t make sense unless the entries of \(y\) also represent a quantity integrated over dual cells. Therefore if you start out with a pointwise quantity, you have to multiply it by the dual cell areas.

>>I’m not sure what it means for a generic function ρ to have a ‘constant component’. At some point it looks like you allude to it meaning the function ρ integrates to zero

Correct. Think about what it means for a finite-dimensional vector \(u\) to have a component in the direction \(v\): if you take the dot product \(u \cdot v\) and find it’s nonzero (i.e., the vectors aren’t orthogonal), then \(u\) has some component in the direction \(v\). Similarly, suppose I have a function \(\rho\) and want to make sure it has no component in the direction “1″ where “1″ is any constant function. Then I should check that

\[ \langle \rho, 1 \rangle = \int_\Omega \rho 1\ dV = \int_\Omega \rho\ dV = 0, \]

i.e., the integral of \(\rho\) over the whole domain should be zero. The *mean* of \(\rho\) will also be zero since

\[ \frac{1}{|\Omega|} \int_\Omega \rho\ dV = 0, \]

where \(|\Omega|\) is the total volume of \(\Omega\). So you can also say that (on a compact domain without boundary) the right-hand side of a Poisson equation must have zero mean.

>>I don’t see any obvious reasons why this should be a necessary condition for a solution to the poisson problem.

If you understand Exercise 3.2 then I’d argue you *do* understand why. Just write out the relationship \(\Delta \phi = \rho\) and see where it takes you. (Hint: Stokes’ theorem!)

Aren’t we just supposed to use the cotan formula (which has already accounted for dual areas)? We shouldn’t need to explicitly calculate any dual areas in the code, right?

Also, I realize that (from exercise 3.2) that if $\Delta \phi = \rho$ has a solution then $\Delta \phi = \rho + c$ (for nonzero c) cannot have a solution. So in this case I guess we would say $\rho + c$ has a ‘constant component’. However I’m not sure what it means for a generic function $\rho$ to have a ‘constant component’. At some point it looks like you allude to it meaning the function $\rho$ integrates to zero but I don’t see any obvious reasons why this should be a necessary condition for a solution to the poisson problem.

Anyway, my code appears to work fine without worrying about constant components. Are we supposed to be checking for the existence of a constant component in $\rho$ (and correcting for it)?

]]>