← Back to team overview

ffc team mailing list archive

Re: DG lifting operator

 

On Fri, Jan 11, 2008 at 08:59:50AM -0500, Jake Ostien wrote:
> Jake Ostien wrote:
> > Anders Logg wrote:
> >   
> >> On Thu, Jan 10, 2008 at 09:29:56AM -0500, Jake Ostien wrote:
> >>   
> >>     
> >>> Hi,
> >>>
> >>> I'd like to write a form based on the lifting operator.  If the lifting 
> >>> operator (R) is defined as
> >>>
> >>>     -\int_Gamma avg(A):jump(B) dS = \int_Omega A:R(B) dV
> >>>
> >>> Is there any way I can define a form such as
> >>>
> >>>     \int_Omega R(A):R(B) dV
> >>>
> >>> Where e.g. A and B are BasisFunctions?
> >>>
> >>> I can do this already for a known Function, say H, where I say
> >>>
> >>>     V = TestFunction
> >>>     U = TrialFunction
> >>>
> >>>     H = Function
> >>>
> >>>     a = dot(V,U)*dx
> >>>     L = dot(avg(V),jump(H))*dS
> >>>
> >>> Then U is the lifted H, projected onto the basis of V.
> >>>
> >>> Should this same approach work for BasisFunctions?
> >>>
> >>> Jake
> >>>     
> >>>       
> >> I don't understand what you want to do. The only way I see to compute
> >> a projection (or lifting) is to define a bilinear form and linear form
> >> as you do and solve a linear system.
> >>
> >>   
> >>     
> > Yes, I see.  Here's the problem.  The lifting operator formulation looks 
> > like
> >     \int_Omega R(V):R(H) dV
> >
> > For the R(V) term, I can lift the BasisFunction V and project it to get 
> > a DiscreteFunction in DOLFIN, but then when I pass in those coefficients 
> > as arguments to the lifting operator form, how can I tell FFC that those 
> > coefficients are for the TestFunction?  If I could do this then I could 
> > just do the projections as a separate step and use the results.
> >
> >   
> Actually, this isn't right.  What I suggested was the projection
> 
>    -\int_gamma avg(V):jump(V) dS = \int_Omega V:U dV
> 
> where U = R(V), which is pretty much nonsense.
> 
> I'll have to figure out some other way.
> 
> Thanks,
> Jake

ok.

-- 
Anders


References