Re: [DuMux] Turn parallel on and off

2022-06-30 Thread Timo Koch
Dear Ana,

apologies for the very late answer, somehow I missed this.

On 17 Jun 2022, at 09:27, Ana Carolina Loyola 
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 
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 
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
https://listserv.uni-stuttgart.de/mailman/listinfo/dumux
___
DuMux mailing list
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


Re: [DuMux] Turn parallel on and off

2022-06-17 Thread Ana Carolina Loyola
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 ?

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 ?

Thanks a lot

Ana

Em sex., 17 de jun. de 2022 às 09:00, Timo Koch 
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>:
>
> 
> 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
> https://listserv.uni-stuttgart.de/mailman/listinfo/dumux
>
>
___
DuMux mailing list
DuMux@listserv.uni-stuttgart.de
https://listserv.uni-stuttgart.de/mailman/listinfo/dumux


Re: [DuMux] Turn parallel on and off

2022-06-17 Thread Timo Koch
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 :


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
https://listserv.uni-stuttgart.de/mailman/listinfo/dumux
___
DuMux mailing list
DuMux@listserv.uni-stuttgart.de
https://listserv.uni-stuttgart.de/mailman/listinfo/dumux


[DuMux] Turn parallel on and off

2022-06-16 Thread Ana Carolina Loyola
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
https://listserv.uni-stuttgart.de/mailman/listinfo/dumux