This should do the 1-norm and the \infty-norm Thanks, Matt & Justin -- What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead. -- Norbert Wiener https://www.cse.buffalo.edu/~knepley/ <http://www.caam.rice.edu/~mk51/>
On 21/05/18 14:50, Matthew Knepley wrote:
This should do the 1-norm and the \infty-norm
errornorm (and norm, which it uses) compute the L^2 (H1, H(div), H(curl)) norms. Adding the p-norm: ||f||_p = (\int |f|^p dx)^(1/p) is easy to do. The inf-norm is harder, because the the function is not contained in the hull defined by its piecewise linear interpolant at the nodes. Or do you want (not currently implemented, but available via the Vec representation) the discrete l2/l1/linf norms? Available as: with assemble(expr).dat.vec_ro as v: v.norm(whatever norm type) Lawrence
On Mon, May 21, 2018 at 10:48 AM, Lawrence Mitchell < lawrence.mitchell@imperial.ac.uk> wrote:
On 21/05/18 14:50, Matthew Knepley wrote:
This should do the 1-norm and the \infty-norm
errornorm (and norm, which it uses) compute the L^2 (H1, H(div), H(curl)) norms. Adding the p-norm:
||f||_p = (\int |f|^p dx)^(1/p)
is easy to do.
Great, I would take that.
The inf-norm is harder, because the the function is not contained in the hull defined by its piecewise linear interpolant at the nodes.
I thought you could get it by duality, but I am guessing I am wrong (maybe just a bound). Thanks, Matt
Or do you want (not currently implemented, but available via the Vec representation) the discrete l2/l1/linf norms? Available as:
with assemble(expr).dat.vec_ro as v: v.norm(whatever norm type)
Lawrence
-- What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead. -- Norbert Wiener https://www.cse.buffalo.edu/~knepley/ <http://www.caam.rice.edu/~mk51/>
On 21/05/18 15:50, Matthew Knepley wrote:
On Mon, May 21, 2018 at 10:48 AM, Lawrence Mitchell <lawrence.mitchell@imperial.ac.uk <mailto:lawrence.mitchell@imperial.ac.uk>> wrote:
On 21/05/18 14:50, Matthew Knepley wrote: > This should do the 1-norm and the \infty-norm
errornorm (and norm, which it uses) compute the L^2 (H1, H(div), H(curl)) norms. Adding the p-norm:
||f||_p = (\int |f|^p dx)^(1/p)
is easy to do.
Great, I would take that.
The inf-norm is harder, because the the function is not contained in the hull defined by its piecewise linear interpolant at the nodes.
I thought you could get it by duality, but I am guessing I am wrong (maybe just a bound).
If you have a method, I'm all ears. Cheers, Lawrence
On 21/05/18 15:50, Matthew Knepley wrote:
On Mon, May 21, 2018 at 10:48 AM, Lawrence Mitchell <lawrence.mitchell@imperial.ac.uk <mailto:lawrence.mitchell@imperial.ac.uk>> wrote:
On 21/05/18 14:50, Matthew Knepley wrote: > This should do the 1-norm and the \infty-norm
errornorm (and norm, which it uses) compute the L^2 (H1, H(div), H(curl)) norms. Adding the p-norm:
||f||_p = (\int |f|^p dx)^(1/p)
is easy to do.
Great, I would take that.
https://github.com/firedrakeproject/firedrake/pull/1235 Lawrence
On Mon, May 21, 2018 at 11:33 AM, Lawrence Mitchell < lawrence.mitchell@imperial.ac.uk> wrote:
On 21/05/18 15:50, Matthew Knepley wrote:
On Mon, May 21, 2018 at 10:48 AM, Lawrence Mitchell <lawrence.mitchell@imperial.ac.uk <mailto:lawrence.mitchell@imperial.ac.uk>> wrote:
On 21/05/18 14:50, Matthew Knepley wrote: > This should do the 1-norm and the \infty-norm
errornorm (and norm, which it uses) compute the L^2 (H1, H(div), H(curl)) norms. Adding the p-norm:
||f||_p = (\int |f|^p dx)^(1/p)
is easy to do.
Great, I would take that.
Cheers! Time to see what L-1 convergence of some time-stepping problems looks like. Matt
Lawrence
-- What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead. -- Norbert Wiener https://www.cse.buffalo.edu/~knepley/ <http://www.caam.rice.edu/~mk51/>
participants (2)
- 
                
                Lawrence Mitchell
- 
                
                Matthew Knepley