A.9 Blast loading on a stiffened plate

gxi_stiffplate_caemodel.py

#
# Getting Started with ABAQUS
#
# Script for stiffened plate example
#
from abaqus import *
from abaqusConstants import *
session.journalOptions.setValues(replayGeometry=COORDINATE, 
    recoverGeometry=COORDINATE)
session.Viewport(name='Viewport: 1', origin=(1.5625, 1.5625), width=230.0, 
    height=155.0)
session.viewports['Viewport: 1'].makeCurrent()
from driverUtils import executeOnCaeStartup
executeOnCaeStartup()
Mdb()
#: A new model database has been created.
#: The model "Model-1" has been created.
import part
import regionToolset
import displayGroupMdbToolset as dgm
#: Part module loaded
s = mdb.models['Model-1'].Sketch(name='__profile__', sheetSize=5.0)
g, v, d = s.geometry, s.vertices, s.dimensions
s.sketchOptions.setValues(sheetSize=5.0, gridSpacing=0.1, grid=ON,     gridFrequency=2, constructionGeometry=ON, dimensionTextHeight=0.1,     decimalPlaces=2)
s.Line(point1=(-1.0, 0.0), point2=(1.0, 0.0))
del mdb.models['Model-1'].sketches['__profile__']
s0 = mdb.models['Model-1'].Sketch(name='__profile__', sheetSize=5.0)
g, v, d = s0.geometry, s0.vertices, s0.dimensions
s0.sketchOptions.setValues(sheetSize=5.0, gridSpacing=0.1, grid=ON,     gridFrequency=2, constructionGeometry=ON, dimensionTextHeight=0.1,     decimalPlaces=2)
s0.Line(point1=(-1.0, 0.0), point2=(-0.5, 0.0))
s0.Line(point1=(-0.5, 0.0), point2=(0.0, 0.0))
s0.Line(point1=(0.0, 0.0), point2=(0.5, 0.0))
s0.Line(point1=(0.5, 0.0), point2=(1.0, 0.0))
s0.HorizontalDimension(vertex1=v[1], vertex2=v[2], textPoint=(    -0.496053099632263, -0.310033202171326))
s0.Line(point1=(-0.5, 0.0), point2=(-0.5, 0.1))
s0.Line(point1=(0.0, 0.0), point2=(0.0, 0.1))
s0.Line(point1=(0.5, 0.0), point2=(0.5, 0.1))
s0.HorizontalDimension(vertex1=v[1], vertex2=v[8], textPoint=(    0.967064142227173, 0.483532190322876))
s0.VerticalDimension(vertex1=v[11], vertex2=v[1], textPoint=(    -1.44123768806458, 0.0405542850494385))
p = mdb.models['Model-1'].Part(name='Plate', dimensionality=THREE_D,     type=DEFORMABLE_BODY)
p = mdb.models['Model-1'].parts['Plate']
p.BaseShellExtrude(sketch=s0, depth=2.0)
p = mdb.models['Model-1'].parts['Plate']
session.viewports['Viewport: 1'].setValues(displayedObject=p)
del mdb.models['Model-1'].sketches['__profile__']
session.viewports['Viewport: 1'].partDisplay.setValues(renderStyle=SHADED)
import material
import section
import regionToolset
import displayGroupMdbToolset as dgm
#: Property module loaded
mdb.models['Model-1'].Material('Steel')
mdb.models['Model-1'].materials['Steel'].Density(table=((7800.0, ), ))
mdb.models['Model-1'].materials['Steel'].Elastic(table=((210.0E9, 0.3), ))
mdb.models['Model-1'].materials['Steel'].Plastic(table=((300.0E6, 0.0), (    350.0E6, 0.025), (375.0E6, 0.1), (394.0E6, 0.2), (400.0E6, 0.35)))     
mdb.models['Model-1'].HomogeneousShellSection(name='PlateSection',     preIntegrate=OFF, material='Steel', thickness=0.025,     poissonDefinition=DEFAULT, temperature=GRADIENT, integrationRule=SIMPSON,     numIntPts=5)
mdb.models['Model-1'].HomogeneousShellSection(name='StiffSection',     preIntegrate=OFF, material='Steel', thickness=0.0125,     poissonDefinition=DEFAULT, temperature=GRADIENT, integrationRule=SIMPSON,     numIntPts=5)
p0 = mdb.models['Model-1'].parts['Plate']
f = p0.faces
faces = f.findAt(((-0.833333, 0.0, 1.333333), ), ((-0.333333, 0.0, 1.333333), 
    ), ((0.166667, 0.0, 1.333333), ), ((0.666667, 0.0, 1.333333), ))
region =(None, None, faces, None)
p0 = mdb.models['Model-1'].parts['Plate']
p0.SectionAssignment(region=region, sectionName='PlateSection')
#: The section "PlateSection" has been assigned to the selected regions.
p0 = mdb.models['Model-1'].parts['Plate']
f = p0.faces
faces = f.findAt(((-0.5, 0.033333, 1.333333), ), ((0.5, 0.033333, 1.333333), ), 
    ((0.0, 0.033333, 1.333333), ))
region =(None, None, faces, None)
p0 = mdb.models['Model-1'].parts['Plate']
p0.SectionAssignment(region=region, sectionName='StiffSection')
#: The section "StiffSection" has been assigned to the selected regions.
import assembly
import regionToolset
import displayGroupMdbToolset as dgm
#: Assembly module loaded
a = mdb.models['Model-1'].rootAssembly
session.viewports['Viewport: 1'].setValues(displayedObject=a)
a = mdb.models['Model-1'].rootAssembly
a.DatumCsysByDefault(CARTESIAN)
p = mdb.models['Model-1'].parts['Plate']
a.Instance(name='Plate-1', part=p, dependent=ON)
session.viewports['Viewport: 1'].assemblyDisplay.setValues(renderStyle=SHADED)
p = mdb.models['Model-1'].parts['Plate']
e1 = p.edges
edges =(e1.findAt(coordinates=(0.0, 0.0, 1.5)), )
p.PartitionEdgeByParam(edges=edges, parameter=0.5)
a = mdb.models['Model-1'].rootAssembly
v1 = a.instances['Plate-1'].vertices
verts1 = v1.findAt(((0.0, 0.0, 1.0), ))
a.Set(vertices=verts1, name='Center')
#: The geometry set "Center" has been created.
a = mdb.models['Model-1'].rootAssembly
e1 = a.instances['Plate-1'].edges
edges1 = e1.findAt(((-0.875, 0.0, 2.0), ), ((-0.375, 0.0, 2.0), ), ((0.125, 
    0.0, 2.0), ), ((0.625, 0.0, 2.0), ), ((1.0, 0.0, 1.5), ), ((0.875, 0.0, 
    0.0), ), ((0.375, 0.0, 0.0), ), ((-0.125, 0.0, 0.0), ), ((-0.625, 0.0, 
    0.0), ), ((-1.0, 0.0, 1.5), ))
a.Set(edges=edges1, name='Edge')
#: The geometry set "Edge" has been created.
import step
import regionToolset
import displayGroupMdbToolset as dgm
#: Step module loaded
session.viewports['Viewport: 1'].assemblyDisplay.setValues(loads=OFF, bcs=OFF,
    fields=OFF)
mdb.models['Model-1'].ExplicitDynamicsStep(name='Blast', previous='Initial',     description="""Apply blast loading""", timePeriod=0.05, adiabatic=OFF,     timeIncrementationMethod=AUTOMATIC_GLOBAL, scaleFactor=1,     maxIncrement=None, massScaling=PREVIOUS_STEP, linearBulkViscosity=0.06,     quadBulkViscosity=1.2)
a0=mdb.models['Model-1'].rootAssembly
regionDef=a0.sets['Center']
mdb.models['Model-1'].steps['Blast'].Monitor(dof=2, node=regionDef)
mdb.models['Model-1'].fieldOutputRequests['F-Output-1'].setValues(
    numIntervals=25)
mdb.models['Model-1'].historyOutputRequests['H-Output-1'].setValues(
    numIntervals=500)
regionDef=mdb.models['Model-1'].rootAssembly.sets['Center']
mdb.models['Model-1'].HistoryOutputRequest(name='Center-U2', 
    createStepName='Blast', variables=('U2', ), numIntervals=500, 
    region=regionDef)
#
import load
import regionToolset
import displayGroupMdbToolset as dgm
#: Load module loaded
session.viewports['Viewport: 1'].assemblyDisplay.setValues(loads=ON, bcs=ON,
    fields=ON)
a0 = mdb.models['Model-1'].rootAssembly
region = a0.sets['Edge']
mdb.models['Model-1'].EncastreBC(name='Fix edges', createStepName='Initial', 
    region=region)
mdb.models['Model-1'].TabularAmplitude(name='Blast', timeSpan=STEP,     smooth=0.25, data=((0.0, 0.0), (0.001, 7.0E5), (0.01, 7.0E5), (0.02,     0.0), (0.05, 0.0)))
a1 = mdb.models['Model-1'].rootAssembly
s1 = a.instances['Plate-1'].faces
side1Faces1 = s1.findAt(((-0.833333333333333, 0.0, 1.33333333333333), ), ((
    -0.166666666666667, 0.0, 1.66666666666667), ), ((0.166666666666667, 0.0, 
    1.66666666666667), ), ((0.666666666666667, 0.0, 1.33333333333333), ))
region = regionToolset.Region(side1Faces=side1Faces1)
mdb.models['Model-1'].Pressure(name='Pressure load', createStepName='Blast',     region=region, magnitude=1.0, amplitude='Blast')
session.viewports['Viewport: 1'].assemblyDisplay.setValues(
    renderStyle=WIREFRAME)
import mesh
import regionToolset
import displayGroupMdbToolset as dgm
#: Mesh module loaded
session.viewports['Viewport: 1'].assemblyDisplay.setValues(mesh=ON)
session.viewports['Viewport: 1'].assemblyDisplay.meshOptions.setValues(
    meshTechnique=ON)
p.seedPart(size=0.1)
#: Global seeds have been assigned.
e01 = p.edges
edges =(e01.findAt(coordinates=(-0.5, 0.025, 2.0)), e01.findAt(coordinates=(
    0.0, 0.025, 2.0)), e01.findAt(coordinates=(0.5, 0.025, 2.0)), e01.findAt(
    coordinates=(-0.5, 0.075, 0.0)), e01.findAt(coordinates=(0.0, 0.075, 
    0.0)), e01.findAt(coordinates=(0.5, 0.075, 0.0)))
p.seedEdgeByNumber(edges=edges, number=2)
elemType1 = mesh.ElemType(elemCode=S4R, elemLibrary=EXPLICIT, 
    hourglassControl=RELAX_STIFFNESS)
elemType2 = mesh.ElemType(elemCode=S3, elemLibrary=EXPLICIT)
f1 = p.faces
faces1 = f1.findAt(((0.5, 0.0333333333333, 0.666666666667), (-1.0, 0.0, 0.0)), ((0.666666666667, 0.0, 0.666666666667), (0.0, 1.0, 0.0)), ((0.0, 0.0333333333333, 0.666666666667), (-1.0, 0.0, 0.0)), ((0.416666666667, 0.0, 1.33333333333), (0.0, 1.0, 0.0)), ((-0.5, 0.0333333333333, 0.666666666667), (-1.0, 0.0, 0.0)), ((-0.166666666667, 0.0, 1.33333333333), (0.0, 1.0, 0.0)), ((-0.666666666667, 0.0, 1.33333333333), (0.0, 1.0, 0.0)))
regions =(None, None, faces1, None)
p.setElementType(regions=regions, elemTypes=(elemType1, elemType2))
p.generateMesh()
session.viewports['Viewport: 1'].assemblyDisplay.setValues(renderStyle=SHADED)
import job
#: Job module loaded
session.viewports['Viewport: 1'].assemblyDisplay.setValues(mesh=OFF)
session.viewports['Viewport: 1'].assemblyDisplay.meshOptions.setValues(
    meshTechnique=OFF)
mdb.Job(name='BlastLoad', model='Model-1')
mdb.jobs['BlastLoad'].setValues(description='Blast load on a flat plate with stiffeners: S4R elements (20x20 mesh) Normal stiffeners (20x2)')
a = mdb.models['Model-1'].rootAssembly
a.regenerate()
mdb.saveAs('StiffPlate')