StandardLinearOscillatorAccelerationFilter.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/StandardLinearOscillatorAccelerationFilter.cpp,v $
00028 
00029 
00030 //
00031 // Written by Terje Haukaas (haukaas@ce.berkeley.edu)
00032 //
00033 
00034 #include <StandardLinearOscillatorAccelerationFilter.h>
00035 #include <Filter.h>
00036 #include <classTags.h>
00037 
00038 
00039 StandardLinearOscillatorAccelerationFilter::StandardLinearOscillatorAccelerationFilter(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 StandardLinearOscillatorAccelerationFilter::~StandardLinearOscillatorAccelerationFilter()
00048 {
00049 }
00050 
00051 double
00052 StandardLinearOscillatorAccelerationFilter::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 (  ( xi*xi*wn*wn*sin(wd*time) - 2.0*xi*wn*wd*cos(wd*time) - wd*wd*sin(wd*time) ) * exp(-xi*wn*time)  );
00060         }
00061 }
00062 
00063 double
00064 StandardLinearOscillatorAccelerationFilter::getMaxAmplitude()
00065 {
00066         double wd = wn * sqrt(1.0-pow(xi,2.0));
00067 
00068         opserr << "ERROR: The getMaxAmplitude() method is not implemented for acceleration filter." << endln;
00069 
00070         double result = 0.0;
00071 
00072         return result;
00073 }
00074 
00075 double
00076 StandardLinearOscillatorAccelerationFilter::getTimeOfMaxAmplitude()
00077 {
00078         double wd = wn * sqrt(1.0-pow(xi,2.0));
00079 
00080         opserr << "ERROR: The getTimeOfMaxAmplitude() method is not implemented for acceleration filter." << endln;
00081 
00082         return 0.0;
00083 }
00084 
00085 void
00086 StandardLinearOscillatorAccelerationFilter::Print(OPS_Stream &s, int flag)  
00087 {
00088 }

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