Jet  v1.3.3
fdm_mg_solver3.h
Go to the documentation of this file.
1 // Copyright (c) 2018 Doyub Kim
2 //
3 // I am making my contributions/submissions to this project solely in my
4 // personal capacity and am not conveying any rights to any intellectual
5 // property of any third parties.
6 
7 #ifndef INCLUDE_JET_FDM_MG_SOLVER3_H_
8 #define INCLUDE_JET_FDM_MG_SOLVER3_H_
9 
12 #include <jet/mg.h>
13 
14 namespace jet {
15 
18  public:
19  FdmMgSolver3() = default;
20 
21  virtual ~FdmMgSolver3() = default;
22 
24  FdmMgSolver3(size_t maxNumberOfLevels,
25  unsigned int numberOfRestrictionIter = 5,
26  unsigned int numberOfCorrectionIter = 5,
27  unsigned int numberOfCoarsestIter = 20,
28  unsigned int numberOfFinalIter = 20,
29  double maxTolerance = 1e-9, double sorFactor = 1.5,
30  bool useRedBlackOrdering = false);
31 
34 
36  double sorFactor() const;
37 
39  bool useRedBlackOrdering() const;
40 
42  bool solve(FdmLinearSystem3* system) final;
43 
45  virtual bool solve(FdmMgLinearSystem3* system);
46 
47  private:
48  MgParameters<FdmBlas3> _mgParams;
49  double _sorFactor;
50  bool _useRedBlackOrdering;
51 };
52 
54 typedef std::shared_ptr<FdmMgSolver3> FdmMgSolver3Ptr;
55 
56 } // namespace jet
57 
58 #endif // INCLUDE_JET_FDM_MG_SOLVER3_H_
jet::FdmMgLinearSystem3
Multigrid-syle 3-D linear system.
Definition: fdm_mg_linear_system3.h:23
jet::FdmMgSolver3::solve
bool solve(FdmLinearSystem3 *system) final
No-op. Multigrid-type solvers do not solve FdmLinearSystem3.
jet::FdmMgSolver3::useRedBlackOrdering
bool useRedBlackOrdering() const
Returns true if red-black ordering is enabled.
jet::FdmMgSolver3::sorFactor
double sorFactor() const
Returns the SOR (Successive Over Relaxation) factor.
fdm_mg_linear_system3.h
mg.h
jet
Definition: advection_solver2.h:18
jet::FdmLinearSystemSolver3
Abstract base class for 3-D finite difference-type linear system solver.
Definition: fdm_linear_system_solver3.h:17
jet::FdmMgSolver3::solve
virtual bool solve(FdmMgLinearSystem3 *system)
Solves Multigrid linear system.
jet::FdmMgSolver3::FdmMgSolver3
FdmMgSolver3()=default
jet::FdmMgSolver3
3-D finite difference-type linear system solver using Multigrid.
Definition: fdm_mg_solver3.h:17
jet::FdmMgSolver3::FdmMgSolver3
FdmMgSolver3(size_t maxNumberOfLevels, unsigned int numberOfRestrictionIter=5, unsigned int numberOfCorrectionIter=5, unsigned int numberOfCoarsestIter=20, unsigned int numberOfFinalIter=20, double maxTolerance=1e-9, double sorFactor=1.5, bool useRedBlackOrdering=false)
Constructs the solver with given parameters.
jet::FdmMgSolver3Ptr
std::shared_ptr< FdmMgSolver3 > FdmMgSolver3Ptr
Shared pointer type for the FdmMgSolver3.
Definition: fdm_mg_solver3.h:54
jet::FdmLinearSystem3
Linear system (Ax=b) for 3-D finite differencing.
Definition: fdm_linear_system3.h:39
jet::MgParameters
Multigrid input parameter set.
Definition: mg.h:59
fdm_linear_system_solver3.h
jet::FdmMgSolver3::~FdmMgSolver3
virtual ~FdmMgSolver3()=default
jet::FdmMgSolver3::params
const MgParameters< FdmBlas3 > & params() const
Returns the Multigrid parameters.