00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039 #ifndef GroundMotion_h
00040 #define GroundMotion_h
00041
00042 #include <MovableObject.h>
00043 #include <TimeSeries.h>
00044 #include <TimeSeriesIntegrator.h>
00045 #include <Vector.h>
00046
00047 class GroundMotion : public MovableObject
00048 {
00049 public:
00050 GroundMotion(TimeSeries *dispSeries,
00051 TimeSeries *velSeries,
00052 TimeSeries *accelSeries,
00053 TimeSeriesIntegrator *theIntegrator = 0,
00054 double dTintegration = 0.01);
00055
00056 GroundMotion(int classTag);
00057 virtual ~GroundMotion();
00058
00059 virtual double getDuration(void);
00060
00061 virtual double getPeakAccel();
00062 virtual double getPeakVel();
00063 virtual double getPeakDisp();
00064
00065 virtual double getAccel(double time);
00066 virtual double getVel(double time);
00067 virtual double getDisp(double time);
00068 virtual const Vector &getDispVelAccel(double time);
00069
00070 void setIntegrator(TimeSeriesIntegrator *integrator);
00071 TimeSeries *integrate(TimeSeries *theSeries, double delta = 0.01);
00072
00073 int sendSelf(int commitTag, Channel &theChannel);
00074 int recvSelf(int commitTag, Channel &theChannel,
00075 FEM_ObjectBroker &theBroker);
00076
00077
00078 virtual double getAccelSensitivity(double time);
00079 virtual int setParameter(const char **argv, int argc, Parameter ¶m);
00080 virtual int updateParameter(int parameterID, Information &info);
00081 virtual int activateParameter(int parameterID);
00082
00083
00084 protected:
00085
00086 private:
00087 TimeSeries *theAccelSeries;
00088 TimeSeries *theVelSeries;
00089 TimeSeries *theDispSeries;
00090 TimeSeriesIntegrator *theIntegrator;
00091
00092 Vector data;
00093 double delta;
00094 };
00095
00096 #endif
00097