vtf-logo

shells/applications/cylinderElastic/helpers/DetonationPressure1_0.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 //
00003 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00004 //
00005 //                                   Fehmi Cirak
00006 //                        California Institute of Technology
00007 //                           (C) 2004 All Rights Reserved
00008 //
00009 // <LicenseText>
00010 //
00011 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00012 //
00013 #ifndef DETONATIONPRESSURE_H
00014 #define DETONATIONPRESSURE_H
00015 #include <cmath>
00016 
00017 
00018 namespace cylExp {
00019     struct DetonationPressure;
00020     struct PressurePulse;
00021 }
00022 
00023 
00024 struct DetonationPressure {
00025     
00026     double operator()(double time, double x, double y, double z) const 
00027         {
00028         // Beltman - Shepherd paper eq. A.7
00029 
00030         const double p1 = 1.0e5;
00031         const double p2 = 3.33e6*0.95;
00032         const double p3 = 1.165e6;
00033         const double vcj = 2375.0;
00034         
00035         const double zbegin = 1.690;
00036         
00037         time += (zbegin/vcj);
00038         z += zbegin;
00039 
00040         double tcj = (z)/vcj;
00041         double T = tcj/3.0;
00042 
00043         const double initialPressure = p1;
00044 
00045         if (time>tcj) {
00046             double pressure = (p2-p3)*std::exp((tcj-time)/T)+p3;
00047             return pressure-initialPressure;
00048         } else {
00049             return p1-initialPressure;
00050         }
00051 
00052         return 0.0; 
00053     }   
00054 };
00055 
00056 #endif

Generated on Fri Aug 24 13:00:24 2007 for SFC Thin-Shell Finite Element Solver by  doxygen 1.4.7