dbeurle / neon

A finite element code
Other
10 stars 8 forks source link

Thread-local matrices in submeshes #112

Closed dbeurle closed 5 years ago

dbeurle commented 5 years ago

The tangent stiffness computation and assembly remains somewhat expensive. We should force this to use thread local static variables to avoid memory allocation on each invocation. This also requires the numerical quadrature class to replace integrate and integrate_inplace methods to always perform integration in-place and not return an integrated submatrix, thereby avoid an allocation, move and deallocation of memory. Move semantics do not help here so taking a matrix / vector by reference avoids this entirely for the large number of function calls.

Tasks: