Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations GregLocock on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

UMAT Subroutine

Status
Not open for further replies.

Usman1979

Mechanical
Sep 23, 2014
8
Dear All,

I am really new in abaqus. Now I want to try to model FGM material. They said that I have to use UMAT.
Please help me how to introduce UMAT subroutine to the existing script. The example script I also posted below.
Thanks

# -*- coding: mbcs -*-
from part import *
from material import *
from section import *
from assembly import *
from step import *
from interaction import *
from load import *
from mesh import *
from job import *
from sketch import *
from visualization import *
from connectorBehavior import *
mdb.models['Model-1'].ConstrainedSketch(name='__profile__', sheetSize=20.0)
mdb.models['Model-1'].sketches['__profile__'].rectangle(point1=(-5.0, -1.0),
point2=(5.0, 1.0))
mdb.models['Model-1'].Part(dimensionality=TWO_D_PLANAR, name='Part-1', type=
DEFORMABLE_BODY)
mdb.models['Model-1'].parts['Part-1'].BaseShell(sketch=
mdb.models['Model-1'].sketches['__profile__'])
del mdb.models['Model-1'].sketches['__profile__']
mdb.models['Model-1'].Material(name='Material-1')
mdb.models['Model-1'].materials['Material-1'].Elastic(table=((1000000000.0,
0.3), ))
mdb.models['Model-1'].HomogeneousSolidSection(material='Material-1', name=
'Section-1', thickness=None)
mdb.models['Model-1'].parts['Part-1'].SectionAssignment(offset=0.0,
offsetField='', offsetType=MIDDLE_SURFACE, region=Region(
faces=mdb.models['Model-1'].parts['Part-1'].faces.findAt(((-1.666667,
-0.333333, 0.0), (0.0, 0.0, 1.0)), )), sectionName='Section-1',
thicknessAssignment=FROM_SECTION)
mdb.models['Model-1'].parts['Part-1'].Set(edges=
mdb.models['Model-1'].parts['Part-1'].edges.findAt(((-5.0, -0.5, 0.0), )),
name='LeftEdge')
mdb.models['Model-1'].parts['Part-1'].Surface(name='TopEdge', side1Edges=
mdb.models['Model-1'].parts['Part-1'].edges.findAt(((-2.5, 1.0, 0.0), )))
mdb.models['Model-1'].parts['Part-1'].setMeshControls(elemShape=QUAD, regions=
mdb.models['Model-1'].parts['Part-1'].faces.findAt(((-1.666667, -0.333333,
0.0), )), technique=STRUCTURED)
mdb.models['Model-1'].parts['Part-1'].setElementType(elemTypes=(ElemType(
elemCode=CPS8R, elemLibrary=STANDARD), ElemType(elemCode=CPS6M,
elemLibrary=STANDARD)), regions=(
mdb.models['Model-1'].parts['Part-1'].faces.findAt(((-1.666667, -0.333333,
0.0), )), ))
mdb.models['Model-1'].parts['Part-1'].seedPart(deviationFactor=0.1, size=0.5)
mdb.models['Model-1'].parts['Part-1'].generateMesh()
mdb.models['Model-1'].rootAssembly.DatumCsysByDefault(CARTESIAN)
mdb.models['Model-1'].rootAssembly.Instance(dependent=ON, name='Part-1-1',
part=mdb.models['Model-1'].parts['Part-1'])
mdb.models['Model-1'].StaticStep(initialInc=0.1, name='Step-1', nlgeom=ON,
previous='Initial')
mdb.models['Model-1'].DisplacementBC(amplitude=UNSET, createStepName='Initial',
distributionType=UNIFORM, fieldName='', localCsys=None, name='BC-1',
region=
mdb.models['Model-1'].rootAssembly.instances['Part-1-1'].sets['LeftEdge'],
u1=SET, u2=SET, ur3=SET)
mdb.models['Model-1'].Pressure(amplitude=UNSET, createStepName='Step-1',
distributionType=UNIFORM, field='', magnitude=-1e-05, name='Load-1',
region=
mdb.models['Model-1'].rootAssembly.instances['Part-1-1'].surfaces['TopEdge'])
mdb.Job(atTime=None, contactPrint=OFF, description='', echoPrint=OFF,
explicitPrecision=SINGLE, getMemoryFromAnalysis=True, historyPrint=OFF,
memory=90, memoryUnits=PERCENTAGE, model='Model-1', modelPrint=OFF,
multiprocessingMode=DEFAULT, name='Example', nodalOutputPrecision=SINGLE,
numCpus=1, queue=None, scratch='', type=ANALYSIS, userSubroutine='',
waitHours=0, waitMinutes=0)
mdb.jobs['Example'].submit(consistencyChecking=OFF)
mdb.jobs['Example']._Message(STARTED, {'phase': BATCHPRE_PHASE,
'clientHost': 'LAB-PC', 'handle': 0, 'jobName': 'Example'})
mdb.jobs['Example']._Message(WARNING, {'phase': BATCHPRE_PHASE,
'message': 'DEGREE OF FREEDOM 6 IS NOT ACTIVE IN THIS MODEL AND CAN NOT BE RESTRAINED',
'jobName': 'Example'})
mdb.jobs['Example']._Message(ODB_FILE, {'phase': BATCHPRE_PHASE,
'file': 'D:\\Usman Folder\\Abaqus working directory\\Example.odb',
'jobName': 'Example'})
mdb.jobs['Example']._Message(COMPLETED, {'phase': BATCHPRE_PHASE,
'message': 'Analysis phase complete', 'jobName': 'Example'})
mdb.jobs['Example']._Message(STARTED, {'phase': STANDARD_PHASE,
'clientHost': 'LAB-PC', 'handle': 6944, 'jobName': 'Example'})
mdb.jobs['Example']._Message(STEP, {'phase': STANDARD_PHASE, 'stepId': 1,
'jobName': 'Example'})
mdb.jobs['Example']._Message(ODB_FRAME, {'phase': STANDARD_PHASE, 'step': 0,
'frame': 0, 'jobName': 'Example'})
mdb.jobs['Example']._Message(STATUS, {'totalTime': 0.0, 'attempts': 0,
'timeIncrement': 0.1, 'increment': 0, 'stepTime': 0.0, 'step': 1,
'jobName': 'Example', 'severe': 0, 'iterations': 0,
'phase': STANDARD_PHASE, 'equilibrium': 0})
mdb.jobs['Example']._Message(MEMORY_ESTIMATE, {'phase': STANDARD_PHASE,
'jobName': 'Example', 'memory': 24.3089294433594})
mdb.jobs['Example']._Message(ODB_FRAME, {'phase': STANDARD_PHASE, 'step': 0,
'frame': 1, 'jobName': 'Example'})
mdb.jobs['Example']._Message(STATUS, {'totalTime': 0.1, 'attempts': 1,
'timeIncrement': 0.1, 'increment': 1, 'stepTime': 0.1, 'step': 1,
'jobName': 'Example', 'severe': 0, 'iterations': 1,
'phase': STANDARD_PHASE, 'equilibrium': 1})
mdb.jobs['Example']._Message(ODB_FRAME, {'phase': STANDARD_PHASE, 'step': 0,
'frame': 2, 'jobName': 'Example'})
mdb.jobs['Example']._Message(STATUS, {'totalTime': 0.2, 'attempts': 1,
'timeIncrement': 0.1, 'increment': 2, 'stepTime': 0.2, 'step': 1,
'jobName': 'Example', 'severe': 0, 'iterations': 1,
'phase': STANDARD_PHASE, 'equilibrium': 1})
mdb.jobs['Example']._Message(ODB_FRAME, {'phase': STANDARD_PHASE, 'step': 0,
'frame': 3, 'jobName': 'Example'})
mdb.jobs['Example']._Message(STATUS, {'totalTime': 0.35, 'attempts': 1,
'timeIncrement': 0.15, 'increment': 3, 'stepTime': 0.35, 'step': 1,
'jobName': 'Example', 'severe': 0, 'iterations': 1,
'phase': STANDARD_PHASE, 'equilibrium': 1})
mdb.jobs['Example']._Message(ODB_FRAME, {'phase': STANDARD_PHASE, 'step': 0,
'frame': 4, 'jobName': 'Example'})
mdb.jobs['Example']._Message(STATUS, {'totalTime': 0.575, 'attempts': 1,
'timeIncrement': 0.225, 'increment': 4, 'stepTime': 0.575, 'step': 1,
'jobName': 'Example', 'severe': 0, 'iterations': 1,
'phase': STANDARD_PHASE, 'equilibrium': 1})
mdb.jobs['Example']._Message(ODB_FRAME, {'phase': STANDARD_PHASE, 'step': 0,
'frame': 5, 'jobName': 'Example'})
mdb.jobs['Example']._Message(STATUS, {'totalTime': 0.9125, 'attempts': 1,
'timeIncrement': 0.3375, 'increment': 5, 'stepTime': 0.9125, 'step': 1,
'jobName': 'Example', 'severe': 0, 'iterations': 1,
'phase': STANDARD_PHASE, 'equilibrium': 1})
mdb.jobs['Example']._Message(ODB_FRAME, {'phase': STANDARD_PHASE, 'step': 0,
'frame': 6, 'jobName': 'Example'})
mdb.jobs['Example']._Message(STATUS, {'totalTime': 1.0, 'attempts': 1,
'timeIncrement': 0.0874999999999999, 'increment': 6, 'stepTime': 1.0,
'step': 1, 'jobName': 'Example', 'severe': 0, 'iterations': 1,
'phase': STANDARD_PHASE, 'equilibrium': 1})
mdb.jobs['Example']._Message(END_STEP, {'phase': STANDARD_PHASE, 'stepId': 1,
'jobName': 'Example'})
mdb.jobs['Example']._Message(COMPLETED, {'phase': STANDARD_PHASE,
'message': 'Analysis phase complete', 'jobName': 'Example'})
mdb.jobs['Example']._Message(JOB_COMPLETED, {
'time': 'Mon Oct 13 11:10:28 2014', 'jobName': 'Example'})
# Save by LAB on Mon Oct 13 11:10:50 2014
 
Replies continue below

Recommended for you

Status
Not open for further replies.

Part and Inventory Search

Sponsor