On Thu, 13 Nov 2008, Derek Gaston wrote:

> Ok - I just committed a set of changes that adds capability for computing
> discrete norms of NumericVectors for the entries corresponding to a
> variable's dofs.
> To do this I added 3 new public methods to NumericVector:
> 
> subset_l2_norm()
> subset_l1_norm()
> subset_linfty_norm()
> 
> They each take a std::set corresponding to the entries to take the norm
> on.

How does this work in parallel - pass in a set of only local elements
on each processor?

I still think we'd have done better to use another NumericVector of
coefficients.  It would have about the same overhead as std::set in
the most common case and would be much more efficient when taking
weighted discrete norms.

> I also modified (and added a couple of private methods)
> System::calculate_norm() methods.
> 
> I'm not wedded to these names... please feel free to rename them.
> 
> If you see anything wonky in the new code feel free to tear me a new one
> about it. ;-)

Can we at least re-optimize the case where the user just wants a
discrete norm of the whole vector?  I've always used Sobolev norms
when I wanted "slow but physically meaningful" and discrete norms when
I wanted "fast but hackish", and I'm worried that unnecessarily
finding dof indices and summing each variable separately might take
away the "fast" part of that.
---
Roy

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Libmesh-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-devel

Reply via email to