[Dune] Runtime error with parallel linear solver

Markus Blatt markus at dr-blatt.de
Thu Jun 11 11:36:34 CEST 2015


On Thu, Jun 11, 2015 at 10:38:10AM +0200, Tobias Ritschel wrote:
> Ah, this is clearly my error. I am using the constructor
> 
> OwnerOverlapCopyCommunication
> <http://www.dune-project.org/doc/doxygen/dune-istl-html/class_dune_1_1_owner_overlap_copy_communication.html#a93f446939bd4d6623bdf2e544f183f8c>
> (MPI_Comm
> comm_, SolverCategory::Category
> <http://www.dune-project.org/doc/doxygen/dune-istl-html/struct_dune_1_1_solver_category.html#ae061380ac961490be6ee353cf0dc1733>
> cat_=SolverCategory::overlapping,
> bool freecomm_=false)
> 
> and used the created object without an index set. Is the information
> automatically set up when constructing an IndexInfoFromGrid object, or
> should they be set with AddLocalIndex and AddRemoteIndex? And is this the
> most convenient way to set up the indices?

Don't use IndexInfoGrid. I assume that is a left over from ancient
dune-disc times. You can access the underlying index set by
OwnerOverlapCopyCommunication::indexSet() and use that to add the
indices with the correct tag. Later on get the remote indices with
OwnerOverlapCopyCommunication::remoteIndices() and call rebuild on it,

You will find more information on the index sets and how they are used
in dune-istl in the "Description of the parallel communication
interface" on https://dune-project.org/doc/index.html. You need one
index per degree of freedom and use the attribute owner to mark a
partitioning. In the easiest case you need to mark connected degrees
of freedom that are not owner on the process as copy.

If you are using dune-cornerpoint with one unknown per cell, then you
can use ParallelISTLInformation::copyValuesTo from opm-core to do the job.

Otherwise there is some manual work to do. E.g. compute the owner
region using grid communication.

Markus

> 
> On 11 June 2015 at 09:59, Markus Blatt <markus at dr-blatt.de> wrote:
> 
> > Hi,
> >
> > On Wed, Jun 10, 2015 at 09:00:36PM +0200, Tobias Ritschel wrote:
> > >
> > > terminate called after throwing an instance of
> > > 'Dune::InterfaceBuilder::RemotexIndicesStateError'
> > >
> > > As far as I can see, it is called when I call the member function apply
> > on
> > > the RestartedGMRES solver object.
> > >
> >
> > This only happens if the information in the RemoteIndices is not in
> > sync with the underlying IndexSets. This can be case if these were
> > changed, but there was not call to RemoteIndices::rebuild().
> > Thi is also reflected in the error message: "RemoteIndices is not in
> > sync with the index set. Call RemoteIndices::rebuild first!"
> >
> > So the question is: How do you set up the index sets and the remote
> > information that you are using in OwnerOverlapCopyCommunication?
> >
> > Cheers,
> >
> > Markus
> >
> >
> > Dr. Markus Blatt - HPC-Simulation-Software & Services
> > http://www.dr-blatt.de
> > Hans-Bunte-Str. 8-10, 69123 Heidelberg, Germany
> > Tel.: +49 (0) 160 97590858
> >
> > _______________________________________________
> > Dune mailing list
> > Dune at dune-project.org
> > http://lists.dune-project.org/mailman/listinfo/dune
> >
> >

-- 
Do you need more support with DUNE or HPC in general? 

Dr. Markus Blatt - HPC-Simulation-Software & Services http://www.dr-blatt.de
Hans-Bunte-Str. 8-10, 69123 Heidelberg, Germany
Tel.: +49 (0) 160 97590858
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <https://lists.dune-project.org/pipermail/dune/attachments/20150611/cfa8a0a3/attachment.sig>


More information about the Dune mailing list