Beispiel #1
0
# 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 *
Beispiel #2
0
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'
Beispiel #3
0
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)
Beispiel #4
0
"""



# 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
Beispiel #5
0
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)
Beispiel #6
0
"""

# 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 *