Settle on one expression parser in trilinos
Right now we are using two expression parsers, which I think do similar things. One is taken from Pamgen, and is used in AAdapt_InitialConditions.cpp, to be able to create an initial condition from a functional form. The other is taken from Panzer_ExprEval, and is used in Albany_GenericSTKMeshStruct.cpp to load a field from file given its functional form.
I believe the panzer version is more powerful (at least in the way it is used), since it allows to compute the expression on device for all the points in parallel, while the pamgen one appears to work on host, and compute one point at a time.
I think we should stick with one of the two.
Agreed. I believe @djlittl introduced the expression parser in AAdapt_InitialConditions.cpp, and @ibaned worked on the Panzer parser. Maybe they can weigh in.
Yea, the Panzer parser is a Trilinos version of things I've written to solve the problem of evaluating expressions on GPUs. it was commissioned by Eric Cyr but I don't know how much they ended up using it. I agree with trying to change the AAdapt stuff to use that one if possible.
Ok, I'll put it on my todo list...