Greeting,

>> transferring from one grid to another. Here it looks like it is artificially 
>> diffusive, but I do not
>> see a reason for this pattern if you did the refinement initially, and not 
>> with p4est, since then the base grid is the same as the Plex. Is that what 
>> your code does?

I am not sure how to differentiate the refining method. For the results that 
does not have this pattern, I provide the following command line options: 
-dm_type plex -grid_size 32,32. For the one that shows this odd pattern, the 
command line options I provide are: -dm_type p4est -dm_refine 5. 

> Also, when using p4est, the orientation of the cells are different than the 
> one generated when refining with DMPlex alone. I would double-check the code 
> if you are not making any assumption ons it 

I suppose this could indeed be the case as I do fiddle around with the Riemann 
solver interface in petscfv.c

Regards,
Mukkund Sunjii 

Sent on the go.

> On 18 Jun 2020, at 10:40 PM, Stefano Zampini <stefano.zamp...@gmail.com> 
> wrote:
> 
> 
> Also, when using p4est, the orientation of the cells are different than the 
> one generated when refining with DMPlex alone. I would double-check the code 
> if you are not making any assumption ons it 
> 
>> Il giorno gio 18 giu 2020 alle ore 23:24 Matthew Knepley <knep...@gmail.com> 
>> ha scritto:
>>> On Wed, Jun 17, 2020 at 3:21 PM MUKKUND SUNJII <mukkundsun...@gmail.com> 
>>> wrote:
>> 
>>> Yes, precisely! I am not sure how I can replicate using the original 
>>> version of ex11.c because it does not support bathymetry. 
>>> 
>>> Regardless, to demonstrate the discrepancy, I have uploaded three plots. 
>>> The scenario is a lake at rest. Essentially, you have a varying bathymetry 
>>> but a level water surface. If the model is well balanced, then the water 
>>> surface height must not change. The description of the files are below 
>>> 
>>> 1) Bathymetry.png : It shows you the bathymetry profile (z(x)) and the 
>>> water surface height (H = h+z(x)) at t = 0.
>> 
>> Hmm, that does look like a bug. The purpose of TransferVec is to preserve 
>> moments when transferring from one grid to another. Here it looks like it is 
>> artificially diffusive, but I do not
>> see a reason for this pattern if you did the refinement initially, and not 
>> with p4est, since then the base grid is the same as the Plex. Is that what 
>> your code does?
>> 
>>   Thanks,
>> 
>>     Matt
>>  
>>> <Bathymetry.png>
>>> 
>>> 2) Plex.png : This is the water surface height after 1 time step (0.007055 
>>> sec)  and the dm type is Plex. As you can see, the water surface height is 
>>> undisturbed as expected.
>>> <Plex.png>
>>> 
>>> 3) P4est.png : This is the result after 1 time step (same final time) if I 
>>> set the dm type as p4est. The noise is in the order of 1e-3 to be a little 
>>> more specific. Since its not specifically at the boundaries and more or 
>>> less spread throughout, it could indeed be noise introduced. But of course 
>>> I could be wrong.  
>>> <p4est.png>
>>> 
>>> Maybe this paints a better picture. 
>>> 
>>> Regards, 
>>> 
>>> Mukkund 
>>> 
>>> For your reference, the Riemann Solver is a modified version of the HLL 
>>> solver: A simple well-balanced and positive numerical scheme for the 
>>> shallow-water system by Emmanuel Audusse, Christophe Chalons, Philippe Ung. 
>>> (https://www.intlpress.com/site/pub/files/_fulltext/journals/cms/2015/0013/0005/CMS-2015-0013-0005-a011.pdf)
>>> 
>>>> On 17 Jun 2020, at 20:47, Mark Adams <mfad...@lbl.gov> wrote:
>>>> 
>>>> So you get this noise with a regular grid in p4est. So the same grid as 
>>>> will Plex, and you are not getting the same results.
>>>> 
>>>> I don't know of any difference from p4est on a non-adapted grid. Can you 
>>>> reproduce this with ex11?
>>>> 
>>>> Matt and Toby could answer this better.
>>>> 
>>>> 
>>>> On Wed, Jun 17, 2020 at 1:33 PM MUKKUND SUNJII <mukkundsun...@gmail.com> 
>>>> wrote:
>>>> Greetings, 
>>>> 
>>>> I am a master’s student working on the shallow water model of the TS 
>>>> example 'ex11.c' as part of my thesis. Therefore, I am working with 
>>>> DMForest for the implementation of adaptive grids. I have a question and 
>>>> an observation. 
>>>> 
>>>> I am trying to find relevant information about interpolation that takes 
>>>> place through the routine DMForestTransferVec. Perhaps it could be my 
>>>> inability to find it, but I am unable to locate the implementation of the 
>>>> routine 
>>>> 
>>>> (forest->transfervec)(dmIn,vecIn,dmOut,vecOut,useBCs,time). 
>>>> 
>>>> Any information on this particular routine is highly appreciated.
>>>> 
>>>> Furthermore, I have developed a well balanced Riemann Solver that includes 
>>>> topography in the model. In the process of testing both the non-adaptive 
>>>> and adaptive version, I found that my results differed when I changed the 
>>>> type of DM. For instance, when I run a scenario in a fixed, non-adaptive 
>>>> grid  with a DM of type 'P4est', I find that the well balanced nature is 
>>>> lost due to small perturbations all across the domain. However, this does 
>>>> not occur when I use a DM of type ‘plex’. Is there a radical change in the 
>>>> routines between the two DM’s? This is not as much of a question as it is 
>>>> an observation. 
>>>> 
>>>> Thank you for all of your suggestions! 
>>>> 
>>>> Regards, 
>>>> 
>>>> Mukkund 
>>>>  
>>>> 
>>> 
>> 
>> 
>> -- 
>> What most experimenters take for granted before they begin their experiments 
>> is infinitely more interesting than any results to which their experiments 
>> lead.
>> -- Norbert Wiener
>> 
>> https://www.cse.buffalo.edu/~knepley/
> 
> 
> -- 
> Stefano

Reply via email to