← Back to team overview

dolfin team mailing list archive

Re: SubDomains and SubSystems

 

On Mon, Nov 17, 2008 at 12:20:18PM +0100, Harish Narayanan wrote:
> Hello all,
> 
> I'm trying to solve a coupled-physics problem in 3D and I've got a
> couple of questions.
> 
> 1. Can (Dirichlet) boundary conditions not be set on edges (or points)
> when working in 3D? I get errors of the following form,
> 
> *** Warning: Found no facets matching domain for boundary condition.
> 
> though I can see that the corresponding SubDomain.inside returns valid
> points (which don't form facets).

Boundary conditions can normally only be set on facets (the thing with
dimension -1, so edges in 2D and faces in 3D).

But there is a possibility of setting "BCmethod" to "pointwise", which
should allow you to set boundary conditions anyhow you like (as long
as there's a degree of freedom nearby).

> 2. When working with multiple forms (including multiple FFC-generated .h
> files in C++), how do I use SubSystem correctly? With one form, say
> elasticity, I separate components of the displacement field via
> 
> SubSystem u0(0); //etc.
> 
> and apply boundary conditions specific to this component via something like:
> 
> DirichletBC bc1(fix, mesh, left, u0);
> 
> When I have an additional form, say the heat conduction problem, how do
> I now refer to its temperature field when setting boundary conditions?

If there's only one field (just a scalar temperature), the subsystem
variable should not be needed, so just

DirichletBC bc1(value, mesh, where);

should work.

The interface for this has been changed in the hg version of DOLFIN,
which has just converged so if you're mainly using the C++ interface
it should be "safe" now to upgrade (beta testers welcome... :-).

-- 
Anders

Attachment: signature.asc
Description: Digital signature


Follow ups

References