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

    Status: Open => Answered

Jan Stránský proposed the following answer:
Hi Hicham,

the first problem is in material parameters definition. If you use comma at
the end of line, the variable is tuple instead of float. If you want to
pass it to CpmMat constructor, it expects number but gets tuple and raise
the error.

you can try in IPython
a = 1.4,
a.__class__.__name__ # returns 'tuple'
a = 1.4 # without comma
a.__class__.__name__ # returns 'float'

so use
sigmaT = 3.5e6
instead of
sigmaT = 3.5e6,

and the same also for all other material parameters

cheers
Jan



2013/12/4 Hicham BENNIOU <[email protected]>

> Question #240167 on Yade changed:
> https://answers.launchpad.net/yade/+question/240167
>
>     Status: Answered => Open
>
> Hicham BENNIOU is still having a problem:
> Here is the script :
>
> from yade import pack, qt, plot
>
> # Vars definition
> specimenLength = 15.0
> spheresInCell = 2000
> sphereRadius= 3.5e-3
> intRadius = 1.5 #Interaction Radius
>
> sigmaT=3.5e6,
> epsCrackOnset=1e-4,
> relDuctility=30,
> isoPrestress=-50000000, #isotropic confinment
>
> strainRateTension=0.5,
> strainRateCompression=.5,
>
> youngConcrete = 24e9
> youngWalls = 0.5
>
> poissonConcrete = 0.2
> poissonWalls = 0.5
>
> frictionAngleConcrete = atan(0.8)
> frictionAngleWalls = 0
>
> densityConcrete = 4800
> densityWalls = 0
>
> damping=0.4
>
> #Create walls around the packing of spheres
> min = Vector3(-.5*specimenLength,-.5*specimenLength,-.5*specimenLength)
> max = Vector3(.5*specimenLength,.5*specimenLength,.5*specimenLength)
>
> Walls =aabbWalls([min,max], thickness = 0)
> wallIds = O.bodies.append(Walls)
>
> #Definig Concrete material and packing spheres
>
> concreteId=O.materials.append(CpmMat(young=youngConcrete,frictionAngle=frictionAngleConcrete,poisson=poissonConcrete,density=densityConcrete,sigmaT=sigmaT,relDuctility=relDuctility,epsCrackOnset=epsCrackOnset,isoPrestress=isoPrestress))
>
> sp=pack.randomDensePack(pack.inAlignedBox(min,max),spheresInCell=spheresInCell,radius=sphereRadius,returnSpherePack=True)
> sp.toSimulation(material=concreteId)
>
> # Defining Engines
> TriaxEngine = TriaxialStressController(
>       maxMultiplier=1.+2e4/youngConcrete,
>       finalMaxMultiplier=1.+2e3/youngConcrete,
>       thickness = 0,
>       stressMask = 7, # 7=111, 1->x, 1->y and 1->z, which means stress is
> controlled on xyz
>       internalCompaction=True,
> )
>
> O.engines=[
>         ForceResetter(),
>
> InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Box_Aabb()],verletDist=.05*sphereRadius),
>         InteractionLoop(
>
> [Ig2_Sphere_Sphere_ScGeom(interactionDetectionFactor=intRadius),Ig2_Box_Sphere_ScGeom()],
>                 [Ip2_CpmMat_CpmMat_CpmPhys()],
>                 [Law2_ScGeom_CpmPhys_Cpm()],
>         ),
>
>         TriaxEngine,
>
> GlobalStiffnessTimeStepper(active=1,timeStepUpdateInterval=100,timestepSafetyCoefficient=0.8),
>         PyRunner(iterPeriod=10,initRun=True,command='history()'),
>         TriaxialStateRecorder(iterPeriod=100,file='~/Bureau/WallStresses'),
>
>         NewtonIntegrator(damping=damping,gravity=(0.,0.,-10.)),
> ]
>
> # record and plot data
>
> def history():
>   plot.addData(e11=TriaxEngine.strain[0], e22=TriaxEngine.strain[1],
> e33=TriaxEngine.strain[2],
>
> ev=-TriaxEngine.strain[0]-TriaxEngine.strain[1]-TriaxEngine.strain[2],
>                 s11=TriaxEngine.stress(TriaxEngine.wall_right_id)[0],
>                 s22=TriaxEngine.stress(TriaxEngine.wall_top_id)[1],
>                 s33=TriaxEngine.stress(TriaxEngine.wall_front_id)[2],
>                 i=O.iter
>         )
>
> O.run(10000)
>
> plot.plots={'e22':('s11','s22','s33','ev')}
> plot.plot()
>
> --
> You received this question notification because you are a member of
> yade-users, which is an answer contact for Yade.
>
> _______________________________________________
> Mailing list: https://launchpad.net/~yade-users
> Post to     : [email protected]
> Unsubscribe : https://launchpad.net/~yade-users
> More help   : https://help.launchpad.net/ListHelp
>

-- 
You received this question notification because you are a member of
yade-users, which is an answer contact for Yade.

_______________________________________________
Mailing list: https://launchpad.net/~yade-users
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp

Reply via email to