# Cantilever beam, 2D Planar, 2 steps, Liner Perturbation from part import * from material import * from section import * from optimization 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 * E1 = 126000 G12 = 6600 E2 = 11000 E3 = E2 PR12 = 0.28 PR13 = PR12 PR23 = 0.4 G13 = G12 G23 = E3/2/(1+PR23) CL = 100 ww = 10 LL = 20 rr = LL/ww mdb.models['Model-1'].ConstrainedSketch(name='__profile__', sheetSize=200.0) mdb.models['Model-1'].sketches['__profile__'].rectangle(point1=(0.0, 0.0), point2=(ww, LL)) del mdb.models['Model-1'].sketches['__profile__'] mdb.models['Model-1'].ConstrainedSketch(name='__profile__', sheetSize=200.0) mdb.models['Model-1'].sketches['__profile__'].rectangle(point1=(0.0, 0.0), point2=(LL, ww)) 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=((E1, E2, E3, PR12, PR13, PR23, G12, G13, G23), ), type= ENGINEERING_CONSTANTS) mdb.models['Model-1'].parts['Part-1'].MaterialOrientation( additionalRotationType=ROTATION_NONE, axis=AXIS_3, fieldName='', localCsys= None, orientationType=GLOBAL, region=Region( faces=mdb.models['Model-1'].parts['Part-1'].faces.findAt(((LL/2, ww/2, 0.0), (0.0, 0.0, 1.0)), )), stackDirection=STACK_3) mdb.models['Model-1'].HomogeneousSolidSection(material='Material-1', name= 'Section-1', thickness=1.0) mdb.models['Model-1'].parts['Part-1'].Set(faces= mdb.models['Model-1'].parts['Part-1'].faces.findAt(((LL/2, ww/2, 0.0), (0.0, 0.0, 1.0)), ), name='Set-1') mdb.models['Model-1'].parts['Part-1'].SectionAssignment(offset=0.0, offsetField='', offsetType=MIDDLE_SURFACE, region= mdb.models['Model-1'].parts['Part-1'].sets['Set-1'], sectionName= 'Section-1', thicknessAssignment=FROM_SECTION) m = mdb.models['Model-1'] mdb.models['Model-1'].rootAssembly.DatumCsysByDefault(CARTESIAN) mdb.models['Model-1'].rootAssembly.Instance(dependent=OFF, name='Part-1-1', part=mdb.models['Model-1'].parts['Part-1']) mdb.models['Model-1'].StaticLinearPerturbationStep(name='Step-1', previous='Initial') mdb.models['Model-1'].StaticLinearPerturbationStep(name='Step-2', previous='Step-1') mdb.models['Model-1'].rootAssembly.Set(edges= mdb.models['Model-1'].rootAssembly.instances['Part-1-1'].edges.findAt((( 0.0, ww/2, 0.0), ), ), name='Set-1') mdb.models['Model-1'].EncastreBC(createStepName='Initial', localCsys=None, name= 'Cantilever', region=mdb.models['Model-1'].rootAssembly.sets['Set-1']) mdb.models['Model-1'].rootAssembly.ReferencePoint(point=(LL+1, ww, 0.0)) mdb.models['Model-1'].rootAssembly.Set(name='m_Set-2', referencePoints=( mdb.models['Model-1'].rootAssembly.referencePoints[5], )) mdb.models['Model-1'].rootAssembly.Set(edges= mdb.models['Model-1'].rootAssembly.instances['Part-1-1'].edges.findAt((( LL, ww/2, 0.0), ), ), name='s_Set-2') mdb.models['Model-1'].Coupling(controlPoint= mdb.models['Model-1'].rootAssembly.sets['m_Set-2'], couplingType=KINEMATIC, influenceRadius=WHOLE_SURFACE, localCsys=None, name='Constraint-1', surface=mdb.models['Model-1'].rootAssembly.sets['s_Set-2'], u1=OFF, u2=ON, ur3=OFF) mdb.models['Model-1'].rootAssembly.ReferencePoint(point=(LL+1, 0.0, 0.0)) mdb.models['Model-1'].rootAssembly.Set(name='m_Set-3', referencePoints=( mdb.models['Model-1'].rootAssembly.referencePoints[8], )) mdb.models['Model-1'].rootAssembly.Set(edges= mdb.models['Model-1'].rootAssembly.instances['Part-1-1'].edges.findAt((( LL, ww/2, 0.0), ), ), name='s_Set-3') mdb.models['Model-1'].Coupling(controlPoint= mdb.models['Model-1'].rootAssembly.sets['m_Set-3'], couplingType=KINEMATIC, influenceRadius=WHOLE_SURFACE, localCsys=None, name='Constraint-2', surface=mdb.models['Model-1'].rootAssembly.sets['s_Set-3'], u1=ON, u2=OFF, ur3=OFF) mdb.models['Model-1'].ConcentratedForce(cf2=-CL, createStepName='Step-1', distributionType=UNIFORM, field='', localCsys=None, name='Load-1', region= mdb.models['Model-1'].rootAssembly.sets['m_Set-2']) mdb.models['Model-1'].ConcentratedForce(cf1=CL, createStepName='Step-2', distributionType=UNIFORM, field='', localCsys=None, name='Load-2', region= mdb.models['Model-1'].rootAssembly.sets['m_Set-3']) mdb.models['Model-1'].rootAssembly.seedPartInstance(deviationFactor=0.1, minSizeFactor=0.1, regions=( mdb.models['Model-1'].rootAssembly.instances['Part-1-1'], ), size=5.)# use 1.0 mdb.models['Model-1'].rootAssembly.generateMesh(regions=( mdb.models['Model-1'].rootAssembly.instances['Part-1-1'], )) mdb.models['Model-1'].rootAssembly.regenerate() fileName='Job-1' job = 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=fileName, nodalOutputPrecision= SINGLE, numCpus=4, numGPUs=0, queue=None, resultsFormat=ODB, scratch='', type=ANALYSIS, userSubroutine='', waitHours=0, waitMinutes=0, numDomains=4) job.submit(consistencyChecking=OFF)