Hi Matthew,
I don’t quite understand exactly how you installed deal.II and Trilinos. Perhaps you can provide some more explicit details so that we can help you out.
* Is Trilinos installed using the apt package, and deal.II installed from source? If you built deal.II from source, may you please attach the build logs (summary.log and detailed.log) for us to look at.
* Did you install the Trilinos development packages (e.g. trilinos-dev or libtrilinos-sacado-dev), which should install the headers into a central location?
* When you built deal.II, and it detects Trilinos and Sacado, the following two variable is defined in config.h (this is also output to the console during configuration):
$ cat include/deal.II/base/config.h | grep SACADO
#define DEAL_II_TRILINOS_WITH_SACADO
Do you see it there? If not, then deal.II did not successfully detect Sacado during configuration, and does not support it. If you try to configure step-33, an error should be emitted that expresses this.
When you #include <Sacado.hpp> then the compiler first looks for this header in the default location for the system, which I think is /usr/include. If it doesn’t find it there then it looks in some other specific locations that deal.II (through the configured packages) suggests that it goes looking in.
As a side note, there are two new tutorials (
step-71 and
step-72) that cover the topic of auto-differentiation as well. You might want to consider looking at those before step-33. Step-33 uses Sacado at a low-level, and these two new tutorials introduce some wrappers that we’ve implemented inside the library that make using Sacado a bit more tractable.
Best,
Jean-Paul