← Back to team overview

yade-users team mailing list archive

Re: [Question #664499]: Not able to understand the error

 

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

Anay Joshi posted a new comment:
Hi Luc,
First of all, thank you very much for providing the script to run with yade
and helping with the display of simulation question. I really appreciate
the help you provide.

Secondly,I tried to run the script you have provided here, but it gave me
an error. I am posting the error here, can you help me with it?

Error:
Welcome to Yade 1.20.0
TCP python prompt on localhost:9000, auth cookie `dcsuek'
XMLRPC info provider on http://localhost:21000
Running script JCFpm_luc_ref.py
Traceback (most recent call last):
  File "/usr/bin/yade", line 182, in runScript
    execfile(script,globals())
  File "JCFpm_luc_ref.py", line 94
    print "nblinks=", numSSlinks, " | nbCohesivelinks=", numCohesivelinks, "
                                                                           ^
SyntaxError: EOL while scanning string literal


Thanks,
Anay

On Wed, Feb 21, 2018 at 4:22 AM, Luc Scholtès <
question664499@xxxxxxxxxxxxxxxxxxxxx> wrote:

> Your question #664499 on Yade changed:
> https://answers.launchpad.net/yade/+question/664499
>
> Luc Scholtès posted a new comment:
> Hi Anay,
>
> Did you actually try to run the script that I gave you in #12 of the
> following thread:
>
> https://answers.launchpad.net/yade/+question/661250
>
> ?
>
> If not, I strongly suggest that you do so and I copy paste it here once
> again (please read the entire message since I add some comments for you
> after the script):
>
> --- BEGINNING OF SCRIPT ---
>
> # -*- coding: utf-8 -*-
> from yade import pack, plot
>
> ################# SIMULATIONS DEFINED HERE
>
> #### packing (previously constructed)
> OUT='compressionTest_JCFPM'
>
> #### Simulation Control
> rate=-0.01 #deformation rate
> iterMax=10000 # maximum number of iterations
> saveVTK=2000 # saving output files for paraview
>
> #### Material microproperties
> intR=1.1 # allows near neighbour interaction (can be adjusted for every
> packing)
> DENS=2500
> YOUNG=20e9
> FRICT=7
> ALPHA=0.1
> TENS=1e6
> COH=1e6
>
> #### material definition
> def sphereMat(): return JCFpmMat(type=1,density=DENS,
> young=YOUNG,poisson=ALPHA,frictionAngle=radians(FRICT),
> tensileStrength=TENS,cohesion=COH)
>
> #### create the specimen
> pred=pack.inCylinder((0,0,0),(0,1,0),0.25)
> O.bodies.append(pack.regularHexa(pred,radius=0.025,
> gap=0.,material=sphereMat))
>
> R=0
> Rmax=0
> nbSpheres=0.
> for o in O.bodies:
>  if isinstance(o.shape,Sphere):
>    nbSpheres+=1
>    R+=o.shape.radius
>    if o.shape.radius>Rmax:
>      Rmax=o.shape.radius
> Rmean=R/nbSpheres
>
> print 'nbSpheres=',nbSpheres,' | Rmean=',Rmean
>
> #### boundary condition (see utils.uniaxialTestFeatures
> bb=utils.uniaxialTestFeatures()
> negIds,posIds,longerAxis,crossSectionArea=bb['negIds'],
> bb['posIds'],bb['axis'],bb['area']
>
> ################# ENGINES DEFINED HERE
>
> O.engines=[
>  ForceResetter(),
>         InsertionSortCollider([Bo1_Sphere_Aabb(aabbEnlargeFactor=
> intR,label='Saabb')]),
>  InteractionLoop(
>   [Ig2_Sphere_Sphere_ScGeom(interactionDetectionFactor=
> intR,label='SSgeom')],
>   [Ip2_JCFpmMat_JCFpmMat_JCFpmPhys(cohesiveTresholdIteration=1,
> label='interactionPhys')],
>   [Law2_ScGeom_JCFpmPhys_JointedCohesiveFrictionalPM(
> recordCracks=True,Key=OUT,label='interactionLaw')]
>  ),
>  UniaxialStrainer(strainRate=rate,axis=longerAxis,
> asymmetry=0,posIds=posIds,negIds=negIds,crossSectionArea=crossSectionArea,
> blockDisplacements=1,blockRotations=1,setSpeeds=0,
> stopStrain=0.1,dead=1,label='strainer'),
>  GlobalStiffnessTimeStepper(active=1,timeStepUpdateInterval=10,timestepSafetyCoefficient=0.5,
> defaultDt=utils.PWaveTimeStep()),
>  NewtonIntegrator(damping=0.4,label='newton'),
>  PyRunner(iterPeriod=int(100),initRun=True,command='
> recorder()',label='data'),
>         VTKRecorder(iterPeriod=int(saveVTK),initRun=True,
> fileName=OUT+'-',recorders=['spheres','jcfpm','cracks'],
> Key=OUT,label='vtk')
> ]
>
> ################# RECORDER DEFINED HERE
>
> def recorder():
>     yade.plot.addData({'i':O.iter,
>          'eps':strainer.strain,
>          'sigma':strainer.avgStress,
>          'tc':interactionLaw.nbTensCracks,
>          'sc':interactionLaw.nbShearCracks,
>          'te':interactionLaw.totalTensCracksE,
>          'se':interactionLaw.totalShearCracksE,
>          'unbF':utils.unbalancedForce()})
>     plot.saveDataTxt(OUT)
>
> ################# PREPROCESSING
>
> #### manage interaction detection factor during the first timestep and
> then set default interaction range
> O.step();
> ### initializes the interaction detection factor
> SSgeom.interactionDetectionFactor=-1.
> Saabb.aabbEnlargeFactor=-1.
>
> #### coordination number verification
> numSSlinks=0
> numCohesivelinks=0
> for i in O.interactions:
>     if isinstance(O.bodies[i.id1].shape,Sphere) and
> isinstance(O.bodies[i.id2].shape,Sphere):
>       numSSlinks+=1
>     if i.phys.isCohesive :
>       numCohesivelinks+=1
>
> print "nblinks=", numSSlinks, " | nbCohesivelinks=", numCohesivelinks, "
> || Kcohesive=", 2.0*numCohesivelinks/nbSpheres
>
> ################# SIMULATION REALLY STARTS HERE
> strainer.dead=0
> O.run(iterMax)
>
> --- END OF SCRIPT ---
>
> This script corresponds to a uniaxial test on a cylinder (which is what
> you want to achieve if I understood well). At the end of the simulation,
> you will obtain a text file "compressionTest_JCFPM" containing the
> simulation data (stress, strain, number of cracks, ...) that you can
> plot with the second script I gave you in
> (https://answers.launchpad.net/yade/+question/661250)  and some vtu/vtk
> files which you can then use to visualize your results with Paraview
> (you will have access to the particles, the cracks and the interaction
> network). The "streamlines" you mention are, I guess, the displacement
> of the particles. For that, there is a procedure in Paraview which
> consists in comparing 2 vtu files (basically, you have to compute the
> displacement by substracting the positions at t2 and t1). As mentioned
> by Bruno, this is a different question.
>
> Luc
>
> --
> 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.