12 Appendix C - ABAQUS Tutorials PDF
12 Appendix C - ABAQUS Tutorials PDF
12 Appendix C - ABAQUS Tutorials PDF
Appendix C
ABAQUS Tutorials
Q2.5
Start ABAQUS CAE 613
File/New Model
Database/With
standard/Explicit Model
314
Appendix C: ABAQUS Tutorials
Create model
Module/Part
315
Appendix C: ABAQUS Tutorials
Module/Property
Create Material/
Mechanical/Elasticity/
Elastic
Define Young’s modulus
70e9 and Poisson’s ratio
0.3
OK
316
Appendix C: ABAQUS Tutorials
Create Section
Choose Beam
Continue
317
Appendix C: ABAQUS Tutorials
Module Assembly
318
Appendix C: ABAQUS Tutorials
Create Instances
Module Step
319
Appendix C: ABAQUS Tutorials
Description Q2.5
OK
Apply load
Module Load
320
Appendix C: ABAQUS Tutorials
Click on point 2
Done
Define CF2 10000
OK
Click on point 1
Done
Define U1, U2, UR3 0
OK
321
Appendix C: ABAQUS Tutorials
Mesh control
Module Mesh
Mesh
322
Appendix C: ABAQUS Tutorials
Solution
Module Job
Create Job
Name: Q2_5
Model-1
Continue
323
Appendix C: ABAQUS Tutorials
Job Manager
Submit
OK
Monitor solution
324
Appendix C: ABAQUS Tutorials
View results
Open results file
Choose Q2_5.obd
OK
Click results
Field output
325
Appendix C: ABAQUS Tutorials
Choose U for
displacement
U1 for displacement in the
x-direction
U2 for displacement in the
y-direction
Displacement x-direction
Displacement y-direction (repeat same procedures as above; Results/field output choose U2)
326
Appendix C: ABAQUS Tutorials
Viewport
Viewport Annotation
option
Click Legend/ define font
Tools
Prove values
327
Appendix C: ABAQUS Tutorials
To view Top/Bottom results (only for stresses in beam and shell elements)
Results
Section points…
Click Bottom/Top
To print a graph
File
Print/ Destination/ click
file
Format/ e.g. PNG
File name/ e.g.
filename.png
To create a Python code, before you start working in your model, activate Macro Manager:
File
Click Macro Manager
Click create
328
Appendix C: ABAQUS Tutorials
After finishing your working session, click Stop Recording. A python macro file will be created
abaqusMacros.py under your working directory. Copy and paste the part concerned with your problem
and save in a file Q2_5.py. To run a macro file, click file/Run Script (note that the python code should
be in your Work Directory).
File
Click Run Script
Choose Q2_5.py
329
Appendix C: ABAQUS Tutorials
import sketch
import visualization
import xyPlot
import displayGroupOdbToolset as dgo
import connectorBehavior
s1 = mdb.models['Model-1'].ConstrainedSketch(name='__profile__', sheetSize=0.4)
g, v, d, c = s1.geometry, s1.vertices, s1.dimensions, s1.constraints
s1.setPrimaryObject(option=STANDALONE)
s1.Arc3Points(point1=(0.0, 0.0), point2=(0.2, 0.0), point3=(0.1, 0.1))
p = mdb.models['Model-1'].Part(name='Part-1', dimensionality=TWO_D_PLANAR,
type=DEFORMABLE_BODY)
p = mdb.models['Model-1'].parts['Part-1']
p.BaseWire(sketch=s1)
s1.unsetPrimaryObject()
p = mdb.models['Model-1'].parts['Part-1']
session.viewports['Viewport: 1'].setValues(displayedObject=p)
del mdb.models['Model-1'].sketches['__profile__']
session.viewports['Viewport: 1'].partDisplay.setValues(sectionAssignments=ON,
engineeringFeatures=ON)
session.viewports['Viewport: 1'].partDisplay.geometryOptions.setValues(
referenceRepresentation=OFF)
mdb.models['Model-1'].Material(name='Material-1')
mdb.models['Model-1'].materials['Material-1'].Elastic(table=((70000000000.0,
0.3), ))
mdb.models['Model-1'].RectangularProfile(name='Profile-1', a=0.1, b=0.03)
mdb.models['Model-1'].BeamSection(name='Section-1',
integration=DURING_ANALYSIS, poissonRatio=0.0, profile='Profile-1',
material='Material-1', temperatureVar=LINEAR,
consistentMassMatrix=False)
p = mdb.models['Model-1'].parts['Part-1']
e = p.edges
edges = e.getSequenceFromMask(mask=('[#1 ]', ), )
region = p.Set(edges=edges, name='Set-1')
p = mdb.models['Model-1'].parts['Part-1']
p.SectionAssignment(region=region, sectionName='Section-1', offset=0.0,
offsetType=MIDDLE_SURFACE, offsetField='',
thicknessAssignment=FROM_SECTION)
p = mdb.models['Model-1'].parts['Part-1']
e = p.edges
edges = e.getSequenceFromMask(mask=('[#1 ]', ), )
region=p.Set(edges=edges, name='Set-2')
p = mdb.models['Model-1'].parts['Part-1']
p.assignBeamSectionOrientation(region=region, method=N1_COSINES, n1=(0.0, 0.0,
-1.0))
a = mdb.models['Model-1'].rootAssembly
session.viewports['Viewport: 1'].setValues(displayedObject=a)
session.viewports['Viewport: 1'].assemblyDisplay.setValues(
optimizationTasks=OFF, geometricRestrictions=OFF, stopConditions=OFF)
a = mdb.models['Model-1'].rootAssembly
a.DatumCsysByDefault(CARTESIAN)
p = mdb.models['Model-1'].parts['Part-1']
a.Instance(name='Part-1-1', part=p, dependent=ON)
session.viewports['Viewport: 1'].assemblyDisplay.setValues(
adaptiveMeshConstraints=ON)
mdb.models['Model-1'].StaticStep(name='Step-1', previous='Initial',
description='Q2.5')
session.viewports['Viewport: 1'].assemblyDisplay.setValues(step='Step-1')
session.viewports['Viewport: 1'].assemblyDisplay.setValues(loads=ON, bcs=ON,
predefinedFields=ON, connectors=ON, adaptiveMeshConstraints=OFF)
a = mdb.models['Model-1'].rootAssembly
330
Appendix C: ABAQUS Tutorials
v1 = a.instances['Part-1-1'].vertices
verts1 = v1.getSequenceFromMask(mask=('[#2 ]', ), )
region = a.Set(vertices=verts1, name='Set-1')
mdb.models['Model-1'].ConcentratedForce(name='Load-1', createStepName='Step-1',
region=region, cf2=10000.0, distributionType=UNIFORM, field='',
localCsys=None)
a = mdb.models['Model-1'].rootAssembly
v1 = a.instances['Part-1-1'].vertices
verts1 = v1.getSequenceFromMask(mask=('[#1 ]', ), )
region = a.Set(vertices=verts1, name='Set-2')
mdb.models['Model-1'].DisplacementBC(name='BC-1', createStepName='Step-1',
region=region, u1=0.0, u2=0.0, ur3=0.0, amplitude=UNSET, fixed=OFF,
distributionType=UNIFORM, fieldName='', localCsys=None)
session.viewports['Viewport: 1'].assemblyDisplay.setValues(mesh=ON, loads=OFF,
bcs=OFF, predefinedFields=OFF, connectors=OFF)
session.viewports['Viewport: 1'].assemblyDisplay.meshOptions.setValues(
meshTechnique=ON)
p = mdb.models['Model-1'].parts['Part-1']
session.viewports['Viewport: 1'].setValues(displayedObject=p)
session.viewports['Viewport: 1'].partDisplay.setValues(sectionAssignments=OFF,
engineeringFeatures=OFF, mesh=ON)
session.viewports['Viewport: 1'].partDisplay.meshOptions.setValues(
meshTechnique=ON)
p = mdb.models['Model-1'].parts['Part-1']
p.seedPart(size=0.01, deviationFactor=0.1, minSizeFactor=0.1)
p = mdb.models['Model-1'].parts['Part-1']
p.generateMesh()
elemType1 = mesh.ElemType(elemCode=B21, elemLibrary=STANDARD)
p = mdb.models['Model-1'].parts['Part-1']
e = p.edges
edges = e.getSequenceFromMask(mask=('[#1 ]', ), )
pickedRegions =(edges, )
p.setElementType(regions=pickedRegions, elemTypes=(elemType1, ))
a1 = mdb.models['Model-1'].rootAssembly
a1.regenerate()
a = mdb.models['Model-1'].rootAssembly
session.viewports['Viewport: 1'].setValues(displayedObject=a)
session.viewports['Viewport: 1'].assemblyDisplay.setValues(mesh=OFF)
session.viewports['Viewport: 1'].assemblyDisplay.meshOptions.setValues(
meshTechnique=OFF)
mdb.Job(name='Q2_5', model='Model-1', description='Q2.5', 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='', multiprocessingMode=DEFAULT, numCpus=1, numGPUs=0)
mdb.jobs['Q2_5'].submit(consistencyChecking=OFF)
mdb.saveAs(pathName='H:/ABAQUS/Q2.5.cae')
331
Appendix C: ABAQUS Tutorials
Q2.6
Start a new model database as before: File/New Model Database/With standard/Explicit Model
Create Part
Create line
332
Appendix C: ABAQUS Tutorials
Assembly/Create Instance
333
Appendix C: ABAQUS Tutorials
Create Material/
Mechanical/Elasticity/
Elastic
Define Young’s modulus
200e9 and Poisson’s ratio
0.3
OK
Create section
Create Section
Choose Beam
Continue
334
Appendix C: ABAQUS Tutorials
335
Appendix C: ABAQUS Tutorials
336
Appendix C: ABAQUS Tutorials
Module Mesh
Choose Part (Part-3)
Click Seed Part Instance
Specify global size 0.02
OK
Click Mesh Part
Click Yes
337
Appendix C: ABAQUS Tutorials
Solution: as before Module Job/ Create Job /Model-1/ Job name: Q2_6/ Continue
Description Q2.6/ OK/ Job Manager/Submit job to solve & Monitor to monitor solution
View results
Open results file as before: File/open Choose Q2_6.obd OK
Plot reaction moment contours
Click results
Field output
Choose RM3 for reaction
moment
OK
338
Appendix C: ABAQUS Tutorials
339
Appendix C: ABAQUS Tutorials
s1.unsetPrimaryObject()
p = mdb.models['Model-1'].parts['Part-2']
session.viewports['Viewport: 1'].setValues(displayedObject=p)
del mdb.models['Model-1'].sketches['__profile__']
a = mdb.models['Model-1'].rootAssembly
session.viewports['Viewport: 1'].setValues(displayedObject=a)
a1 = mdb.models['Model-1'].rootAssembly
a1.DatumCsysByDefault(CARTESIAN)
p = mdb.models['Model-1'].parts['Part-1']
a1.Instance(name='Part-1-1', part=p, dependent=ON)
p = mdb.models['Model-1'].parts['Part-2']
a1.Instance(name='Part-2-1', part=p, dependent=ON)
a1 = mdb.models['Model-1'].rootAssembly
a1.InstanceFromBooleanMerge(name='Part-3', instances=(a1.instances['Part-1-1'],
a1.instances['Part-2-1'], ), originalInstances=SUPPRESS,
mergeNodes=BOUNDARY_ONLY, nodeMergingTolerance=1e-06, domain=BOTH)
session.viewports['Viewport: 1'].partDisplay.setValues(sectionAssignments=ON,
engineeringFeatures=ON)
session.viewports['Viewport: 1'].partDisplay.geometryOptions.setValues(
referenceRepresentation=OFF)
p = mdb.models['Model-1'].parts['Part-2']
session.viewports['Viewport: 1'].setValues(displayedObject=p)
mdb.models['Model-1'].Material(name='Material-1')
mdb.models['Model-1'].materials['Material-1'].Elastic(table=((200000000000.0,
0.3), ))
mdb.models['Model-1'].CircularProfile(name='Profile-1', r=0.1)
mdb.models['Model-1'].BeamSection(name='Section-1',
integration=DURING_ANALYSIS, poissonRatio=0.0, profile='Profile-1',
material='Material-1', temperatureVar=LINEAR,
consistentMassMatrix=False)
p = mdb.models['Model-1'].parts['Part-3']
session.viewports['Viewport: 1'].setValues(displayedObject=p)
p = mdb.models['Model-1'].parts['Part-3']
e = p.edges
edges = e.getSequenceFromMask(mask=('[#3 ]', ), )
region = p.Set(edges=edges, name='Set-1')
p = mdb.models['Model-1'].parts['Part-3']
p.SectionAssignment(region=region, sectionName='Section-1', offset=0.0,
offsetType=MIDDLE_SURFACE, offsetField='',
thicknessAssignment=FROM_SECTION)
p = mdb.models['Model-1'].parts['Part-3']
e = p.edges
edges = e.getSequenceFromMask(mask=('[#3 ]', ), )
region=p.Set(edges=edges, name='Set-2')
p = mdb.models['Model-1'].parts['Part-3']
p.assignBeamSectionOrientation(region=region, method=N1_COSINES, n1=(0.0, 0.0,
-1.0))
a1 = mdb.models['Model-1'].rootAssembly
a1.regenerate()
a = mdb.models['Model-1'].rootAssembly
session.viewports['Viewport: 1'].setValues(displayedObject=a)
session.viewports['Viewport: 1'].assemblyDisplay.setValues(
adaptiveMeshConstraints=ON)
mdb.models['Model-1'].StaticStep(name='Step-1', previous='Initial',
description='Q2.6')
session.viewports['Viewport: 1'].assemblyDisplay.setValues(step='Step-1')
session.viewports['Viewport: 1'].assemblyDisplay.setValues(loads=ON, bcs=ON,
predefinedFields=ON, connectors=ON, adaptiveMeshConstraints=OFF)
a = mdb.models['Model-1'].rootAssembly
v1 = a.instances['Part-3-1'].vertices
340
Appendix C: ABAQUS Tutorials
341
Appendix C: ABAQUS Tutorials
Q4.1c
Start a new model: File/New Model Database/With standard/Explicit Model
Create model
Module/Part
Click Create Part
Choose
2D/Deformable/Shell
Approximate size 1000
Continue
342
Appendix C: ABAQUS Tutorials
Module/Property
Create Material/
Mechanical/Elasticity/
Elastic
Define Young’s modulus
2e5 and Poisson’s ratio
0.25
OK
Create Section
Choose Homogenous
Click Solid
Continue
343
Appendix C: ABAQUS Tutorials
Create Instances
Module Assembly
Click Create Instance
Part-1
Choose Dependent
OK
Module Step
Click Create Step
Initial
Continue
Description Q4.1c
OK
344
Appendix C: ABAQUS Tutorials
Apply load
Module Load
Click Create Load
Mechanical/ Pressure
Continue
Define Magnitude 10
OK
345
Appendix C: ABAQUS Tutorials
Click on point 1
Done
Define U1, U2 0
OK
346
Appendix C: ABAQUS Tutorials
Mesh control
Module Mesh
Click Part (Part-1)
Click Seed Part
Specify global size 75
OK
Mesh
Solution
As before Module Job/ Create Job /Model-1/ Job name: Q4_1c/ Continue/ Description Q4.1c/ OK
Job Manager/Submit job to solve & Monitor to monitor solution
347
Appendix C: ABAQUS Tutorials
View results
Open results file as before: File/open Choose Q4_1c.obd OK
Plot displacement contours in y-direction
Click results (top menu bar)
Field output
Choose U for displacement
U2 for displacement in the y-
direction
Click Plot Contours on
Deformed Shape
Compare maximum y-
displacement to ANSYS
results and analytical
solution?
348
Appendix C: ABAQUS Tutorials
349
Appendix C: ABAQUS Tutorials
a = mdb.models['Model-1'].rootAssembly
v1 = a.instances['Part-1-1'].vertices
verts1 = v1.getSequenceFromMask(mask=('[#2 ]', ), )
region = a.Set(vertices=verts1, name='Set-2')
mdb.models['Model-1'].DisplacementBC(name='BC-2', createStepName='Step-1',
region=region, u1=UNSET, u2=0.0, ur3=UNSET, amplitude=UNSET, fixed=OFF,
distributionType=UNIFORM, fieldName='', localCsys=None)
session.viewports['Viewport: 1'].assemblyDisplay.setValues(mesh=ON, loads=OFF,
bcs=OFF, predefinedFields=OFF, connectors=OFF)
session.viewports['Viewport: 1'].assemblyDisplay.meshOptions.setValues(
meshTechnique=ON)
p = mdb.models['Model-1'].parts['Part-1']
session.viewports['Viewport: 1'].setValues(displayedObject=p)
session.viewports['Viewport: 1'].partDisplay.setValues(sectionAssignments=OFF,
engineeringFeatures=OFF, mesh=ON)
session.viewports['Viewport: 1'].partDisplay.meshOptions.setValues(
meshTechnique=ON)
p = mdb.models['Model-1'].parts['Part-1']
p.seedPart(size=75.0, deviationFactor=0.1, minSizeFactor=0.1)
p = mdb.models['Model-1'].parts['Part-1']
p.generateMesh()
elemType1 = mesh.ElemType(elemCode=CPS8R, elemLibrary=STANDARD)
elemType2 = mesh.ElemType(elemCode=CPS6M, elemLibrary=STANDARD)
p = mdb.models['Model-1'].parts['Part-1']
f = p.faces
faces = f.getSequenceFromMask(mask=('[#1 ]', ), )
pickedRegions =(faces, )
p.setElementType(regions=pickedRegions, elemTypes=(elemType1, elemType2))
a1 = mdb.models['Model-1'].rootAssembly
a1.regenerate()
a = mdb.models['Model-1'].rootAssembly
session.viewports['Viewport: 1'].setValues(displayedObject=a)
session.viewports['Viewport: 1'].assemblyDisplay.setValues(mesh=OFF)
session.viewports['Viewport: 1'].assemblyDisplay.meshOptions.setValues(
meshTechnique=OFF)
mdb.Job(name='Q4_1c', model='Model-1', description='Q4.1c', 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='', multiprocessingMode=DEFAULT, numCpus=1, numGPUs=0)
mdb.jobs['Q4_1c'].submit(consistencyChecking=OFF)
350
Appendix C: ABAQUS Tutorials
Q5.3
Start a new model as before: File/New Model Database/With standard/Explicit Model
Create model
Module/Part
Click Create Part
Choose
3D/Deformable/Shell/
planar
Approximate size 1
Continue
351
Appendix C: ABAQUS Tutorials
Create Section
Choose Homogenous
Click Shell
Continue
352
Appendix C: ABAQUS Tutorials
Create Instances
Module Assembly
Click Create Instance
Part-1
Choose Dependent
OK
Module Load
Click Create Load
Mechanical/ Pressure
Continue
Click on circle
Done
Click Brown (side of
shell)
353
Appendix C: ABAQUS Tutorials
354
Appendix C: ABAQUS Tutorials
Mesh control
Module Mesh
Click Part (Part-1)
Click Seed Part
Specify global size 0.05
OK
Mesh
355
Appendix C: ABAQUS Tutorials
Solution
As before Module Job/ Create Job /Model-1/ Continue
Description Q5.3/ OK/ Job Manager/Submit job to solve & Monitor to monitor solution
View results
Open results file as before: File/open Choose Q5_3.obd OK
Plot displacement contours in z-direction
356
Appendix C: ABAQUS Tutorials
357
Appendix C: ABAQUS Tutorials
358
Appendix C: ABAQUS Tutorials
mdb.models['Model-1'].StaticStep(name='Step-1', previous='Initial',
description='Q5.3')
session.viewports['Viewport: 1'].assemblyDisplay.setValues(step='Step-1')
session.viewports['Viewport: 1'].assemblyDisplay.setValues(loads=ON, bcs=ON,
predefinedFields=ON, connectors=ON, adaptiveMeshConstraints=OFF)
a = mdb.models['Model-1'].rootAssembly
s1 = a.instances['Part-1-1'].faces
side1Faces1 = s1.getSequenceFromMask(mask=('[#1 ]', ), )
region = a.Surface(side1Faces=side1Faces1, name='Surf-1')
mdb.models['Model-1'].Pressure(name='Load-1', createStepName='Step-1',
region=region, distributionType=UNIFORM, field='',
magnitude=-2000000.0, amplitude=UNSET)
a = mdb.models['Model-1'].rootAssembly
e1 = a.instances['Part-1-1'].edges
edges1 = e1.getSequenceFromMask(mask=('[#1 ]', ), )
region = a.Set(edges=edges1, name='Set-1')
mdb.models['Model-1'].DisplacementBC(name='BC-1', createStepName='Step-1',
region=region, u1=0.0, u2=0.0, u3=0.0, ur1=0.0, ur2=0.0, ur3=0.0,
amplitude=UNSET, fixed=OFF, distributionType=UNIFORM, fieldName='',
localCsys=None)
session.viewports['Viewport: 1'].assemblyDisplay.setValues(mesh=ON, loads=OFF,
bcs=OFF, predefinedFields=OFF, connectors=OFF)
session.viewports['Viewport: 1'].assemblyDisplay.meshOptions.setValues(
meshTechnique=ON)
p = mdb.models['Model-1'].parts['Part-1']
session.viewports['Viewport: 1'].setValues(displayedObject=p)
session.viewports['Viewport: 1'].partDisplay.setValues(sectionAssignments=OFF,
engineeringFeatures=OFF, mesh=ON)
session.viewports['Viewport: 1'].partDisplay.meshOptions.setValues(
meshTechnique=ON)
p = mdb.models['Model-1'].parts['Part-1']
p.seedPart(size=0.05, deviationFactor=0.1, minSizeFactor=0.1)
p = mdb.models['Model-1'].parts['Part-1']
p.generateMesh()
elemType1 = mesh.ElemType(elemCode=S8R, elemLibrary=STANDARD)
elemType2 = mesh.ElemType(elemCode=STRI65, elemLibrary=STANDARD)
p = mdb.models['Model-1'].parts['Part-1']
f = p.faces
faces = f.getSequenceFromMask(mask=('[#1 ]', ), )
pickedRegions =(faces, )
p.setElementType(regions=pickedRegions, elemTypes=(elemType1, elemType2))
session.viewports['Viewport: 1'].view.setValues(nearPlane=2.09444,
farPlane=3.56242, width=1.24121, height=0.777519, cameraPosition=(
0.211515, -2.44749, 1.40181), cameraUpVector=(0.26311, 0.496515,
0.827192), cameraTarget=(-3.56587e-008, 4.12616e-007, 2.4051e-007))
a1 = mdb.models['Model-1'].rootAssembly
a1.regenerate()
a = mdb.models['Model-1'].rootAssembly
session.viewports['Viewport: 1'].setValues(displayedObject=a)
session.viewports['Viewport: 1'].assemblyDisplay.setValues(mesh=OFF)
session.viewports['Viewport: 1'].assemblyDisplay.meshOptions.setValues(
meshTechnique=OFF)
mdb.Job(name='Q5_3', model='Model-1', description='Q5.3', 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='', multiprocessingMode=DEFAULT, numCpus=1, numGPUs=0)
mdb.jobs['Q5_3'].submit(consistencyChecking=OFF)
Q5.7
359
Appendix C: ABAQUS Tutorials
360
Appendix C: ABAQUS Tutorials
Module Load
Click Create Load
Mechanical/ Pressure
Continue
Click on rectangular
Done
Click Brown (side of
shell)
361
Appendix C: ABAQUS Tutorials
362
Appendix C: ABAQUS Tutorials
Mesh control
Module Mesh
Click Part (Part-1)
Click Seed Part
Specify global size 0.1
OK
Mesh
Define element type as before: Click Assign Element Type/Choose Shell/Click on Quadratic/
OK
363
Appendix C: ABAQUS Tutorials
Solution
As before Module Job/ Create Job: /Name Q5_7 /Model-1/ Continue
Description Q5.7/ OK/ Job Manager/Submit job to solve & Monitor to monitor solution
View results
Open results file as before: File/open Choose Q5_7.obd OK
Plot displacement contours
Plot stress contours in x and y- directions (S11 & S22) and compare the results to ANSYS results and
analytical solution?
Python code Q5.7
def Q5_7():
import section
import regionToolset
import displayGroupMdbToolset as dgm
import part
import material
import assembly
import step
import interaction
import load
import mesh
import optimization
import job
import sketch
import visualization
import xyPlot
import displayGroupOdbToolset as dgo
import connectorBehavior
session.viewports['Viewport: 1'].partDisplay.setValues(sectionAssignments=OFF,
engineeringFeatures=OFF)
session.viewports['Viewport: 1'].partDisplay.geometryOptions.setValues(
referenceRepresentation=ON)
session.viewports['Viewport: 1'].setValues(displayedObject=None)
s1 = mdb.models['Model-1'].ConstrainedSketch(name='__profile__',
sheetSize=200.0)
g, v, d, c = s1.geometry, s1.vertices, s1.dimensions, s1.constraints
s1.setPrimaryObject(option=STANDALONE)
s1.rectangle(point1=(0.0, 0.0), point2=(0.5, 1.0))
p = mdb.models['Model-1'].Part(name='Part-1', dimensionality=THREE_D,
364
Appendix C: ABAQUS Tutorials
type=DEFORMABLE_BODY)
p = mdb.models['Model-1'].parts['Part-1']
p.BaseShell(sketch=s1)
s1.unsetPrimaryObject()
p = mdb.models['Model-1'].parts['Part-1']
session.viewports['Viewport: 1'].setValues(displayedObject=p)
del mdb.models['Model-1'].sketches['__profile__']
session.viewports['Viewport: 1'].partDisplay.setValues(sectionAssignments=ON,
engineeringFeatures=ON)
session.viewports['Viewport: 1'].partDisplay.geometryOptions.setValues(
referenceRepresentation=OFF)
mdb.models['Model-1'].Material(name='Material-1')
mdb.models['Model-1'].materials['Material-1'].Elastic(table=((200000000000.0,
0.3), ))
mdb.models['Model-1'].HomogeneousShellSection(name='Section-1',
preIntegrate=OFF, material='Material-1', thicknessType=UNIFORM,
thickness=0.02, thicknessField='', idealization=NO_IDEALIZATION,
poissonDefinition=DEFAULT, thicknessModulus=None, temperature=GRADIENT,
useDensity=OFF, integrationRule=SIMPSON, numIntPts=5)
p = mdb.models['Model-1'].parts['Part-1']
f = p.faces
faces = f.getSequenceFromMask(mask=('[#1 ]', ), )
region = p.Set(faces=faces, name='Set-1')
p = mdb.models['Model-1'].parts['Part-1']
p.SectionAssignment(region=region, sectionName='Section-1', offset=0.0,
offsetType=MIDDLE_SURFACE, offsetField='',
thicknessAssignment=FROM_SECTION)
a = mdb.models['Model-1'].rootAssembly
session.viewports['Viewport: 1'].setValues(displayedObject=a)
session.viewports['Viewport: 1'].assemblyDisplay.setValues(loads=OFF, bcs=OFF,
predefinedFields=OFF, connectors=OFF)
a1 = mdb.models['Model-1'].rootAssembly
a1.DatumCsysByDefault(CARTESIAN)
p = mdb.models['Model-1'].parts['Part-1']
a1.Instance(name='Part-1-1', part=p, dependent=ON)
session.viewports['Viewport: 1'].assemblyDisplay.setValues(
adaptiveMeshConstraints=ON)
mdb.models['Model-1'].StaticStep(name='Step-1', previous='Initial',
description='Q5.7')
session.viewports['Viewport: 1'].assemblyDisplay.setValues(step='Step-1')
session.viewports['Viewport: 1'].assemblyDisplay.setValues(loads=ON, bcs=ON,
predefinedFields=ON, connectors=ON, adaptiveMeshConstraints=OFF)
a = mdb.models['Model-1'].rootAssembly
s1 = a.instances['Part-1-1'].faces
side1Faces1 = s1.getSequenceFromMask(mask=('[#1 ]', ), )
region = a.Surface(side1Faces=side1Faces1, name='Surf-1')
mdb.models['Model-1'].Pressure(name='Load-1', createStepName='Step-1',
region=region, distributionType=UNIFORM, field='', magnitude=-700000.0,
amplitude=UNSET)
a = mdb.models['Model-1'].rootAssembly
e1 = a.instances['Part-1-1'].edges
edges1 = e1.getSequenceFromMask(mask=('[#f ]', ), )
region = a.Set(edges=edges1, name='Set-1')
mdb.models['Model-1'].DisplacementBC(name='BC-1', createStepName='Step-1',
region=region, u1=0.0, u2=0.0, u3=0.0, ur1=UNSET, ur2=UNSET, ur3=UNSET,
amplitude=UNSET, fixed=OFF, distributionType=UNIFORM, fieldName='',
localCsys=None)
session.viewports['Viewport: 1'].assemblyDisplay.setValues(mesh=ON, loads=OFF,
bcs=OFF, predefinedFields=OFF, connectors=OFF)
session.viewports['Viewport: 1'].assemblyDisplay.meshOptions.setValues(
365
Appendix C: ABAQUS Tutorials
meshTechnique=ON)
p = mdb.models['Model-1'].parts['Part-1']
session.viewports['Viewport: 1'].setValues(displayedObject=p)
session.viewports['Viewport: 1'].partDisplay.setValues(sectionAssignments=OFF,
engineeringFeatures=OFF, mesh=ON)
session.viewports['Viewport: 1'].partDisplay.meshOptions.setValues(
meshTechnique=ON)
p = mdb.models['Model-1'].parts['Part-1']
p.seedPart(size=0.1, deviationFactor=0.1, minSizeFactor=0.1)
p = mdb.models['Model-1'].parts['Part-1']
p.generateMesh()
elemType1 = mesh.ElemType(elemCode=S8R, elemLibrary=STANDARD)
elemType2 = mesh.ElemType(elemCode=STRI65, elemLibrary=STANDARD)
p = mdb.models['Model-1'].parts['Part-1']
f = p.faces
faces = f.getSequenceFromMask(mask=('[#1 ]', ), )
pickedRegions =(faces, )
p.setElementType(regions=pickedRegions, elemTypes=(elemType1, elemType2))
a1 = mdb.models['Model-1'].rootAssembly
a1.regenerate()
a = mdb.models['Model-1'].rootAssembly
session.viewports['Viewport: 1'].setValues(displayedObject=a)
session.viewports['Viewport: 1'].assemblyDisplay.setValues(mesh=OFF)
session.viewports['Viewport: 1'].assemblyDisplay.meshOptions.setValues(
meshTechnique=OFF)
mdb.Job(name='Q5_7', model='Model-1', description='Q5.7', 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='', multiprocessingMode=DEFAULT, numCpus=1, numGPUs=0)
mdb.jobs['Q5_7'].submit(consistencyChecking=OFF)
366
Appendix C: ABAQUS Tutorials
367
Appendix C: ABAQUS Tutorials
Module/Property
Create Material/
Mechanical/Elasticity/
Elastic
Define Young’s modulus
70e3 and Poisson’s ratio
0.3
OK
Create section
Create Section
Choose Homogenous
Solid
Continue
Material-1
OK
368
Appendix C: ABAQUS Tutorials
Create Instances
Module/Assembly
Click Create Instance
SEbracket
Choose Dependent
OK
Module Step
Click Create Step
Initial
Continue
369
Appendix C: ABAQUS Tutorials
Description SEbracket
OK
Apply load
Module Load
Click Create Load
Mechanical/ concentrated
force
Continue
370
Appendix C: ABAQUS Tutorials
Define CF3 -1
OK
371
Appendix C: ABAQUS Tutorials
Mesh control
Module Mesh
Click Part (SEbracket)
Click Seed Part
Specify global size 5
OK
Mesh Control
Assign Mesh Control
Chose Tet
Ok
372
Appendix C: ABAQUS Tutorials
Mesh
Click Mesh Part
Click yes
Solution:/ As before Module Job/ Create Job /Name: SEbracket /Model-1/ Continue
Description SEbracket/ OK / Job Manager/Submit job to solve & Monitor to monitor solution
View results
Open results file as before: File/open Choose SEbracket.obd OK
Plot von-Mises stress
Click results
Field output
Choose S / Mises
Plot contours on
Compare results to
ANSYS results?
Plot other displacement
and stress components and
compare to ANSYS?
373
Appendix C: ABAQUS Tutorials
Module part
374
Appendix C: ABAQUS Tutorials
Model/Part
Create cylinder 1
Define Center (x=0, y=25 mm) and Perimeter (x=0, y=0) points in global coordinates
375
Appendix C: ABAQUS Tutorials
Partition:
In order to refine the mesh at the contact area, the cylinder is divided into several parts
376
Appendix C: ABAQUS Tutorials
Partition of circle into different parts using horizontal and vertical lines (to facilitate meshing and
applying boundary conditions)
377
Appendix C: ABAQUS Tutorials
Create cylinder 2
As before create Cylinder 2, Click Create Circle: Center and Perimeter the center point is 0,-50;
perimeter point is 0,0
Partition: The same method as for Cylinder 1.
The rectangular:
-0.5,50 and 0.5,49
Middle horizontal line:
-50,0 and 50,0
Left vertical line:
-25,50
Right vertical line:
25,50
Module: Property
Define Material properties, E=200 GPa= = 200 000 N/mm2, Poisson’s=0.3
Module/Property
378
Appendix C: ABAQUS Tutorials
Create
Material/Mechanical
/Elastic
Define Young’s modulus
200e3 and Possion’s ratio
0.3
OK
Define Section
Create Section/
Choose Solid and
Homogeneous
Continue
Edit Section/
Choose Material-1
OK
Assign Section/
Click assign section
Choose the whole part
Done
And OK
379
Appendix C: ABAQUS Tutorials
As both cylinders have same material, the section-1 is also assigned to cylinder 2.
Select part 2
Assign Section/
Click assign section
Choose the whole part
Done
And OK
Module: assembly
Module: Step
380
Appendix C: ABAQUS Tutorials
Click Incrementation,
Increment size:
Initial: 0.01;
Minimum:1E-012
OK
381
Appendix C: ABAQUS Tutorials
Choose Contact
Continue
382
Appendix C: ABAQUS Tutorials
Choose
mechanical/tangential
behaviour
And choose Frictionless
OK
And OK in Edit
Interaction box
Module: Load
Create load
Choose
Mechanical/concentrated
force
Continue
383
Appendix C: ABAQUS Tutorials
Edit Load
CF2: -50
OK
Create Boundary
Condition
Choose mechanical/
Displacement/Rotation
Continue
384
Appendix C: ABAQUS Tutorials
Module: Mesh
Cylinder 1
385
Appendix C: ABAQUS Tutorials
Seed edges
Choose the bottom lines
as shown
Done
Local Seeds
Method: by size
Bias: None
Approximate element
size: 0.01
OK
386
Appendix C: ABAQUS Tutorials
387
Appendix C: ABAQUS Tutorials
388
Appendix C: ABAQUS Tutorials
Element type: CPE4 (full integration; please note reduced integration may lead to hourglass mode!)
389
Appendix C: ABAQUS Tutorials
Seed edges
Choose the top lines as
shown
Done
Method: by size
Bias: None
Approximate element
size: 0.01
OK
390
Appendix C: ABAQUS Tutorials
391
Appendix C: ABAQUS Tutorials
392
Appendix C: ABAQUS Tutorials
Module: Job
Create Job
Name: EX1
Continue
Edit Job
Description: cylinder on
cylinder
OK
Job Manage
Click Submit
393
Appendix C: ABAQUS Tutorials
View Results
To change deformation scale
Click Options/Common
Deformation scale factor
Uniform
Enter a value, e.g. 10
OK
To plat a path
To get contact pressure, a path along the contact line should be made.
394
Appendix C: ABAQUS Tutorials
395
Appendix C: ABAQUS Tutorials
396
Appendix C: ABAQUS Tutorials
Click Plot
The contact pressure
curve is shown
Compare the results with analytical solution (maximum contact pressure and contact width)
Cylinder on rectangle contact problem
P’= 50 N/mm, d= 50 mm, E= 200 GPa
Module: Part
Copy model 1
Right click “Model 1”
397
Appendix C: ABAQUS Tutorials
Rename as “Model-2”
398
Appendix C: ABAQUS Tutorials
399
Appendix C: ABAQUS Tutorials
Module: Property
Material property and section are already in Model-2.
Module Assembly
Create instance
Choose
Rectangular/dependent
OK
400
Appendix C: ABAQUS Tutorials
Module: interaction
Delete Int-1(which is defined in Module 1)
401
Appendix C: ABAQUS Tutorials
Click OK
Click Create Interaction
Property
Choose Contact
Continue
Choose
mechanical/tangential
behaviour
And choose Frictionless
OK
Contact interaction
property/IntProp-1
OK
Module: Load
Delete BC-2 defined in module 1
Model tree,
Choose BC(s)/BC-2
Right click
Choose delete
Yes
402
Appendix C: ABAQUS Tutorials
Click Boundary
conditions manage
Click create
Choose
displacement/rotation as
the types
Continue
403
Appendix C: ABAQUS Tutorials
Module: mesh
For rectangular, follow the same steps as for cylinder 1.
Local Seeds
Method: by size
Bias: None
Approximate element
size: 0.01
OK
404
Appendix C: ABAQUS Tutorials
Local Seeds
Method: by size
Bias: None
Approximate element
size: 0.05
OK
405
Appendix C: ABAQUS Tutorials
406
Appendix C: ABAQUS Tutorials
Module JOB
As before Create Job and submit job. Compare the results with analytical solution (maximum contact
pressure and contact width) path (1, 208:167:-1, 165:112:-1, 110)
407