VaryingSigma.h
00001 #ifndef gridripper_amr1d_sigma_VaryingSigma_h
00002 #define gridripper_amr1d_sigma_VaryingSigma_h
00003
00004 #include <gridripper/Parameters.h>
00005 #include <gridripper/lang/StreamTokenizer.h>
00006 #include <gridripper/amr1d/Sigma.h>
00007
00008 namespace gridripper { namespace amr1d { namespace sigma {
00009
00010 using namespace gridripper::util;
00011 using namespace std;
00012
00020 class VaryingSigma: public Sigma {
00021
00022 private:
00023 GReal_t sigma0;
00024 GReal_t sigma1;
00025 GReal_t x0;
00026 GReal_t x1;
00027 GReal_t ramp;
00028 GReal_t a;
00029 GReal_t d;
00030
00031 public:
00032 VaryingSigma(const string& cmd, const Parameters& param, const PDE& pde);
00033
00034 VaryingSigma(GReal_t sigma0, GReal_t sigma1, GReal_t x0, GReal_t x1);
00035
00036 GReal_t getValue(GReal_t x, int ileft, int iright) const;
00037
00042 Sigma* cloneSigma() const;
00043 };
00044
00045 } } }
00046
00047 #endif