← Back to team overview

dolfin team mailing list archive

Re: Assembling the same boundary integral with different coefficients

 

On Fri, Jun 06, 2008 at 01:40:15PM +0200, Martin Sandve Alnæs wrote:
> 2008/6/6 Johan Hake <hake@xxxxxxxxx>:
> > On Friday 06 June 2008 13:19:54 Martin Sandve Alnæs wrote:
> >> Say I have a form
> >>
> >> a = u*v*dx + f*v*ds
> >
> > Isn't it possible to do
> >
> > a = u*v*dx + f0*v*ds0 + f1*v*ds1
> >
> > Johan
> 
> Sure, but my forms are more complicated than that,
> and it would add to the compilation time for the forms.

Well, there are two options:

1. Use two subdomains and two Functions, one on each domain.

2. Use one subdomain and one Function for the whole domain.

If you think (1) costs too much, then you need to define your Function
in such a way that it is takes care of the different domains. I guess
it should be possible to create one Function f which owns two
Functions f0 and f1, overload interpolate() for f and there send the
data on to either f0 or f1.

We could add an interface for this, something like

  f = Function([f0, f1, f2, ...], sub_domains)

but it seems overly complicated and specific.

-- 
Anders

Attachment: signature.asc
Description: Digital signature


Follow ups

References