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

Reply via email to