← Back to team overview

yade-users team mailing list archive

Re: [Question #701845]: Has ZeroInitForce been implemented?

 

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

    Status: Answered => Open

Gianni Pellegrini is still having a problem:
Hi,
thank you, Bruno. 
I thought that the function name had changed during these years.

I think I was able to follow the same method used in the discussion.
If I am not wrong, the initial values of the cohesion (normal and shear) can be any positive number to make it work.
The real values would be set up through
for i in O.interactions:
  i.phys.unp = i.geom.penetrationDepth

since     fragile=False?

Thank you

This is my MWE but it needs a saved version of the cell and packing.


from yade import pack, export, ymport
import numpy as np

  
frictionAngle = 0.5
sigmaIso=-1e5
poisson=0.2
R=1e-3 
rate=1e-4
density= 1e12
alphaKr=2.0
alphaKtw=2.0
etaRoll=0.1
young=1E9
cohN=0
cohT=0
#SETTINGS
O.periodic = True
ac = np.load('T1.cellSizeCloud.npy')
O.cell.hSize=ac

############################################################
pp = O.materials.append(CohFrictMat(
	young=young,
	poisson=poisson,
	frictionAngle=frictionAngle,
	density=density,
	isCohesive=True,
    fragile=False,
	alphaKr=alphaKr,
	alphaKtw=alphaKtw,
	momentRotationLaw=True,
	etaRoll=etaRoll,
    normalCohesion=cohN,
    shearCohesion=cohT,
	))
############################################################
O.engines = [
        ForceResetter(
               ),
        InsertionSortCollider([Bo1_Sphere_Aabb()]),
        InteractionLoop([Ig2_Sphere_Sphere_ScGeom6D()], [Ip2_CohFrictMat_CohFrictMat_CohFrictPhys(setCohesionNow=True,setCohesionOnNewContacts=False)],[Law2_ScGeom6D_CohFrictPhys_CohesionMoment(useIncrementalForm=True,always_use_moment_law=True)]),
        NewtonIntegrator(damping=.2),
        PyRunner(command='Test()', realPeriod=1),
	]


O.cell.velGrad=Matrix3(0,0,0,0,0,0,0,0,0)
packing = ymport.text("T1.packing",color=(1,1,0),material=pp)
O.bodies.append(packing)
O.step()
#overlaps = [i.geom.penetrationDepth for i in O.interactions]
#print(overlaps)
O.dt = 0.5 * PWaveTimeStep()
print(' pressure:', getStress().trace() / 3.) 
for i in O.interactions:
  i.phys.unp = i.geom.penetrationDepth
print('changing')     


def Test():    
    print(' pressure:', getStress().trace() / 3.) 
    #if (getStress().trace() / 3.) > -1e3:
        #print('Done')
        #O.pause()
    

O.run()

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