Column

The theory and objectives underlaying this example is described in the course Lightweight Design.

The model is a minor modification of the Drive shaft where the torque is replaced by a compressive force:

In [ ]:
from abaqus import *
from abaqusConstants import *

def column(modelname,r, L, t, F, esize, E, v, rho):
      
    mod = mdb.Model(name=modelname, modelType=STANDARD_EXPLICIT)
    
    # Part

    ske = mod.ConstrainedSketch(name='__profile__', sheetSize=200.0)
    ske.CircleByCenterPerimeter(center=(0.0, 0.0), point1=(0.0, r))
    prt = mod.Part(name='Tube', dimensionality=THREE_D, type=DEFORMABLE_BODY)
    prt.BaseShellExtrude(sketch=ske, depth=L)
    del mod.sketches['__profile__']

    # Sets of edges

    for edge in prt.edges:
        if edge.pointOn[0][2] == 0:
            prt.Set(name='Edge-1', edges=prt.edges[edge.index:edge.index+1])
        if edge.pointOn[0][2] == L:
            prt.Set(name='Edge-2', edges=prt.edges[edge.index:edge.index+1])
    
    # Material and section
    
    mod.Material(name='Mat1')
    mod.materials['Mat1'].Density(table=((rho, ), ))
    mod.materials['Mat1'].Elastic(table=((E, v), ))
    mod.HomogeneousShellSection(name='Sec-1', material='Mat1', thickness=t)
    region = prt.Set(faces=prt.faces, name='Set-faces')
    prt.SectionAssignment(region=region, sectionName='Sec-1', offsetType=MIDDLE_SURFACE)
    prt.seedPart(size=esize, deviationFactor=0.1, minSizeFactor=0.1)
    prt.generateMesh()
    
    # Assembly
 
    ass = mod.rootAssembly
    ass.DatumCsysByDefault(CARTESIAN)
    ins = ass.Instance(name='TubeIns', part=prt, dependent=ON)
    
    # MPCs

    rp1=ass.ReferencePoint(point=(0.0, 0.0, 0.0))
    rreg1=ass.Set(referencePoints=(ass.referencePoints[rp1.id], ), name='RP1')
    ereg1=ins.sets['Edge-1']
    mod.MultipointConstraint(name='MPC-1', controlPoint=rreg1, surface=ereg1, mpcType=BEAM_MPC)
    rp2=ass.ReferencePoint(point=(0.0, 0.0, L))
    rreg2=ass.Set(referencePoints=(ass.referencePoints[rp2.id], ), name='RP2')
    ereg2=ins.sets['Edge-2']
    mod.MultipointConstraint(name='MPC-2', controlPoint=rreg2, surface=ereg2, mpcType=BEAM_MPC)    
    
    # Initial Bondary conditions
    
    mod.DisplacementBC(name='BC-1', createStepName='Initial', region=rreg1, 
                       u1=SET, u2=SET, u3=SET, ur1=SET, ur2=SET, ur3=SET)
    mod.DisplacementBC(name='BC-2', createStepName='Initial', region=rreg2, 
                       u1=SET, u2=SET, ur1=SET, ur2=SET, ur3=SET)
    
    # Step and applied force

    mod.BuckleStep(name='Step-Buckl', previous='Initial', numEigen=2, vectors=4, maxIterations=500)
    mod.ConcentratedForce(name='Force', createStepName='Step-Buckl', region=rreg2, cf3=-F)

    # Job
    job = mdb.Job(name=modelname, model=modelname)
    job.submit(consistencyChecking=OFF)
    job.waitForCompletion() 

    # Result
    odb = session.openOdb(name=modelname+'.odb')
    try:    
        ev = abs(float(odb.steps['Step-Buckl'].frames[1].description.split('=')[1].strip()))
        return [r, t, ev]
    except:
        return [0.0, 0.0, 0.0]

Using data from the case study Lightweight column where the analytical solution shows an eigenvalue equal to unity:

In [ ]:
t = 3.69
r = 25-0.5*t   # radius to the midplane of the shell
res = column(modelname='C1',r=r, L=2.0E3, t=t, F=100.0E3, esize=5, E=70000.0, v=0.33, rho=2700.0E-12)
print res

Result:

image.png

TOC Next Prev

Disclaimer:This site is designed for educational purposes only. There are most likely errors, mistakes, typos, and poorly crafted statements that are not detected yet... www.ntnu.edu/employees/nils.p.vedvik

Copyright 2024, All rights reserved