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, 3 > | 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 |
|
private |
|
private |