-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathextrapolatedSmoother.h
More file actions
47 lines (40 loc) · 1.54 KB
/
extrapolatedSmoother.h
File metadata and controls
47 lines (40 loc) · 1.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#pragma once
class LevelCache;
class Level;
#include <chrono>
#include <iostream>
#include <vector>
#include "../InputFunctions/domainGeometry.h"
#include "../InputFunctions/densityProfileCoefficients.h"
#include "../Level/level.h"
#include "../PolarGrid/polargrid.h"
#include "../Definitions/global_definitions.h"
#include "../LinearAlgebra/Vector/vector.h"
#include "../LinearAlgebra/Vector/vector_operations.h"
#include "../LinearAlgebra/Solvers/tridiagonal_solver.h"
#include "../LinearAlgebra/Matrix/coo_matrix.h"
#include "../LinearAlgebra/Matrix/csr_matrix.h"
#include "../LinearAlgebra/Solvers/csr_lu_solver.h"
#include "../LinearAlgebra/Solvers/coo_mumps_solver.h"
#include "../Stencil/stencil.h"
#ifdef GMGPOLAR_USE_MUMPS
#include "dmumps_c.h"
#include "mpi.h"
#endif
class ExtrapolatedSmoother
{
public:
explicit ExtrapolatedSmoother(const PolarGrid& grid, const LevelCache& level_cache,
const DomainGeometry& domain_geometry,
const DensityProfileCoefficients& density_profile_coefficients, bool DirBC_Interior,
int num_omp_threads);
virtual ~ExtrapolatedSmoother() = default;
virtual void extrapolatedSmoothing(Vector<double> x, ConstVector<double> rhs, Vector<double> temp) = 0;
protected:
const PolarGrid& grid_;
const LevelCache& level_cache_;
const DomainGeometry& domain_geometry_;
const DensityProfileCoefficients& density_profile_coefficients_;
const bool DirBC_Interior_;
const int num_omp_threads_;
};