libmesh icon indicating copy to clipboard operation
libmesh copied to clipboard

Dof Number Ordering

Open friedmud opened this issue 6 years ago • 1 comments

Currently dof number ordering for higher order variables on the same dof object are like this:

var_0_comp_0 var_0_comp_1 var_0_comp_2 var_1_comp_0 var_1_comp_1 var_1_comp_2

This is inefficient if you want to treat all of those variables together. For instance, if you want to multiply all of the comp_0 components by phi_0... you can't do that in a contiguous, vectorizable way.

Here is some background and discussion on this:

https://sourceforge.net/p/libmesh/mailman/libmesh-devel/thread/CAFfxPjqrmX_pHCZp%2B7sMGZR%2BYxQ%2B5nNqfVCVgzunrCvnd1TM1Q%40mail.gmail.com/#msg36649810

Tagging @YaqiWang @roystgnr

friedmud avatar Apr 26 '19 17:04 friedmud

This would add opportunities for vectorization like the case Derek mentioned. But it would also remove contiguous ordering we currently rely upon such as multiplication of local element vectors and local element matrices by scaling factors which are specified on a per array variable component basis

lindsayad avatar Oct 06 '25 16:10 lindsayad