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
00029
00030
00031
00032 #ifndef _LevelHelmholtzSolver_H_
00033 #define _LevelHelmholtzSolver_H_
00034
00035 #include <LevelSolver.H>
00036 #include <HelmholtzOp.H>
00037
00039
00043 class LevelHelmholtzSolver: public LevelSolver
00044 {
00045
00046 public:
00048 LevelHelmholtzSolver();
00049
00050 virtual ~LevelHelmholtzSolver();
00051
00053 LevelHelmholtzSolver(const DisjointBoxLayout& a_grids,
00054 const DisjointBoxLayout* a_baseGrids,
00055 const ProblemDomain& a_domain,
00056 Real a_dxLevel,
00057 int a_nRefCrse, int a_nComp = 1,
00058 bool a_limitCoarsening = false);
00059
00061 LevelHelmholtzSolver(const DisjointBoxLayout& a_grids,
00062 const DisjointBoxLayout* a_baseGrids,
00063 const Box& a_domain,
00064 Real a_dxLevel,
00065 int a_nRefCrse, int a_nComp = 1,
00066 bool a_limitCoarsening = false);
00067
00069 LevelHelmholtzSolver(const DisjointBoxLayout& a_grids,
00070 const DisjointBoxLayout* a_baseGrids,
00071 const ProblemDomain& a_domain,
00072 Real a_dxLevel,
00073 int a_nRefCrse,
00074 const HelmholtzOp* const a_opin,
00075 int a_nComp = 1,
00076 bool a_limitCoarsening = false);
00077
00079 LevelHelmholtzSolver(const DisjointBoxLayout& a_grids,
00080 const DisjointBoxLayout* a_baseGrids,
00081 const Box& a_domain,
00082 Real a_dxLevel,
00083 int a_nRefCrse,
00084 const HelmholtzOp* const a_opin,
00085 int a_nComp = 1,
00086 bool a_limitCoarsening = false);
00087
00089 void define(const DisjointBoxLayout& a_grids,
00090 const DisjointBoxLayout* a_baseGrids,
00091 const ProblemDomain& a_domain,
00092 Real a_dxLevel,
00093 int a_nRefCrse,
00094 int a_nComp = 1,
00095 bool a_limitCoarsening=false);
00096
00098 void define(const DisjointBoxLayout& a_grids,
00099 const DisjointBoxLayout* a_baseGrids,
00100 const Box& a_domain,
00101 Real a_dxLevel,
00102 int a_nRefCrse,
00103 int a_nComp = 1,
00104 bool a_limitCoarsening = false);
00105
00107 virtual void define(const DisjointBoxLayout& a_grids,
00108 const DisjointBoxLayout* a_baseGrids,
00109 const ProblemDomain& a_domain,
00110 Real a_dxLevel,
00111 int a_nRefCrse,
00112 const HelmholtzOp* const a_opin,
00113 int a_nComp = 1,
00114 bool a_limitCoarsening = false);
00115
00116
00118 virtual void define(const DisjointBoxLayout& a_grids,
00119 const DisjointBoxLayout* a_baseGrids,
00120 const Box& a_domain,
00121 Real a_dxLevel,
00122 int a_nRefCrse,
00123 const HelmholtzOp* const a_opin,
00124 int a_nComp = 1,
00125 bool a_limitCoarsening = false);
00126
00127
00129 virtual void define(const DisjointBoxLayout& a_grids,
00130 const DisjointBoxLayout* a_baseGrids,
00131 const ProblemDomain& a_domain,
00132 Real a_dxLevel,
00133 int a_nRefCrse,
00134 const LevelOp* const a_opin,
00135 int a_nComp = 1,
00136 bool a_limitCoarsening = false);
00137
00139 virtual void define(const DisjointBoxLayout& a_grids,
00140 const DisjointBoxLayout* a_baseGrids,
00141 const Box& a_domain,
00142 Real a_dxLevel,
00143 int a_nRefCrse,
00144 const LevelOp* const a_opin,
00145 int a_nComp = 1,
00146 bool a_limitCoarsening = false);
00147
00148
00150 void setBeta(Real a_beta);
00151
00153 void setBC(const DomainGhostBC& a_BC);
00154
00155
00156
00157 };
00158
00159
00160 #endif
00161
00162