# default parameters or from table utils.readParamsFromTable(noTableOk=True, # unknownOk=True, young=24e9, poisson=.2, G_over_E=.20, sigmaT=3.5e6, frictionAngle=atan(0.8), epsCrackOnset=1e-4, relDuctility=30, intRadius=1.5, dtSafety=.8, damping=0.4, strainRateTension=.05, strainRateCompression=.5, setSpeeds=True, # 1=tension, 2=compression (ANDed; 3=both) doModes=3, specimenLength=.15, sphereRadius=3.5e-3, # isotropic confinement (should be negative) isoPrestress=0, # use the ScGeom variant scGeom=False ) from woo.params.table import *
is 1000 for tension and 100 for compression. """ # default parameters or from table utils.readParamsFromTable( noTableOk=True, # unknownOk=True, young=24e9, poisson=.2, G_over_E=.20, sigmaT=3.5e6, frictionAngle=atan(0.8), epsCrackOnset=1e-4, relDuctility=30, intRadius=1.5, dtSafety=.4, damping=0.2, strainRateTension=10, strainRateCompression=50, # 1=tension, 2=compression (ANDed; 3=both) doModes=3, biaxial=True, # isotropic confinement (should be negative) isoPrestress=0, ) if 'description' in O.tags.keys(): O.tags['id'] = O.tags['id'] + O.tags['description'] packingFile = 'periCube.pickle'
from woo import pack,log,timing,utils log.setLevel("SubdomainBalancer",log.INFO) #log.setLevel("BodyContainer",log.TRACE) utils.readParamsFromTable(noTableOk=True,num=12000) import woo.params.table sp=pack.SpherePack() sp.makeCloud((0,0,0),(1,1,1),.03*((12000./woo.params.table.num)**(1/3.)),.5) sp.toSimulation() O.bodies.append(utils.wall((0,0,0),axis=2)) O.bodies.append(utils.wall((0,0,0),axis=1)) #O.bodies.append(utils.wall((0,0,0),axis=0)) #O.bodies.append(utils.wall((0,2,0),axis=1)) #O.bodies.append(utils.wall((2,0,0),axis=0)) O.engines=([SubdomainBalancer(axesOrder='xyz',colorize=True)] if 'SubdomainBalancer' in dir() else [])+[ ForceResetter(), InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Wall_Aabb()],sweepLength=.05*.05), InteractionLoop([Ig2_Sphere_Sphere_ScGeom(),Ig2_Wall_Sphere_ScGeom()],[Ip2_FrictMat_FrictMat_FrictPhys()],[Law2_ScGeom_FrictPhys_CundallStrack()]), GravityEngine(gravity=(0,0,-10)), NewtonIntegrator(), #PyRunner(iterPeriod=5000,command='O.pause(); timing.stats();') ] O.dt=utils.PWaveTimeStep() O.timingEnabled=True #O.step(); #O.run(10000,True) timing.stats() from woo import qt qt.View() #O.step() #O.run(5000,True)
""" # default parameters or from table utils.readParamsFromTable(noTableOk=True, # unknownOk=True, young=24e9, poisson=.2, G_over_E=.20, sigmaT=3.5e6, frictionAngle=atan(0.8), epsCrackOnset=1e-4, relDuctility=30, intRadius=1.5, dtSafety=.4, damping=0.2, strainRateTension=10, strainRateCompression=50, # 1=tension, 2=compression (ANDed; 3=both) doModes=3, biaxial=True, # isotropic confinement (should be negative) isoPrestress=0, ) if 'description' in O.tags.keys(): O.tags['id']=O.tags['id']+O.tags['description'] packingFile='periCube.pickle' # got periodic packing? Memoization not (yet) supported, so just generate it if there is not the right file
from woo import pack, log, timing, utils log.setLevel("SubdomainBalancer", log.INFO) #log.setLevel("BodyContainer",log.TRACE) utils.readParamsFromTable(noTableOk=True, num=12000) import woo.params.table sp = pack.SpherePack() sp.makeCloud((0, 0, 0), (1, 1, 1), .03 * ((12000. / woo.params.table.num)**(1 / 3.)), .5) sp.toSimulation() O.bodies.append(utils.wall((0, 0, 0), axis=2)) O.bodies.append(utils.wall((0, 0, 0), axis=1)) #O.bodies.append(utils.wall((0,0,0),axis=0)) #O.bodies.append(utils.wall((0,2,0),axis=1)) #O.bodies.append(utils.wall((2,0,0),axis=0)) O.engines = ([ SubdomainBalancer(axesOrder='xyz', colorize=True) ] if 'SubdomainBalancer' in dir() else []) + [ ForceResetter(), InsertionSortCollider( [Bo1_Sphere_Aabb(), Bo1_Wall_Aabb()], sweepLength=.05 * .05), InteractionLoop([Ig2_Sphere_Sphere_ScGeom(), Ig2_Wall_Sphere_ScGeom()], [Ip2_FrictMat_FrictMat_FrictPhys()], [Law2_ScGeom_FrictPhys_CundallStrack()]), GravityEngine(gravity=(0, 0, -10)), NewtonIntegrator(), #PyRunner(iterPeriod=5000,command='O.pause(); timing.stats();') ] O.dt = utils.PWaveTimeStep() O.timingEnabled = True #O.step(); #O.run(10000,True)
""" # default parameters or from table utils.readParamsFromTable( noTableOk=True, # unknownOk=True, young=24e9, poisson=.2, G_over_E=.20, sigmaT=3.5e6, frictionAngle=atan(0.8), epsCrackOnset=1e-4, relDuctility=30, intRadius=1.5, dtSafety=.8, damping=0.4, strainRateTension=.05, strainRateCompression=.5, setSpeeds=True, # 1=tension, 2=compression (ANDed; 3=both) doModes=3, specimenLength=.15, sphereRadius=3.5e-3, # isotropic confinement (should be negative) isoPrestress=0, # use the ScGeom variant scGeom=False) from woo.params.table import *