On Thu, 13 Nov 2008, Derek Gaston wrote:
If you want the discrete norm of the whole vector just call v.l2_norm()
or whatever.
And if I want AdaptiveTimeSolver to use the discrete norm of the whole
vector? It's already calling System::calculate_norm(), which did
call v.l2_norm(), yesterday... ;-)
If you're talking about possibly detecting that all of the variable
weights are 1.0 and calling v.l2_norm() in System::calculate_norm()...
that should be possible. I viewed what was there before as wrong since
it didn't take the weighting into account at all.
That's right; it basically assumed that if you wanted a discrete norm,
you wanted a global discrete norm. I had my "slow but physical"
options and my "fast but nonsense" option, and I didn't expect to want
to use anything in-between.
Specifically, if you called the calculate_norm() method that takes a
variable number and passed in a discrete norm.... you didn't get back the
norm of the entries corresponding to that variable... instead you got
back the norm of the whole vector (with no warning or anything). Now you
get back what you expect.
Yes; functionally it's definitely an improvement.
Do you want me to put a check in there to see if all of the variable
weights are 1.0 and call l2_norm() (or whatever) directly?
Would you? Or just benchmark and tell me that such an optimization is
unnecessary and I'll quit whining.
---
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