yade-dev team mailing list archive
-
yade-dev team
-
Mailing list archive
-
Message #11949
[Branch ~yade-pkg/yade/git-trunk] Rev 3623: fix inconsistency of side boundary cell pressure of closeBC drainage.
------------------------------------------------------------
revno: 3623
committer: Chao Yuan <chaoyuan2012@xxxxxxxxx>
timestamp: Mon 2015-03-23 18:46:14 +0100
message:
fix inconsistency of side boundary cell pressure of closeBC drainage.
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-02-25 09:26:05 +0000
+++ pkg/pfv/TwoPhaseFlowEngine.hpp 2015-03-23 17:46:14 +0000
@@ -107,6 +107,8 @@
CELL_SCALAR_GETTER(bool,.isWRes,cellIsWRes)
CELL_SCALAR_GETTER(bool,.isNWRes,cellIsNWRes)
+ CELL_SCALAR_GETTER(bool,.isTrapW,cellIsTrapW)
+ CELL_SCALAR_GETTER(bool,.isTrapNW,cellIsTrapNW)
CELL_SCALAR_SETTER(bool,.isNWRes,setCellIsNWRes)
CELL_SCALAR_GETTER(Real,.saturation,cellSaturation)
CELL_SCALAR_SETTER(Real,.saturation,setCellSaturation)
@@ -130,6 +132,8 @@
.def("savePhaseVtk",&TwoPhaseFlowEngine::savePhaseVtk,(boost::python::arg("folder")="./phaseVtk"),"Save the saturation of local pores in vtk format. Sw(NW-pore)=0, Sw(W-pore)=1. Specify a folder name for output.")
.def("getCellIsWRes",&TwoPhaseFlowEngine::cellIsWRes,"get status wrt 'wetting reservoir' state")
.def("getCellIsNWRes",&TwoPhaseFlowEngine::cellIsNWRes,"get status wrt 'non-wetting reservoir' state")
+ .def("getCellIsTrapW",&TwoPhaseFlowEngine::cellIsTrapW,"get status wrt 'trapped wetting phase' state")
+ .def("getCellIsTrapNW",&TwoPhaseFlowEngine::cellIsTrapNW,"get status wrt 'trapped non-wetting phase' state")
.def("getCellSaturation",&TwoPhaseFlowEngine::cellSaturation,"get saturation of one pore")
.def("setCellSaturation",&TwoPhaseFlowEngine::setCellSaturation,"change saturation of one pore")
.def("computeOnePhaseFlow",&TwoPhaseFlowEngine::computeOnePhaseFlow,"compute pressure and fluxes in the W-phase")
=== modified file 'pkg/pfv/UnsaturatedEngine.cpp'
--- pkg/pfv/UnsaturatedEngine.cpp 2015-01-09 14:03:43 +0000
+++ pkg/pfv/UnsaturatedEngine.cpp 2015-03-23 17:46:14 +0000
@@ -180,6 +180,7 @@
if (isPhaseTrapped) {
if ( cell->info().isTrapW ) {cell->info().p()=bndCondValue[3]-cell->info().trapCapP;}
if ( cell->info().isTrapNW) {cell->info().p()=bndCondValue[2]+cell->info().trapCapP;}
+ if ( !cell->info().isWRes && !cell->info().isNWRes && !cell->info().isTrapW && !cell->info().isTrapNW ) {cell->info().p()=bndCondValue[2]; if (isInvadeBoundary) cerr<<"Something wrong in updatePressure.(isInvadeBoundary)";}
}
}
}
@@ -291,6 +292,7 @@
RTriangulation& tri = solver->T[solver->currentTes].Triangulation();
FiniteCellsIterator cellEnd = tri.finite_cells_end();
for ( FiniteCellsIterator cell = tri.finite_cells_begin(); cell != cellEnd; cell++ ) {
+ if( (cell->info().isFictious) && (!cell->info().Pcondition) && (!isInvadeBoundary) ) continue;
if( (cell->info().isWRes) || (cell->info().isNWRes) || (cell->info().isTrapW) || (cell->info().isTrapNW) ) continue;
cell->info().trapCapP=pressure;
if(cell->info().saturation==1.0) cell->info().isTrapW=true;