19 Using Abaqus with Python to Perform QSMA on the TMD Structure 147 requested_disp = loadSclFactor*thick lastStep = ’BoltPreload’ #Last step before adding quasi-static load Modal = False #Does the input file have a modal analysis step that is not needed? odbFileName= jobName + ".odb" db = openOdb(odbFileName) setName=’mode’ step_names=db.steps.keys() step_name=step_names[-1] myStep=db.steps[step_name] numFrames=len(myStep.frames)-1 numValues=len(myStep.frames[0].fieldOutputs[’U’].values) # print numFrames # print numValues # frames[0] is the base state, really have numFrames-1 numFrames freq=numpy.zeros((numFrames,1),dtype=float); disp=numpy.zeros((6*numValues,numFrames),dtype=float); dof =numpy.zeros((6*numValues, 1), dtype=float); # JDS Modification descript=[] v= 0 while v < numFrames: myMode=myStep.frames[v+1] freq[v]=myMode.frequency descript.append(myMode.description) n= 0 while n < numValues: # try : data=myMode.fieldOutputs[’U’].values[n].data except OdbError: data=myMode.fieldOutputs[’U’].values[n].dataDouble # # Add displacements disp[6*n+0][v]=data[0] disp[6*n+1][v]=data[1] if len(data) > 2: disp[6 * n + 2][v] = data[2] else : disp[6 * n + 2][v] = 0. # # # Add DOF to DOF vector using [node.1, node.2, node.3, ...] convention if v == 0: dof[6*n + 0] = myMode.fieldOutputs[’U’].values[n].nodeLabel + 0.1 dof[6*n + 1] = myMode.fieldOutputs[’U’].values[n].nodeLabel + 0.2 dof[6*n + 2] = myMode.fieldOutputs[’U’].values[n].nodeLabel + 0.3 # if myMode.fieldOutputs.has_key(’UR’):
RkJQdWJsaXNoZXIy MTMzNzEzMQ==