Sorry about the delay; I'm still digging through a big work backlog.

On Wed, 20 Oct 2010, Tim Kroeger wrote:

> I just tracked down a bug in my solve-on-part-of-domain stuff, that is in the 
> (new) class SystemSubsetBySubdomain.  The idea of this class is to create a 
> list of all dofs that are adjacent to at least one (active) element whose 
> subdomain id is contained is a given list.

Is this sufficient for your usage?  You're not going to need all of
the dependencies of constrained hanging node DoFs?

> loop over active_local_elements
> {
>  if(subdomain_id is in the given list)
>  {
>    loop over dofs of this element
>    {
>      if(dof is owned by this processor)
>      {
>        put dof in list;
>      }
>      (*) // see below
>    }
>  }
> }
> sort list and remove duplicates;
>
>
> This gives a local list on each processor, but the list is wrong. That is, 
> the following thing can happen: A dof is owned by processor #n, and this dof 
> is adjacent to several elements, and only one of these elements has a 
> subdomain id in the given list, but just this element is owned by processor 
> #m (where m!=n).  In this case, this dof is not added to the list of 
> processor #n, nor to any other list.

Would it make sense to loop over all active elements, not just local
ones?

> Now, my idea for fixing this would be to add at the position indicated by 
> "(*)" the following code:
>
>
> else
> {
>  put dof into a different list;
> }
>
>
> and then, at the end, transfer this "different list" to all the other 
> processors.
>
> My question now: Is there already a mechanism for solving this problem nicely 
> somewhere in the library?  I guess it is (I remember that you guys were 
> talking about a "send_list"), but I don't know where and how to use it.  If 
> there is not, I will be able to manage this myself, but it might possibly not 
> be as efficient as it could be.

The send_list manipulations are in dof_map.C and
dof_map_constraints.C.  They're definitely not immediately usable for
building lists for a particular subdomain set, but some of the code
might be worth looking at since we'll have run into some of the same
catches.
---
Roy

------------------------------------------------------------------------------
Nokia and AT&T present the 2010 Calling All Innovators-North America contest
Create new apps & games for the Nokia N8 for consumers in  U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store 
http://p.sf.net/sfu/nokia-dev2dev
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users

Reply via email to