On the CPU, we can significantly improve the performance by changing the following:
[x] applying the boundary conditions in a matrix-free manner. The biggest bottleneck in the code is the std::map::find used to map quadrature-point quantities to cell quantities. Using deal.II 9.5.0, we can actually compute the boundary conditions using the matrix-free framework.
[x] in add_material more that two third of the time is spent in compute_inverse_mass_matrix(). Here also we should use the matrix-free framework.
[x] when computing material properties using a polynomial, we spend a very large amount of time computing the powers of the temperature
On the CPU, we can significantly improve the performance by changing the following:
std::map::find
used to map quadrature-point quantities to cell quantities. Using deal.II 9.5.0, we can actually compute the boundary conditions using the matrix-free framework.add_material
more that two third of the time is spent incompute_inverse_mass_matrix()
. Here also we should use the matrix-free framework.