00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef _PATCH_IDEAL_MHD_H_
00029 #define _PATCH_IDEAL_MHD_H_
00030
00031 #include "PatchGodunov.H"
00032 #include "PatchGodunovF_F.H"
00033
00035
00037 class PatchIdealMHD : public PatchGodunov
00038 {
00039 public:
00041
00043 PatchIdealMHD();
00044
00046
00050 virtual PatchGodunov* new_patchGodunov() const;
00051
00053
00055 virtual Real getMaxWaveSpeed(const FArrayBox& a_U,
00056 const Box& a_box);
00057
00059
00062 virtual int numConserved();
00063
00065
00068 virtual Vector<string> stateNames();
00069
00071
00076 virtual int numFluxes();
00077
00078 protected:
00080
00085 virtual int numPrimitives();
00086
00088
00094 virtual int numSlopes();
00095
00097
00099 virtual void consToPrim(FArrayBox& a_W,
00100 const FArrayBox& a_U,
00101 const Box& a_box);
00102
00104
00106 virtual void primToCons(FArrayBox& a_U,
00107 const FArrayBox& a_W,
00108 const Box& a_box);
00109
00111
00116 virtual void normalPred(FArrayBox& a_WMinus,
00117 FArrayBox& a_WPlus,
00118 const FArrayBox& a_W,
00119 const FArrayBox& a_dW,
00120 const Real& a_scale,
00121 const int& a_dir,
00122 const Box& a_box);
00123
00125
00129 virtual void riemann(FArrayBox& a_F,
00130 const FArrayBox& a_WLeft,
00131 const FArrayBox& a_WRight,
00132 const int& a_dir,
00133 const Box& a_box);
00134
00136
00141 virtual void updatePrim(FArrayBox& a_WMinus,
00142 FArrayBox& a_WPlus,
00143 const FArrayBox& a_F,
00144 const Real& a_scale,
00145 const int& a_dir,
00146 const Box& a_box);
00147
00149
00155 virtual void updateCons(FArrayBox& a_U,
00156 const FArrayBox& a_F,
00157 const Real& a_scale,
00158 const int& a_dir,
00159 const Box& a_box);
00160
00161
00162 virtual void postUpdateCons(FArrayBox& a_U,
00163 const FArrayBox& a_Uold,
00164 const Real& a_dt,
00165 const Real& a_dx,
00166 const Box& a_box);
00167
00169
00174 virtual Interval velocityInterval();
00175
00177
00181 virtual int pressureIndex();
00182
00184
00189 virtual int bulkModulusIndex();
00190 };
00191
00192 #endif