Open Boundary Poisson Solver. More...
#include <AMReX_OpenBC.H>
Public Member Functions | |
OpenBCSolver ()=default | |
OpenBCSolver (const Vector< Geometry > &a_geom, const Vector< BoxArray > &a_grids, const Vector< DistributionMapping > &a_dmap, const LPInfo &a_info=LPInfo()) | |
~OpenBCSolver ()=default | |
OpenBCSolver (const OpenBCSolver &)=delete | |
OpenBCSolver (OpenBCSolver &&)=delete | |
OpenBCSolver & | operator= (const OpenBCSolver &)=delete |
OpenBCSolver & | operator= (OpenBCSolver &&)=delete |
void | define (const Vector< Geometry > &a_geom, const Vector< BoxArray > &a_grids, const Vector< DistributionMapping > &a_dmap, const LPInfo &a_info=LPInfo()) |
void | setVerbose (int v) noexcept |
void | setBottomVerbose (int v) noexcept |
void | useHypre (bool use_hypre) noexcept |
Real | solve (const Vector< MultiFab * > &a_sol, const Vector< MultiFab const * > &a_rhs, Real a_tol_rel, Real a_tol_abs) |
void | compute_moments (Gpu::DeviceVector< openbc::Moments > &moments) |
void | compute_potential (Gpu::DeviceVector< openbc::Moments > const &moments) |
void | interpolate_potential (MultiFab &solg) |
Private Member Functions | |
void | bcast_moments (Gpu::DeviceVector< openbc::Moments > &moments) |
Private Attributes | |
int | m_verbose = 0 |
int | m_bottom_verbose = 0 |
Vector< Geometry > | m_geom |
Vector< BoxArray > | m_grids |
Vector< DistributionMapping > | m_dmap |
LPInfo | m_info |
std::unique_ptr< MLPoisson > | m_poisson_1 |
std::unique_ptr< MLPoisson > | m_poisson_2 |
std::unique_ptr< MLMG > | m_mlmg_1 |
std::unique_ptr< MLMG > | m_mlmg_2 |
BottomSolver | m_bottom_solver_type = BottomSolver::bicgstab |
int | m_coarsen_ratio = 0 |
Array< MultiFab, AMREX_SPACEDIM > | m_dpdn |
Gpu::PinnedVector< openbc::MomTag > | m_momtags_h |
Gpu::DeviceVector< openbc::MomTag > | m_momtags_d |
Gpu::PinnedVector< int > | m_ngpublocks_h |
Gpu::DeviceVector< int > | m_ngpublocks_d |
int | m_nthreads_momtag |
int | m_nblocks_local = 0 |
int | m_nblocks = 0 |
Vector< int > | m_countvec |
Vector< int > | m_offset |
IntVect | m_ngrowdomain |
MultiFab | m_crse_grown_faces_phi |
MultiFab | m_phind |
BoxArray | m_bag |
Vector< IntVect > | m_box_offset |
Vector< BoxArray > | m_ba_all |
Vector< DistributionMapping > | m_dm_all |
Vector< Geometry > | m_geom_all |
Open Boundary Poisson Solver.
References: (1) The Solution of Poisson's Equation for Isolated Source Distributions, R. A. James, 1977, JCP 25, 71 (2) A Local Corrections Algorithm for Solving Poisson's Equation in Three Dimensions, P. McCorquodale, P. Colella, G. T. Balls, & S. B. Baden, 2007, Communications in Applied Mathematics and Computational Science, 2, 1, 57-81
|
default |
amrex::OpenBCSolver::OpenBCSolver | ( | const Vector< Geometry > & | a_geom, |
const Vector< BoxArray > & | a_grids, | ||
const Vector< DistributionMapping > & | a_dmap, | ||
const LPInfo & | a_info = LPInfo() |
||
) |
|
default |
|
delete |
|
delete |
|
private |
void amrex::OpenBCSolver::compute_moments | ( | Gpu::DeviceVector< openbc::Moments > & | moments | ) |
void amrex::OpenBCSolver::compute_potential | ( | Gpu::DeviceVector< openbc::Moments > const & | moments | ) |
void amrex::OpenBCSolver::define | ( | const Vector< Geometry > & | a_geom, |
const Vector< BoxArray > & | a_grids, | ||
const Vector< DistributionMapping > & | a_dmap, | ||
const LPInfo & | a_info = LPInfo() |
||
) |
void amrex::OpenBCSolver::interpolate_potential | ( | MultiFab & | solg | ) |
|
delete |
|
delete |
|
noexcept |
|
noexcept |
Real amrex::OpenBCSolver::solve | ( | const Vector< MultiFab * > & | a_sol, |
const Vector< MultiFab const * > & | a_rhs, | ||
Real | a_tol_rel, | ||
Real | a_tol_abs | ||
) |
|
noexcept |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |