Element.beam2t

From Nemesis
(Difference between revisions)
Jump to: navigation, search
(First submission.)
 
Line 25: Line 25:
  
 
=Examples=
 
=Examples=
Define a two-dimensional beam with id 1, start node 1, end node 2, material id 2, section id 3 and a two point Gauss integration rule.
+
 
  element.beam2t(2,1,2,2,3,2)
+
  
 
=Comments=
 
=Comments=
Line 32: Line 31:
  
 
=Theory=
 
=Theory=
The kinematic assumptions are those shown in Figure
+
[[Image:Timoshenko_Kinematics.png|thumb|300px|Beam deformation including shear effect.]]
 +
The kinematic assumptions are those shown in the figure on the right.
 +
<br style="clear:both;"/>
  
 
=Implementation=
 
=Implementation=

Revision as of 01:28, 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

Comments

Nodes, material and section must be already defined.

Theory

Beam deformation including shear effect.

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

Personal tools