← Back to team overview

yade-users team mailing list archive

Re: [Question #702267]: capillary + cohesive interactions

 

Question #702267 on Yade changed:
https://answers.launchpad.net/yade/+question/702267

    Status: Answered => Open

Mehdi Pouragha is still having a problem:
Thank you, Karol and Jerome!

Karol: Your solution inspired me to solve another unrelated issue I was
dealing with. Thanks.

Jerome: Your suggestion worked like a charm. Thanks! I did not know we
could include two IP2s at the same time.

I changed your script slightly so that the rows are also in contact "sphere((x,0,0),...." and "(sphere((x,1.9,0) ...." This way we also have cohesive/frictional interaction which is interpreted by YADE as frictional with capillary force and this is exactly what I needed.
 
Depending on the order of the materials and the particle size, sometimes I get the following error
 <ERROR> Engine:83 virtual void yade::Law2_ScGeom_CapillaryPhys_Capillarity::action(): The capillary law is not implemented for interactions using CohFrictPhys

But the simulation seems to be running. Should I worry about this error?

Below is a script that generates the error:

#####
dens = 2200
Ey = 1e7
pois = 1
angle = radians(0.5)
radius = 5e-4

O.materials.append(FrictMat(density=dens, young=Ey, poisson=pois, frictionAngle=angle,label='frict'))
O.materials.append(CohFrictMat(young=Ey, poisson=1, frictionAngle=angle, density=2.6, alphaKr=5.0,
    alphaKtw=0.0, normalCohesion=1.5e2, shearCohesion=8.4e2,label='cohfrict'))

O.bodies.append([
	sphere(center=(0, 0, 0),radius=radius, fixed=True, material='cohfrict'),
	sphere(center=(0, 1.9*radius, 0), radius=radius, fixed=True, material='cohfrict'),
  sphere(center=(1.9*radius, 0, 0), radius=radius, fixed=True, material='frict'),
  sphere(center=(1.9*radius, 1.9*radius, 0), radius=radius, fixed=True, material='frict')
])


O.engines = [
	ForceResetter(),
	InsertionSortCollider([Bo1_Sphere_Aabb()]),
	InteractionLoop(
		[Ig2_Sphere_Sphere_ScGeom6D(interactionDetectionFactor = 1.5)],
		[Ip2_FrictMat_FrictMat_CapillaryPhys(),Ip2_CohFrictMat_CohFrictMat_CohFrictPhys(setCohesionNow = True, setCohesionOnNewContacts = True)],
		[Law2_ScGeom6D_CohFrictPhys_CohesionMoment(), Law2_ScGeom_FrictPhys_CundallStrack()]  
	),
	Law2_ScGeom_CapillaryPhys_Capillarity(capillaryPressure=500),
	GlobalStiffnessTimeStepper(),
	NewtonIntegrator()
]

O.step()
######

Curiously, if we define the first 2 balls (0,1) to be 'frict' and (2,3)
to be 'cohfrict', then the error disappears.

Thanks,
Mehdi

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