# Import Neccesary Abaqus Modules from abaqusConstants import * from odbAccess import * import sys import os jobName=sys.argv[-2] resFile=sys.argv[-1] odbfilename=jobName+'.odb' try: odb=openOdb(path=odbfilename) aNod=odb.rootAssembly.instances['AMESH-1'].nodeSets['E1'].nodes[0].coordinates[0] bNod=odb.rootAssembly.instances['AMESH-1'].nodeSets['E2'].nodes[0].coordinates[0] rlen=abs(aNod-bNod) check=0. try: for eachFrame in odb.steps["Step-5"].frames: tforce=0. for currentForce in eachFrame.fieldOutputs["CNORMF ASSEMBLY_AOUTER/ASSEMBLY_SURF-1"].values: fx=currentForce.data[0] fy=currentForce.data[1] fz=currentForce.data[2] tforce=tforce+sqrt(fx*fx+fy*fy+fz*fz) aSet=odb.rootAssembly.instances['OUTER-1'] uy=eachFrame.fieldOutputs["U"].getSubset(region=aSet).values[0].data[1] uz=eachFrame.fieldOutputs["U"].getSubset(region=aSet).values[0].data[2] rad=sqrt(uy*uy+uz*uz) if tforce>0.: check=check+1 if check==2: f1=tforce r1=rad if check==5: f2=tforce r2=rad break stiff=abs(f2-f1)/abs(r2-r1) except: stiff=0. stiff=stiff/rlen except: stiff=0. outFile = open(resFile,"w") objFn=1.-(0.15*abs(stiff)) outFile.write("%12.6f \n " % (objFn)) outFile.close() odb.close()