New question #652966 on Yade:
https://answers.launchpad.net/yade/+question/652966

from your website, i can see there is a command called 
utlis.getStressAndTangent() which can give a macroscopic Tangent.   However, 
the program with such command has error:

AttributeError: 'module' object has no attribute 'getStressAndTangent'

Yade on my computer is 1.07.0, i am wondering it is the version problem.

And also, if it is the version problem, how can i update the Yade version, for 
i have input " sudo apt-get install yade"  in terminal and it says the version 
is the newest.

You can use such codes to test what i met:
-------------------------------------------------------------------------
#!/usr/bin/python           # This is server.py file

import string
from yade import plot,qt
from yade.pack import *
from yade import pack, plot
import socket               # Import socket module
import numpy                # initial the math of matrix compute (needed in ns) 

# initial the global variables
arrcc =[0]*3  # last step strain(commit)
arrtt =[0]*3  # last step strain(trail)
scc=[0]*3 # last step stress
orst=1   # initialize the orginal save document(trial)
check=[0]*1 # I need to calculate the first step when ag=0
check[0]=0
theTangent=(0)
# load the identical package
O.load('/tmp/cccc.gz')  # only load the package, because the O.cell.velGrad is 
not compatible with the peri3dcontroller eigine


#O.periodic=True   ### note!!!  add
O.dt=1e-8 

# see the example of peri3dcontroller, 1.5 is used to speed up the computation
EnlargeFactor=1.5 
EnlargeFactor=1.0
O.engines=[
        ForceResetter(),
        
InsertionSortCollider([Bo1_Sphere_Aabb(aabbEnlargeFactor=EnlargeFactor,label='bo1s')]),
        InteractionLoop(
                
[Ig2_Sphere_Sphere_ScGeom(interactionDetectionFactor=EnlargeFactor,label='ig2ss')],
                [Ip2_CpmMat_CpmMat_CpmPhys()],[Law2_ScGeom_CpmPhys_Cpm()]),
        NewtonIntegrator(),
        
#VTKRecorder(fileName='3dfirst-vtk-',recorders=['all','cpm'],iterPeriod=4999),

]

O.cell.velGrad=utils.Matrix3(0,0,0,0,0,0,0,0,0)
O.step()
bo1s.aabbEnlargeFactor=ig2ss.interactionDetectionFactor=1.               # 
O.step and change 1.5 back to 1. , because the concrete model is developed in 
the 1. environment


if orst==1:
        print "orst1"   
        
        for b in O.bodies:
                b.material.young = 1.0001*17e10
        
        

        orst=2
        ag = [0]*3               #  current - last   ie. the changed strain
        ag[0] = 0
        ag[1]= 0
        ag[2] =0
        ns=100 
        dstrain = utils.Matrix3(ag[0],ag[2],0,0,ag[1],0,0,0,0)      # the goal 
strain xx xy xz, yx yy yz, zx zy zz                                           
        O.cell.velGrad=dstrain/(ns*O.dt)
        O.run(ns,True)                                               
        stressValue=utils.getStress()
        stressxx=stressValue[0,0]                                   # the 
return stress xx
        stressyy=stressValue[1,1]                                   # the 
return stress yy
        stressxy=(stressValue[0,1]+stressValue[1,0])/2              # the 
return stress xy = (xy + yx)/2

        print "stress here from strain[0,0,0] step 1"
        print stressxx
        print stressyy
        print stressxy
        
        theTangent=utils.getStressAndTangent()
        print theTangent
        O.saveTmp('first')   

-------------------------------------------------------------------------------------------------



Thanks a lot!

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

Reply via email to