← Back to team overview

dolfin team mailing list archive

Re: assembly on sub domains

 

On Thu, May 08, 2008 at 11:33:49AM +0100, Nuno David Lopes wrote:
> But then what is the difference between 
> a MeshFunction for interior and exterior face_domains?
> Shouldn't they be the same only with different markers for the boundary and 
> for the interior?
> 
> MeshFunction<unsigned int> facets_subdomains(mesh, mesh.topology().dim() - 1);
> (it has the information for all the facets, doesn't it?)

Yes it does.

> Is the problem in the order of the markers:
> 0...n-1 in the exterior 
> 0...n-1 in the interior
>
> If we dont need the interior could we use the same MeshFunction, knowing that 
> the interior is marked with 0?

Are you talking about the facets in the interior? Those are not
included when integrating *ds terms anyway.

For the cells in the interior, you need to have a MeshFunction defined
on the cells, so something like

  MeshFunction<unsigned int> cell_domains(mesh, mesh.topology().dim());

-- 
Anders


> Thanks again.
> 
> 
> On Wednesday 07 May 2008, Anders Logg wrote:
> > On Wed, May 07, 2008 at 05:33:50PM +0100, Nuno David Lopes wrote:
> > > Ok i've got it, i think this shoud be the way:
> > >
> > > void dolfin::assemble(GenericTensor& A, Form& form, Mesh& mesh,
> > >                const MeshFunction<dolfin::uint>& cell_domains,
> > >                 const MeshFunction<dolfin::uint>&exterior_facet_domains,
> > >                 const MeshFunction<dolfin::uint>& interior_facet_domains)
> > > ?
> > >
> > > But still,  I have to pass 3 MeshFunction's ? even if we only need one,
> > > (but that isn't a problem).
> >
> > Yes, that's unfortunate but I don't what the interface should look
> > for specifying just one of them.
> 
> 
> 


Follow ups

References