beam3d02.cpp

Go to the documentation of this file.
00001 /* ****************************************************************** **
00002 **    OpenSees - Open System for Earthquake Engineering Simulation    **
00003 **          Pacific Earthquake Engineering Research Center            **
00004 **                                                                    **
00005 **                                                                    **
00006 ** (C) Copyright 1999, The Regents of the University of California    **
00007 ** All Rights Reserved.                                               **
00008 **                                                                    **
00009 ** Commercial use of this program without express permission of the   **
00010 ** University of California, Berkeley, is strictly prohibited.  See   **
00011 ** file 'COPYRIGHT'  in main directory for information on usage and   **
00012 ** redistribution,  and for a DISCLAIMER OF ALL WARRANTIES.           **
00013 **                                                                    **
00014 ** Developed by:                                                      **
00015 **   Frank McKenna (fmckenna@ce.berkeley.edu)                         **
00016 **   Gregory L. Fenves (fenves@ce.berkeley.edu)                       **
00017 **   Filip C. Filippou (filippou@ce.berkeley.edu)                     **
00018 **                                                                    **
00019 ** ****************************************************************** */
00020                                                                         
00021 // $Revision: 1.5 $
00022 // $Date: 2003/02/14 23:01:05 $
00023 // $Source: /usr/local/cvs/OpenSees/SRC/element/beam3d/beam3d02.cpp,v $
00024                                                                         
00025                                                                         
00026 // File: ~/model/beam3d02.C
00027 //
00028 // Written: fmk 11/95
00029 // Revised:
00030 //
00031 // Purpose: This file contains the class definition for beam3d02.
00032 // beam3d02 is a 3d beam element. As such it can only
00033 // connect to a node with 6-dof. 
00034 
00035 #include <beam3d02.h>
00036 #include <Domain.h>
00037 #include <Channel.h>
00038 #include <FEM_ObjectBroker.h>
00039 
00040 #include <math.h>
00041 #include <stdlib.h>
00042 
00043 Matrix beam3d02::m(12,12);  // these beam members have no mass or damping matrice
00044 Matrix beam3d02::d(12,12);
00045 Matrix beam3d02::k(12,12);
00046 
00047 
00048 beam3d02::beam3d02()
00049 :Element(0,ELE_TAG_beam3d02), 
00050  A(0), E(0), G(0), Jx(0), Iy(0), Iz(0),theta(0),
00051  rForce(12), load(12), 
00052  connectedExternalNodes(2), isStiffFormed(0)
00053 {
00054         // does nothing
00055 }
00056 
00057 beam3d02::beam3d02(int tag, double a, double e, double g, 
00058                    double jx, double iy, double iz, int Nd1, int Nd2, 
00059                    double Theta)
00060 
00061 :Element(tag,ELE_TAG_beam3d02), 
00062  A(a), E(e), G(g), Jx(jx), Iy(iy), Iz(iz), theta(Theta), L(0),
00063  rForce(12), load(12), 
00064  connectedExternalNodes(2), isStiffFormed(0)
00065 {
00066     connectedExternalNodes(0) = Nd1;
00067     connectedExternalNodes(1) = Nd2;    
00068     
00069     theNodes[0] = 0;
00070     theNodes[1] = 0;
00071 }
00072 
00073 
00074 // ~beam3d02():
00075 //      destructor
00076 
00077 beam3d02::~beam3d02()
00078 {
00079 
00080 }
00081 
00082 
00083 
00084 int
00085 beam3d02::getNumExternalNodes(void) const
00086 {
00087     return 2;
00088 }
00089 
00090 const ID &
00091 beam3d02::getExternalNodes(void) 
00092 {
00093     return connectedExternalNodes;
00094 }
00095 
00096 
00097 Node **
00098 beam3d02::getNodePtrs(void) 
00099 {
00100     return theNodes;
00101 }
00102 
00103 
00104 int
00105 beam3d02::getNumDOF(void) {
00106     int i =12;
00107     return i;
00108 }
00109 
00110 
00111 int
00112 beam3d02::revertToLastCommit()
00113 {
00114     return 0;
00115     // linear element - nothing to commit
00116 }
00117 
00118 const Matrix &
00119 beam3d02::getTangentStiff(void)
00120 {
00121     return this->getStiff();
00122 }
00123 
00124 const Matrix &
00125 beam3d02::getInitialStiff(void)
00126 {
00127     return this->getStiff();
00128 }
00129 
00130 
00131 // const Matrix &getStiff():
00132 //      Method to return the stiffness matrix.
00133 
00134 
00135 void
00136 beam3d02::setDomain(Domain *theDomain)
00137 {
00138 
00139   int Nd1, Nd2;
00140   Nd1 = connectedExternalNodes(0);
00141   Nd2 = connectedExternalNodes(1);
00142 
00143   Node *end1Ptr = theDomain->getNode(Nd1);
00144   Node *end2Ptr = theDomain->getNode(Nd2);      
00145   theNodes[0] = end1Ptr;
00146   theNodes[1] = end2Ptr;
00147   
00148   if (end1Ptr == 0) {
00149     opserr << "beam3d02::getStiff: Nd1: ";
00150             opserr << Nd1 << "does not exist in model\n";
00151             exit(0);
00152   }
00153   if (end2Ptr == 0) {
00154     opserr << "beam3d02::getStiff: Nd2: ";
00155     opserr << Nd2 << "does not exist in model\n";
00156     exit(0);
00157   }
00158   
00159   // call the base class method
00160   this->DomainComponent::setDomain(theDomain);
00161   
00162   const Vector &end1Crd = end1Ptr->getCrds();
00163   const Vector &end2Crd = end2Ptr->getCrds();   
00164   
00165   dx = end2Crd(0)-end1Crd(0);
00166   dy = end2Crd(1)-end1Crd(1);   
00167   dz = end2Crd(2)-end1Crd(2);           
00168   
00169   L = sqrt(dx*dx + dy*dy + dz*dz);
00170   double L2 = L*L;
00171   double L3 = L*L*L;
00172   if (L == 0.0) {
00173     opserr << "Element: " << this->getTag();
00174     opserr << " beam3d02::getStiff: 0 length\n";
00175     exit(-1);
00176   }
00177   
00178   EA = E*A/L;
00179   twoE = 2*E/L;
00180   fourE = 4*E/L;
00181   twelveE = 12*E/L3;
00182   sixE = 6*E/L2;
00183 }    
00184 
00185 
00186 const Matrix &
00187 beam3d02::getStiff(void)
00188 {
00189     if (dy == 0.0 && dz == 0.0 && dx > 0.0 && theta == 90) {
00190         k(0,0) = EA;  
00191         k(6,0) = -EA;
00192         k(1,0) = 0;         
00193         k(2,0) = 0;  
00194         k(3,0) = 0;
00195         k(4,0) = 0;
00196         k(5,0) = 0;
00197         k(7,0) = 0;
00198         k(8,0) = 0;
00199         k(9,0) = 0;         
00200         k(10,0) = 0;        
00201         k(11,0) = 0;                
00202 
00203         k(1,1) = twelveE*Iz;
00204         k(5,1) = sixE*Iz;
00205         k(7,1) = -twelveE*Iz;
00206         k(11,1) = sixE*Iz;
00207         k(0,1) = 0;
00208         k(2,1) = 0;  
00209         k(3,1) = 0;
00210         k(4,1) = 0;
00211         k(6,1) = 0;
00212         k(8,1) = 0;
00213         k(9,1) = 0;         
00214         k(10,1) = 0;        
00215             
00216             k(2,2) = twelveE*Iy;
00217             k(4,2) = -sixE*Iy;
00218             k(8,2) = -twelveE*Iy;
00219             k(10,2) = -sixE*Iy;     
00220             k(0,2) = 0;
00221             k(1,2) = 0;     
00222             k(3,2) = 0;
00223             k(5,2) = 0;
00224             k(6,2) = 0;
00225             k(7,2) = 0;
00226             k(9,2) = 0;     
00227             k(11,2) = 0;                    
00228             
00229             k(3,3) = G*Jx/L;
00230             k(9,3) = -G*Jx/L;
00231             k(0,3) = 0;
00232             k(1,3) = 0;     
00233             k(2,3) = 0;  
00234             k(4,3) = 0;
00235             k(5,3) = 0;
00236             k(6,3) = 0;
00237             k(7,3) = 0;
00238             k(8,3) = 0;
00239             k(10,3) = 0;            
00240             k(11,3) = 0;                    
00241             
00242             k(2,4) = -sixE*Iy;
00243             k(4,4) = fourE*Iy;
00244             k(8,4) = sixE*Iy;
00245             k(10,4) = twoE*Iy;
00246             k(0,4) = 0;
00247             k(1,4) = 0;     
00248             k(3,4) = 0;
00249             k(5,4) = 0;
00250             k(6,4) = 0;
00251             k(7,4) = 0;
00252             k(9,4) = 0;     
00253             k(11,4) = 0;                    
00254             
00255             k(1,5) = sixE*Iz;
00256             k(5,5) = fourE*Iz;
00257             k(7,5) = -sixE*Iz;
00258             k(11,5) = twoE*Iz;      
00259             k(0,5) = 0;
00260             k(2,5) = 0;  
00261             k(3,5) = 0;
00262             k(4,5) = 0;
00263             k(6,5) = 0;
00264             k(8,5) = 0;
00265             k(9,5) = 0;     
00266             k(10,5) = 0;            
00267             
00268             k(0,6) = -EA;  
00269             k(6,6) = EA;
00270             k(1,6) = 0;     
00271             k(2,6) = 0;  
00272             k(3,6) = 0;
00273             k(4,6) = 0;
00274             k(5,6) = 0;
00275             k(7,6) = 0;
00276             k(8,6) = 0;
00277             k(9,6) = 0;     
00278             k(10,6) = 0;            
00279             k(11,6) = 0;                    
00280 
00281             k(1,7) = -twelveE*Iz;
00282             k(5,7) = -sixE*Iz;
00283             k(7,7) = twelveE*Iz;
00284             k(11,7) = -sixE*Iz;
00285             k(0,7) = 0;
00286             k(2,7) = 0;  
00287             k(3,7) = 0;
00288             k(4,7) = 0;
00289             k(6,7) = 0;
00290             k(8,7) = 0;
00291             k(9,7) = 0;     
00292             k(10,7) = 0;            
00293             
00294             k(2,8) = -twelveE*Iy;
00295             k(4,8) = sixE*Iy;
00296             k(8,8) = twelveE*Iy;
00297             k(10,8) = sixE*Iy;      
00298             k(0,8) = 0;
00299             k(1,8) = 0;     
00300             k(3,8) = 0;
00301             k(5,8) = 0;
00302             k(6,8) = 0;
00303             k(7,8) = 0;
00304             k(9,8) = 0;     
00305             k(11,8) = 0;                    
00306             
00307             k(3,9) = -G*Jx/L;
00308             k(9,9) = G*Jx/L;
00309             k(0,9) = 0;
00310             k(1,9) = 0;     
00311             k(2,9) = 0;  
00312             k(4,9) = 0;
00313             k(5,9) = 0;
00314             k(6,9) = 0;
00315             k(7,9) = 0;
00316             k(8,9) = 0;
00317             k(10,9) = 0;            
00318             k(11,9) = 0;                    
00319             
00320             k(2,10) = -sixE*Iy;
00321             k(4,10) = twoE*Iy;
00322             k(8,10) = sixE*Iy;
00323             k(10,10) = fourE*Iy;
00324             k(0,10) = 0;
00325             k(1,10) = 0;            
00326             k(3,10) = 0;
00327             k(5,10) = 0;
00328             k(6,10) = 0;
00329             k(7,10) = 0;
00330             k(9,10) = 0;            
00331             k(11,10) = 0;                   
00332             
00333             k(1,11) = sixE*Iz;
00334             k(5,11) = twoE*Iz;
00335             k(7,11) = -sixE*Iz;
00336             k(11,11) = fourE*Iz;                    
00337             k(0,11) = 0;
00338             k(2,11) = 0;  
00339             k(3,11) = 0;
00340             k(4,11) = 0;
00341             k(6,11) = 0;
00342             k(8,11) = 0;
00343             k(9,11) = 0;            
00344             k(10,11) = 0;           
00345         }
00346         
00347         else if (dx == 0.0 && dz == 0.0 && dy > 0.0 && theta == 90) {
00348 
00349             k(0,0) = twelveE*Iz;
00350             k(5,0) = -sixE*Iz;
00351             k(6,0) = -twelveE*Iz;
00352             k(11,0) = -sixE*Iz;
00353             k(1,0) = 0;     
00354             k(2,0) = 0;  
00355             k(3,0) = 0;
00356             k(4,0) = 0;
00357             k(7,0) = 0;
00358             k(8,0) = 0;
00359             k(9,0) = 0;     
00360             k(10,0) = 0;            
00361             
00362             k(1,1) = EA;  
00363             k(7,1) = -EA;
00364             k(0,1) = 0;
00365             k(2,1) = 0;  
00366             k(3,1) = 0;
00367             k(4,1) = 0;
00368             k(5,1) = 0;
00369             k(6,1) = 0;
00370             k(8,1) = 0;
00371             k(9,1) = 0;     
00372             k(10,1) = 0;            
00373             k(11,1) = 0;                    
00374 
00375             k(2,2) = twelveE*Iy;
00376             k(3,2) = sixE*Iy;
00377             k(8,2) = -twelveE*Iy;
00378             k(9,2) = sixE*Iy;       
00379             k(0,2) = 0;
00380             k(1,2) = 0;     
00381             k(4,2) = 0;
00382             k(5,2) = 0;
00383             k(6,2) = 0;
00384             k(7,2) = 0;
00385             k(10,2) = 0;            
00386             k(11,2) = 0;                    
00387 
00388             k(2,3) = sixE*Iy;
00389             k(3,3) = fourE*Iy;
00390             k(8,3) = -sixE*Iy;
00391             k(9,3) = twoE*Iy;
00392             k(0,3) = 0;
00393             k(1,3) = 0;     
00394             k(4,3) = 0;
00395             k(5,3) = 0;
00396             k(6,3) = 0;
00397             k(7,3) = 0;
00398             k(10,3) = 0;            
00399             k(11,3) = 0;                    
00400             
00401             k(4,4) = G*Jx/L;
00402             k(10,4) = -G*Jx/L;
00403             k(0,4) = 0;
00404             k(1,4) = 0;     
00405             k(2,4) = 0;  
00406             k(3,4) = 0;
00407             k(5,4) = 0;
00408             k(6,4) = 0;
00409             k(7,4) = 0;
00410             k(8,4) = 0;
00411             k(9,4) = 0;     
00412             k(11,4) = 0;                    
00413             
00414             k(0,5) = -sixE*Iz;
00415             k(5,5) = fourE*Iz;
00416             k(6,5) = sixE*Iz;
00417             k(11,5) = twoE*Iz;      
00418             k(1,5) = 0;     
00419             k(2,5) = 0;  
00420             k(3,5) = 0;
00421             k(4,5) = 0;
00422             k(7,5) = 0;
00423             k(8,5) = 0;
00424             k(9,5) = 0;     
00425             k(10,5) = 0;            
00426             
00427             k(0,6) = -twelveE*Iz;
00428             k(5,6) = sixE*Iz;
00429             k(6,6) = twelveE*Iz;
00430             k(11,6) = sixE*Iz;
00431             k(1,6) = 0;     
00432             k(2,6) = 0;  
00433             k(3,6) = 0;
00434             k(4,6) = 0;
00435             k(7,6) = 0;
00436             k(8,6) = 0;
00437             k(9,6) = 0;     
00438             k(10,6) = 0;            
00439             
00440             k(1,7) = -EA;  
00441             k(7,7) = EA;
00442             k(0,7) = 0;
00443             k(2,7) = 0;  
00444             k(3,7) = 0;
00445             k(4,7) = 0;
00446             k(5,7) = 0;
00447             k(6,7) = 0;
00448             k(8,7) = 0;
00449             k(9,7) = 0;     
00450             k(10,7) = 0;            
00451             k(11,7) = 0;                    
00452 
00453             k(2,8) = -twelveE*Iy;
00454             k(3,8) = -sixE*Iy;
00455             k(8,8) = twelveE*Iy;
00456             k(9,8) = -sixE*Iy;      
00457             k(0,8) = 0;
00458             k(1,8) = 0;     
00459             k(4,8) = 0;
00460             k(5,8) = 0;
00461             k(6,8) = 0;
00462             k(7,8) = 0;
00463             k(10,8) = 0;            
00464             k(11,8) = 0;                    
00465 
00466             k(2,9) = sixE*Iy;
00467             k(3,9) = twoE*Iy;
00468             k(8,9) = -sixE*Iy;
00469             k(9,9) = fourE*Iy;
00470             k(0,9) = 0;
00471             k(1,9) = 0;     
00472             k(4,9) = 0;
00473             k(5,9) = 0;
00474             k(6,9) = 0;
00475             k(7,9) = 0;
00476             k(10,9) = 0;            
00477             k(11,9) = 0;                    
00478             
00479             k(4,10) = -G*Jx/L;
00480             k(10,10) = G*Jx/L;
00481             k(0,10) = 0;
00482             k(1,10) = 0;            
00483             k(2,10) = 0;  
00484             k(3,10) = 0;
00485             k(5,10) = 0;
00486             k(6,10) = 0;
00487             k(7,10) = 0;
00488             k(8,10) = 0;
00489             k(9,10) = 0;            
00490             k(11,10) = 0;                   
00491             
00492             k(0,11) = -sixE*Iz;
00493             k(5,11) = twoE*Iz;
00494             k(6,11) = sixE*Iz;
00495             k(11,11) = fourE*Iz;                    
00496             k(1,11) = 0;            
00497             k(2,11) = 0;  
00498             k(3,11) = 0;
00499             k(4,11) = 0;
00500             k(7,11) = 0;
00501             k(8,11) = 0;
00502             k(9,11) = 0;            
00503             k(10,11) = 0;           
00504         }           
00505         
00506         else if (dx == 0.0 && dy == 0.0 && dz > 0.0 && theta == 90) {
00507             // local y of columns in x dirn, local z in y dirn
00508             k.Zero();
00509             k(0,0) = twelveE*Iz;
00510             k(4,0) = sixE*Iz;
00511             k(6,0) = -twelveE*Iz;
00512             k(10,0) = sixE*Iz;      
00513 
00514             k(1,1) = twelveE*Iy;
00515             k(3,1) = -sixE*Iy;
00516             k(7,1) = -twelveE*Iy;
00517             k(9,1) = -sixE*Iy;
00518 
00519             k(2,2) = EA;  
00520             k(8,2) = -EA;
00521 
00522             k(1,3) = -sixE*Iy;
00523             k(3,3) = fourE*Iy;
00524             k(7,3) = sixE*Iy;
00525             k(9,3) = twoE*Iy;               
00526 
00527             k(0,4) = sixE*Iz;
00528             k(4,4) = fourE*Iz;
00529             k(6,4) = -sixE*Iz;
00530             k(10,4) = twoE*Iz;
00531 
00532             k(5,5) = G*Jx/L;
00533             k(11,5) = -G*Jx/L;      
00534             
00535             k(0,6) = -twelveE*Iz;
00536             k(4,6) = -sixE*Iz;
00537             k(6,6) = twelveE*Iz;
00538             k(10,6) = -sixE*Iz;     
00539 
00540             k(1,7) = -twelveE*Iy;
00541             k(3,7) = sixE*Iy;
00542             k(7,7) = twelveE*Iy;
00543             k(9,7) = sixE*Iy;
00544 
00545             k(2,8) = -EA;  
00546             k(8,8) = EA;
00547 
00548             k(1,9) = -sixE*Iy;
00549             k(3,9) = twoE*Iy;
00550             k(7,9) = sixE*Iy;
00551             k(9,9) = fourE*Iy;              
00552 
00553             k(0,10) = sixE*Iz;
00554             k(4,10) = twoE*Iz;
00555             k(6,10) = -sixE*Iz;
00556             k(10,10) = fourE*Iz;
00557 
00558             k(5,11) = -G*Jx/L;
00559             k(11,11) = G*Jx/L;      
00560         }           
00561 
00562         else {
00563         
00564         int Nd1, Nd2;
00565         Nd1 = connectedExternalNodes(0);
00566         Nd2 = connectedExternalNodes(1);
00567         Domain *theDomain = this->getDomain();
00568         Node *end1Ptr = theDomain->getNode(Nd1);
00569         Node *end2Ptr = theDomain->getNode(Nd2);        
00570 
00571         if (end1Ptr == 0) {
00572             opserr << "beam3d02::getStiff: Nd1: ";
00573             opserr << Nd1 << "does not exist in model\n";
00574             exit(0);
00575         }
00576         if (end2Ptr == 0) {
00577             opserr << "beam3d02::getStiff: Nd2: ";
00578             opserr << Nd2 << "does not exist in model\n";
00579             exit(0);
00580         }
00581 
00582         opserr << "beam3d02::getStiff - NOT FINISHED";
00583         opserr << " members not located along global axis directions\n";
00584         exit(0);
00585         
00586         }
00587 
00588     return k;
00589 }
00590     
00591 void 
00592 beam3d02::zeroLoad(void)
00593 {
00594     load.Zero();
00595 }
00596 
00597 int 
00598 beam3d02::addLoad(ElementalLoad *theLoad, double loadFactor)
00599 {
00600   opserr << "beam3d02::addLoad() - beam " << this->getTag() << "load type unknown\n";
00601   return -1;
00602 }
00603 
00604 int
00605 beam3d02::addInertiaLoadToUnbalance(const Vector &accel)
00606 {
00607   return 0;
00608 }
00609 
00610 const Vector &
00611 beam3d02::getResistingForceIncInertia()
00612 {       
00613     this->getResistingForce();
00614     
00615     // add rayleigh damping force if factors present
00616     if (betaK != 0.0 || betaK0 != 0.0 || betaKc != 0.0)
00617         rForce += this->getRayleighDampingForces();
00618 
00619     return rForce;
00620 }
00621 const Vector &
00622 beam3d02::getResistingForce()
00623 {       
00624     // compute the residual Res = k*uTrial
00625     int Nd1, Nd2;
00626     Nd1 = connectedExternalNodes(0);
00627     Nd2 = connectedExternalNodes(1);
00628     Domain *theDomain = this->getDomain();
00629     Node *end1Ptr = theDomain->getNode(Nd1);
00630     Node *end2Ptr = theDomain->getNode(Nd2);    
00631     
00632     const Vector &end1Disp = end1Ptr->getTrialDisp();
00633     const Vector &end2Disp = end2Ptr->getTrialDisp();    
00634     rForce(0) = end1Disp(0);
00635     rForce(1) = end1Disp(1);
00636     rForce(2) = end1Disp(2);    
00637     rForce(3) = end1Disp(3);
00638     rForce(4) = end1Disp(4);
00639     rForce(5) = end1Disp(5);    
00640     rForce(6) = end2Disp(0);
00641     rForce(7) = end2Disp(1);
00642     rForce(8) = end2Disp(2);    
00643     rForce(9) = end2Disp(3);
00644     rForce(10) = end2Disp(4);
00645     rForce(11) = end2Disp(5);        
00646 
00647     this->getStiff(); // we have to form the stiffness
00648     rForce = k * rForce;
00649     
00650     // add any applied load
00651     rForce -= load;
00652     
00653     return rForce;
00654 }
00655 
00656 
00657 int
00658 beam3d02::sendSelf(int commitTag, Channel &theChannel)
00659 {
00660     int dataTag = this->getDbTag();
00661     Vector data(10);
00662     data(0) = A; data(1) = E; data(2) = G; 
00663     data(3) = Jx; data(4) = Iy; data(5) = Iz;     
00664     data(6) = this->getTag();
00665     data(7) = connectedExternalNodes(0);
00666     data(8) = connectedExternalNodes(1);
00667     data(9) = theta;    
00668     int result = 0;
00669     result = theChannel.sendVector(dataTag, commitTag, data);
00670     if (result < 0) {
00671         opserr << "beam3d02::sendSelf - failed to send data\n";
00672         return -1;
00673     }
00674     
00675     return 0;
00676 }
00677 
00678 int
00679 beam3d02::recvSelf(int commitTag, Channel &theChannel, FEM_ObjectBroker &theBroker)
00680 {
00681     int dataTag = this->getDbTag();
00682     Vector data(10);
00683     int result = 0;
00684 
00685     result = theChannel.recvVector(dataTag, commitTag, data);
00686     if (result < 0) {
00687         opserr << "beam3d02::recvSelf - failed to recv data\n";
00688         return -1;
00689     }
00690 
00691     A = data(0); E = data(1); G=data(2); 
00692     Jx = data(3); Iy = data(4); Iz=data(5);     
00693     theta = data(9);
00694     int tag = data(6);
00695     this->setTag(tag);
00696     int nd1 = data(7);
00697     int nd2 = data(8);
00698     connectedExternalNodes(0) = nd1;
00699     connectedExternalNodes(1) = nd2;    
00700 
00701     return 0;
00702 }
00703 
00704 
00705 void
00706 beam3d02::Print(OPS_Stream &s, int flag)
00707 {
00708     s << "\nElement: " << this->getTag() << " Type: beam3d02 ";
00709     s << "\tConnected Nodes: " << connectedExternalNodes ;
00710 //    s << "\tStiffness Matrix:\n" << k;
00711     s << "\tResisting Force: " << rForce;
00712 //    s << "\tElemt End Force: " << eForce;    
00713 }
00714 
00715 
00716 
00717 
00718 

Generated on Mon Oct 23 15:05:04 2006 for OpenSees by doxygen 1.5.0