def xySimpleIWCONWEP(modelName, printFormat): plotName = 'IWCONWEP' #Open ODB odb = func.open_odb(modelName) xyList = xyPlot.xyDataListFromField(odb=odb, outputPosition=ELEMENT_FACE, variable=(('IWCONWEP', ELEMENT_FACE), ), elementSets=('PART-2-1.FACE', )) xy1 = xyList[0] # xyp = session.xyPlots['XYPlot-1'] # chartName = xyp.charts.keys()[0] # chart = xyp.charts[chartName] # curveList = session.curveSet(xyData=xyList) # chart.setValues(curvesToPlot=curveList) # session.viewports['Viewport: 1'].setValues(displayedObject=xyp) c1 = session.Curve(xyData=xy1) #Plot and Print func.XYprint(modelName, plotName, printFormat, c1) #Report data tempFile = 'temp.txt' session.writeXYReport(fileName=tempFile, appendMode=OFF, xyData=(xy1, )) func.fixReportFile(tempFile, plotName, modelName, x='Time [s]', y='Displacement [mm]')
#Run job if run: func.runJob(modelName) #===================================================# #===================================================# # POST # #===================================================# #===================================================# #Clear plots for plot in session.xyPlots.keys(): del session.xyPlots[plot] #Open ODB odb = func.open_odb(modelName) #Get xy data xyList = xyPlot.xyDataListFromField(odb=odb, outputPosition=ELEMENT_FACE, variable=(('IWCONWEP', ELEMENT_FACE), ), elementSets=('FRONT', 'SIDE')) xy1 = xyList[0] #IncidentPressure xy2 = xyList[1] #Reflected pressure #Print to file func.XYplot(modelName, plotName='incidentPressure' + str(int(standoff / 1000)) + 'm', xHead='Time [s]', yHead='Pressure [MPa]', xyDat=xy1)
def xyShell(modelName): ''' Prints xy data for displacment at mid col, forces at top and force-displacemnt ''' #Open ODB odb = func.open_odb(modelName) #=========== Displament at mid col ============# #Get node numbers sideNodeNr=odb.rootAssembly.instances['PART-1-1'].\ nodeSets['MID-SIDE'].nodes[0].label # backNodeNr=odb.rootAssembly.instances['PART-1-1'].\ # nodeSets['MID-BACK'].nodes[0].label # frontNodeNr=odb.rootAssembly.instances['PART-1-1'].\ # nodeSets['MID-FRONT'].nodes[0].label #Create output names sideName= 'Spatial displacement: U1 PI: PART-1-1 Node '+str(sideNodeNr)+\ ' in NSET MID-SIDE' # backName= 'Spatial displacement: U1 PI: PART-1-1 Node '+str(backNodeNr)+\ # ' in NSET MID-BACK' # frontName='Spatial displacement: U1 PI: PART-1-1 Node '+str(frontNodeNr)+\ # ' in NSET MID-FRONT' #Get xy data xyU1side = xyPlot.XYDataFromHistory(odb=odb, outputVariableName=sideName, name='U1midSide') # xyU1back = xyPlot.XYDataFromHistory(odb=odb, # outputVariableName=backName, name='U1midBack') # xyU1front = xyPlot.XYDataFromHistory(odb=odb, # outputVariableName=frontName, name='U1midFront') #Print to file func.XYplot(modelName, plotName = 'U1midSide', xHead='Time [s]', yHead='Displacement [mm]', xyDat= xyU1side) # func.XYplot(modelName, plotName = 'U1midBack', # xHead='Time [s]', yHead='Displacement [mm]', # xyDat= xyU1back) # func.XYplot(modelName, plotName = 'U1midFront', # xHead='Time [s]', yHead='Displacement [mm]', # xyDat= xyU1front) #=========== R2 at top and bot ============# #Get node numbers topNodeNr =[] for nodes in odb.rootAssembly.instances['PART-1-1'].nodeSets['TOP'].nodes: topNodeNr.append(nodes.label) botNodeNr =[] for nodes in odb.rootAssembly.instances['PART-1-1'].nodeSets['BOT'].nodes: botNodeNr.append(nodes.label) #Create output names topNames = [] for nr in topNodeNr: topNames.append('Reaction force: RF1 PI: PART-1-1 Node ' +str(nr)+' in NSET TOP') botNames = [] for nr in botNodeNr: botNames.append('Reaction force: RF1 PI: PART-1-1 Node ' +str(nr)+' in NSET BOT') #Get xy data xyTopLst = [] for name in topNames: xyTopLst.append(xyPlot.XYDataFromHistory(odb=odb, outputVariableName=name)) xyTopTup = tuple(xyTopLst) xyBotLst = [] for name in botNames: xyBotLst.append(xyPlot.XYDataFromHistory(odb=odb, outputVariableName=name)) xyBotTup = tuple(xyBotLst) xyR1Top = sum(xyTopTup) xyR1Bot = sum(xyBotTup) xyR1Tot = sum(xyR1Top,xyR1Bot) #Print to file func.XYplot(modelName, plotName = 'R1top', xHead='Time [s]', yHead='Force [N]', xyDat= xyR1Top) func.XYplot(modelName, plotName = 'R1bot', xHead='Time [s]', yHead='Force [N]', xyDat= xyR1Bot) func.XYplot(modelName, plotName = 'R1', xHead='Time [s]', yHead='Force [N]', xyDat= xyR1Tot) #=========== Force Displacement ============# xyRU = combine(xyU1side,-xyR1Tot) func.XYplot(modelName, plotName = 'forceDisp', xHead='Displacment [mm]', yHead='Force [N]', xyDat= xyRU)
def xyBeam(modelName): #Open ODB odb = func.open_odb(modelName) #=========== Displacemnet ============# #Get node numbers nodeNr = odb.rootAssembly.instances['COLUMN-1'].\ nodeSets['COL-MID'].nodes[0].label #Create names name = 'Spatial displacement: U1 PI: COLUMN-1 Node '+\ str(nodeNr)+' in NSET COL-MID' #Get xy data xyU1mid = xyPlot.XYDataFromHistory(odb=odb, outputVariableName=name) func.XYplot(modelName, plotName = 'U1mid', xHead='Time [s]', yHead='Displacement [mm]', xyDat=xyU1mid) #=========== Reaction Force ============# #Get node numbers topNodeNr = odb.rootAssembly.instances['COLUMN-1'].\ nodeSets['COL-TOP'].nodes[0].label baseNodeNr = odb.rootAssembly.instances['COLUMN-1'].\ nodeSets['COL-BASE'].nodes[0].label #Create names topName = 'Reaction force: RF1 PI: COLUMN-1 Node '+\ str(topNodeNr)+' in NSET COL-TOP' baseName = 'Reaction force: RF1 PI: COLUMN-1 Node '+\ str(baseNodeNr)+' in NSET COL-BASE' #Get xy data xyR1top = xyPlot.XYDataFromHistory(odb=odb, outputVariableName=topName) xyR1base = xyPlot.XYDataFromHistory(odb=odb, outputVariableName=baseName) xyR1tot = sum(xyR1top,xyR1base) func.XYplot(modelName, plotName = 'R1', xHead='Time [s]', yHead='Force [N]', xyDat=xyR1tot) # #=========== Force-displacement ============# # plotName='force-Disp' # rf1 = xyPlot.XYDataFromHistory(odb=odb, # outputVariableName='Reaction force: RF1 PI: COLUMN-1 Node 1 in NSET COL-BASE') # rf2 = xyPlot.XYDataFromHistory(odb=odb, # outputVariableName='Reaction force: RF1 PI: COLUMN-1 Node 3 in NSET COL-TOP') # u = xyPlot.XYDataFromHistory(odb=odb, # outputVariableName='Spatial displacement: U1 PI: COLUMN-1 Node 2 in NSET COL-MID') xyUR = combine(xyU1mid, -xyR1tot) func.XYplot(modelName, plotName = 'ForceDisp', xHead='Displacement [mm]', yHead='Force [N]', xyDat=xyUR)
func.runJob(modelName) #Write CPU time to file func.readStaFile(modelName, 'results.txt') #===================================================# #===================================================# # Post # #===================================================# #===================================================# print 'Post processing...' #Open ODB odb = func.open_odb(modelName) # #Contour # func.countourPrint(modelName, defScale, printFormat) # #Animation # func.animate(modelName, defScale, frameRate= animeFrameRate) #Energy func.xyEnergyPlot(modelName) #R2 at col base beam.xyColBaseR2(modelName,x,z) #U at top of col closes to blast beam.xyUtopCol(modelName, blastCol)
#===================================================# # POST # #===================================================# #===================================================# if run: print 'Post...' #Create list of jobs/odbs lst = [[model + 'conWep', model + 'incidentWave'] for model in modelList] jobLst = [] map(jobLst.extend, lst) #Itterate over jobs #RF1 for job in jobLst: odb = func.open_odb(job) #Create names of history outputs xyNames = {} for name in names: xyNames[name] = 'Reaction force: RF1 PI: ' + name + ' Node 1' #Get xy data xyDic = {} for name, xyName in xyNames.iteritems(): xyDic[name] = xyPlot.XYDataFromHistory(odb=odb, outputVariableName=xyName) #Print xy data for name, xyDat in xyDic.iteritems(): func.XYplot(modelName=job, plotName='RF1-' + name.lower(), xHead='Time [s]', yHead='Force [N]',
# POST # #===================================================# #===================================================# if run: print 'Post...' #Create list of jobs/odbs lst = [[model+'conWep', model+'incidentWave'] for model in modelList] jobLst = [] map(jobLst.extend, lst) #Itterate over jobs #RF1 for job in jobLst: odb = func.open_odb(job) #Create names of history outputs xyNames ={} for name in names: xyNames[name]= 'Reaction force: RF1 PI: '+name+' Node 1' #Get xy data xyDic = {} for name, xyName in xyNames.iteritems(): xyDic[name] = xyPlot.XYDataFromHistory(odb=odb, outputVariableName=xyName) #Print xy data for name, xyDat in xyDic.iteritems(): func.XYplot(modelName=job, plotName='RF1-'+name.lower(), xHead='Time [s]', yHead='Force [N]', xyDat=xyDat) #RF3
def xyShell(modelName): ''' Prints xy data for displacment at mid col, forces at top and force-displacemnt ''' #Open ODB odb = func.open_odb(modelName) #=========== Displament at mid col ============# #Get node numbers sideNodeNr=odb.rootAssembly.instances['PART-1-1'].\ nodeSets['MID-SIDE'].nodes[0].label # backNodeNr=odb.rootAssembly.instances['PART-1-1'].\ # nodeSets['MID-BACK'].nodes[0].label # frontNodeNr=odb.rootAssembly.instances['PART-1-1'].\ # nodeSets['MID-FRONT'].nodes[0].label #Create output names sideName= 'Spatial displacement: U1 PI: PART-1-1 Node '+str(sideNodeNr)+\ ' in NSET MID-SIDE' # backName= 'Spatial displacement: U1 PI: PART-1-1 Node '+str(backNodeNr)+\ # ' in NSET MID-BACK' # frontName='Spatial displacement: U1 PI: PART-1-1 Node '+str(frontNodeNr)+\ # ' in NSET MID-FRONT' #Get xy data xyU1side = xyPlot.XYDataFromHistory(odb=odb, outputVariableName=sideName, name='U1midSide') # xyU1back = xyPlot.XYDataFromHistory(odb=odb, # outputVariableName=backName, name='U1midBack') # xyU1front = xyPlot.XYDataFromHistory(odb=odb, # outputVariableName=frontName, name='U1midFront') #Print to file func.XYplot(modelName, plotName='U1midSide', xHead='Time [s]', yHead='Displacement [mm]', xyDat=xyU1side) # func.XYplot(modelName, plotName = 'U1midBack', # xHead='Time [s]', yHead='Displacement [mm]', # xyDat= xyU1back) # func.XYplot(modelName, plotName = 'U1midFront', # xHead='Time [s]', yHead='Displacement [mm]', # xyDat= xyU1front) #=========== R2 at top and bot ============# #Get node numbers topNodeNr = [] for nodes in odb.rootAssembly.instances['PART-1-1'].nodeSets['TOP'].nodes: topNodeNr.append(nodes.label) botNodeNr = [] for nodes in odb.rootAssembly.instances['PART-1-1'].nodeSets['BOT'].nodes: botNodeNr.append(nodes.label) #Create output names topNames = [] for nr in topNodeNr: topNames.append('Reaction force: RF1 PI: PART-1-1 Node ' + str(nr) + ' in NSET TOP') botNames = [] for nr in botNodeNr: botNames.append('Reaction force: RF1 PI: PART-1-1 Node ' + str(nr) + ' in NSET BOT') #Get xy data xyTopLst = [] for name in topNames: xyTopLst.append( xyPlot.XYDataFromHistory(odb=odb, outputVariableName=name)) xyTopTup = tuple(xyTopLst) xyBotLst = [] for name in botNames: xyBotLst.append( xyPlot.XYDataFromHistory(odb=odb, outputVariableName=name)) xyBotTup = tuple(xyBotLst) xyR1Top = sum(xyTopTup) xyR1Bot = sum(xyBotTup) xyR1Tot = sum(xyR1Top, xyR1Bot) #Print to file func.XYplot(modelName, plotName='R1top', xHead='Time [s]', yHead='Force [N]', xyDat=xyR1Top) func.XYplot(modelName, plotName='R1bot', xHead='Time [s]', yHead='Force [N]', xyDat=xyR1Bot) func.XYplot(modelName, plotName='R1', xHead='Time [s]', yHead='Force [N]', xyDat=xyR1Tot) #=========== Force Displacement ============# xyRU = combine(xyU1side, -xyR1Tot) func.XYplot(modelName, plotName='forceDisp', xHead='Displacment [mm]', yHead='Force [N]', xyDat=xyRU)
def xyBeam(modelName): #Open ODB odb = func.open_odb(modelName) #=========== Displacemnet ============# #Get node numbers nodeNr = odb.rootAssembly.instances['COLUMN-1'].\ nodeSets['COL-MID'].nodes[0].label #Create names name = 'Spatial displacement: U1 PI: COLUMN-1 Node '+\ str(nodeNr)+' in NSET COL-MID' #Get xy data xyU1mid = xyPlot.XYDataFromHistory(odb=odb, outputVariableName=name) func.XYplot(modelName, plotName='U1mid', xHead='Time [s]', yHead='Displacement [mm]', xyDat=xyU1mid) #=========== Reaction Force ============# #Get node numbers topNodeNr = odb.rootAssembly.instances['COLUMN-1'].\ nodeSets['COL-TOP'].nodes[0].label baseNodeNr = odb.rootAssembly.instances['COLUMN-1'].\ nodeSets['COL-BASE'].nodes[0].label #Create names topName = 'Reaction force: RF1 PI: COLUMN-1 Node '+\ str(topNodeNr)+' in NSET COL-TOP' baseName = 'Reaction force: RF1 PI: COLUMN-1 Node '+\ str(baseNodeNr)+' in NSET COL-BASE' #Get xy data xyR1top = xyPlot.XYDataFromHistory(odb=odb, outputVariableName=topName) xyR1base = xyPlot.XYDataFromHistory(odb=odb, outputVariableName=baseName) xyR1tot = sum(xyR1top, xyR1base) func.XYplot(modelName, plotName='R1', xHead='Time [s]', yHead='Force [N]', xyDat=xyR1tot) # #=========== Force-displacement ============# # plotName='force-Disp' # rf1 = xyPlot.XYDataFromHistory(odb=odb, # outputVariableName='Reaction force: RF1 PI: COLUMN-1 Node 1 in NSET COL-BASE') # rf2 = xyPlot.XYDataFromHistory(odb=odb, # outputVariableName='Reaction force: RF1 PI: COLUMN-1 Node 3 in NSET COL-TOP') # u = xyPlot.XYDataFromHistory(odb=odb, # outputVariableName='Spatial displacement: U1 PI: COLUMN-1 Node 2 in NSET COL-MID') xyUR = combine(xyU1mid, -xyR1tot) func.XYplot(modelName, plotName='ForceDisp', xHead='Displacement [mm]', yHead='Force [N]', xyDat=xyUR)