reduce compile time of uflFunction
The solution here might be to modify this to be more similar to integrands
, i.e., instead of a
UFLFunction
and a VirtualizedGF
version of that compile once a GF<dimR,Evaluator>
where there is a type erased version of Evaluator
(similar to the VirtualizedIntegrands
. The code generator for a new ufl function constructs only a new Evaluator
which should be fast to compile. The method then returns a GF<dimR,VirtualizedEvaluator>
which only needs to be compiled once per dimRange
.
I'm not quite sure yet how to avoid virtualization
. Is it possible to undo the type erasure on the C++ side, i.e., when I setup an integrands model with a UFLFunction and say I don't want to virtualize. Then I can extract the correct cppTypeName
from the python object and construct the correct non type erased object on the C++ side.
Just an idea which needs some more thought.