AllAtOnceForm (aaoform) assembles the firedrake form aaoform.form into an AllAtOnceFunction called F (actually it assembles it into the firedrake Function F.function).
Really F should be a AllAtOnceCofunction but we can't currently do that because of the way we then apply boundary conditions to the residual:
bc.apply(F.function, aaofunc.function)
where aaofunc.function is the current state. If F.function is a fd.Cofunction then we get an internal firedrake error from bc.apply because of the argument type mismatch.
AllAtOnceForm
(aaoform
) assembles the firedrake formaaoform.form
into anAllAtOnceFunction
calledF
(actually it assembles it into the firedrake FunctionF.function
).Really
F
should be aAllAtOnceCofunction
but we can't currently do that because of the way we then apply boundary conditions to the residual:bc.apply(F.function, aaofunc.function)
whereaaofunc.function
is the current state. IfF.function
is afd.Cofunction
then we get an internal firedrake error frombc.apply
because of the argument type mismatch.