Element.beam2t
(→Comments) |
(→Examples) |
||
| Line 25: | Line 25: | ||
=Examples= | =Examples= | ||
| − | [[Image:Timoshenko_Example.png|thumb| | + | [[Image:Timoshenko_Example.png|thumb|350px|Shear locking effects in Timoshenko beam.]] |
Cantilever beam example, motivated by <ref>O.C. Zienkiewicz & R.L. Taylor, ''"The Finite Element Method for Solids and Structural Mechanics"'', 6th Edition, p307</ref>, demonstrating shear locking effects. | Cantilever beam example, motivated by <ref>O.C. Zienkiewicz & R.L. Taylor, ''"The Finite Element Method for Solids and Structural Mechanics"'', 6th Edition, p307</ref>, demonstrating shear locking effects. | ||
Revision as of 01:35, 29 May 2007
The following article describes the use of the element.beam2t command. This command defines a simple, two-node elastic Timoshenko beam element.
Contents |
Syntax
element.beam2t(id,node1,node2,mat,sec,rule)
where
| Parameter | description | type | default |
|---|---|---|---|
| id | The elemental id | integer | - |
| node1-2 | The elemental nodes | integer | - |
| mat | The element material | integer | - |
| sec | The element section | integer | - |
| rule | The integration rule | integer | 1 |
Examples
Cantilever beam example, motivated by <ref>O.C. Zienkiewicz & R.L. Taylor, "The Finite Element Method for Solids and Structural Mechanics", 6th Edition, p307</ref>, demonstrating shear locking effects.
Comments
Nodes, material and section must be already defined. This beam exhibits severe shear locking, and therefore it is recommended to adopt a reduced integration scheme.
Theory
The kinematic assumptions are those shown in the figure on the right.
Implementation
The element length and directional cosines are given as:
L=sqrt((y2-y1)*(y2-y1)+(x2-x1)*(x2-x1)); c=(x2-x1)/L; s=(y2-y1)/L;
Stiffness Matrix K
The stiffness matrix K in global coordinates is given as:
for k in GaussPoints:
xi=GaussPoints(k).xi
dx=GaussPoints(k).weight*0.5*L
for i=0..2:
for j=0..2:
Ni,dNi=shapeFunctions(i,xi)
Nj,dNj=shapeFunctions(j,xi)
K(3*i+0,3*j+0)+=(dNi*dNj*(C1*c*c+C3-c*c*C3) )*dx
K(3*i+0,3*j+1)+=(c*dNi*dNj*s*(-C3+C1) )*dx
K(3*i+0,3*j+2)+=(s*dNi*C3*Nj )*dx
K(3*i+1,3*j+0)+=(c*dNi*dNj*s*(-C3+C1) )*dx
K(3*i+1,3*j+1)+=(-dNi*dNj*(-c*c*C3-C1+C1*c*c))*dx
K(3*i+1,3*j+2)+=(-c*dNi*C3*Nj )*dx
K(3*i+2,3*j+0)+=(Ni*C3*dNj*s )*dx
K(3*i+2,3*j+1)+=(-Ni*C3*dNj*c )*dx
K(3*i+2,3*j+2)+=(dNi*C2*dNj+Ni*C3*Nj )*dx
where,
C1=E*A C2=E*J C3=a*G*A
Residual vector R
The residual vector in global coordinates is given as:
R = facS*Fint - facG*Fgravity - facP*Fext
where facS, facG and facP, factors controlled by group.state. In local coordinates it yields,
for k in GaussPoints:
xi=GaussPoints(k).xi
dx=GaussPoints(k).weight*0.5*L
for i=0..2:
Ni,dNi=shapeFunctions(i,xi)
R[3*i+0]+=facS*((dNi*sigma[0]) )*dx
R[3*i+1]+=facS*((dNi*sigma[2]) )*dx
R[3*i+2]+=facS*((dNi*sigma[1]-Ni*sigma[2]))*dx
R[0]-=facG*(0.5*b[0]*L);
R[1]-=facG*(0.5*b[1]*L);
R[3]-=facG*(0.5*b[0]*L);
R[4]-=facG*(0.5*b[1]*L);
R-=facP*Fext;
and transforming it from local to global, one has
for i=0..2:
d1=c*R[3*i+0]-s*R[3*i+1];
d2=s*R[3*i+0]+c*R[3*i+1];
R[3*i+0]=d1;
R[3*i+1]=d2;
Notes
<references/>
See also
- node module.
- material module.
- section module.
- element module.
- User guide.
