xref: /petsc/src/ksp/ksp/tutorials/amrex/MyTest.H (revision 9dd11ecf0918283bb567d8b33a92f53ac4ea7840)
1 #pragma once
2 
3 #include <AMReX_EBFabFactory.H>
4 #include <AMReX_MLMG.H>
5 #include <AMReX_Array.H>
6 
7 class MyTest
8 {
9 public:
10 
11     MyTest ();
12 
13     void solve ();
14     void writePlotfile ();
15     void initData ();
16 
17 private:
18 
19     void initializeEB ();
20     void readParameters ();
21     void initGrids ();
22 
23     int max_level = 0;
24     int ref_ratio = 2;
25     int n_cell = 128;
26     int max_grid_size = 64;
27     int is_periodic = 0;
28     int eb_is_dirichlet = 0;
29 
30     std::string plot_file_name{"plot"};
31 
32     amrex::Vector<amrex::Real> scalars;
33 
34     // For MLMG solver
35     int verbose = 2;
36     int bottom_verbose = 2;
37     int max_iter = 100;
38     int max_fmg_iter = 0;
39     int max_bottom_iter = 1000;
40     amrex::Real reltol        = 1.e-12;
41     amrex::Real bottom_reltol = 1.e-4;
42     int linop_maxorder = 3;
43     int max_coarsening_level = 30;
44     bool use_hypre = false;
45     bool use_petsc = false;
46     amrex::Vector<amrex::Geometry> geom;
47     amrex::Vector<amrex::BoxArray> grids;
48     amrex::Vector<amrex::DistributionMapping> dmap;
49     amrex::Vector<std::unique_ptr<amrex::EBFArrayBoxFactory> > factory;
50 
51     amrex::Vector<amrex::MultiFab> phi;
52     amrex::Vector<amrex::MultiFab> rhs;
53     amrex::Vector<amrex::MultiFab> acoef;
54     amrex::Vector<amrex::Array<amrex::MultiFab,AMREX_SPACEDIM> > bcoef;
55     amrex::Vector<amrex::MultiFab> bcoef_eb;
56 };
57