← Back to team overview

yade-users team mailing list archive

[Question #689547]: Few beginners questions on PFV

 

New question #689547 on Yade:
https://answers.launchpad.net/yade/+question/689547

Hi Guys,

I have really enjoy using YADE and I want to start involving fluid flow. I have read [1] and I have a few questions:
1. According to [1] YADE makes triangles (3D pyramids) between spheres and surrounding walls. How can I find out the pore numbers and there exact x,y,z location. Here pores would be the center point of a triangle. 
2. I am applying pressure at a specific x,y,z location using flow.imposePressure(Vector3(1,0.83,0),30000000). Would this be correct?
3. I often get the following error: 
Error: CHOLMOD error: argument missing. file: ../Cholesky/cholmod_factorize.c line: 121
Segmentation fault (core dumped)
In general, what does this error mean? Should I be installing something to make my model work or is this error associated with but in my YADE model?
4. I have the following code. I am applying a pressure of 30000000Pa at the point (1,0.83,0). There are 4 spheres and the pressure is being applied at an empty space in-between the sphere. When the code runs, none of the spheres move. This is extremely confusing. I mean, the pressure is a lot. I noticed that there is a force that is applied on the spheres due to the pressure (through the inspect button), but I don’t see any movement. Am I doing something wrong? Please help.

Thank you sooo much for your time. I really appreciate it.


[1]Catalano E. A pore–scale coupled hydromechanical model for biphasic granular media. Application to granular sediment hydrodynamics[D]. PhD thesis, Université de Grenoble, 2012.

# MATERIAL PROPERTIES
intR=0.1 # allows near neighbour interaction (can be adjusted for every packing)
DENS=2500 # Density
YOUNG=1800
FRICT=7
ALPHA=0.1
TENS=100
COH=1000

O.materials.append(JCFpmMat(type=1,density=DENS,young=YOUNG,poisson=ALPHA,frictionAngle=radians(FRICT),tensileStrength=TENS,cohesion=COH,label='mat1'))

mn,mx=Vector3(0,0,-0.5),Vector3(5,9,0.5) # corners of the initial packing
walls=aabbWalls([mn,mx],thickness=0,material='mat1')
wallIds=O.bodies.append(walls)

# PARTICLES
O.bodies.append([
 	sphere(center=( 0.5, 0.5, 0.0),radius=0.5,material='mat1'),
 	sphere(center=(1.5, 0.5, 0.0),radius=0.5,material='mat1'),
	sphere(center=(1,1.4, 0.0),radius=0.5,material='mat1'),
	sphere(center=( 2, 1.4, 0.0),radius=0.5,material='mat1'),
])

# SIMULATION LOOP
O.engines=[
     	ForceResetter(),
     	InsertionSortCollider([Bo1_Sphere_Aabb()]),
  	InteractionLoop(
    		[Ig2_Sphere_Sphere_ScGeom(interactionDetectionFactor=intR)],
   		[Ip2_JCFpmMat_JCFpmMat_JCFpmPhys(cohesiveTresholdIteration=1)],
   		[Law2_ScGeom_JCFpmPhys_JointedCohesiveFrictionalPM()]
 	 ),
     	GlobalStiffnessTimeStepper(active=1,timeStepUpdateInterval=10,timestepSafetyCoefficient=0.5, defaultDt=utils.PWaveTimeStep()),
 	NewtonIntegrator(damping=0.1),
	FlowEngine(dead=0,label="flow"),
	PyRunner(iterPeriod=200,command='history()')
]

def history():
 plot.addData(t=O.time,p=flow.getPorePressure((1,0.83,0)))

flow.defTolerance=0.3
flow.meshUpdateInterval=1
flow.useSolver=3
flow.permeabilityFactor=1
flow.viscosity=10
flow.updateTriangulation=True
#flow.bndCondIsPressure=[1,1,0,0,0,0] #only accepts 1 or 0 values
#flow.bndCondValue=[1000,1,0,0,0,0]
#flow.boundaryUseMaxMin=[1,1,1,1,1,1] #only accepts 1 or 0 values
flow.imposePressure(Vector3(1,0.83,0),30000000)

#PLOTTING
from yade import plot
plot.plots={'t':('p')}
plot.plot()
# SAVE SIMULATION


-- 
You received this question notification because your team yade-users is
an answer contact for Yade.