My question is about implementation alone.

  • Consider a square domain with regular square, cell centred finite volumes. This is for the multiscale finite volume method (Jenny and Lunati)
  • I need to solve the Poisson equation on each cell of the "dual mesh", i.e., the mesh constructed by joining centroids of each cell. (the dual mesh will look like a translation of the original mesh; 4 cells of the dual mesh make up one cell of primary mesh)

  • I will need to use this to construct the "transmissibilities" for each cell of the primary mesh.

My question is:

  1. What kind of date structure should I use that will help me go from primary to dual mesh easily
  2. I am confused what I shld store, the coordinates of the cell centres, or the locations of the faces ?
  3. How do I store the data that will tell me which 4 dual cells make up a given primary cell ?

It seems to me I will need to do a kind of "assembly" for my transmissibility matrix as I visit each dual cell and solve a local Poisson problem.

  • 2
    $\begingroup$ Is the domain partitioned into a fully structured tensor-product mesh? If yes, then all the neighbor-relations can be trivially computed on the fly. $\endgroup$ Commented Apr 6, 2014 at 17:14

2 Answers 2


I'm not familiar with the work by Jenny and Lunati, so this answer might be wrong. But if I understand correctly, the geometry you want can be generated in a few lines using PyClaw; see this notebook. This figure shows the primary and dual grids:


You can also use mapped grids, and ghost cells are automatically generated if you need them:


If either of those is what you're looking for, I can post all the necessary code here inline (it's in the notebook linked above).


Did you consider implementing the algebraic MSFV instead? The implementation complexity is a lot less. Details can be found in the paper "An operator formulation of the multiscale finite-volume method with correction function" by Lunati, 2009.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.