← Back to team overview

dolfin team mailing list archive

Re: [Question #103034]: Different norms of a functional

 

On Mon, Mar 15, 2010 at 03:45:30PM -0000, Murtazo Nazarov wrote:
> Question #103034 on DOLFIN changed:
> https://answers.launchpad.net/dolfin/+question/103034
>
> Murtazo Nazarov posted a new comment:
> Anders Logg wrote:
> > Your question #103034 on DOLFIN changed:
> > https://answers.launchpad.net/dolfin/+question/103034
> >
> > Anders Logg posted a new comment:
> > On Sun, Mar 14, 2010 at 11:48:21PM -0000, Murtazo Nazarov wrote:
> >
> >> Question #103034 on DOLFIN changed:
> >> https://answers.launchpad.net/dolfin/+question/103034
> >>
> >> Murtazo Nazarov posted a new comment:
> >> Murtazo Nazarov wrote:
> >>
> >>> Your question #103034 on DOLFIN changed:
> >>> https://answers.launchpad.net/dolfin/+question/103034
> >>>
> >>>     Status: Answered => Open
> >>>
> >>> You are still having a problem:
> >>> Anders Logg wrote:
> >>>
> >>>
> >>>> Question #103034 on DOLFIN changed:
> >>>> https://answers.launchpad.net/dolfin/+question/103034
> >>>>
> >>>>     Status: Open => Answered
> >>>>
> >>>> Anders Logg proposed the following answer:
> >>>> On Wed, Mar 03, 2010 at 02:36:59AM -0000, Murtazo Nazarov wrote:
> >>>>
> >>>>
> >>>>
> >>>>> New question #103034 on DOLFIN:
> >>>>> https://answers.launchpad.net/dolfin/+question/103034
> >>>>>
> >>>>> Hi,
> >>>>>
> >>>>> I am wondering how to compute an L1-norm, and L_inf norm of a functional on the cell. For instance how to compute
> >>>>>
> >>>>> 1. ||\div(Pu)||_{L_\infty} ?
> >>>>>
> >>>>>
> >>>>>
> >>>> Try projecting div(Pu) onto piecewise constants and then pick the
> >>>> largest absolute value in the vector.
> >>>>
> >>>>
> >>>>
> >>>>
> >>> I need L_inf norm on the cell. With this way, doesn't give the L_inf for
> >>> the entire domain?
> >>>
> >>> murtazo
> >>>
> >>>
> >>>
> >> Instead of projecting div(Pu) onto piecewise constants, I projected it
> >> into dG(1), with this way I get three values on each cell, which I can
> >> then pick up the largest of them. That gives me then L_inf_K, where K is
> >> a cell. Now, I cannot figured out how is the numbering done for the
> >> dG(1) elements.
> >>
> >> If N is a total number of cells, then my projected vector Pdg has 3*N
> >> elements. How can I pick up elements of Pdg in the cell K?
> >>
> >> Thanks,
> >> murtazo
> >>
> >
> > Why do you use DG(1) instead of DG(0)? If you use DG(0), the numbering
> > is easier.
> >
> >
>
> DG(0) gives me an average of the function I have on the cell, however
> the values can be large on the vertices especially in the places where
> shocks exist.
>
> murtazo

ok, then I suggest working through tabulate_dofs in the DofMap class
to get the degrees of freedom for any given cell. Then you can just
access those from the vector.

--
Anders


> >
> >
> >
> >>>>> 2. ||\div(Pu)||_{L_1} ?
> >>>>>
> >>>>>
> >>>>>
> >>>> Try
> >>>>
> >>>> M = abs(div(Pu))*dx
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>> where u is velocity (vector) and P is pressure (scalar). L2 norm is obvious to do.
> >>>>>
> >>>>> I use C++ interface
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>
> >
> >
>

Attachment: signature.asc
Description: Digital signature


Follow ups

References