Line data Source code
1 : #ifndef AMREX_OPERATOR_DIAGONAL_H_
2 : #define AMREX_OPERATOR_DIAGONAL_H_
3 :
4 : #include <AMReX_MLCellLinOp.H>
5 : #include <AMReX_Array.H>
6 : #include <limits>
7 :
8 : #include "Operator/Operator.H"
9 :
10 :
11 : using namespace amrex;
12 :
13 : namespace Operator
14 : {
15 : class Diagonal : public Operator<Grid::Node>
16 : {
17 : public:
18 : Diagonal () {}
19 : Diagonal (const Vector<Geometry>& a_geom,
20 : const Vector<BoxArray>& a_grids,
21 : const Vector<DistributionMapping>& a_dmap,
22 : const LPInfo& a_info);
23 : virtual ~Diagonal ();
24 : Diagonal (const Diagonal&) = delete;
25 : Diagonal (Diagonal&&) = delete;
26 : Diagonal& operator= (const Diagonal&) = delete;
27 : Diagonal& operator= (Diagonal&&) = delete;
28 : protected:
29 :
30 : virtual void Fapply (int amrlev, int mglev, MultiFab& out, const MultiFab& in) const override final;
31 : virtual void Fsmooth (int amrlev, int mglev, MultiFab& sol, const MultiFab& rsh) const override final;
32 0 : virtual int getNComp() const override {return AMREX_SPACEDIM;};
33 0 : virtual void normalize (int /*amrlev*/, int /*mglev*/, MultiFab& /*mf*/) const override final {};
34 0 : virtual void reflux (int /*crse_amrlev*/,
35 : MultiFab& /*res*/, const MultiFab& /*crse_sol*/, const MultiFab& /*crse_rhs*/,
36 0 : MultiFab& /*fine_res*/, MultiFab& /*fine_sol*/, const MultiFab& /*fine_rhs*/) const override {};
37 :
38 : };
39 : }
40 : #endif
|