← Back to team overview

dolfin team mailing list archive

Re: DG

 

> On Thu, Jan 18, 2007 at 11:20:16AM +0100, Johan Hoffman wrote:
>> Ok. I understand.
>>
>> So it is assumed that a discontinuous element is discontinuous along all
>> cell faces.
>
> Yes.
>
>> Ideally you would like to be able to integrate over subdomains of the
>> mesh; typically defined by the dx/ds-operators.
>>
>> Maybe something like:
>>
>> Mesh mesh("mesh.xml");
>>
>> Array<Face> surf_faces_1;
>> surf_faces_1 = ...
>>
>> Array<Face> surf_faces_2;
>> surf_faces_2 = ...
>>
>> mesh.defineSurface(surf_faces_1);
>> mesh.defineSurface(surf_faces_2);
>>
>> [in form-file]
>>
>> ...
>>
>> a = (u,v)*ds1 + (u,v)*ds2
>
> Yes, that would be great, but there is no such support in the UFC
> specification. It is always assumed that you integrate over the whole
> mesh.
>
> So you need to define different forms for different meshes, but that
> should be ok?

Maybe, as long as there is a natural way to add forms. If assembling
matrices, I guess that you could always assemble different matrices for
different meshes and then add them together in some way (although this
appears a bit cumbersome?), and for adding the action of several forms I'm
not sure what to do.

>From my perspective I think the natural way would be to include the option
of assembling over only a part of the mesh inside FFC/Dolfin::Assembler,
rather than figuring out a way to add matrices/actions after assembly. As
far as I can see, assembling over a submesh (volume or surface) should be
as easy as using an bool-indicator MeshFunction over cells/faces inside
the assembly loop.

What do you think?

/Johan

>
> /Anders
>
>
>
>> /Johan
>>
>>
>> > What we have implemented for DG is the ability to define integrals
>> > over interior facets that have contributions from both sides of the
>> > facet, so you can write
>> >
>> >     v('+')*v('-')*avg(v)*jump(u, n)...
>> >
>> > It's a little different from what you have in that the integral is
>> > over all interior facets in the mesh, not just along some given
>> > surface.
>> >
>> > Perhaps you could extract all the cells in the mesh that border to the
>> > common surface, so instead of having some interior surface, you have
>> > an interior mesh that contains the surface and each interior facet in
>> > that mesh connects to exactly two cells, one on each side.
>> >
>> > /Anders
>> >
>> >
>> > On Thu, Jan 18, 2007 at 09:24:01AM +0100, Johan Hoffman wrote:
>> >> Garth and Anders,
>> >>
>> >> I am interested in solving a problem where I a priori specifies an
>> inner
>> >> surface (aligned with cell faces) where the solution is
>> discontinuous.
>> >> The
>> >> coupling of the solution over the discontinuity is taken cared of by
>> a
>> >> surface integral over that inner surface (like a penalty term).
>> >>
>> >> For this I expect to need:
>> >>
>> >> (1) a data structure with "double nodes" at a predefined surface (=
>> >> collection of nodes/faces).
>> >>
>> >> (2) for the nodes on the surface; the ability to assemble only
>> >> contribution from either side of the surface for the "double nodes"
>> >> respectively (where the two sides of the surface may be represented
>> by a
>> >> MeshFunction for example).
>> >>
>> >> (3) a surface integral defined over an inner surface.
>> >>
>> >> I suspect that some parts of (1)-(3) is already in place, as part of
>> the
>> >> DG work? What remains to be done to handle this problem?
>> >>
>> >> /Johan
>> >>
>> >>
>> >> _______________________________________________
>> >> DOLFIN-dev mailing list
>> >> DOLFIN-dev@xxxxxxxxxx
>> >> http://www.fenics.org/mailman/listinfo/dolfin-dev
>> > _______________________________________________
>> > DOLFIN-dev mailing list
>> > DOLFIN-dev@xxxxxxxxxx
>> > http://www.fenics.org/mailman/listinfo/dolfin-dev
>> >
>>
>>
>> _______________________________________________
>> DOLFIN-dev mailing list
>> DOLFIN-dev@xxxxxxxxxx
>> http://www.fenics.org/mailman/listinfo/dolfin-dev
> _______________________________________________
> DOLFIN-dev mailing list
> DOLFIN-dev@xxxxxxxxxx
> http://www.fenics.org/mailman/listinfo/dolfin-dev
>




Follow ups

References