⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 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 + -