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
