source: src/mg.hpp@ 8e985b

Last change on this file since 8e985b was 48b662, checked in by Olaf Lenz <olenz@…>, 14 years ago

Moved files in scafacos_fcs one level up.

git-svn-id: https://svn.version.fz-juelich.de/scafacos/trunk@847 5161e1c8-67bf-11de-9fd5-51895aff932f

  • Property mode set to 100644
File size: 1.2 KB
Line 
1/**
2 * @file mg.hpp
3 * @author Julian Iseringhausen <isering@ins.uni-bonn.de>
4 * @date Mon Apr 18 13:01:13 2011
5 *
6 * @brief Header file for the VMG main class.
7 *
8 */
9
10#ifndef MG_HPP_
11#define MG_HPP_
12
13#include "base/factory.hpp"
14
15namespace VMG
16{
17
18class Comm;
19class Discretization;
20class Interface;
21class LevelOperator;
22class Multigrid;
23class Smoother;
24class Solver;
25class Stencil;
26class TempGrid;
27
28class MG
29{
30public:
31 static MG* Instance()
32 {
33 static MG mgs;
34 return &mgs;
35 }
36
37 static void SetInterface(Interface* interface, Comm* comm);
38
39 static VMG::Comm* GetComm();
40 static VMG::Discretization* GetDiscretization();
41 static VMG::Interface* GetInterface();
42 static VMG::LevelOperator* GetLevelOperator();
43 static VMG::Multigrid* GetRhs();
44 static VMG::Multigrid* GetSol();
45 static VMG::Smoother* GetSmoother();
46 static VMG::Solver* GetSolver();
47 static VMG::TempGrid* GetTempGrid();
48
49 static VMG::Factory& GetFactory();
50
51 static void Solve();
52 static void Destroy();
53 static bool IsInitialized();
54
55private:
56 MG();
57 virtual ~MG();
58
59 void RegisterLibraryCommands();
60
61 vmg_float ComputeVectorNorm(const Multigrid& vec);
62
63 static VMG::Factory factory;
64};
65
66}
67
68#endif
Note: See TracBrowser for help on using the repository browser.