ABAQUS-Python Tutorial: How to perform an iteration in ABAQUS CAE using different imperfections ?

Dr.-Ing. Ronald Wagner
Dr.-Ing. Ronald Wagner
14.1 هزار بار بازدید - 4 سال پیش - ABAQUS-Python Tutorial: How to perform
ABAQUS-Python Tutorial: How to perform a simple iteration in ABAQUS CAE using different eigenmode and dimple imperfections ?

In this video,

ABAQUS-Python Tutorial: How to perfor...

I will present the steps to create a simple iteration in ABAQUS CAE using different imperfections for a cylinder buckling problem.

Timecodes:
Intro: 0:00
Shell model creation in ABAQUS CAE: 0:51
Edit keyword for imperfection mode extraction: 6:20
Create Python Script for eigenmode imperfection: 7:00
Linear results for eigenmode imperfection: 20:40
Non-Linear results for eigenmode imperfection: 23:25
Result extraction from ODB for eigenmode imperfection: 23:55
Comparison 1 with minimum test result: 26:16
Create Python Script for dimple imperfection: 26:30
Non-Linear results for dimple imperfection: 31:20
Comparison 2 with minimum test result: 33:16

#abaqus #abaqustutorial #hnrwagner

Researchgate Profile
https://www.researchgate.net/profile/...
Mendeley Profile
https://www.mendeley.com/profiles/ron...
Google Scholor Profile
https://scholar.google.de/citations?u...
Scopus Profile
https://www.scopus.com/authid/detail....
ORCID iD
https://orcid.org/0000-0003-2749-1455

###########################################

Base Script

###########################################

from abaqus import *
from abaqusConstants import *
import numpy as np

somefloats_f = []
somefloats_f2 = []
somefloats_f3 = []
somefloats_u = []
pert_L_v = []

myCpu = 8

pert = 0.3

for i in range(1,11,1):
   myString = 'GNIA-Dimple-'+str(i)
   myModel = mdb.Model(name=myString, objectToCopy=mdb.models['GNIA'])
 

   myJob = mdb.Job(name=myString, model=myString, description='', type=ANALYSIS, atTime=None, waitMinutes=0, waitHours=0, queue=None, memory=90, memoryUnits=PERCENTAGE, getMemoryFromAnalysis=True, explicitPrecision=SINGLE, nodalOutputPrecision=SINGLE, echoPrint=OFF, modelPrint=OFF, contactPrint=OFF, historyPrint=OFF, userSubroutine='', scratch='', resultsFormat=ODB, multiprocessingMode=DEFAULT, numCpus=myCpu, numDomains=myCpu, numGPUs=0)
   myJob.submit()
   myJob.waitForCompletion()
   
   open ODB file and extract values for reaction forces
   odb = session.openOdb(str(myString)+'.odb')
   
   Step-1
   
   lastStep=odb.steps['Step-1']
   
   define some variables
   
   myPerturbation = [pert*i] # scaling factor
   pert_L_v = pert_L_v + myPerturbation
   
   time_v = []
   Force_v = []
   AxialDisp_v = []
   
   for x in range(len(lastStep.frames)):
       lastFrame = lastStep.frames[x]
       Time1=lastFrame.frameValue
       rForce = lastFrame.fieldOutputs['RF']
       center = odb.rootAssembly.nodeSets['RP-1']
       centerRForce = rForce.getSubset(region=center)
       time_vr = [Time1]
       time_v = time_v + time_vr
       rDisp = lastFrame.fieldOutputs['U']
       center = odb.rootAssembly.nodeSets['RP-1']
       centerRDisp = rDisp.getSubset(region=center)
   
       for i in centerRDisp.values:
           AxialDisp_vr = [i.data[2]]    # 0 is Ux, 1 is Uy and 2 is Uz
           AxialDisp_v = AxialDisp_v + AxialDisp_vr
   
       for i in centerRForce.values:
           Force_vr = [i.data[2]]          # 0 is RF1, 1 is RF2 and 2 is RF3
           Force_v = Force_v + Force_vr
           
   Force = np.max(Force_v)  # maximum reaction force
   somefloats_fr = [Force]
   somefloats_f = somefloats_f + somefloats_fr
   Index = np.argmax(Force_v)  # index or number of the reaction force value
   Disp = AxialDisp_v[Index]   # axial displacement as function of max(reaction force)
   somefloats_fr3 = [Disp]
   
   write input to text files
   
   somefloats_f3 = somefloats_f3 + somefloats_fr3
   np.savetxt('Nx_'+str(myString)+'.txt',somefloats_f)
   np.savetxt('u_'+str(myString)+'.txt',somefloats_f3)
   np.savetxt('pert_'+str(myString)+'.txt',pert_L_v)
   np.savetxt('Rz_'+str(myString)+'.txt',Force_v)
   np.savetxt('ux_'+str(myString)+'.txt',AxialDisp_v)
4 سال پیش در تاریخ 1399/07/30 منتشر شده است.
14,129 بـار بازدید شده
... بیشتر