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