[Dune] Parallel solvers in DUNE

Firmbach, Max max.firmbach at unibw.de
Fri Jun 18 13:01:23 CEST 2021


Hello Dune-Community,

I have some questions regarding parallel solvers in DUNE. I want to solve a linear systems of equations in parallel

and faced some difficulties trying to get a nonoverlapping version to work ...

My approach is to split my mesh up with the loadbalance command and afterwards assemble the stiffness matrix

on each local partition using the "interiorBorder (hope that is correct)" partition type. Afterwards the boundary

conditions are set.


Considering the preconditioner and solver, I define the following things:


  using Communication = OwnerOverlapCopyCommunication<int, int>;
  using SSOR                    = SeqSSOR<operatorType, blockVector, blockVector>;
  using Preconditioner   = NonoverlappingBlockPreconditioner<Communication, SSOR>;
  using ScalarProduct     = NonoverlappingSchwarzScalarProduct<blockVector, Communication>;
  using LinearOperator  = NonoverlappingSchwarzOperator<operatorType, blockVector, blockVector, Communication>;

  Communication  comm; comm.remoteIndices().rebuild<true>();
  SSOR                    ssor(stiffnessMatrix, 3, 0.7);
  Preconditioner  preconditioner(ssor, comm);
  ScalarProduct    scalarProduct(comm);
  LinearOperator linearOperator(stiffnessMatrix, comm);

  CGSolver<blockVector> solver(linearOperator, scalarProduct, preconditioner, 1e-8, 1000, (mpiRank==0) ? 2 : 0);

  InverseOperatorResult statistics;
  solver.apply(displacementVector, loadVector, statistics);


For a single process I get the right solution, but for more processes I get a mapping segmentation fault. When the partition

type is changed to "all" the solver runs through, but doesn't converge ... So am I using the right approach with the code snippet

from above or are there other ways in Dune to solve my system in parallel ?


Thanks for the help and best regards,

Max

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.dune-project.org/pipermail/dune/attachments/20210618/7dd08f54/attachment.htm>


More information about the Dune mailing list