New question #700596 on Yade: https://answers.launchpad.net/yade/+question/700596
Hello, When I run my script,the prompt as shown in the title appears. Actually,I search the forum and found [1] [2].But I see different solutions in these two links, which makes me very confused. In [1],the solution is to use DFNFlowEngine instead of FlowEngine.In [2],the solution is to reduce the time step. These are obviously two completely different solutions, and I don't know which one applies to me. Following is my script: --------------------------------------------- from yade import pack, ymport, plot, utils, export, timing from builtins import range import numpy as np #from __future__ import print_function import sys rate=-0.01 damp=0.4 stabilityThreshold=0.001 key='_triax_base_' young=20e9 name='JCFPM_triax' #targetPorosity=0.43 compFricDegree=30 poisson=0.1 mn,mx=Vector3(0,0,0),Vector3(0.05,0.05,0.05) O.materials.append(JCFpmMat(type=1,density=2640,young=young,poisson=poisson,tensileStrength=15e6,cohesion=30e6,frictionAngle=radians(60),label='sphere')) O.materials.append(JCFpmMat(type=1,frictionAngle=0,density=0,label='wall')) walls=aabbWalls([mn,mx],thickness=0,material='wall') wallIds=O.bodies.append(walls) O.bodies.append(ymport.text('packing-JCFPM.spheres',scale=1,shift=Vector3(0,0,0),material='sphere',color=(0.6,0.5,0.15))) triax=TriaxialStressController( maxMultiplier=1.+4e8/young, finalMaxMultiplier=1.+4e7/young, thickness = 0, stressMask = 7, internalCompaction=True, ) newton=NewtonIntegrator(damping=damp) O.timingEnabled=True def recorder(): yade.plot.addData( i=O.iter, e11=-triax.strain[0],e22=-triax.strain[1],e33=-triax.strain[2], s11=-triax.stress(triax.wall_right_id)[0],#0+边界id为right s22=-triax.stress(triax.wall_top_id)[1],#1+边界id为top s33=-triax.stress(triax.wall_front_id)[2],#2+边界id为front P=triax.porosity, #meanS=-triax.meanStress[2] ev=triax.volumetricStrain, numberTc=interactionLaw.nbTensCracks, numberSc=interactionLaw.nbShearCracks, unb=unbalancedForce() ) plot.saveDataTxt('triax_JCFPM_HM_Wy=10.0Mpa,Sy=2.0MPa') def stop_condition(): if abs(triax.strain[2]) > 0.01: O.pause() presentcohesive_count = 0 for i in O.interactions: if hasattr(i.phys, 'isCohesive'): if i.phys.isCohesive == 1: presentcohesive_count+=1 print('the number of cohesive bond now is:',presentcohesive_count) O.engines=[ ForceResetter(), InsertionSortCollider([Bo1_Sphere_Aabb(aabbEnlargeFactor=1.3,label='is2aabb'),Bo1_Box_Aabb()]), InteractionLoop( [Ig2_Sphere_Sphere_ScGeom(interactionDetectionFactor=1.3,label='ss2sc'),Ig2_Box_Sphere_ScGeom()], [Ip2_JCFpmMat_JCFpmMat_JCFpmPhys()], [Law2_ScGeom_JCFpmPhys_JointedCohesiveFrictionalPM(recordCracks=True,Key='triax_JCFPM_HM',label='interactionLaw')] ), GlobalStiffnessTimeStepper(active=1,timeStepUpdateInterval=100,timestepSafetyCoefficient=0.8), triax, #TriaxialStateRecorder(iterPeriod=100,file='WallStresses'+key), FlowEngine(dead=1,label='flow'), PyRunner(iterPeriod=int(1000),initRun=True,command='recorder()',label='data',dead=0), PyRunner(iterPeriod=1000,command='stop_condition()',dead=0), newton, ] O.step() ss2sc.interactionDetectionFactor=-1 is2aabb.aabbEnlargeFactor=-1 triax.goal1=triax.goal2=triax.goal3=-10e6 yade.timing.reset() while 1: O.run(1000,1) unb=unbalancedForce() print('unbalanced force:',unb,'mean stres:',triax.meanStress) if unb<stabilityThreshold and abs(-10000000-triax.meanStress)/10000000<0.001: break yade.timing.stats() cohesiveCount = 0 for i in O.interactions: if hasattr(i.phys, 'isCohesive'): if i.phys.isCohesive == True: cohesiveCount+=1 print('the origin total number of cohesive bond is:',cohesiveCount) yade.timing.reset() flow.dead=0 #flow.defTolerance=0.3 flow.debug=False flow.fluidBulkModulus=2.2e9 flow.permeabilityFactor=-1e-5 flow.decoupleForces = False flow.meshUpdateInterval=100 flow.useSolver=4 flow.viscosity=0.001 flow.bndCondIsPressure=[0,0,0,0,1,1] flow.bndCondValue=[0,0,0,0,0,2e6] triax.internalCompaction=False flow.emulateAction() triax.stressMask=3 triax.goal1=-1e7 triax.goal2=-1e7 triax.goal3=rate plot.plots={'e33':('s33',None,'unb'),'i':('numberTc','numberSc',None,'s33')} plot.plot(subPlots=False) O.run() ----------------------------------------------------------- By the way,should this prompt be regarded as a warning or an error?In other words, will this prompt cause my simulation to run incorrectly (because my script didn't stop running). Best wishes! [1]https://answers.launchpad.net/yade/+question/690716 [2]https://answers.launchpad.net/yade/+question/670765 -- 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@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp