From: Roy Stogner <roystgnr@ic...>  20080214 01:23:23

On Thu, 14 Feb 2008, Lorenzo Botti wrote: > I have tried to use DofMap::_dof_coupling but it seems that an issue > with amr arises... maybe I miss something obvious... > For example if I solve an advection diffusion equation in 3D with a > semiimplicit scheme I want to save the memory required to store the Kuv, > Kuw, Kvw, (and also Kvu, Kvw, Kwu,) blocks of each of my element matrices. > With _dof_coupling I can obtain the right sparsity pattern but then at > assembly time I'll need a sparse element matrix. I can instead decide to > assemble only Kuu, Kvv, Kww as tree different dense matrices. This works > without amr, It saves a lot of memory. If this saves a lot of memory, you may be doing something wrong. A triquadratic element has 27 degrees of freedom per component. If you're using the default 8byte floating point numbers, then using three 27x27 matrices would take up about 17kB, whereas using a (27*3)*(27*3) matrix would take up about 51kB. In any significant 3D problem, 51kB should be lost in the noise. But you may be right that the constrain_element* functions are ignoring _dof_coupling; I'll leave it to Ben to check on that.  Roy 