Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

BbarBrick.h

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.1 $
00022 // $Date: 2001/07/11 21:54:41 $
00023 // $Source: /usr/local/cvs/OpenSees/SRC/element/brick/BbarBrick.h,v $
00024 
00025 // Ed "C++" Love
00026 //
00027 // Eight node BbarBrick element 
00028 //
00029 
00030 #include <iostream.h>
00031 #include <stdio.h> 
00032 #include <stdlib.h> 
00033 #include <math.h> 
00034 
00035 #include <ID.h> 
00036 #include <Vector.h>
00037 #include <Matrix.h>
00038 #include <Element.h>
00039 #include <Node.h>
00040 #include <NDMaterial.h>
00041 
00043 class BbarBrick : public Element {
00044 
00046   public :
00047     
00048     //null constructor
00049     BbarBrick( ) ;
00050   
00052     BbarBrick( int tag, 
00053    int node1,
00054    int node2,
00055           int node3,
00056    int node4,
00057    int node5,
00058    int node6,
00059    int node7,
00060    int node8,
00061    NDMaterial &theMaterial ) ;
00062 
00064     virtual ~BbarBrick( ) ;
00065 
00067     void setDomain( Domain *theDomain ) ;
00068 
00070     int getNumExternalNodes( ) const ;
00071  
00073     const ID &getExternalNodes( ) ;
00074 
00076     int getNumDOF( ) ;
00077 
00079     int commitState( ) ;
00080     
00082     int revertToLastCommit( ) ;
00083     
00085     int revertToStart( ) ;
00086 
00088     void Print( ostream &s, int flag ) ;
00089  
00091     const Matrix &getTangentStiff( ) ;
00092     
00094     const Matrix &getSecantStiff( ) ;
00095     
00097     const Matrix &getDamp( ) ;
00098     
00100     const Matrix &getMass( ) ;
00101 
00103     void zeroLoad( ) ;
00104  
00106     int addLoad( const Vector &addP ) ;
00107 
00109     const Vector &getResistingForce( ) ;
00110     
00112     const Vector &getResistingForceIncInertia( ) ;
00113 
00115     int sendSelf (int commitTag, Channel &theChannel);
00117     int recvSelf (int commitTag, Channel &theChannel, FEM_ObjectBroker 
00118     &theBroker);
00119       
00121     int displaySelf(Renderer &theViewer, int displayMode, float fact);
00122 
00124   private : 
00125 
00126     //static data
00127     static Matrix stiff ;
00129     static Vector resid ;
00131     static Matrix mass ;
00133     static Matrix damping ;
00134 
00136     static const double root3 ;
00138     static const double one_over_root3 ;    
00140     static const double sg[2] ;
00142     static const double wg[8] ;
00143 
00144   
00146     ID connectedExternalNodes ;  
00147     Node *nodePointers[8] ;      //pointers to four nodes
00148 
00149 
00151     NDMaterial *materialPointers[8] ; //pointers to eight materials
00152        
00153     //local nodal coordinates, three coordinates for each of four nodes
00155     static double xl[][8] ; 
00156 
00158     void formInertiaTerms( int tangFlag ) ;
00159 
00161     void formResidAndTangent( int tang_flag ) ;
00162 
00164     void computeBasis( ) ;
00165 
00167     Matrix computeBbar( int node, 
00168    const double shp[4][8], 
00169    const double shpBar[4][8] ) ;
00170   
00172     Matrix transpose( int dim1, int dim2, const Matrix &M ) ;
00173 
00174 } ; 
00175 
00176 
00177 
00178 
00179 
00180 
00181 
00182 ÿ
Copyright Contact Us