dolfin team mailing list archive
-
dolfin team
-
Mailing list archive
-
Message #17887
Re: [Question #103034]: Different norms of a functional
Question #103034 on DOLFIN changed:
https://answers.launchpad.net/dolfin/+question/103034
Murtazo Nazarov posted a new comment:
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 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
>>
>>
>>
>
> I have some problem with dofmap for dG(1) elements. Here the piece of
> the code I am using:
>
> const DofMap& dofmap = U.function_space().dofmap();
> real Umax = 0.;
> UFCCell ufc_cell(*cell);
> uint dofsize = dofmap.max_local_dimension();
> uint* cell_dofs = new uint[dofsize];
> dofmap.tabulate_dofs(cell_dofs, ufc_cell, cid);
> for (int i = 0; i < dofsize; i++){
> Umax = max(Umax, fabs(Uarr[cell_dofs[i]]));
> }
>
> It works fine for dG(0), however it gives strange results for dG(1).
>
> Can anyone help?
>
> Thanks,
> Murtazo
>
>
it seems it works now.
murtazo
>
>>
>>
>>>>
>>>>
>>>>>>>> 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
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>
>>>>
>>
>
>
--
You received this question notification because you are a member of
DOLFIN Team, which is an answer contact for DOLFIN.