On Thu, Sep 20, 2012 at 1:08 PM, Roy Stogner <firstname.lastname@example.org> wrote:
1. Separate the "output" parts of the Context classes into a separate
class. Right now we're passing around Context objects which contain
output members (element residual/jacobian, local qoi, etc) along with
input members (element solutions, FE data, etc), and because the
former can't be const we're prevented from enforcing const-correctness
on the latter. Leaving the inputs in the Context class and creating
something like a DiffOutput/FEMOutput class (or better name t.b.d.)
for everything mutable would fix that.
2. Put accessors around the raw member variables. Hopefully then
future changes would be less likely to cause API breakage.
3. Shorten some of the member names: "DiffContext::elem_solution"
would become "DiffContext::solution", for example. Vikram just
pointed out to me that it's somewhat odd to have a side_qoi() function
assembling into a context.elem_qoi variable.