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

AnalysisModel.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.2 $
00022 // $Date: 2001/05/26 06:21:59 $
00023 // $Source: /usr/local/cvs/OpenSees/SRC/analysis/model/AnalysisModel.h,v $
00024                                                                         
00025                                                                         
00026 #ifndef AnalysisModel_h
00027 #define AnalysisModel_h
00028 
00029 // File: ~/analysis/model/AnalysisModel.h
00030 // 
00031 // Written: fmk 
00032 // Created: 9/96
00033 // Revision: A
00034 //
00035 // Description: This file contains the class definition for AnalysisModel.
00036 // AnalysisModel is a container class. This class is responsible for holding
00037 // and providing access to the FE_Element and DOF_Group objects that the 
00038 // ConstraintHandler creates. It is also responsible for updating the 
00039 // response quantities at the DOF_Groups and for triggering methods 
00040 // in the associated Domain.
00041 //
00042 // What: "@(#) AnalysisModel.h, revA"
00043 
00044 #ifndef _bool_h
00045 #include <bool.h>
00046 #endif
00047     
00048 #include <SimpleDOF_Iter.h>
00049 #include <SimpleFE_Iter.h>
00050 
00051 #include <MovableObject.h>
00052 
00053 #include <Domain.h>
00054 #include <FE_EleIter.h>
00055 #include <DOF_GrpIter.h>
00056 #include <Graph.h>
00057 #include <FE_Element.h>
00058 #include <DOF_Group.h>
00059 #include <Vector.h>
00060 #include <DOF_Graph.h>
00061 #include <DOF_GroupGraph.h>
00062 #include <FEM_ObjectBroker.h>
00063 
00090 class AnalysisModel: public MovableObject
00091 {
00092   public:
00100     AnalysisModel();    
00101 
00107     AnalysisModel(int classTag);
00108 
00117     virtual ~AnalysisModel();    
00118 
00119 
00121     virtual bool addFE_Element(FE_Element *theFE_Ele);
00123     virtual bool addDOF_Group(DOF_Group *theDOF_Grp);
00124 
00126     virtual void clearAll(void);
00127     
00129     virtual int getNumDOF_Groups(void) const;  
00131     virtual DOF_Group *getDOF_GroupPtr(int tag); 
00133     virtual FE_EleIter &getFEs();
00135     virtual DOF_GrpIter &getDOFs();
00136 
00138     virtual void setNumEqn(int) ; 
00140     virtual int getNumEqn(void) const ; 
00142     virtual Graph &getDOFGraph(void);
00144     virtual Graph &getDOFGroupGraph(void);
00145     
00146     // methods to update the response quantities at the DOF_Groups,
00148     virtual void setResponse(const Vector &disp, 
00149         const Vector &vel, 
00150         const Vector &accel);
00152     virtual void setDisp(const Vector &disp);    
00154     virtual void setVel(const Vector &vel);        
00156     virtual void setAccel(const Vector &vel);            
00157 
00159     virtual void incrDisp(const Vector &disp);    
00161     virtual void incrVel(const Vector &vel);        
00163     virtual void incrAccel(const Vector &vel);            
00164 
00166     virtual void setNumEigenvectors(int numEigenvectors);
00168     virtual void setEigenvector(int mode, const Vector &);
00170     virtual void setEigenvalues(const Vector &);    
00171     
00173     virtual void setLinks(Domain &theDomain);
00174  
00176     virtual void applyLoadDomain(double pseudoTime);
00178     virtual void updateDomain(void);
00180     virtual int commitDomain(void);
00182     virtual int revertDomainToLastCommit(void);
00184     virtual double getCurrentDomainTime(void);
00186     virtual void   setCurrentDomainTime(double newTime);    
00187     
00189     virtual int sendSelf(int commitTag, Channel &theChannel);
00191     virtual int recvSelf(int commitTag, Channel &theChannel, 
00192     FEM_ObjectBroker &theBroker);
00193 
00195     friend #include <SimpleFE_Iter.h>
00196     friend #include <SimpleDOF_Iter.h>
00197 
00198     Domain *getDomainPtr(void) const;
00199 
00200   protected:
00201 
00202     
00203   private:
00205     Domain *myDomain;
00207     DOF_Graph *myDOFGraph;
00209     DOF_GroupGraph *myGroupGraph;    
00210     
00212     int numFE_Ele;             
00213     int numDOF_Grp;            
00214     int numEqn;                
00215 
00216     int sizeEle;               
00217     int sizeDOF;               
00218     
00219     FE_Element   **theFEs;     
00220     DOF_Group    **theDOFs;    
00221 
00222     SimpleFE_Iter  theFEiter;     
00224     SimpleDOF_Iter theDOFiter;    
00225    
00226 };
00227 
00228 #endif
Copyright Contact Us