Input file for Analysis of Lead-Rubber Isolator.

You will need Aladdin 2.0 to run this problem.


/*
 *  ==========================================================================
 *  Force-displacement analysis for one lead-rubber isolator modeled with
 *  FRAME_3DS element having four lead fibers and four rubber fibers.                   
 * 
 *  Each fiber in each direction has one individual shear spring.   
 *                                                                  
 *  Isolator Geometry and Material Properties
 *                                                                  
 *     650mm diameter x 197mm height with 170mm diameter lead plug       
 *     Axial stiffness for rubber is the same as lead, (E_rubber=E_lead).
 *     Shear stiffness for lead after yielding is 0, (Gt)lead=0.         
 *     Shear stiffness for rubber is always elastic.                     
 *                                                                  
 *  Written By : Wane-Jang Lin                                       July 1997
 *  ==========================================================================
 */

NDimension         = 3;
NDofPerNode        = 6;
MaxNodesPerElement = 2;
GaussIntegPts      = 2;

StartMesh();

iso_h = 197 mm;
r_dia = 650 mm;
l_dia = 170 mm;
Kv = 600 kN/mm;
Ea = Kv*iso_h/(PI/4*r_dia*r_dia);

E_lead  = Ea;
G_lead  = 130 MPa;
fv_lead = 10 MPa;

Kr = 1.75 kN/mm;
G_rubber = Kr*iso_h/(PI/4*(r_dia*r_dia-l_dia*l_dia));
E_rubber = Ea;

AddNode( 1, [ 0 m, 0 m, iso_h ] );
AddNode( 2, [ 0 m, 0 m,   0 m ] );

AddElmt( 1, [1,2], "isolator_attr");

ElementAttr("isolator_attr") { type     = "FIBER_3DS";
                               section  = "iso_sec";
                               material = "iso_mat";
                               fiber    = "iso_fib";
                             }

SectionAttr("iso_sec") { area  = PI/4*r_dia*r_dia;
                         depth = r_dia;
                         width = r_dia;
                         unit_weight  = 0.0001 kN/m;
                         shear_factor = 1.0;
                         J            = PI/32*r_dia^4;
                       }
MaterialAttr("iso_mat") { poisson  = 0.4;
                          E        = 3.562e8 N/m^2;
                        }
no_fiber_type = 2;
divid_no      = 4;
theta = PI/divid_no;
l_r = l_dia*sin(theta)/theta/3;
r_r = r_dia*sin(theta)/theta/3;
no_fiber = 2*divid_no;

fcoord = Matrix([ 2, no_fiber ]);
farea  = Matrix([ 1, no_fiber ]);
fmap   = Matrix([ 1, no_fiber ]);
for( i=1 ; i<=divid_no ; i=i+1 ) {
   fcoord[1][i] = l_r*cos((2*i-1)*theta);
   fcoord[2][i] = l_r*sin((2*i-1)*theta);
   farea[1][i]  = theta*l_dia*l_dia/4;
   fmap[1][i]   = 1;

   fcoord[1][i+divid_no] = r_r*cos((2*i-1)*theta);
   fcoord[2][i+divid_no] = r_r*sin((2*i-1)*theta);
   farea[1][i+divid_no]  = theta*(r_dia*r_dia - l_dia*l_dia)/4;
   fmap[1][i+divid_no]   = 2;
}

fattr  = Matrix([ 6, no_fiber_type ]);
for( j=1 ; j <= no_fiber_type ; j=j+1 ) {
   if( j == 1 ) {  /* lead */
      fattr[1][j] = E_lead;
      fattr[2][j] = E_lead;
      fattr[3][j] = 10e6 MPa;
      fattr[4][j] = G_lead;
      fattr[5][j] = G_lead*1e-6;
      fattr[6][j] = fv_lead;
   }
   if( j == 2 ) {  /* rubber */
      fattr[1][j] = E_rubber;
      fattr[2][j] = E_rubber;
      fattr[3][j] = 10e6 MPa;
      fattr[4][j] = G_rubber;
      fattr[5][j] = G_rubber;
      fattr[6][j] = 10e6 MPa;
   }
}

FiberAttr( no_fiber, "iso_fib" ) { FiberMaterialAttr = fattr;
                                   FiberCoordinate   = fcoord;
                                   FiberArea         = farea;
                                   FiberMaterialMap  = fmap;
                                 }

FixNode(2,[1,1,1,1,1,1]);

EndMesh();

/* Apply compressive axial load to isolator */

   stiff = Stiff();
   NodeLoad( 1, [ 0 kN, 0 kN, -3150 kN, 0 kN*m, 0 kN*m, 0 kN*m] );
   P_old = ExternalLoad();
   displ = Solve( stiff, P_old );
   ElmtStateDet( displ );
   stiff = Stiff();

/* Now apply lateral loads */

   dof     = GetDof([1]);
   max_dof = dof[1][1];

   print "\n*** Force-displacement hysteretic loop analysis\n"; 
   print "Step no\t Shear Force\tDisplacement\n";
   step = 0;

   print step,"\t",P_old[max_dof][1](kN),"\t",displ[max_dof][1](mm),"\n";

   no_step = 180;
   for( step=1 ; step <= no_step+1 ; step=step+1 ) {

      /* define force-controled load increment */

      if( step == 1 ) then {
          NodeLoad( 1, [ 200 kN, 0 kN, 0 kN, 0 kN*m, 0 kN*m, 0 kN*m] );
      } else {
         if( step <= 21 ) {
             NodeLoad( 1, [  10 kN, 0 kN, 0 kN, 0 kN*m, 0 kN*m, 0 kN*m] );
         }
         if( step > 21  && step <= 101 ) {
             NodeLoad( 1, [ -10 kN, 0 kN, 0 kN, 0 kN*m, 0 kN*m, 0 kN*m] );
         }
         if( step > 101 ) {
             NodeLoad( 1, [  10 kN, 0 kN, 0 kN, 0 kN*m, 0 kN*m, 0 kN*m] );
         }
      }

      P_new = ExternalLoad();
      dP    = P_new - P_old;
      P_old = P_new;

      /* Newton-Raphson Iteration for State Determination */

      while( L2Norm(dP) > 0.001 ) {

         dp    = Solve( stiff, dP );
         displ = displ + dp;

         ElmtStateDet( dp );

         stiff = Stiff();
         PR    = InternalLoad( displ );
         dP    = P_new - PR;        /* Compute unbalanced force */
      }  

      UpdateResponse();
      print step,"\t",P_new[max_dof][1](kN),"\t",displ[max_dof][1](mm),"\n";

   } 

   print "\n";
   print "===========================\n";
   print "Nonlinear Analysis Complete\n";
   print "===========================\n";

   quit;


Developed in March 1998 by Mark Austin
Last Modified March 21, 1998
Copyright © 1998, Mark Austin, Department of Civil Engineering, University of Maryland