On Wed, Oct 8, 2008 at 2:21 PM, David Fuentes <[EMAIL PROTECTED]> wrote:
>
>
> On Wed, 8 Oct 2008, John Peterson wrote:
>
>> On Wed, Oct 8, 2008 at 1:15 PM, David Fuentes <[EMAIL PROTECTED]> wrote:
>>>
>>> Hello,
>>>
>>>
>>> Could you please point me in the direction of the routines
>>> that will take a processor's local solution vector
>>>
>>>
>>> System::current_local_solution (proper syntax to refer to a class data
>>> member?)
>>>
>>> and scatter the local solution to the parallel global solution vector
>>>
>>> System::solution
>>
>> Hmm... It seems that we don't usually have values flowing that
>> direction.  Would it be possible for you to set values in the global
>> vector directly, and then call close()?  I normally have a loop on
>> every processor that only sets a value if the index is local and
>> ignores the rest.  This requires O(N) rather than O(N/P) loop
>> iterations, but it's easier to code IMO.
>
>
> Thank you John,
>
> That is a great idea!
> How do you determine if an index is local or not?

Suppose globalvector is a parallel vector of global length N...

for (index=0; index<N; ++index)
  if ((index >= globalvector.first_local_index()) &&
      (index <  globalvector.last_local_index()))
        {
          // Determine value
          globalvector.set(index, value);
        }



-- 
John

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users

Reply via email to