Dear Ana, apologies for the very late answer, somehow I missed this.
On 17 Jun 2022, at 09:27, Ana Carolina Loyola <anacarolina...@gmail.com<mailto:anacarolina...@gmail.com>> wrote: Dear Timo Thank you, that’s clear. What I am trying to do in my code is, before solving the system, Calling some external codes in parallel to do the upscaling of the material properties. For this multi-domain problem I think that not calling load balance solves the problem. I would also like to know what exactly makes the multi-domain problems non-compatible with parallel. Is it the type of matrix ? Parallelization is done via the grid in Dune. If you have two grids, one for fracture one for matrix, both need to support parallelism but Dune::FoamGrid currently doesn’t. Moreover, in the solver the correct communication pattern is not implemented for the multi domain models. Of course any contributions in these aspects are highly welcome. If yes, when using YaspGrid is there a way of asking it not to divide the mesh between processors? Because there is this other problem I am trying, which is not multi-domain, but uses the block matrix type for multi-domain to solve a fully coupled (elastic and one phase flow) model. Likewise, before solving the system I call external executables in parallel. For some reason, which I guess is the type of matrix, the system solving does not work in parallel. And I am not sure what I can do to prevent mesh parallelization in Yasp Grid, because I am not calling anything like loadBalance() but it is still dividind the mesh. Would you know how to do that ? You can pass a different communicator to the YaspGrid constructor (e.g. MPI_COMM_SELF). This option currently not exposed in the Dumux GridManager, so you have to modify this yourself. Best Timo Thanks a lot Ana Em sex., 17 de jun. de 2022 às 09:00, Timo Koch <timok...@math.uio.no<mailto:timok...@math.uio.no>> escreveu: Dear Ana, you’d have to explain more. What you are trying to achieve is not clear to me. The Newton itself doesn’t really care about parallelism. The assembler assembles on the gridview it is given (usually the gridview of one process (maybe you read your grid on all processes and don’t distribute it (i.e. don’t call loadBalance); then it would assemble on the whole grid on all processes) it is given and the linear solver handles all the communication during solve. Parts that should only run on one process, you can of course wrap in a «if comm.rank() == process_idx». Or you can make a subcommunicator of one process and give that to the grid on construction, again depending on what you are trying to achieve. Best Timo Timo 16. jun. 2022 kl. 18:53 skrev Ana Carolina Loyola <anacarolina...@gmail.com<mailto:anacarolina...@gmail.com>>: Hello, I am working on a multi-domain problem in Dumux 3.2 and I am aware that I can not solve the system in parallel when using multi-domain. However, there are some things in the code that I would like to parallelize. Is there a way of "tricking" the NewtonSolver class so it won't know that I am working with several processors and will solve the system with only one of them ? Thanks in advance, Ana _______________________________________________ DuMux mailing list DuMux@listserv.uni-stuttgart.de<mailto:DuMux@listserv.uni-stuttgart.de> https://listserv.uni-stuttgart.de/mailman/listinfo/dumux _______________________________________________ DuMux mailing list DuMux@listserv.uni-stuttgart.de<mailto:DuMux@listserv.uni-stuttgart.de> https://listserv.uni-stuttgart.de/mailman/listinfo/dumux
_______________________________________________ DuMux mailing list DuMux@listserv.uni-stuttgart.de https://listserv.uni-stuttgart.de/mailman/listinfo/dumux