On Wed, 23 Mar 2011, Vetter Roman wrote:

> I'm solving a transient nonlinear implicit system in parallel. In
> each time step, a list of interacting element pairs is built, based
> on which the residual and jacobian are constructed. These element
> interactions spread over arbitrary processors, e.g. element 0
> (processor 0) interacts with element 24 (processor 1), and in the
> next step the interaction happens between element 0 and 30
> (processors 0 and 2), and so on. In other words, any node may
> interact with any other node on any processor at any time. The
> interaction pairs are recalculated after every nonlinear iteration
> step.
>
> How can I implement this in libMesh? It works fine in serial mode,
> where I can just fill in ANY entries in the residual vector and
> jacobian matrix. The program fails to converge however in parallel
> mode, and I suppose this is because entries outside the (initially
> set) sparsity pattern are set, which then don't get communicated,
> because libMesh is not expecting arbitrary long range interactions.

Try in debug mode - I suspect you won't just see convergence failure,
you'll see an assertion thrown when you try to access nonexistent data
from a ghosted vector.

> Will I need to deal with updated send_lists? How does this work?

Right now, it might not work at all - there's no provision or official
support for user-updated send_lists.  We've been talking about an API
for doing that nicely, but mostly discussing off-list since the
application is sensitive.  Derek, would you mind going back through
that discussion and reposting (censored if necessary) to the list
where possible?

But the discussion may be academic for you: I don't have time or
direct motivation to implement the result right now, so unless you or
the INL people want to dig in we won't have a nice API any time soon.
In the meantime, you'll probably need to hack into the system reinit
code to allow you to manually add dofs to each send_list in between
where DofMap generates the list and where reinit uses it to
reinitialize vectors.
---
Roy

------------------------------------------------------------------------------
Enable your software for Intel(R) Active Management Technology to meet the
growing manageability and security demands of your customers. Businesses
are taking advantage of Intel(R) vPro (TM) technology - will your software 
be a part of the solution? Download the Intel(R) Manageability Checker 
today! http://p.sf.net/sfu/intel-dev2devmar
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users

Reply via email to