Element.beam2e

From Nemesis
Jump to: navigation, search

The following article describes the use of the element.beam2e command. This command defines a simple, two-node elastic Bernulli-Euler beam element.

Contents

Syntax

element.beam2e(id,dof1,dof2,mat,sec)

where

Parameter description type default
id The elemental id integer -
dof1-2 The elemental nodes integer -
mat The element material integer -
sec The element section integer -

Examples

Define a two-dimensional beam with id 1, start node 1, end node 2, material id 2 and section id 3.

 element.beam2e(2,1,2,2,3)

Comments

Nodes, material and section must be already defined.

Theory

Implementation

The implementation of the Bernulli-Euler beam follows closely the implementation of Cook et al.<ref>R.D. Cook, d.S. Malkus and M.E. Plesha, "Concepts and Applications of Finite Element Analysis", 3rd Edition, John Wiley & Sons, 1989, p.216</ref> Special care is taken to avoid matrix multiplications in favor of efficiency.

General

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;

In what follows, E denotes Young modulus, A and J cross-sectional area and moment of inertia respectively and b is the vector of gravity loads in local coordinates.

Stiffness Matrix K

The stiffness matrix K in global coordinates is given as:

K(0,0)= K1;  K(0,1)= K2;   K(0,2)= K4;   K(0,3)=-K1;   K(0,4)=-K2;   K(0,5)= K4;
K(1,0)= K2;  K(1,1)= K3;   K(1,2)= K5;   K(1,3)=-K2;   K(1,4)=-K3;   K(1,5)= K5;
K(2,0)= K4;  K(2,1)= K5;   K(2,2)= K6;   K(2,3)=-K4;   K(2,4)=-K5;   K(2,5)= K7;
K(3,0)=-K1;  K(3,1)=-K2;   K(3,2)=-K4;   K(3,3)= K1;   K(3,4)= K2;   K(3,5)=-K4;
K(4,0)=-K2;  K(4,1)=-K3;   K(4,2)=-K5;   K(4,3)= K2;   K(4,4)= K3;   K(4,5)=-K5;
K(5,0)= K4;  K(5,1)= K5;   K(5,2)= K7;   K(5,3)=-K4;   K(5,4)=-K5;   K(5,5)= K6;

where,

K1=C1*c*c+C2*s*s;
K2=(C1-C2)*c*s;
K3=C1*s*s+C2*c*c;
K4=-C3*s;
K5=C3*c;
K6=4*E*J/L;
K7=2*E*J/L;

with

C1=E*A/L;
C2=12*E*J/(L*L*L);
C3=6*E*J/(L*L);

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 this yields,

R[0]=facS*(  KN*u[0]  - KN*u[3])                      - facG*( 0.5*b[0]*L);
R[1]=facS*(  K12*u[1] + K6*u[2] - K12*u[4] + K6*u[5]) - facG*( 0.5*b[1]*L);
R[2]=facS*(  K6*u[1]  + K4*u[2] - K6*u[4]  + K2*u[5]) - facG*( b[1]*L*L/12.);
R[3]=facS*(- KN*u[0]  + KN*u[3])                      - facG*( 0.5*b[0]*L);
R[4]=facS*(- K12*u[1] - K6*u[2] + K12*u[4] - K6*u[5]) - facG*( 0.5*b[1]*L);
R[5]=facS*(  K6*u[1]  + K2*u[2] - K6*u[4]  + K4*u[5]) - facG*(-b[1]*L*L/12.);
R-=facP*Fext;

and transforming it from local to global,

R0=c*R[0]-s*R[1];
R1=s*R[0]+c*R[1];
R3=c*R[3]-s*R[4];
R4=s*R[3]+c*R[4];
R[0]=R0;
R[1]=R1;
R[3]=R3;
R[4]=R4;

Notes

<references/>


See also

Personal tools