00001
00002 #ifndef _DUST_COLLAPSE_IBC_H_
00003 #define _DUST_COLLAPSE_IBC_H_
00004
00005 #include <iostream>
00006
00007 #include "LevelData.H"
00008 #include "FArrayBox.H"
00009 #include "Vector.H"
00010 #include "RealVect.H"
00011 #include "AMRIO.H"
00012 #include "PhysIBC.H"
00013
00014
00016
00029 class DustCollapseIBC : public PhysIBC
00030 {
00031 public:
00033
00035 DustCollapseIBC();
00036
00038
00040 DustCollapseIBC(const Real& a_gamma,
00041 const Real& a_radius,
00042 const Real& a_density,
00043 const Real& a_artvisc,
00044 const Real& a_rsTolerance,
00045 const Real& a_maxRsIter,
00046 const Real& a_maxMach);
00047
00049
00051 ~DustCollapseIBC() {};
00052
00054
00056 void setFortranCommon(const Real& a_gamma,
00057 const Real& a_radius,
00058 const Real& a_density,
00059 const Real& a_artvisc,
00060 const Real& a_rsTolerance,
00061 const Real& a_maxRsIter,
00062 const Real& a_maxMach);
00063
00065
00070 void setFortranCommonSet();
00071
00073
00078 PhysIBC *new_physIBC();
00079
00081 void primBC(FArrayBox& a_WGdnv,
00082 const FArrayBox& a_Wextrap,
00083 const FArrayBox& a_W,
00084 const int& a_dir,
00085 const Side::LoHiSide& a_side,
00086 const Real& a_time);
00087
00089 void setBdrySlopes(FArrayBox& a_dW,
00090 const FArrayBox& a_W,
00091 const int& a_dir,
00092 const Real& a_time);
00093
00095 void artViscBC(FArrayBox& a_F,
00096 const FArrayBox& a_U,
00097 const FArrayBox& a_divVel,
00098 const int& a_dir,
00099 const Real& a_time);
00100
00102 void initialize(LevelData<FArrayBox>& a_U);
00103
00104 protected:
00105
00106
00107 Real m_density, m_radius;
00108
00109
00110 bool m_isFortranCommonSet;
00111 };
00112
00113 #endif