← Back to team overview

yade-users team mailing list archive

Re: [Question #698303]: packing porosity for heat capacity scaling according to desired porosity of material

 

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

    Status: Answered => Open

ibraheem khan is still having a problem:
Hi Robert
Yes I tried , even with very low friction value like 5 ,but it didn't work.

On Tue, Aug 10, 2021, 7:45 PM Robert Caulk <
question698303@xxxxxxxxxxxxxxxxxxxxx> wrote:

> Your question #698303 on Yade changed:
> https://answers.launchpad.net/yade/+question/698303
>
> Robert Caulk proposed the following answer:
> Have you tried decreasing your target porosity?
>
> Le mar. 10 août 2021 à 13:46, ibraheem khan <
> question698303@xxxxxxxxxxxxxxxxxxxxx> a écrit :
>
> > Question #698303 on Yade changed:
> > https://answers.launchpad.net/yade/+question/698303
> >
> > ibraheem khan posted a new comment:
> >
> > sorry Robert....
> >
> > my script is here .
> >
> > from yade import pack, export, ymport
> >
> > nRead=readParamsFromTable(
> >         num_spheres=1000,
> >         compFricDegree = 25,
> >         key='_triax_base_'
> >         unknownOk=True
> > )
> > from yade.params import table
> >
> > num_spheres=table.num_spheres
> > key=table.key
> > targetPorosity = 0.45
> > compFricDegree = table.compFricDegree
> > finalFricDegree =25
> > rate=-0.02
> > damp=0.2
> > stabilityThreshold=0.01
> > young=150e9
> > mn,mx=Vector3(0,0,0),Vector3(1,1,1)
> > cohesion=50e6
> > sigmaT=40e6
> > density=2650
> > poisson=0.25
> > confiningP=-1e6
> >
> >
> >
> >
> O.materials.append(JCFpmMat(young=young,poisson=0.5,frictionAngle=0,density=0,label='walls',cohesion=0,tensileStrength=0))
> > O.materials.append(JCFpmMat(young=young, cohesion=cohesion,
> > density=density, frictionAngle=radians(finalFricDegree),
> > tensileStrength=sigmaT, poisson=poisson, label='spheres'))
> >
> > walls=aabbWalls([mn,mx],thickness=0,material='walls')
> > wallIds=O.bodies.append(walls)
> >
> > sp=pack.SpherePack()
> > sp.makeCloud(mn,mx,-1,0.3333,num_spheres,False, 0.95,seed=1)
> > O.bodies.append([sphere(center,rad,material='spheres') for center,rad in
> > sp])
> >
> >
> > ###   DEFINING ENGINES   ###
> >
> >
> > triax=TriaxialStressController(
> >         thickness = 0,
> >         stressMask = 7,
> >         internalCompaction=True,
> > )
> >
> > newton=NewtonIntegrator(damping=damp)
> >
> > O.engines=[
> >         ForceResetter(),
> >         InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Box_Aabb()]),
> >         InteractionLoop(
> >                 [Ig2_Sphere_Sphere_ScGeom(),Ig2_Box_Sphere_ScGeom()],
> >
> >
> [Ip2_FrictMat_FrictMat_FrictPhys(),Ip2_JCFpmMat_JCFpmMat_JCFpmPhys(cohesiveTresholdIteration=0,
> > label='JCFpm')],
> >
> >
> [Law2_ScGeom_JCFpmPhys_JointedCohesiveFrictionalPM(smoothJoint=False,neverErase=True,
> > recordCracks=True ),Law2_ScGeom_FrictPhys_CundallStrack()]
> >         ),
> >
> >
> GlobalStiffnessTimeStepper(active=1,timeStepUpdateInterval=100,timestepSafetyCoefficient=0.6,defaultDt=0.5*utils.PWaveTimeStep()),
> >         triax,
> >
> >         newton,
> > ]
> >
> > Gl1_Sphere.stripes=0
> > if nRead==0: yade.qt.Controller(), yade.qt.View()
> >
> >
> > ###   APPLYING CONFINING PRESSURE   ###
> >
> >
> > triax.goal1=triax.goal2=triax.goal3=confiningP
> >
> > while 1:
> >   O.run(2000, True)
> >   unb=unbalancedForce()
> >   print ('unbalanced force:',unb,' mean stress: ',triax.meanStress)
> >   if unb<stabilityThreshold and
> > abs((confiningP-triax.meanStress)/(-confiningP))<0.001:
> >     break
> >
> >
> > ###   REACHING A SPECIFIED POROSITY PRECISELY   ###
> >
> >
> > import sys
> >
> > while triax.porosity>targetPorosity:
> >         compFricDegree = 0.95*compFricDegree
> >         setContactFriction(radians(compFricDegree))
> >         print ("\r Friction: ",compFricDegree,"
> porosity:",triax.porosity,)
> >         sys.stdout.flush()
> >
> >         O.run(500,1)
> > export.textExt('densepacking.spheres','x_y_z_r')
> >
> >  for JCFpm cohesion , i run it directly in the below script that every
> new
> > contact should be cohesive
> >
> > from yade import pack, export, ymport
> > import numpy as np
> >
> >
> >
> > nRead=readParamsFromTable(
> >         num_spheres=1000,# number of spheres
> >         compFricDegree = 25,
> >         key='_triax_base_'
> >         unknownOk=True
> > )
> > from yade.params import table
> >
> > num_spheres=table.num_spheres
> > key=table.key
> > targetPorosity = 0.46
> > compFricDegree = table.compFricDegree
> > finalFricDegree = 25
> > rate=-0.02 # loading rate (strain rate)
> > damp=0.2 # damping coefficient
> > stabilityThreshold=0.01
> > young=150e9
> > mn,mx=Vector3(0,0,0),Vector3(1,1,1)
> > confiningP=-10e6
> > cohesion=50e6
> > poisson=0.2
> > sigmaT=40e6
> > density=2650
> > intRadius=1.25
> >
> >
> >
> >
> O.materials.append(JCFpmMat(young=young,poisson=0.5,frictionAngle=0,density=0,label='walls',cohesion=0,tensileStrength=0))
> > O.materials.append(JCFpmMat(young=young, cohesion=cohesion,
> > density=density, frictionAngle=radians(finalFricDegree),
> > tensileStrength=sigmaT, poisson=poisson, label='spheres'))
> >
> > walls=aabbWalls([mn,mx],thickness=0,material='walls')
> > wallIds=O.bodies.append(walls)
> >
> > pack = O.bodies.append(ymport.textExt('densepacking.spheres',
> > 'x_y_z_r',color=(0,0.2,0.7), material='spheres'))
> >
> >
> > ###   DEFINING ENGINES   ###
> >
> >
> > triax=TriaxialStressController(
> >
> >         thickness = 0,
> >
> >         stressMask = 7,
> >         internalCompaction=True, # If true the confining pressure is
> > generated by growing particles
> > )
> >
> > newton=NewtonIntegrator(damping=damp)
> > O.engines=[
> >         ForceResetter(),
> >
> >
> InsertionSortCollider([Bo1_Sphere_Aabb(aabbEnlargeFactor=intRadius),Bo1_Box_Aabb()]),
> >         InteractionLoop(
> >
> >
> [Ig2_Sphere_Sphere_ScGeom(interactionDetectionFactor=intRadius),Ig2_Box_Sphere_ScGeom()],
> >
>  [Ip2_JCFpmMat_JCFpmMat_JCFpmPhys(cohesiveTresholdIteration=-1,
> > label='JCFPm')],
> >
> >
> [Law2_ScGeom_JCFpmPhys_JointedCohesiveFrictionalPM(recordCracks=True,smoothJoint=False,neverErase=True,
> >
> recordMoments=True,Key=identifier+'/output.txt',label='interactionLaw'),Law2_ScGeom_FrictPhys_CundallStrack()]
> >  ),
> >
> >
> GlobalStiffnessTimeStepper(active=1,timeStepUpdateInterval=100,timestepSafetyCoefficient=0.6,defaultDt=0.5*utils.PWaveTimeStep()),
> >         triax,
> >
> >         newton,
> >
> >
> >
> > ]
> >
> >
> > Gl1_Sphere.stripes=0
> > if nRead==0: yade.qt.Controller(), yade.qt.View()
> >
> > ###   APPLYING CONFINING PRESSURE   ###
> >
> > triax.goal1=triax.goal2=triax.goal3=confiningP
> >
> > while 1:
> >   O.run(2000, True)
> >
> >   unb=unbalancedForce()
> >   print ('unbalanced force:',unb,' mean stress: ',triax.meanStress)
> >   if unb<stabilityThreshold and
> > abs(confiningP-triax.meanStress)/(-confiningP)<0.001:
> >     break
> >
> >
> > ###   REACHING A SPECIFIED POROSITY PRECISELY   ###
> >
> > import sys
> > while triax.porosity>targetPorosity:
> >
> >         compFricDegree = 0.95*compFricDegree
> >         setContactFriction(radians(compFricDegree))
> >         print ("\r Friction: ",compFricDegree,"
> porosity:",triax.porosity,)
> >         sys.stdout.flush()
> >         O.run(500,1)
> >
> > --
> > You received this question notification because your team yade-users is
> > an answer contact for Yade.
> >
> > _______________________________________________
> > Mailing list: https://launchpad.net/~yade-users
> > Post to     : yade-users@xxxxxxxxxxxxxxxxxxx
> > Unsubscribe : https://launchpad.net/~yade-users
> > More help   : https://help.launchpad.net/ListHelp
> >
>
> --
> If this answers your question, please go to the following page to let us
> know that it is solved:
> https://answers.launchpad.net/yade/+question/698303/+confirm?answer_id=4
>
> If you still need help, you can reply to this email or go to the
> following page to enter your feedback:
> https://answers.launchpad.net/yade/+question/698303
>
> You received this question notification because you asked the question.
>

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