📄 input-finite-mrf
字号:
/*
* =====================================================================
* Analysis of Five Story Steel Moment Resistant Frame
*
* Written By: Mark Austin October, 1994
* =====================================================================
*/
/* [a] : Setup problem specific parameters */
NDimension = 2;
NDofPerNode = 3;
MaxNodesPerElement = 2;
StartMesh();
/* [b] : Generate two-dimensional grid of nodes */
node = 0;
for( y = 0 ft; y <= 50 ft; y = y + 10 ft ) {
for( x = 0 ft; x <= 55 ft; x = x + 20 ft ) {
/* [b.1] : adjust column spacing for central bay */
if(x == 40 ft) {
x = x - 5 ft;
}
/* [b.2] : add new node to finite element mesh */
node = node + 1;
AddNode(node, [ x, y ] );
}
}
/* [c] : Attach column elements to nodes */
elmtno = 0;
for ( colno = 1; colno <= 4; colno = colno + 1) {
for (floorno = 1; floorno <= 5; floorno = floorno + 1) {
elmtno = elmtno + 1;
end1 = 4*(floorno - 1) + colno;
end2 = end1 + 4;
AddElmt( elmtno, [ end1 , end2 ], "mycolumn");
}
}
/* [d] : Attach beam elements to nodes */
for (floorno = 1; floorno <= 5; floorno = floorno + 1) {
for ( bayno = 1; bayno <= 3; bayno = bayno + 1) {
end1 = 4*floorno + bayno;
end2 = end1 + 1;
elmtno = elmtno + 1;
AddElmt( elmtno, [ end1 , end2 ], "mybeam");
}
}
/* [e] : Define section and material properties */
ElementAttr("mycolumn") { type = "FRAME_2D";
section = "mysection1";
material = "mymaterial";
}
ElementAttr("mybeam") { type = "FRAME_2D";
section = "mysection2";
material = "mymaterial";
}
SectionAttr("mysection1") { Izz = 1541.9 in^4;
Iyy = 486.3 in^4;
depth = 12.0 in;
width = 12.0 in;
area = 47.4 in^2;
}
SectionAttr("mysection2") { Izz = 1600.3 in^4;
Iyy = 66.2 in^4;
depth = 21.0 in;
width = 8.25 in;
area = 21.46 in^2;
}
MaterialAttr("mymaterial") { density = 0.1024E-5 lb/in^3;
poisson = 0.25;
yield = 36.0 ksi;
E = 29000 ksi;
}
/* [f] : Apply full-fixity to columns at foundation level */
for(nodeno = 1; nodeno <= 4; nodeno = nodeno + 1) {
FixNode( nodeno, [ 1, 1, 1 ]);
}
LinkNode([ 5, 6, 7, 8 ], [ 1, 0, 0] );
LinkNode([ 9, 10, 11, 12 ], [ 1, 0, 0] );
LinkNode([ 13, 14, 15, 16 ], [ 1, 0, 0] );
LinkNode([ 17, 18, 19, 20 ], [ 1, 0, 0] );
LinkNode([ 21, 22, 23, 24 ], [ 1, 0, 0] );
/* [g] : Compute equivalent nodal loads for distributed "dead + live" loads plus */
/* lateral wind loads */
dead_load = 80 lbf/ft^2;
floor_live_load = 40 lbf/ft^2;
roof_live_load = 20 lbf/ft^2;
frame_spacing = 20 ft;
for (floorno = 1; floorno <= 5; floorno = floorno + 1) {
/* [g.1] : compute floor-level (and roof-level) uniform loads */
live_load = floor_live_load;
if( floorno == 5) {
live_load = roof_live_load;
}
uniform_load = (dead_load + live_load)*(frame_spacing);
for (colno = 1; colno <= 4; colno = colno + 1) {
Fx = 0.0 lbf; Fy = 0.0 lbf; Mz = 0.0 lb*in;
/* [g.2] : compute fixed end shear force for dead/live loads */
if( colno == 1 || colno == 4) {
Fy = -(uniform_load)*(20 ft)/2;
}
if( colno == 2 || colno == 3) {
Fy = -(uniform_load)*(35 ft)/2;
}
/* [g.3] : compute fixed end moments for dead/live loads */
if( colno == 1 ) {
Mz = -(uniform_load)*(20 ft)*(20 ft)/12;
}
if( colno == 2 ) {
Mz = (uniform_load)*((20 ft)^2 - (15 ft)^2)/12;
}
if( colno == 3 ) {
Mz = -(uniform_load)*((20 ft)^2 - (15 ft)^2)/12;
}
if( colno == 4 ) {
Mz = (uniform_load)*(20 ft)*(20 ft)/12;
}
/* [g.4] : compute horizontal force due to lateral loads */
if(colno == 1 ) {
Fx = 63800*(floorno/15)*(1 lbf);
}
nodeno = 4*floorno + colno;
NodeLoad( nodeno, [ Fx, Fy, Mz ]);
}
}
/* [h] : Compile and Print Finite Element Mesh */
EndMesh();
PrintMesh();
/* [i] : Compute "stiffness" and "external load" matrices */
eload = ExternalLoad();
stiff = Stiff();
displ = Solve(stiff, eload);
SetUnitsType("US");
PrintDispl(displ);
PrintStress(displ);
quit;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -