Setting Boundary indicators on Vertices

196 views
Skip to first unread message

Ramachandran K.N.

unread,
Feb 24, 2015, 9:14:45 PM2/24/15
to dea...@googlegroups.com
Hi,

I have been using Deal.II for a Particle In cell code for a while now. Up till now, I had set boundary conditions by calling set_boundary_indicator on a cell's face, if the face's center was within some circle (representing a capillary, say).

But this colours the entire face and if I wanted to colour the vertices in the boundary face (for a more fine grained enforcement of boundary conditions), if there is an obvious way through the Deal.II API? Does setting boundary values on the vertices as such make sense?

I think the closest approach I found was in this query, posted in the forums here:
https://groups.google.com/forum/#!searchin/dealii/boundary$20vertex/dealii/Ig5kfjotNQM/39mCYfKPEsAJ

So I would have to create a std::map and keep inserting the vertex index and map it to a boundary indicator or the actual Dirichlet value that I want on it?

Regards,
Ramachandran K.N.

Wolfgang Bangerth

unread,
Feb 25, 2015, 9:11:32 AM2/25/15
to dea...@googlegroups.com

Ramachandran,

> I have been using Deal.II for a Particle In cell code for a while now. Up till
> now, I had set boundary conditions by calling set_boundary_indicator on a
> cell's face, if the face's center was within some circle (representing a
> capillary, say).
>
> But this colours the entire face and if I wanted to colour the vertices in the
> boundary face (for a more fine grained enforcement of boundary conditions), if
> there is an obvious way through the Deal.II API? Does setting boundary values
> on the vertices as such make sense?

No. The API follows the mathematics and it doesn't make mathematical sense :-)

The thing is that mathematically, you can impose boundary values because the
solutions of PDEs have a trace, i.e., they can be evaluated in some reasonable
sense along pieces of the boundary. But they cannot be evaluated at individual
points (for example, because H^1 functions are not necessarily continuous at
points in 2d, or along lines in 3d, and so point values are not well defined).
And because they cannot be evaluated at points, you can also not require that
they are equal some prescribed value at individual points on the boundary.

Long story short, mathematically it doesn't make sense to impose boundary
values at only one point in 2d, or along an edge in 3d. Consequently, deal.II
has never had a need to store boundary indicators for points (except in 1d).

>
> I think the closest approach I found was in this query, posted in the forums here:
> https://groups.google.com/forum/#!searchin/dealii/boundary$20vertex/dealii/Ig5kfjotNQM/39mCYfKPEsAJ
>
> So I would have to create a std::map and keep inserting the vertex index and
> map it to a boundary indicator or the actual Dirichlet value that I want on it?

Yes, map it to the Dirichlet value.

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