Block-Structured AMR Software Framework
 
Loading...
Searching...
No Matches
AMReX_HypreABecLap.H
Go to the documentation of this file.
1#ifndef AMREX_HypreABecLap_H_
2#define AMREX_HypreABecLap_H_
3#include <AMReX_Config.H>
4
5#include <AMReX_Hypre.H>
6#include <AMReX_Array.H>
7#include <AMReX_Geometry.H>
8#include <AMReX_MultiFab.H>
9#include <AMReX_BndryData.H>
10#include <AMReX_LO_BCTYPES.H>
11
12#include <HYPRE_struct_ls.h>
13
14#include <memory>
15
16namespace amrex {
17
18class HypreABecLap final
19 : public Hypre
20{
21public:
22
23 HypreABecLap (const BoxArray& grids, const DistributionMapping& dmap,
24 const Geometry& geom_, MPI_Comm comm_);
25 ~HypreABecLap () override;
26
27 HypreABecLap (HypreABecLap const&) = delete;
31
32 void solve (MultiFab& soln, const MultiFab& rhs, Real reltol, Real abstol,
33 int maxiter, const BndryData& bndry, int max_bndry_order) override;
34
35private:
36
37 HYPRE_StructGrid grid = nullptr;
38 HYPRE_StructMatrix A = nullptr;
39 HYPRE_StructVector b = nullptr;
40 HYPRE_StructVector x = nullptr;
41 HYPRE_StructSolver solver = nullptr;
42
43 void getSolution (MultiFab& soln);
44
45public: // for cuda
46 void prepareSolver ();
47 void loadVectors (MultiFab& soln, const MultiFab& rhs);
48};
49
50}
51
52#endif
int MPI_Comm
Definition AMReX_ccse-mpi.H:47
A BndryData stores and manipulates boundary data information on each side of each box in a BoxArray.
Definition AMReX_BndryData.H:41
A collection of Boxes stored in an Array.
Definition AMReX_BoxArray.H:550
Calculates the distribution of FABs to MPI processes.
Definition AMReX_DistributionMapping.H:41
Rectangular problem domain geometry.
Definition AMReX_Geometry.H:73
Definition AMReX_HypreABecLap.H:20
HypreABecLap(HypreABecLap &&)=delete
HypreABecLap & operator=(HypreABecLap const &)=delete
HYPRE_StructGrid grid
Definition AMReX_HypreABecLap.H:37
HYPRE_StructSolver solver
Definition AMReX_HypreABecLap.H:41
void loadVectors(MultiFab &soln, const MultiFab &rhs)
Definition AMReX_HypreABecLap.cpp:256
HYPRE_StructVector x
Definition AMReX_HypreABecLap.H:40
void prepareSolver()
Definition AMReX_HypreABecLap.cpp:126
HypreABecLap(HypreABecLap const &)=delete
void solve(MultiFab &soln, const MultiFab &rhs, Real reltol, Real abstol, int maxiter, const BndryData &bndry, int max_bndry_order) override
Definition AMReX_HypreABecLap.cpp:33
void getSolution(MultiFab &soln)
Definition AMReX_HypreABecLap.cpp:102
~HypreABecLap() override
Definition AMReX_HypreABecLap.cpp:18
HYPRE_StructMatrix A
Definition AMReX_HypreABecLap.H:38
HYPRE_StructVector b
Definition AMReX_HypreABecLap.H:39
Definition AMReX_Hypre.H:18
A collection (stored as an array) of FArrayBox objects.
Definition AMReX_MultiFab.H:38
Definition AMReX_Amr.cpp:49