StandardLinearOscillatorVelocityFilter.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 2001, 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 ** Reliability module developed by:                                   **
00020 **   Terje Haukaas (haukaas@ce.berkeley.edu)                          **
00021 **   Armen Der Kiureghian (adk@ce.berkeley.edu)                       **
00022 **                                                                    **
00023 ** ****************************************************************** */
00024                                                                         
00025 // $Revision: 1.3 $
00026 // $Date: 2003/10/27 23:04:40 $
00027 // $Source: /usr/local/cvs/OpenSees/SRC/reliability/domain/filter/StandardLinearOscillatorVelocityFilter.cpp,v $
00028 
00029 
00030 //
00031 // Written by Terje Haukaas (haukaas@ce.berkeley.edu)
00032 //
00033 
00034 #include <StandardLinearOscillatorVelocityFilter.h>
00035 #include <Filter.h>
00036 #include <classTags.h>
00037 
00038 
00039 StandardLinearOscillatorVelocityFilter::StandardLinearOscillatorVelocityFilter(int tag, double period, double dampingRatio)
00040 :Filter(tag,FILTER_standardLinearOscillator)
00041 {
00042         double pi = 3.14159265358979;
00043         wn = 2*pi/period;
00044         xi = dampingRatio;
00045 }
00046 
00047 StandardLinearOscillatorVelocityFilter::~StandardLinearOscillatorVelocityFilter()
00048 {
00049 }
00050 
00051 double
00052 StandardLinearOscillatorVelocityFilter::getAmplitude(double time)
00053 {
00054         if (time<0.0) {
00055                 return 0.0;
00056         }
00057         else {
00058                 double wd = wn * sqrt(1.0-pow(xi,2.0));
00059                 return (  ( wd*cos(wd*time) - xi*wn*sin(wd*time) ) * exp(-xi*wn*time)  );
00060                 // Should maybe include the 1/mwd factor too
00061         }
00062 }
00063 
00064 double
00065 StandardLinearOscillatorVelocityFilter::getMaxAmplitude()
00066 {
00067         double wd = wn * sqrt(1.0-pow(xi,2.0));
00068 
00069         opserr << "ERROR: The getMaxAmplitude() method is not implemented for velocity filter." << endln;
00070 
00071         double result = 0.0;
00072 
00073         return result;
00074 }
00075 
00076 double
00077 StandardLinearOscillatorVelocityFilter::getTimeOfMaxAmplitude()
00078 {
00079         double wd = wn * sqrt(1.0-pow(xi,2.0));
00080 
00081         opserr << "ERROR: The getTimeOfMaxAmplitude() method is not implemented for velocity filter." << endln;
00082 
00083         return 0.0;
00084 }
00085 
00086 void
00087 StandardLinearOscillatorVelocityFilter::Print(OPS_Stream &s, int flag)  
00088 {
00089 }

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