JonswapSpectrum.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/spectrum/JonswapSpectrum.cpp,v $
00028 
00029 
00030 //
00031 // Written by Terje Haukaas (haukaas@ce.berkeley.edu)
00032 //
00033 
00034 #include <JonswapSpectrum.h>
00035 #include <Spectrum.h>
00036 #include <Vector.h>
00037 #include <classTags.h>
00038 
00039 
00040 JonswapSpectrum::JonswapSpectrum(int tag, double min, double max,
00041                                                                  double alp, double w, double gam)
00042 :Spectrum(tag,SPECTRUM_jonswap)
00043 {
00044         minFreq = min;
00045         maxFreq = max;
00046         alpha = alp;
00047         wp = w;
00048         gamma = gam;
00049 }
00050 
00051 JonswapSpectrum::~JonswapSpectrum()
00052 {
00053 }
00054 
00055 void
00056 JonswapSpectrum::Print(OPS_Stream &s, int flag)  
00057 {
00058 }
00059 
00060 
00061 double
00062 JonswapSpectrum::getMinFrequency()
00063 {
00064         return minFreq;
00065 }
00066 double
00067 JonswapSpectrum::getMaxFrequency()
00068 {
00069         return maxFreq;
00070 }
00071 double
00072 JonswapSpectrum::getAmplitude(double frequency)
00073 {
00074         if (frequency < minFreq  ||  frequency > maxFreq) {
00075                 return 0.0;
00076         }
00077 
00078         double sigma;
00079         if (frequency < wp) {
00080                 sigma = 0.07;
00081         }
00082         else {
00083                 sigma = 0.09;
00084         }
00085 
00086         double power = exp(-(frequency-wp)/(2.0*sigma*sigma*wp*wp));
00087         double GAMMA = pow(gamma,power);
00088 
00089         return GAMMA*alpha*pow(frequency,-5.0)*exp(-5.0/4.0*pow((frequency/wp),-4.0));
00090 }

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