← Back to team overview

yade-dev team mailing list archive

[Bug 1809688] Re: JCFpmMat

 

moved form https://bugs.launchpad.net/yade/+bug/1809688 to
https://gitlab.com/yade-dev/trunk/issues/46

-- 
You received this bug notification because you are a member of Yade
developers, which is subscribed to Yade.
https://bugs.launchpad.net/bugs/1809688

Title:
  JCFpmMat

Status in Yade:
  New

Bug description:
  When i trying to replace my spheres in a triaxial test by clumps with
  the material of JCFpmMat, i encounter this error:

  RuntimeError: Body #14: Body::material type JCFpmMat doesn't
  correspond to Body::state type State (should be JCFpmState instead).

  Please note that with no replacement with clumps, there is no problem.
  The other point is that if i reduce the Rmean to generate more
  spheres, then the script would not be run. I think it is a bug for
  this contact model and it should be modified from the source.

  the MWE is as following:

  from yade import pack,plot
  from yade import export, ymport
  import random
  from yade import utils

  ############################################
  ### DEFINING VARIABLES AND MATERIALS ###
  ############################################

  key='_Triax-J2_'
  intRadius= 1

  mn,mx=Vector3(0,0,0),Vector3(.1,.1,.1) # corners of the initial
  packing

  ## create materials for spheres and plates
  id_Mat=O.materials.append(JCFpmMat())
  Mat=O.materials[id_Mat]

  #frictionless walls
  O.materials.append(FrictMat(label='walls'))

  ## create walls around the packing
  walls=aabbWalls([mn,mx],thickness=0,material='walls')
  wallIds=O.bodies.append(walls)

  ## use a SpherePack object to generate a random loose particles packing
  sp=pack.SpherePack()
  sp.makeCloud(minCorner=mn,maxCorner=mx,rMean=.029,rRelFuzz=0.0,periodic=False,num=5000)
  O.bodies.append([sphere(c,r,material=Mat) for c,r in sp])

  relRadList1=[1,1]
  relPosList1=[[0,0,0],[.5,.5,.5]]
  templates= []
  templates.append(clumpTemplate(relRadii=relRadList1,relPositions=relPosList1))
  O.bodies.replaceByClumps(templates,[1.0], discretization=5)

  ###########################
  ## DEFINING ENGINES ###
  ###########################

  triax=TriaxialStressController(
   thickness = 0,
   stressMask = 7,
   internalCompaction=False,
  )

  newton=NewtonIntegrator(damping=.2, gravity=[0,0,0])
  ########################################
  #Modified engine
  ##################################
  O.engines=[
          ForceResetter(),
          InsertionSortCollider([Bo1_Sphere_Aabb(aabbEnlargeFactor=intRadius),Bo1_Box_Aabb()]),
          InteractionLoop(
                  [Ig2_Sphere_Sphere_ScGeom(interactionDetectionFactor=intRadius),Ig2_Box_Sphere_ScGeom()],
                  [Ip2_FrictMat_FrictMat_FrictPhys(),Ip2_JCFpmMat_JCFpmMat_JCFpmPhys(cohesiveTresholdIteration=10, label='jcf')],
                  [Law2_ScGeom_JCFpmPhys_JointedCohesiveFrictionalPM(smoothJoint=True,label='interactionLaw', recordCracks=True),Law2_ScGeom_FrictPhys_CundallStrack()]
          ),
          GlobalStiffnessTimeStepper(active=1,timeStepUpdateInterval=100,timestepSafetyCoefficient=0.5),
          triax,
          TriaxialStateRecorder(iterPeriod=100,file='J2_Triaxial,'+key),
          newton
  ]

  triax.goal1=triax.goal2=triax.goal3=-150000
  O.step()

To manage notifications about this bug go to:
https://bugs.launchpad.net/yade/+bug/1809688/+subscriptions


References