← Back to team overview

yade-users team mailing list archive

Re: [Question #268954]: Calculation efficiency of the last version of Yade

 

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

    Status: Answered => Open

Henry is still having a problem:
Dear Anton,

   Many thank for your help, and the script as follows:

# -*- coding: utf-8
# This file is used to import PFC3D model to Yade model,and do direct shear test

from yade import utils,qt
from yade import plot
from yade.pack import *
from numpy import *

qt.View()

O=Omega()


#材料参数

soil_poi=0.01
soil_coh=2.5e6
soil_Friction=40.0
soil_young=2*5.0e9
soil_Dens=2500


TopWall_Mat=O.materials.append(FrictMat(density=1,young=Wall_young,poisson=.1,frictionAngle=radians(Wall_Friction),label='TopWall'))

#Definition of bodies constituing the numerical model : six boxes corresponding to sids of the simple shear box, containing a particle samples
...........
O.bodies.append([leftBox2,rightBox2,lowBox2,behindBox2,inFrontBox2])


SoilMat=O.materials.append(FrictMat(density=soil_Dens,young=soil_young,poisson=soil_poi,frictionAngle=radians(soil_Friction),label='soil'))

Clump_file=open("Sample.sphere","r")  #
# import the sphere particles
.....

print("Total sphere Number:",Total_Sphere_NUM)
O.engines=[
	ForceResetter(),
	InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Box_Aabb(),Bo1_Facet_Aabb()]),
	InteractionLoop(
        [Ig2_Sphere_Sphere_ScGeom6D(),Ig2_Box_Sphere_ScGeom6D(),Ig2_Facet_Sphere_ScGeom()],
        [Ip2_FrictMat_FrictMat_FrictPhys()],
        [Law2_ScGeom_FrictPhys_CundallStrack()]
	),
    	GravityEngine(gravity=(0,-9.81,0)),
	NewtonIntegrator(damping=0.6, label='Newton'), 
	PyRunner(command='checkUnbalanced()',iterPeriod=100 ,label='checker'),  #,realPeriod=0.1 
   PyRunner(command='checkDamping()',iterPeriod=1000,label='checker_Damp') #iterPeriod=500
]

def checkDamping():
	if O.iter>4990:
		Newton.damping=0.4
O.dt=.5*utils.PWaveTimeStep()


def checkUnbalanced():
    # at the very start, unbalanced force can be low as there is only few contacts, but it does not mean the packing is stable
    if O.iter<2990:return 
    # the rest will be run only if unbalanced is < .05 (stabilized packing)
    if utils.unbalancedForce()>.1: return 	
    # start plotting the data now, it was not interesting before
    O.engines=O.engines+[PyRunner(command='addPlotData()',iterPeriod=1000)] #iterPeriod=200
    checker.command='unloadPlate()'

# besides unbalanced force evolution, also plot the displacement-force diagram
plot.plots={'i':('unbalanced',),'Normal_Dis':('Normal_Stress',)}

#        plot.plots={'i':('unbalanced',None,O.energy.keys)}
plot.plot()
raw_input()

Thanks a lot!

Best regard
Henr

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