yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #22601
[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.