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. _______________________________________________ Mailing list: https://launchpad.net/~dolfin Post to : [email protected] Unsubscribe : https://launchpad.net/~dolfin More help : https://help.launchpad.net/ListHelp

