Hello,
I was wondering if it is possible to change the ordering of the degrees
of freedom in a numeric vector. In my application the domain is splitted
in two parts, one containing the elements considered to be fine and the
other the coarse ones. When we integrate the equations in time I use
different coefficients for the different domains and this leads to a
code like this one:
for(int i=0;i<coarse_dofs.size();i++)
{
dof = coarse_dofs[i];
vj->set(dof,mu[0]*(v1->el(dof))+nu[0]*(v2->el(dof)) + /*......*/);
}
for(int i=0;i<fine_dofs.size();i++)
{
dof = fine_dofs[i];
vj->set(dof,mu[1]*(w1->el(dof))+nu[1]*(w2->el(dof)) + /*......*/);
}
Obviously fine_dofs and coarse_dofs are not contiguous sets of indexes
and the above loops are quite slow. So, if I can modify the dof_map so
that every processor owns a set of degrees of freedom in which the first
ones are the coarses end the others the fines I hope to get some
performance improvements. I think that modifying the dof_map would be
the easiest way because it wouldn't require any further code
modification since also the matrices will be correctly reordered.
Thanks ;)
------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users