Re: p4est and periodic BCs on distributed meshes

62 views
Skip to first unread message

Wolfgang Bangerth

unread,
Mar 6, 2013, 8:28:27 AM3/6/13
to Craig Michoski, Carsten Burstedde, deal.II developers

> Carsten is here this afternoon, and we are going to sit down for a few hours
> and see if we can get the periodic BCs working using the p4est periodicity.
> He has raised one concern, regarding the treatment of corners versus
> vertices in deal.ii as opposed to p4est. Is there any comments/suggestions
> you might make about the best way we can do this from the deal.ii side? The
> goal is to get it working in enough generality to be used by deal.ii for
> distributed meshes with p4est, or easily incorporated into the svn.

I don't have any particularly good suggestions. The concept of corners (and of
any kind of periodicity) is foreign to deal.II. p4est is much more general in
this regard (and, if I may, much better designed -- I wished we had had the
insight Carsten had when we first wrote deal.II).

The way we deal with periodicity in deal.II is via constraints that are
imposed on degrees of freedom. This works well on sequential triangulations
and integrates well with the general infrastructure on constraints, e.g. from
hanging nodes. I think this is the way I'd like to pursue also for the
parallel case as it would be the most "natural" avenue. The difficulty to
achieving this -- as you know -- is that not all necessary information is
available on every processor. I think one way to make sure that it is is to
teach p4est about the periodicity because then p4est makes sure that every
processor either owns the cells on both sides of the periodic boundary or at
least has one set of cells as ghosts. We can then use the usual deal.II
functions to compute the necessary constraints.

I have a difficult time seeing how an interface would look like to teaches
parallel::distributed::Triangulation about periodicities. The best I can think
of is something like this:
- You create a parallel::distributed::Triangulation
- Add a member function of parallel::distributed::Triangulation with an
interface similar to DoFTools::make_periodicity_constraints taking a
pair of face iterators (or a pair of boundary ids).
- This member function would only be able to work on an unrefined mesh.
- What it would do is extract the p4est_connectivity, create a new
p4est_connectivity with the added periodicity, and rebuild the
triangulation based on it.

I'm certainly open to other suggestions -- proposals welcome!

Best
W.
--
------------------------------------------------------------------------
Wolfgang Bangerth email: bang...@math.tamu.edu
www: http://www.math.tamu.edu/~bangerth/

Reply all
Reply to author
Forward
0 new messages