9#ifndef WARPX_PROJECTION_DIV_CLEANER_H_
10#define WARPX_PROJECTION_DIV_CLEANER_H_
17#include <AMReX_Config.H>
86 linop.setDomainBC(lobc, hibc);
#define AMREX_FORCE_INLINE
void setBottomVerbose(int v) noexcept
void setMaxFmgIter(int n) noexcept
void setVerbose(int v) noexcept
void setBottomSolver(BottomSolver s) noexcept
void setConvergenceNormType(MLMGNormType norm) noexcept
RT solve(const Vector< AMF * > &a_sol, const Vector< AMF const * > &a_rhs, RT a_tol_rel, RT a_tol_abs, const char *checkpoint_file=nullptr)
void setMaxIter(int n) noexcept
bool m_agglomeration
Definition ProjectionDivCleaner.H:59
int m_ref_ratio
Definition ProjectionDivCleaner.H:51
amrex::Vector< amrex::Real > m_h_stencil_coefs_y
Definition ProjectionDivCleaner.H:109
bool m_vector_potential
Definition ProjectionDivCleaner.H:73
amrex::Gpu::DeviceVector< amrex::Real > m_stencil_coefs_y
Definition ProjectionDivCleaner.H:113
int m_max_iter
Definition ProjectionDivCleaner.H:56
AMREX_FORCE_INLINE void runMLMG(T &linop, amrex::Array< amrex::LinOpBCType, 3 > const &lobc, amrex::Array< amrex::LinOpBCType, 3 > const &hibc, int lev)
Definition ProjectionDivCleaner.H:78
bool m_semicoarsening
Definition ProjectionDivCleaner.H:61
amrex::Real m_atol
Definition ProjectionDivCleaner.H:68
bool m_consolidation
Definition ProjectionDivCleaner.H:60
int m_levels
Definition ProjectionDivCleaner.H:49
amrex::Vector< std::unique_ptr< amrex::MultiFab > > m_source
Definition ProjectionDivCleaner.H:106
std::string m_field_name
Definition ProjectionDivCleaner.H:70
amrex::Vector< amrex::Real > m_h_stencil_coefs_z
Definition ProjectionDivCleaner.H:110
amrex::Gpu::DeviceVector< amrex::Real > m_stencil_coefs_x
Definition ProjectionDivCleaner.H:112
void correctField()
Definition ProjectionDivCleaner.cpp:304
int m_max_fmg_iter
Definition ProjectionDivCleaner.H:57
ablastr::utils::enums::GridType m_grid_type
Definition ProjectionDivCleaner.H:71
int m_bottom_verbose
Definition ProjectionDivCleaner.H:55
int m_verbose
Definition ProjectionDivCleaner.H:54
amrex::Real m_rtol
Definition ProjectionDivCleaner.H:67
int m_linop_maxorder
Definition ProjectionDivCleaner.H:58
ProjectionDivCleaner(std::string const &a_field_name, bool a_vector_potential=false)
Definition ProjectionDivCleaner.cpp:36
amrex::Vector< std::unique_ptr< amrex::MultiFab > > m_solution
Definition ProjectionDivCleaner.H:105
int m_max_semicoarsening_level
Definition ProjectionDivCleaner.H:63
void ReadParameters()
Definition ProjectionDivCleaner.cpp:126
void solve()
Definition ProjectionDivCleaner.cpp:146
amrex::Vector< amrex::Real > m_h_stencil_coefs_x
Definition ProjectionDivCleaner.H:108
int m_max_coarsening_level
Definition ProjectionDivCleaner.H:62
void setSourceFromField()
Definition ProjectionDivCleaner.cpp:219
amrex::Gpu::DeviceVector< amrex::Real > m_stencil_coefs_z
Definition ProjectionDivCleaner.H:114
amrex::BottomSolver m_bottom_solver
Definition ProjectionDivCleaner.H:64
GridType
Definition Enums.H:23
PODVector< T, ArenaAllocator< T > > DeviceVector
Definition ProjectionDivCleaner.cpp:34