Input File for Three Dimensional Highway Bridge
/*
* ======================================================================
* Two Span Continuous Composite Beam (100-100ft)
*
* This analysis assumes that the neutral axis of concrete deck coincides
* with the top girder flange.
*
* Written By : Wane-Jang Lin June-July 1995
* ======================================================================
*/
print "*** DEFINE PROBLEM SPECIFIC PARAMETERS \n\n";
NDimension = 3;
NDofPerNode = 6;
MaxNodesPerElement = 4;
StartMesh();
print "*** GENERATE GRID OF NODES FOR FE MODEL \n\n";
girder = 2;
span = 100 ft;
spacing = 8 ft + 4 in;
slab = 7 in;
height = 36.17 in - 1.1 in;
flange = 12.03 in;
div_L = 10;
div_S = 4;
delta_L = span/div_L;
delta_S = spacing/div_S;
delta_f = flange/2;
delta_h = height/2;
section_no = 2*div_L + 1;
nodes_per_girder = 6;
nodes_per_section = nodes_per_girder*girder + (2*div_S+1) - girder;
node = 0;
x = 0 in;
for( i=1 ; i <= section_no ; i=i+1 ) {
x = delta_L*(i-1);
for( j=1 ; j <= girder ; j=j+1 ) {
y = -spacing/2 + spacing*(j-1);
AddNode( node+1, [ x, (y-delta_f), delta_h ] );
AddNode( node+2, [ x, y , delta_h ] );
AddNode( node+3, [ x, (y+delta_f), delta_h ] );
AddNode( node+4, [ x, (y-delta_f), -delta_h ] );
AddNode( node+5, [ x, y , -delta_h ] );
AddNode( node+6, [ x, (y+delta_f), -delta_h ] );
node = node + nodes_per_girder;
}
yy = spacing/2;
for( j=1 ; j<=(2*div_S+1) ; j=j+1 ) {
y = -spacing + delta_S*(j-1);
if( (y!=yy) && (y!=-yy) ) {
node = node + 1;
AddNode( node, [ x, y, delta_h ] );
}
}
}
print "*** ATTACH ELEMENTS TO GRID OF NODES \n\n";
elmtno = 0;
a = 0;
b = 0 + nodes_per_section;
for( i=1 ; i < section_no ; i=i+1 ) {
for( j=1 ; j<=girder ; j=j+1 ) {
AddElmt( elmtno+1, [ a+1, b+1, b+2, a+2 ],"girder_flange_attr" );
AddElmt( elmtno+2, [ a+2, b+2, b+3, a+3 ],"girder_flange_attr" );
AddElmt( elmtno+3, [ a+2, b+2, b+5, a+5 ],"girder_web_attr" );
AddElmt( elmtno+4, [ a+4, b+4, b+5, a+5 ],"girder_flange_attr" );
AddElmt( elmtno+5, [ a+5, b+5, b+6, a+6 ],"girder_flange_attr" );
elmtno = elmtno + nodes_per_girder - 1;
a = a + nodes_per_girder;
b = b + nodes_per_girder;
}
a = a + 1;
b = b + 1;
for( j=1 ; j<=girder ; j=j+1 ) {
AddElmt( elmtno+1, [ a, b, b+1, a+1 ], "deck_attr" );
c = b - (girder+1-j)*nodes_per_girder - 3*(j-1);
d = a - (girder+1-j)*nodes_per_girder - 3*(j-1);
AddElmt( elmtno+2, [ a+1, b+1, c, d ], "deck_attr" );
a = d;
b = c;
AddElmt( elmtno+3, [ a, b, b+1, a+1 ], "deck_attr" );
AddElmt( elmtno+4, [ a+1, b+1, b+2, a+2 ], "deck_attr" );
a = a + 2;
b = b + 2;
c = c + (girder+1-j)*nodes_per_girder + (3*j-2) + 1;
d = d + (girder+1-j)*nodes_per_girder + (3*j-2) + 1;
AddElmt( elmtno+5, [ a, b, c, d ], "deck_attr" );
AddElmt( elmtno+6, [ d, c, c+1, d+1 ], "deck_attr" );
elmtno = elmtno + 6;
a = d + 1;
b = c + 1;
}
}
print "*** DEFINE ELEMENT, SECTION AND MATERIAL PROPERTIES \n\n";
ElementAttr("girder_flange_attr") { type = "SHELL_4NQ";
section = "girder_flange";
material = "STEEL3";
}
ElementAttr("girder_web_attr") { type = "SHELL_4NQ";
section = "girder_web";
material = "STEEL3";
}
ElementAttr("deck_attr") { type = "SHELL_4NQ";
section = "deck";
material = "concrete";
}
SectionAttr("girder_flange") { thickness = 1.100 in; }
SectionAttr("girder_web") { thickness = 0.680 in; }
SectionAttr("deck") { thickness = 7 in; }
MaterialAttr("concrete") { poisson = 0.3;
yield = 0.85*(4000 psi);
E = (29000 ksi)/8;
}
print "*** SET UP BOUNDARY CONDITIONS \n\n";
/* [a] hinged support */
bc_hs = [ 1, 1, 1, 1, 0, 0 ];
/* [b] roller support */
bc_rs = [ 0, 1, 1, 1, 0, 0 ];
for ( i=1 ; i<=girder ; i=i+1 ) {
node = nodes_per_girder*(i-1) + 5;
FixNode(node, bc_hs);
node = node + div_L*nodes_per_section;
FixNode(node, bc_rs);
node = node + div_L*nodes_per_section;
FixNode(node, bc_rs);
}
print "*** SPECIFY EXTERNALLY APPLIED POINT LOADS \n\n";
slab_load = (150 lbf/ft^3)*slab;
girder_weight = 170 lbf/ft;
Fx = 0 lbf; Fy = 0 lbf;
Mx = 0 lbf*in; My = 0 lbf*in; Mz = 0 lbf*in;
/* [1] load for corner nodes of deck */
Fz = -slab_load*delta_L/2*delta_S/2;
nodal_load = [Fx, Fy, Fz, Mx, My, Mz];
node = nodes_per_girder*girder + 1;
NodeLoad(node, nodal_load);
node = node + nodes_per_section*(section_no-1);
NodeLoad(node, nodal_load);
node = node + 2*div_S - girder;
NodeLoad(node, nodal_load);
node = node - nodes_per_section*(section_no-1);
NodeLoad(node, nodal_load);
/* [2.1] load for edge nodes along x-direction */
Fz = -slab_load*delta_L*delta_S/2;
nodal_load = [Fx, Fy, Fz, Mx, My, Mz];
node = nodes_per_section + nodes_per_girder*girder + 1;
for( i=2 ; i < section_no ; i=i+1 ) {
NodeLoad(node, nodal_load);
NodeLoad((node+2*div_S-girder), nodal_load);
node = node + nodes_per_section;
}
/* [2.2] load for edge nodes along y-direction */
/* node 16 */
Fz = -slab_load*delta_L/2*delta_S;
nodal_load = [Fx, Fy, Fz, Mx, My, Mz];
node = nodes_per_girder*girder + div_S;
NodeLoad(node, nodal_load);
node = node + nodes_per_section*(section_no-1);
NodeLoad(node, nodal_load);
/* node 14, 15, 17, 18 */
Fz = -slab_load*delta_L/2*(delta_S-delta_f/2);
nodal_load = [Fx, Fy, Fz, Mx, My, Mz];
node = nodes_per_girder*girder + 1;
for( i=1 ; i<=2 ; i=i+1 ) {
NodeLoad(node+1, nodal_load);
NodeLoad(node+2, nodal_load);
NodeLoad(node+4, nodal_load);
NodeLoad(node+5, nodal_load);
node = node + nodes_per_section*(section_no-1);
}
/* node 1, 3, 7, 9 */
Fz = -slab_load*delta_L/2*delta_S/2;
nodal_load = [Fx, Fy, Fz, Mx, My, Mz];
node = 0;
for( i=1 ; i<=2 ; i=i+1 ) {
NodeLoad(node+1, nodal_load);
NodeLoad(node+3, nodal_load);
NodeLoad(node+7, nodal_load);
NodeLoad(node+9, nodal_load);
node = node + nodes_per_section*(section_no-1);
}
/* node 2, 8 */
Fz = -slab_load*delta_L/2*delta_f;
nodal_load = [Fx, Fy, Fz, Mx, My, Mz];
node = 0;
for( i=1 ; i<=2 ; i=i+1 ) {
NodeLoad(node+2, nodal_load);
NodeLoad(node+8, nodal_load);
node = node + nodes_per_section*(section_no-1);
}
/* [3] load for middle nodes */
/* node 35... */
Fz = -slab_load*delta_L*delta_S;
nodal_load = [Fx, Fy, Fz, Mx, My, Mz];
node = nodes_per_girder*girder + div_S;
for( i=2 ; i < section_no ; i=i+1 ) {
node = node + nodes_per_section;
NodeLoad(node, nodal_load);
}
/* node 33, 34, 36, 37... */
Fz = -slab_load*delta_L*(delta_S-delta_f/2);
nodal_load = [Fx, Fy, Fz, Mx, My, Mz];
node = nodes_per_girder*girder + 1;
for( i=2 ; i < section_no ; i=i+1 ) {
node = node + nodes_per_section;
NodeLoad(node+1, nodal_load);
NodeLoad(node+2, nodal_load);
NodeLoad(node+4, nodal_load);
NodeLoad(node+5, nodal_load);
}
/* node 20, 22, 26, 28... */
Fz = -slab_load*delta_L*delta_S/2;
nodal_load = [Fx, Fy, Fz, Mx, My, Mz];
node = 0;
for( i=2 ; i < section_no ; i=i+1 ) {
node = node + nodes_per_section;
NodeLoad(node+1, nodal_load);
NodeLoad(node+3, nodal_load);
NodeLoad(node+7, nodal_load);
NodeLoad(node+9, nodal_load);
}
/* node 21, 27... */
Fz = -slab_load*delta_L*delta_f;
nodal_load = [Fx, Fy, Fz, Mx, My, Mz];
node = 0;
for( i=2 ; i < section_no ; i=i+1 ) {
node = node + nodes_per_section;
NodeLoad(node+2, nodal_load);
NodeLoad(node+8, nodal_load);
}
/* [4] load for girder weight */
/* end node 2, 8 */
Fz = -girder_weight*delta_L/2;
nodal_load = [Fx, Fy, Fz, Mx, My, Mz];
node = 0;
for( i=1 ; i <= 2 ; i=i+1 ) {
NodeLoad(node+2, nodal_load);
NodeLoad(node+8, nodal_load);
node = node + nodes_per_section*(section_no-1);
}
/* middle node 21, 27... */
Fz = -girder_weight*delta_L;
nodal_load = [Fx, Fy, Fz, Mx, My, Mz];
node = 0;
for( i=2 ; i < section_no ; i=i+1 ) {
node = node + nodes_per_section;
NodeLoad(node+2, nodal_load);
NodeLoad(node+8, nodal_load);
}
/*
* =====================================
* Compile and Print Finite Element Mesh
* =====================================
*/
EndMesh();
PrintMesh();
/*
* ===================================
* Compute Mass and Stiffness Matrices
* ===================================
*/
print "\n*** COMPUTE AND PRINT STIFFNESS AND EXTERNAL LOAD MATRICES \n\n";
SetUnitsType("US");
eload = ExternalLoad();
stiff = Stiff();
/*
* =======================
* Static Analysis Problem
* =======================
*/
print "\n*** STATIC ANALYSIS PROBLEM \n\n";
displ = Solve( stiff, eload);
PrintDispl(displ);
PrintStress(displ);
quit;
Developed in September 1996 by Wane-Jang Lin and Mark Austin
Last Modified September 28, 1996
Copyright © 1996, Wane-Jang Lin and Mark Austin,
Department of Civil Engineering,
University of Maryland