[Dune] Fwd: Re: Navier-Stokes parallel with UG and YaspGrid in 2D

Oliver Sander sander at mi.fu-berlin.de
Mon Apr 9 19:03:19 CEST 2012


Does it work with UGGrid on an unrefined grid?

If not, can you please file a bug and attach a short programm that
reproduces the error?  (only for UGGrid)

thanks,
Oliver

Am 05.04.2012 22:02, schrieb manuel.hofmann at iwr.uni-heidelberg.de:
> Hi,
>
> it does not work if i use a linear solver with preconditioner( i get the
> errors as described in mz first email ). If I use e.g. bicgstab without
> a preconditioner it works. Unfortunately it does not converge. Yes i use
> the latest svn trunk of dune-grid.
>
> Regards,
> Manuel
>
>> Hi,
>>
>>> you're right, 2d ALUGrid is not parallel. It looks like I really have to
>>> find the time to publish SPGrid.
>>>
>>
>> That would be much appreciated anyways. We could finally retire SGrid
>> and YaspGrid.
>>
>>
>>> Implementing edge communication into YaspGrid basically shouldn't be too
>>> hard (it was trivial with SPGrid). Unfortunately, the codim 1 entities
>>> would have to be implemented first. I really cannot say anything
>>> about UG.
>>>
>>
>> It should really work in UGGrid (caveat: unless you refine your grid).
>> I take it you are using the svn trunk of dune-grid? Maybe I forgot
>> the all / all interface.
>>
>> Best,
>> Oliver
>>
>>> If you're not out for polynomial order, you could try using the mini
>>> element.
>>>
>>> On 03/20/2012 02:25 PM, manuel.hofmann at iwr.uni-heidelberg.de wrote:
>>>> Hi Martin,
>>>>
>>>> yes thats right I use Taylor-Hood Elements Q2/Q2 or P2/P1. As far as i
>>>> know ALUGrid does not support parallel mode in 2D. Is it hard to
>>>> program edge communication? How do I do that? Im not familiar with
>>>> parallel computing.
>>>>
>>>> Regards,
>>>>
>>>> Manuel
>>>>
>>>>
>>>> Zitat von Martin Nolte <nolte at mathematik.uni-freiburg.de>:
>>>>
>>>>> Hi Manuel,
>>>>>
>>>>> I guess you're using a Taylor-Hood element with 2nd order Lagrange
>>>>> polynomials for the velocity and first order ones for the pressure.
>>>>> The
>>>>> 2nd order polynomials have a degree of freedom on each edge of the
>>>>> grid. To use such a code in parallel, you need to communicate data on
>>>>> the edges residing on the process borders.
>>>>>
>>>>> Unfortunately, as far as I know neither UG nor YaspGrid support
>>>>> communication of edge data. Have you tried ALUGrid?
>>>>>
>>>>> Best,
>>>>>
>>>>> Martin
>>>>>
>>>>> On 03/20/2012 10:10 AM, manuel.hofmann at iwr.uni-heidelberg.de wrote:
>>>>>> Hi,
>>>>>>
>>>>>> i tried to run the navier-stokes (cgstokes_instat) example in
>>>>>> pdelab-howto in
>>>>>> parallel mode. However i get with YaspGrid and UGGrid some interface
>>>>>> communication errors. I used UG-3.9.1-patch7.
>>>>>>
>>>>>> [findDDDInterfaces_:/home/mhofmann/diplomarbeit/dev/dune/dune-grid/dune/grid/uggrid.hh:968]:
>>>>>>
>>>>>>
>>>>>>
>>>>>> Edge communication not supported for interfaces of type all / all
>>>>>> interface
>>>>>>
>>>>>> [comm:/home/mhofmann/diplomarbeit/dev/dune/dune-grid/dune/grid/yaspgrid.hh:2439]:
>>>>>>
>>>>>>
>>>>>>
>>>>>> interface communication not implemented
>>>>>>
>>>>>> I tried ISTLBackend_OVLP_BCGS_ILU0 and ISTLBackend_NOVLP_CG_NOPREC
>>>>>> as linear
>>>>>> solver and newton solver of pdelab as nonlinear sovler. Both with
>>>>>> the same
>>>>>> error message. I am using the latest dune-grid module
>>>>>>
>>>>>> This is how i load the grid with UG8(if thats important?):
>>>>>> Dune::MPIHelper& helper = Dune::MPIHelper::instance(argc, argv);
>>>>>> [...]
>>>>>> typedef Dune::UGGrid<2> GridType;
>>>>>> GridType grid;
>>>>>> std::string grid_file = "grids/cylinder.msh";
>>>>>> Dune::GridFactory<GridType> factory(&grid);
>>>>>> if(helper.rank()==0) {
>>>>>> Dune::GmshReader<GridType>::read(factory,grid_file,true,false);
>>>>>> }
>>>>>> factory.createGrid();
>>>>>> [...]
>>>>>> grid.globalRefine(parameters.domain_level);
>>>>>> if(!Dune::MPIHelper::isFake) grid.loadBalance();
>>>>>>
>>>>>> ---
>>>>>>
>>>>>> Dune::FieldVector<double,2> L(1.0);
>>>>>> Dune::FieldVector<int,2> N(1);
>>>>>> Dune::FieldVector<bool,2> B(false);
>>>>>> int overlap=1;
>>>>>> Dune::YaspGrid<2> grid(helper.getCommunicator(),L,N,B,overlap);
>>>>>> typedef Dune::YaspGrid<2>::LeafGridView GV;
>>>>>>
>>>>>>
>>>>>> Am i doing something wrong or is this still not implemented?
>>>>>>
>>>>>> Regards
>>>>>> Manuel
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> Dune mailing list
>>>>>> Dune at dune-project.org
>>>>>> http://lists.dune-project.org/mailman/listinfo/dune
>>>>>
>>>>> --
>>>>> Dr. Martin Nolte <nolte at mathematik.uni-freiburg.de>
>>>>>
>>>>> Universität Freiburg phone: +49-761-203-5630
>>>>> Abteilung für angewandte Mathematik fax: +49-761-203-5632
>>>>> Hermann-Herder-Straße 10
>>>>> 79104 Freiburg, Germany
>>>>
>>>>
>>>>
>>>>
>>>> ----- Ende der weitergeleiteten Nachricht -----
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> Dune mailing list
>>>> Dune at dune-project.org
>>>> http://lists.dune-project.org/mailman/listinfo/dune
>>>
>>
>> _______________________________________________
>> Dune mailing list
>> Dune at dune-project.org
>> http://lists.dune-project.org/mailman/listinfo/dune
>
>
>
>
> _______________________________________________
> Dune mailing list
> Dune at dune-project.org
> http://lists.dune-project.org/mailman/listinfo/dune




More information about the Dune mailing list