← Back to team overview

yade-dev team mailing list archive

[Branch ~yade-pkg/yade/git-trunk] Rev 3954: make the recursion conditional for invasion in multiphase flow

 

------------------------------------------------------------
revno: 3954
committer: Bruno Chareyre <bruno.chareyre@xxxxxxxxxxxxxxx>
timestamp: Mon 2016-10-24 13:41:05 +0200
message:
  make the recursion conditional for invasion in multiphase flow
modified:
  pkg/pfv/TwoPhaseFlowEngine.hpp
  pkg/pfv/UnsaturatedEngine.cpp


--
lp:yade
https://code.launchpad.net/~yade-pkg/yade/git-trunk

Your team Yade developers is subscribed to branch lp:yade.
To unsubscribe from this branch go to https://code.launchpad.net/~yade-pkg/yade/git-trunk/+edit-subscription
=== modified file 'pkg/pfv/TwoPhaseFlowEngine.hpp'
--- pkg/pfv/TwoPhaseFlowEngine.hpp	2015-09-24 07:25:27 +0000
+++ pkg/pfv/TwoPhaseFlowEngine.hpp	2016-10-24 11:41:05 +0000
@@ -127,6 +127,7 @@
 
 	YADE_CLASS_BASE_DOC_ATTRS_INIT_CTOR_PY(TwoPhaseFlowEngine,TwoPhaseFlowEngineT,"documentation here",
 	((double,surfaceTension,0.0728,,"Water Surface Tension in contact with air at 20 Degrees Celsius is: 0.0728(N/m)"))
+	((bool,recursiveInvasion,true,,"If true the invasion stops only when no entry pc is less than current capillary pressure, implying simultaneous invasion of many pores. Else only one pore invasion per invasion step."))
 	((bool,initialWetting,true,,"Initial wetting saturated (=true) or non-wetting saturated (=false)"))
 	((bool, isPhaseTrapped,true,,"If True, both phases can be entrapped by the other, which would correspond to snap-off. If false, both phases are always connected to their reservoirs, thus no snap-off."))
 	((bool, isInvadeBoundary, true,,"Invasion side boundary condition. If True, pores of side boundary can be invaded; if False, the pore throats connecting side boundary are closed, those pores are excluded in saturation calculation."))	

=== modified file 'pkg/pfv/UnsaturatedEngine.cpp'
--- pkg/pfv/UnsaturatedEngine.cpp	2015-06-30 14:20:30 +0000
+++ pkg/pfv/UnsaturatedEngine.cpp	2016-10-24 11:41:05 +0000
@@ -211,7 +211,7 @@
 	    nCell->info().saturation=localSaturation;
 	    nCell->info().hasInterface=false;
 	    if(solver->debugOut) {cerr<<"drainage"<<endl;}
-	    invasionSingleCell(nCell);
+	    if (recursiveInvasion) invasionSingleCell(nCell);
 	  }
 ////FIXME:Introduce cell.hasInterface	  
 // 	  else if( (localPressure-nCell->info().p()>nPcThroat) && (localPressure-nCell->info().p()<nPcBody) && (cell->info().hasInterface==false) && (nCell->info().hasInterface==false) ) {
@@ -227,7 +227,7 @@
 	    nCell->info().p() = localPressure;
 	    nCell->info().saturation=localSaturation;
 	    if(solver->debugOut) {cerr<<"imbibition"<<endl;}
-	    invasionSingleCell(nCell);
+	    if (recursiveInvasion) invasionSingleCell(nCell);
 	  }
 //// FIXME:Introduce cell.hasInterface	  
 // 	  else if ( (nCell->info().p()-localPressure<nPcBody) && (nCell->info().p()-localPressure>nPcThroat) /*&& (cell->info().hasInterface==false) && (nCell->info().hasInterface==false)*/ ) {