On Tue, 23 Feb 2010, Andre Luis Rossa wrote:

> I've run libMesh with METHOD=dbg and I've found out what's wrong when the 
> program tries to access the system's additional vector using more than one 
> processor (unfortunetly I'm not sure how to fix it, yet).
>
> The out of range error occurs because, apparently, the additional vector is 
> dimentioned only for the local (processor domain) nodes.
>
> I've generated a very small simple mesh (2x2x1 hexa 8). I've executed it with 
> only 2 processors.
>
> The error occurs when processor 1 try to compute something for a element 
> which nodes are over the interface of the two processors domain (i.e., a node 
> that belongs to both domains). The dof map returns a global index number that 
> belongs to the processor one's index range.
>
> As I've verified, the system's "current_solution" is dimentioned for  the 
> global number nodes so it doesn't present this problem.
>
> So, is there a way to avoid this index error?
> Is there something like a "update()" (as the solution vector) method for this 
> case?
> Or maybe should it be realocated for the global number of nodes before using 
> it?

That's right.  System::add_vector() by default creates a vector of
type PARALLEL.  You'll want to reinitialize that vector as GHOSTED or
SERIAL if you need each processor to be able to directly access ghost
DoF values or all values, respectively.
---
Roy

------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users

Reply via email to