← 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: Open => Answered

Robert Caulk proposed the following answer:
Hey Ibraheem,

What does “didn’t work” mean? The porosity doesn’t decrease from an initial
state?

Cheers,

Robert

Le mar. 10 août 2021 à 20:02, ibraheem khan <
question698303@xxxxxxxxxxxxxxxxxxxxx> a écrit :

> 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.
>
> _______________________________________________
> 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
>

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