Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

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

Warping conditions on beam element in ABAQUS 1

Status
Not open for further replies.

ahmadw

Structural
Dec 26, 2013
7
Hello,

I am trying to model a beam element in ABAQUS but it is not taking any warping restraints for the model. It says that I cannot impose displacement, rotation and angular velocity restrictions at a node (which is the case for warping condition Theta'=0). Could anyone please guide me as to how am I supposed to model any warping conditions in ABAQUS?
A prompt response shall be highly appreciated! .

Regards
 
Replies continue below

Recommended for you

I think your question is addressed in ABAQUS Analysis User's Manual, 29.3.3 Choosing a beam element. There you can read the section about Warping (open-section) beams.

"...Element types B31OS, B32OS (and their “hybrid” equivalents) have the warping magnitude, w, as a degree of freedom at each node; they are available only in Abaqus/Standard. In these elements Abaqus/Standard assumes that the warping of the cross-section follows a certain pattern as a function of position in the cross-section (Abaqus will calculate this warping pattern if you have specified a standard library section or an “arbitrary” section): only the warping magnitude varies with position along the beam's axis. These elements are meant for the analysis of thin-walled open sections in which warping constraints play a role and the axial strains due to warping cannot be neglected..."
 
I do not know which specific problem you are working on, but another alternative could be using shell elements to model the beam. Just sketch the cross section as shell and extrude it. Then you can use S4 elements to mesh the part which are quite good at modeling bending behavior. Once you define the section orientations properly and use an adequately fine mesh, you can get the axial strains depending on how you chose the local orientation. S33 will always be zero for shell elements as a requirement of the shell assumption,so just be careful about it. By using 3D shell elements, you can also capture stress concentrations (you need to decide how sensitive your mesh should be) and response at every part of the cross section.

Hope these help.
 
Thanks a lot for the detailed response.
I really appreciate your help..

I am looking to actually model a warping condition in a W 8 x 67 section.
I am required to use a 3D beam section (line element), and model it as a 7 DOF system at each node. However, I can't find how to access the seventh degree of freedom in ABAQUS. The manual mentions that I should be able to get it in the BB32 or BB31 element type, but I am not able as to how to control that warping DOF.
Now, also, I know that the warping restraint is related to the theta' (change of rotation) and as such is equal to zero in a warping fixed case.
So, I would have been able to achieve the same effect if I could use the boundary condition that angular velocity = 0 (theta'(x)). However, in the boundary conditions, when I impose this restriction, ABAQUS says that I cannot impose displacement and rotational restraints (and warping restraints) at the same node.
Thus, I am not able to model a beam section with a cantilevered fixed end and warping also restrained at that end.
I feel this problem would never have arisen in the first place if I could directly find the warping boundary condition option in ABAQUS.
Can the warping which the BB31OS assumes automatically be switched on and off (when i want it to be completely restrained)?
 
You're welcome. I think you might need to read that section of the manual I mentioned in more detail. That warping magnitude "w" is the 7th DOF you might want to play with. Regarding B31OS and B32OS same section of the manual says:

"...These elements are meant for the analysis of thin-walled open sections in which warping constraints play a role and the axial strains due to warping cannot be neglected. Examples of such open sections that may warp in this fashion are the I-section and any open arbitrary section. In the other beam element types warping is considered unconstrained and any axial stress due to warping is neglected; torsional behavior will not be represented adequately when these element types are used with thin-walled, open sections...

...The choice of these constraints is a matter of detail of the local construction. For example, if the joint is reinforced, warping may be prevented; therefore, degree of freedom 7 should be fully constrained with a boundary condition on the appropriate members at the joint."

I hope this helps.
 
sir, I have read this section and the rest of the relevant parts. The problem is I don't know how to access this "w". I can't find it anywhere.
It says its only available in ABAQUS standard/.. does that mean its not available in the graphical user interface.. and i will need to create an input file myself for this?
any guidance on writing input files.. or some reading material regarding learning the same shall be highly appreciated!
thanks a ton for all the help.. ! :))
 
I have modeled the same B31OS .. but could you have a look at the following code and advise on how to fix/free the warping DOF(7th) :

i have added a new displacement BC named 'warping_edit'. could someone please tell me how to add the warping function here?



# -*- 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 optimization import *
from job import *
from sketch import *
from visualization import *
from connectorBehavior import *
mdb.models['Model-1'].ConstrainedSketch(name='__profile__', sheetSize=200.0)
mdb.models['Model-1'].sketches['__profile__'].Line(point1=(0.0, 0.0), point2=(

140.0, 0.0))
mdb.models['Model-1'].sketches['__profile__'].HorizontalConstraint(

addUndoState=False, entity=

mdb.models['Model-1'].sketches['__profile__'].geometry[2])
mdb.models['Model-1'].Part(dimensionality=THREE_D, name='Beam', type=

DEFORMABLE_BODY)
mdb.models['Model-1'].parts['Beam'].BaseWire(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=((29000.0, 0.3), ))
mdb.models['Model-1'].IProfile(b1=8.28, b2=8.28, h=9.0, l=4.5, name='W-8 x 67',

t1=0.935, t2=0.935, t3=0.57)
mdb.models['Model-1'].BeamSection(consistentMassMatrix=False, integration=

DURING_ANALYSIS, material='Material-1', name='beamsection', poissonRatio=

0.0, profile='W-8 x 67', temperatureVar=LINEAR)
mdb.models['Model-1'].parts['Beam'].SectionAssignment(offset=0.0, offsetField=

'', offsetType=MIDDLE_SURFACE, region=Region(

edges=mdb.models['Model-1'].parts['Beam'].edges.getSequenceFromMask(mask=(

'[#1 ]', ), )), sectionName='beamsection', thicknessAssignment=

FROM_SECTION)
mdb.models['Model-1'].rootAssembly.DatumCsysByDefault(CARTESIAN)
mdb.models['Model-1'].rootAssembly.Instance(dependent=ON, name='Beam-1', part=

mdb.models['Model-1'].parts['Beam'])
mdb.models['Model-1'].StaticStep(name='LoadApplication', previous='Initial')
mdb.models['Model-1'].Moment(cm1=1.0, createStepName='LoadApplication',

distributionType=UNIFORM, field='', localCsys=None, name='Torque', region=

Region(

vertices=mdb.models['Model-1'].rootAssembly.instances['Beam-1'].vertices.getSequenceFromMask(

mask=('[#2 ]', ), )))
mdb.models['Model-1'].EncastreBC(createStepName='Initial', localCsys=None,

name='Fixed', region=Region(

vertices=mdb.models['Model-1'].rootAssembly.instances['Beam-1'].vertices.getSequenceFromMask(

mask=('[#1 ]', ), )))
mdb.models['Model-1'].parts['Beam'].assignBeamSectionOrientation(method=

N1_COSINES, n1=(0.0, 0.0, -1.0), region=Region(

edges=mdb.models['Model-1'].parts['Beam'].edges.getSequenceFromMask(mask=(

'[#1 ]', ), )))
mdb.models['Model-1'].parts['Beam'].seedPart(deviationFactor=0.1,

minSizeFactor=0.1, size=5.0)
mdb.models['Model-1'].parts['Beam'].generateMesh()
mdb.models['Model-1'].rootAssembly.regenerate()
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='Job-1', nodalOutputPrecision=SINGLE,

numCpus=1, numGPUs=0, queue=None, scratch='', type=ANALYSIS,

userSubroutine='', waitHours=0, waitMinutes=0)
mdb.jobs['Job-1'].submit(consistencyChecking=OFF)
mdb.jobs['Job-1']._Message(STARTED, {'phase': BATCHPRE_PHASE,

'clientHost': 'blumews2', 'handle': 0, 'jobName': 'Job-1'})
mdb.jobs['Job-1']._Message(ODB_FILE, {'phase': BATCHPRE_PHASE,

'file': 'D:\\AbaqusWD\\Job-1.odb', 'jobName': 'Job-1'})
mdb.jobs['Job-1']._Message(COMPLETED, {'phase': BATCHPRE_PHASE,

'message': 'Analysis phase complete', 'jobName': 'Job-1'})
mdb.jobs['Job-1']._Message(STARTED, {'phase': STANDARD_PHASE,

'clientHost': 'blumews2', 'handle': 3288, 'jobName': 'Job-1'})
mdb.jobs['Job-1']._Message(STEP, {'phase': STANDARD_PHASE, 'stepId': 1,

'jobName': 'Job-1'})
mdb.jobs['Job-1']._Message(ODB_FRAME, {'phase': STANDARD_PHASE, 'step': 0,

'frame': 0, 'jobName': 'Job-1'})
mdb.jobs['Job-1']._Message(STATUS, {'totalTime': 0.0, 'increment': 0,

'attempts': 0, 'iterations': 0, 'phase': STANDARD_PHASE,

'timeIncrement': 1.0, 'stepTime': 0.0, 'step': 1, 'jobName': 'Job-1',

'severe': 0, 'equilibrium': 0})
mdb.jobs['Job-1']._Message(MEMORY_ESTIMATE, {'phase': STANDARD_PHASE,

'memory': 23.7439756393433, 'jobName': 'Job-1'})
mdb.jobs['Job-1']._Message(ODB_FRAME, {'phase': STANDARD_PHASE, 'step': 0,

'frame': 1, 'jobName': 'Job-1'})
mdb.jobs['Job-1']._Message(STATUS, {'totalTime': 1.0, 'increment': 1,

'attempts': 1, 'iterations': 1, 'phase': STANDARD_PHASE,

'timeIncrement': 1.0, 'stepTime': 1.0, 'step': 1, 'jobName': 'Job-1',

'severe': 0, 'equilibrium': 1})
mdb.jobs['Job-1']._Message(END_STEP, {'phase': STANDARD_PHASE, 'stepId': 1,

'jobName': 'Job-1'})
mdb.jobs['Job-1']._Message(COMPLETED, {'phase': STANDARD_PHASE,

'message': 'Analysis phase complete', 'jobName': 'Job-1'})
mdb.jobs['Job-1']._Message(JOB_COMPLETED, {'jobName': 'Job-1',

'time': 'Mon Jan 06 20:44:02 2014'})
mdb.jobs['Job-1']._Message(STARTED, {'phase': BATCHPRE_PHASE,

'clientHost': 'blumews2', 'handle': 0, 'jobName': 'Job-1'})
mdb.jobs['Job-1']._Message(ODB_FILE, {'phase': BATCHPRE_PHASE,

'file': 'D:\\AbaqusWD\\Job-1.odb', 'jobName': 'Job-1'})
mdb.jobs['Job-1']._Message(COMPLETED, {'phase': BATCHPRE_PHASE,

'message': 'Analysis phase complete', 'jobName': 'Job-1'})
mdb.jobs['Job-1']._Message(STARTED, {'phase': STANDARD_PHASE,

'clientHost': 'blumews2', 'handle': 2408, 'jobName': 'Job-1'})
mdb.jobs['Job-1']._Message(STEP, {'phase': STANDARD_PHASE, 'stepId': 1,

'jobName': 'Job-1'})
mdb.jobs['Job-1']._Message(ODB_FRAME, {'phase': STANDARD_PHASE, 'step': 0,

'frame': 0, 'jobName': 'Job-1'})
mdb.jobs['Job-1']._Message(STATUS, {'totalTime': 0.0, 'attempts': 0,

'timeIncrement': 1.0, 'increment': 0, 'stepTime': 0.0, 'step': 1,

'jobName': 'Job-1', 'severe': 0, 'iterations': 0, 'phase': STANDARD_PHASE,

'equilibrium': 0})
mdb.jobs['Job-1']._Message(MEMORY_ESTIMATE, {'phase': STANDARD_PHASE,

'jobName': 'Job-1', 'memory': 23.7439756393433})
mdb.jobs['Job-1']._Message(ODB_FRAME, {'phase': STANDARD_PHASE, 'step': 0,

'frame': 1, 'jobName': 'Job-1'})
mdb.jobs['Job-1']._Message(STATUS, {'totalTime': 1.0, 'attempts': 1,

'timeIncrement': 1.0, 'increment': 1, 'stepTime': 1.0, 'step': 1,

'jobName': 'Job-1', 'severe': 0, 'iterations': 1, 'phase': STANDARD_PHASE,

'equilibrium': 1})
mdb.jobs['Job-1']._Message(END_STEP, {'phase': STANDARD_PHASE, 'stepId': 1,

'jobName': 'Job-1'})
mdb.jobs['Job-1']._Message(COMPLETED, {'phase': STANDARD_PHASE,

'message': 'Analysis phase complete', 'jobName': 'Job-1'})
mdb.jobs['Job-1']._Message(JOB_COMPLETED, {'time': 'Mon Jan 06 20:57:18 2014',

'jobName': 'Job-1'})
mdb.models['Model-1'].DisplacementBC(amplitude=UNSET, createStepName='Initial',

distributionType=UNIFORM, fieldName='', localCsys=None, name='warping_edit'

, region=Region(

vertices=mdb.models['Model-1'].rootAssembly.instances['Beam-1'].vertices.getSequenceFromMask(

mask=('[#1 ]', ), )), u1=UNSET, u2=UNSET, u3=UNSET, ur1=UNSET, ur2=UNSET, ur3=

UNSET)






#where do i add warping above????







mdb.jobs['Job-1'].submit(consistencyChecking=OFF)
mdb.jobs['Job-1']._Message(STARTED, {'phase': BATCHPRE_PHASE,

'clientHost': 'blumews2', 'handle': 0, 'jobName': 'Job-1'})
mdb.jobs['Job-1']._Message(ODB_FILE, {'phase': BATCHPRE_PHASE,

'file': 'D:\\AbaqusWD\\Job-1.odb', 'jobName': 'Job-1'})
mdb.jobs['Job-1']._Message(COMPLETED, {'phase': BATCHPRE_PHASE,

'message': 'Analysis phase complete', 'jobName': 'Job-1'})
mdb.jobs['Job-1']._Message(STARTED, {'phase': STANDARD_PHASE,

'clientHost': 'blumews2', 'handle': 3440, 'jobName': 'Job-1'})
mdb.jobs['Job-1']._Message(STEP, {'phase': STANDARD_PHASE, 'stepId': 1,

'jobName': 'Job-1'})
mdb.jobs['Job-1']._Message(ODB_FRAME, {'phase': STANDARD_PHASE, 'step': 0,

'frame': 0, 'jobName': 'Job-1'})
mdb.jobs['Job-1']._Message(STATUS, {'totalTime': 0.0, 'attempts': 0,

'timeIncrement': 1.0, 'increment': 0, 'stepTime': 0.0, 'step': 1,

'jobName': 'Job-1', 'severe': 0, 'iterations': 0, 'phase': STANDARD_PHASE,

'equilibrium': 0})
mdb.jobs['Job-1']._Message(MEMORY_ESTIMATE, {'phase': STANDARD_PHASE,

'jobName': 'Job-1', 'memory': 23.7439756393433})
mdb.jobs['Job-1']._Message(ODB_FRAME, {'phase': STANDARD_PHASE, 'step': 0,

'frame': 1, 'jobName': 'Job-1'})
mdb.jobs['Job-1']._Message(STATUS, {'totalTime': 1.0, 'attempts': 1,

'timeIncrement': 1.0, 'increment': 1, 'stepTime': 1.0, 'step': 1,

'jobName': 'Job-1', 'severe': 0, 'iterations': 1, 'phase': STANDARD_PHASE,

'equilibrium': 1})
mdb.jobs['Job-1']._Message(END_STEP, {'phase': STANDARD_PHASE, 'stepId': 1,

'jobName': 'Job-1'})
mdb.jobs['Job-1']._Message(COMPLETED, {'phase': STANDARD_PHASE,

'message': 'Analysis phase complete', 'jobName': 'Job-1'})
mdb.jobs['Job-1']._Message(JOB_COMPLETED, {'time': 'Mon Jan 06 20:59:47 2014',

'jobName': 'Job-1'})
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 optimization import *
from job import *
from sketch import *
from visualization import *
from connectorBehavior import *
del mdb.models['Model-1'].boundaryConditions['BC-3']
# Save by ahmadw on 2014_01_06-21.42.09; build 6.12-1 2012_03_13-20.23.18 119612

 
Status
Not open for further replies.

Part and Inventory Search

Sponsor