← Back to team overview

dolfin team mailing list archive

Re: assembling for subdomains

 

On Thu, May 24, 2007 at 03:10:57PM +0200, Garth N. Wells wrote:
> How does assembly over subdomains work? It first glance it's rather 
> confusing.

:-)

> Does DOLFIN assemble into a matrix just large enough for the 
> subdomain, or a matrix for the entire problem?

The entire problem. The integral(s) just happens to be defined on a
sub domain. The typical example is you have an integral over Omega and
then an integral over a subset of the boundary of Omega.

> Can one denote domains in 
> the FFC file?

Yes, you can do things like

dx0 = Integral("cell", 0)
dx1 = Integral("cell", 0)

ds0 = Integral("exterior facet", 0)
ds1 = Integral("exterior facet", 1)
ds2 = Integral("exterior facet", 2)

a = v*u*dx0 + f*v*u*dx1 + v*u*ds0 + ...*ds1 + ...*ds2

Then each of these will correspond to a sub domain in DOLFIN.

If you give a single sub domain argument to assemble, then all
integrals (cell, exterior facet, interior facet) will be over this sub
domain, but you can also specify a mesh function for each with an
arbitrary number of sub domains (can be different for different
integral types).

/Anders


References