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

LoadPattern.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/06/14 06:21:41 $
00023 // $Source: /usr/local/cvs/OpenSees/SRC/domain/pattern/LoadPattern.h,v $
00024                                                                         
00025                                                                         
00026 #ifndef LoadPattern_h
00027 #define LoadPattern_h
00028 
00029 // File: ~/domain/pattern/LoadPattern.h
00030 //
00031 // Written: fmk 
00032 // Created: 07/99
00033 // Revision: A
00034 //
00035 // Purpose: This file contains the class definition for LoadPattern.
00036 // LoadPattern is a concrete class. A LoadPattern object is used to 
00037 // to store reference loads and single point onstraints and a TimeSeries function
00038 // which is used to determine the load factor given the pseudo-time
00039 // to the model. 
00040 //
00041 // What: "@(#) LoadPattern.h, revA"
00042 
00043 #include <DomainComponent.h>
00044 #include <NodalLoad.h>
00045 #include <TimeSeries.h>
00046 #include <ElementalLoad.h>
00047 #include <SP_Constraint.h>
00048 #include <NodalLoadIter.h>
00049 #include <ElementalLoadIter.h>
00050 #include <SingleDomSP_Iter.h>
00051 #include <SP_ConstraintIter.h>
00052 #include <TaggedObjectStorage.h>
00053 
00064 class LoadPattern : public DomainComponent    
00065 {
00066   public:
00068     LoadPattern(int tag);    
00076     LoadPattern();                      
00077 
00078     LoadPattern(int tag, int classTag); // for subclasses
00079     
00081     virtual ~LoadPattern();
00082 
00084     virtual void setTimeSeries(TimeSeries *theSeries);
00090     virtual void setDomain(Domain *theDomain);
00091 
00092 
00094     virtual bool addSP_Constraint(SP_Constraint *);
00101     virtual bool addNodalLoad(NodalLoad *);
00102 
00109     virtual bool addElementalLoad(ElementalLoad *);
00110 
00114     virtual NodalLoadIter     &getNodalLoads(void);
00115 
00119     virtual ElementalLoadIter &getElementalLoads(void);    
00120 
00124     virtual SP_ConstraintIter &getSPs(void);        
00125 
00126     
00128     virtual void clearAll(void);
00135     virtual NodalLoad *removeNodalLoad(int tag);
00136 
00143     virtual ElementalLoad *removeElementalLoad(int tag);
00144 
00146     virtual SP_Constraint *removeSP_Constraint(int tag);
00147 
00148 
00150     virtual void applyLoad(double pseudoTime = 0.0);
00152     virtual void setLoadConstant(void);
00153 
00155     virtual int sendSelf(int commitTag, Channel &theChannel);
00157     virtual int recvSelf(int commitTag, Channel &theChannel, 
00158     FEM_ObjectBroker &theBroker);
00160     virtual void Print(ostream &s, int flag =0);        
00161 
00163     virtual LoadPattern *getCopy(void);
00164 
00166     int setParameter (char **argv, int argc, Information &info);
00168     int updateParameter (int parameterID, Information &info);
00169 
00170   protected:
00171  
00172   private:
00174     double loadFactor;     
00175     int    isConstant;     
00176 
00177     TimeSeries *theSeries; 
00178 
00179     int    currentGeoTag;
00181     int    lastGeoSendTag;
00183     int    dbSPs, dbNod, dbEle; // database tags for storing info about components
00184     
00186     TaggedObjectStorage  *theNodalLoads;
00188     TaggedObjectStorage  *theElementalLoads;
00190     TaggedObjectStorage  *theSPs;    
00191 
00193     NodalLoadIter       *theNodIter;
00195     ElementalLoadIter   *theEleIter;
00197     SingleDomSP_Iter    *theSpIter;    
00198 };
00199 
00200 #endif
00201 
00202 
00203 
00204 
00205 
00206 
00207 
Copyright Contact Us