[aspect-devel] internal velocity boundary conditions

Wolfgang Bangerth bangerth at tamu.edu
Wed May 13 05:56:21 PDT 2015


> The short form of my question is: Is it possible to define “internal” velocity
> boundary conditions in Aspect: that is
> can I fix the velocity at nodes inside the model domain? If the answer is yes,
> can someone comment on the basic steps
> that would be needed (e.g., need to flag these nodes as “boundary conditions”
> so they get handled properly during assembly of the solution matrices, then
> assign velocities,…).

We don't currently have a way that I would characterize as "not a hack", but I 
can tell you where you need to place the hack.

In essence, what you need to accomplish is that you constrain the velocity at 
certain nodes to have a particular value. The right place to do this is in 
core.cc, in function compute_current_constraints(). We put the boundary values 
into the current_constraints object, and you need to add yours there as well. 
It will require a loop over all locally owned and ghost cells, identification 
of which DoFs you want to constrain and to which value, and then adding the 
corresponding constraints. Probably not more than 100 lines of code, but at a 
deal.II-fu level you're probably not used to (yet?).

The thing that is going to make this more difficult is that we use higher 
order elements whose nodes are not just the vertices but also edge, face and 
cell midpoints that you may also want to constrain. (Although, I could imagine 
that you can get a pretty decent approximation to what you want to do if you 
just constrain vertex DoFs).

I think it's an interesting question in general how to support such 
operations. There is no plugin type that can support working on the internals 
at this level of abstraction. I can see ways of implementing this outside 
core.cc by introducing a collection of signals that you can attach to, but I 
think it would be useful to have a prototype implementation first to look at 
and see what is required before trying to come up with a general implementation.


Wolfgang Bangerth               email:            bangerth at math.tamu.edu
                                 www: http://www.math.tamu.edu/~bangerth/

More information about the Aspect-devel mailing list