[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