New question #702425 on Yade:
https://answers.launchpad.net/yade/+question/702425
Hi guys,
I am using 2PFV, but have trouble to getCellVelocity.
Triangulation does not exist. Sorry.
Traceback (most recent call last):
File "/usr/bin/yade", line 343, in runScript
execfile(script,globals())
File "/usr/lib/python3/dist-packages/past/builtins/misc.py", line 87, in
execfile
exec_(code, myglobals, mylocals)
File "matrix_drain_scaled21_Calibrado2.py", line 344, in
celsVel1=unsat.getCellVelocity(ii)
Boost.Python.ArgumentError: Python argument types in
TwoPhaseFlowEngineT.getCellVelocity(TwoPhaseFlowEngine, int)
did not match C++ signature:
getCellVelocity(yade::TemplateFlowEngine_TwoPhaseFlowEngineT >,
yade::CGT::FlowBoundingSphereLinSolv >,
yade::CGT::FlowBoundingSphere > > > > {lvalue}, Eigen::Matrix
pos)
I modified the example -
https://gitlab.com/yade-dev/trunk/-/blob/master/examples/FluidCouplingPFV/oedometer.py
###
## Drainage Test under oedometer conditions ###
###
##Instantiate a two-phase engine
unsat=TwoPhaseFlowEngine()
#meanDiameter=(O.bodies[-1].shape.radius + O.bodies[6].shape.radius) / 2.
##set boundary conditions, the drainage is controlled by decreasing W-phase
pressure and keeping NW-phase pressure constant
unsat.bndCondIsPressure=[0,0,1,1,0,0]
unsat.bndCondIsWaterReservoir=[0,0,1,0,0,0]
unsat.bndCondValue=[0,0,-1e8,0,0,0]
unsat.isPhaseTrapped=True #the W-phase can be disconnected from its reservoir
unsat.initialization()
unsat.surfaceTension = 0.0728
unsat.updateTriangulation=True
unsat.meshUpdateInterval=200
unsat.defTolerance=0.3
#unsat.breakControlledRemesh=True
#start invasion, the data of normalized pc-sw-strain will be written into
pcSwStrain.txt
f1=open('MatrixCellsa4'+str(YM)+'_'+str(BS)+'.txt',"w")
ts=O.dt
pgstep= 40 #4500*ts #30Pa/s
print (pgstep)
pgmax= 1#9316 #Pa
mi=0.00089 #Pa.s
for pg in arange(1.0e-8,pgmax,pgstep):
unsat.bndCondValue=[0,0,(-1.0)*pg,0,0,0]
unsat.invasion()
unsat.computeCapillaryForce()
unsat.permeabilityMap=True
q=unsat.averageVelocity()
L=0.0016*(1+triax.strain[1]+ei1)
P=abs((mi*q*L)/pg)
print(unsat.getSaturation(isSideBoundaryIncluded=False),pg,-triax.strain[1],P,triax.porosity)
for b in O.bodies:
O.forces.setPermF(b.id, unsat.fluidForce(b.id))
if pg==520.0001:
cels=unsat.nCells()
celsW1 = [0.0]*cels
celsV1 = [0.0]*cels
celsBar1 = [0.0]*cels
celsPore1 = [0.0]*cels
celsVel1 = [0.0]*cels
celsSA1 = [0.0]*cels
for ii in range(cels):
celsW1=unsat.getCellIsWRes(ii)
celsV1=unsat.getCellVolume(ii)
celsBar1=unsat.getCellCenter(ii)
celsPore1=unsat.getPoreThroatRadiusList(ii)
celsVel1=unsat.getCellVelocity(ii)
celsSA1=unsat.getSolidSurfaceAreaPerParticle(ii)
f1.write(str(celsW1)+" "+str(celsV1)+" "+str(celsBar1)+"
"+str(celsPore1)+" "+str(celsVel1)+" "+str(celsSA1)+"\n")
f1.close()
--
You received this question notification because your team yade-users is
an answer contact for Yade.
___
Mailing list: https://launchpad.net/~yade-users
Post to : yade-users@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help : https://help.launchpad.net/ListHelp