← Back to team overview

ffc team mailing list archive

Re: Jump across an interface

 

On Mon, Jul 06, 2009 at 08:47:47PM -0500, Jehanzeb Hameed wrote:
> I am not sure if I follow you. Maybe I wasnt clear enough in defining
> my problem, so I'll take another stab at explaing it.
> 
> Say we have a mesh of N points. Mesh has two subdomains (numbered 0
> and 1), with an interface between the two. Say  Subdomain_0 has N_0
> nodes, sudomain 1 has N_1 nodes, and interface has N_interface nodes.
> Then note that:
> 
> N = N_0 + N_1 - N_interface  (since interface nodes were counted twice
> , once each in N_0 and N_1)
> 
> Now, say I have a continuous lagrange function u_0 on sudomain_0 and
> u_1 on subdomain_1. For P1 degree 1 elements, the degree of freedoms
> for these variables will be N_0 and N_1 . Now, I want to define an
> integral like (u_0 - u_1, v_0 - v_1) on the interface. The resulting
> linear system should have dimensions (N_0 + N_1)*(N_0 + N_1).
> 
> With this setup, how can I define that integral over the interface? I
> can split up the mesh into two submeshes, but then function space
> takes in one mesh in its initialization.

Use one single mesh and define the integral over the interface using
the standard dS and jump(), but when you assemble make sure to use the
argument interior_facet_domains. You need to create a
MeshFunction<uint> over interior facets to specify which facets are
part of the interface.

-- 
Anders


> If I split up the mesh into two, and treat it as one mesh, the
> interface will appear twice as external faces on the two meshes
> (treated as disjoint parts on one mesh by dolfin), and its not clear
> how to define that integral.
> 
> If I dont split up the mesh, then I cant see how to define continuous
> Lagrange elements on just part of a mesh.
> 
> -Jehanzeb
> 
> On Mon, Jul 6, 2009 at 10:07 AM, Anders Logg<logg@xxxxxxxxx> wrote:
> > On Wed, Jun 24, 2009 at 12:43:35AM -0500, Jehanzeb Hameed wrote:
> >> Hello,
> >>
> >> Is it possible to define jump over sub-domains (instead of just over
> >> interior faces). Here is what I am trying to do. I have a domain, with
> >> two subdomains. The subdomains are not disjoint, and have a common
> >> interface (say ds(0) ). Now, I want to define a integral over ds(0)
> >> for the jump in a variable (i.e. I'd like (jump(v), jump(u), ds(0)) .
> >>
> >> I want to use lagrange (continuous) over each subdomain, with jump
> >> just across the interface. Can this be done in ffc (or ufl).
> >
> > You should be able to define a MeshFunction over interior facets to
> > mark the interface. Then define an integral over that interface. See
> > one of the sub domain demos in DOLFIN. Note that you need to define
> > the interface, rather than the two sub domains.
> >
> >
> > -----BEGIN PGP SIGNATURE-----
> > Version: GnuPG v1.4.9 (GNU/Linux)
> >
> > iEYEARECAAYFAkpSExwACgkQTuwUCDsYZdHthgCfTVmtnGzgeZpECTYhURg5w08n
> > JEcAnjcmCMQ93eZsxDkoz+LnrtfOMnpb
> > =Ncc7
> > -----END PGP SIGNATURE-----
> >
> > _______________________________________________
> > FFC-dev mailing list
> > FFC-dev@xxxxxxxxxx
> > http://www.fenics.org/mailman/listinfo/ffc-dev
> >
> >
> _______________________________________________
> FFC-dev mailing list
> FFC-dev@xxxxxxxxxx
> http://www.fenics.org/mailman/listinfo/ffc-dev

Attachment: signature.asc
Description: Digital signature


Follow ups

References