← Back to team overview

yade-dev team mailing list archive

DFNFlow check script and trickPerm uncertainty fix

 

Hello,

I am working on a check test for DFNFlow in which I use pressure and
aperture as pass criteria. However, I want this check script to be a
repeatable baseline for DFNFlow, so I'd like to remove/replace the existing
uncertainty associated with tricking permeability. If this change may
affect you, please review the following and reply with your
comments/suggestions.

*Existing problem:*
Currently, DFNFlow tricks facet permeability by using the most recently
visited edge, which means the tricked facet permeability has no physical
basis, in fact, it depends on the order of the C++ for loop.

*Discussed solution:*
Luc, Timos, Bruno, and I discussed this a bit in Aix-en-Provence and
agreed(?) that we should increment the total aperture of a facet for every
broken edge associated with that facet. In other words, if one facet has 2
broken edges, the aperture used to trick facet permeability is the
summation of both apertures (instead of the most recently visited edge
during tickPerm loop). Thus, the aperture incrementation method has some
physical basis and no longer depends on the order of C++ for loop.

If we want/need to keep the uncertain trickPerm method around, let me know
and I will add a flag for you.

*Proposed changes to DFNFlow.cpp [1]:*

DFNFlow.cpp around line 245:

// increment the facet's aperture member:
if (cell1->info().count()[currentFacet.second] < 3){
  cell1->info().count()[currentFacet.second] += 1;
  cell1->info().aperture()[currentFacet.second] += aperture;
  }

// use the incremented facet aperture member to update facet permeability:
cell1->info().kNorm()[currentFacet.second] =
cell2->info().kNorm()[Tri.mirror_index(cell1,currentFacet.second)] =
apertureFactor*pow(cell1->info().aperture()[currentFacet.second],3)/(12*viscosity);

*Status:*
I used this method for creating the DFNFlow check script - the code is
stable and produces repeatable pass criteria.

Cheers,

Robert

[1]https://github.com/yade/trunk/blob/master/pkg/pfv/DFNFlow.cpp

Follow ups