[dune-pdelab] Finite Volume Method with slope reconstruction / alpha_volume_post_skeleton

Gregor Corbin corbin at mathematik.uni-kl.de
Tue May 9 13:54:53 CEST 2017


Hi Christian,

in my finite volume method with slope reconstruction, I implemented a 
local operator that computes the slopes.

As we discussed before, it uses the alpha_skeleton method to compute 
slopes at each face, and stores this information. Then in the 
alpha_volume_post_skeleton method, it uses the previously computed slopes.

But unfortunately, the alpha_volume_post_skeleton will not be executed 
after all the skeleton terms are done, but rather in between. To test 
this, I created a minimal 3x3 YASP-Grid  example and let the methods of 
the local operator print their name and some info about the current cell.

Is this behavior intended?  If yes, it seems like I have to define two 
operators and apply them successively.

I have attached the test program and its output. I use version 2.5 of 
all dune modules.

Cheers,

Gregor


On 28.04.2017 20:29, Christian Engwer wrote:
> Hi Gregor,
>
>> If I use a grid operator for this, how do I get the solution on neighboring
>> cells?  I suppose I could use the alpha_skeleton method to communicate this
>> information and then doing the reconstruction in the
>> alpha_volume_post_skeleton method. But this would mean a lot of storage and
>> copying overhead.
> I don't understand why you think you have to communicate information?!
> You use alpha_skeleton to compute the slope w.r.t. each neighbor. You
> can store this information in a stateful local operator and reuse the
> information on the same cell in the post-skeleton.
>
>> Also, the reconstruction has to be done before each stage of the time
>> stepping. So would I have to call the reconstruction operator from the
>> preStage() method of my original local operator?
> Yes.
>
>> Another question related to this: Are the intersections in a YASPGrid
>> ordered in a consistent way? I.e. has intersections(grid_view,cell)[0]
>> always the same normal?
> Yes.
>
> Ciao
> Christian

-------------- next part --------------
Hello World! This is LocalOperatorTest.
This is a sequential program.
[INFO]	Domain size = 3 3
[INFO]	#cells      = 9
alpha_boundary: cell inside 0 face 12
alpha_boundary: cell inside 0 face 0
alpha_volume_post_skeleton : cell = 0 center = -1 -1
alpha_skeleton: cell inside 1 cell outside 0 face 13
alpha_boundary: cell inside 1 face 1
alpha_volume_post_skeleton : cell = 1 center = 0 -1
alpha_skeleton: cell inside 2 cell outside 1 face 14
alpha_boundary: cell inside 2 face 15
alpha_boundary: cell inside 2 face 2
alpha_volume_post_skeleton : cell = 2 center = 1 -1
alpha_boundary: cell inside 3 face 16
alpha_skeleton: cell inside 3 cell outside 0 face 3
alpha_volume_post_skeleton : cell = 3 center = -1 0
alpha_skeleton: cell inside 4 cell outside 3 face 17
alpha_skeleton: cell inside 4 cell outside 1 face 4
alpha_volume_post_skeleton : cell = 4 center = 0 0
alpha_skeleton: cell inside 5 cell outside 4 face 18
alpha_boundary: cell inside 5 face 19
alpha_skeleton: cell inside 5 cell outside 2 face 5
alpha_volume_post_skeleton : cell = 5 center = 1 0
alpha_boundary: cell inside 6 face 20
alpha_skeleton: cell inside 6 cell outside 3 face 6
alpha_boundary: cell inside 6 face 9
alpha_volume_post_skeleton : cell = 6 center = -1 1
alpha_skeleton: cell inside 7 cell outside 6 face 21
alpha_skeleton: cell inside 7 cell outside 4 face 7
alpha_boundary: cell inside 7 face 10
alpha_volume_post_skeleton : cell = 7 center = 0 1
alpha_skeleton: cell inside 8 cell outside 7 face 22
alpha_boundary: cell inside 8 face 23
alpha_skeleton: cell inside 8 cell outside 5 face 8
alpha_boundary: cell inside 8 face 11
alpha_volume_post_skeleton : cell = 8 center = 1 1
-------------- next part --------------
A non-text attachment was scrubbed...
Name: LocalOperatorTest.cc
Type: text/x-c++src
Size: 5566 bytes
Desc: not available
URL: <https://lists.dune-project.org/pipermail/dune-pdelab/attachments/20170509/6f4b8e5b/attachment.cc>


More information about the dune-pdelab mailing list