IJ-based nodal Laplacian that mirrors MLNodeLinOp's discretization.
More...
#include <AMReX_HypreNodeLap.H>
|
| using | Int = HYPRE_Int |
| |
| using | AtomicInt = std::conditional_t< sizeof(Int)==4, unsigned int, unsigned long long > |
| |
|
| | HypreNodeLap (const BoxArray &grids_, const DistributionMapping &dmap_, const Geometry &geom_, const FabFactory< FArrayBox > &factory_, const iMultiFab &owner_mask_, const iMultiFab &dirichlet_mask_, MPI_Comm comm_, MLNodeLinOp const *linop_, int verbose_, std::string options_namespace_) |
| | Construct an IJ-based nodal Laplacian mirroring MLNodeLinOp.
|
| |
| | ~HypreNodeLap () |
| |
| | HypreNodeLap (HypreNodeLap const &)=delete |
| |
| | HypreNodeLap (HypreNodeLap &&)=delete |
| |
| HypreNodeLap & | operator= (HypreNodeLap const &)=delete |
| |
| HypreNodeLap & | operator= (HypreNodeLap &&)=delete |
| |
| void | solve (MultiFab &soln, const MultiFab &rhs, Real rel_tol, Real abs_tol, int max_iter) |
| | Solve the nodal Laplacian using HYPRE's IJ interface.
|
| |
| void | setHypreOptionsNamespace (const std::string &ns) |
| | Override the ParmParse namespace used when configuring HYPRE (ns).
|
| |
| Int | fill_local_node_id () |
| | Assign local ids to each owned node.
|
| |
| Int | fill_local_node_id_gpu () |
| | GPU-specific local-id fill routine; returns the owned-node count.
|
| |
| Int | fill_local_node_id_cpu () |
| | CPU fallback local-id fill routine; returns the owned-node count.
|
| |
| void | fill_global_node_id () |
| | Convert local ids to globally unique ids recognized by HYPRE.
|
| |
| void | loadVectors (MultiFab &soln, const MultiFab &rhs) |
| | Copy AMReX solution guess soln and RHS rhs into HYPRE's IJ vectors prior to solving.
|
| |
| void | getSolution (MultiFab &soln) |
| | Copy the solved data soln out of HYPRE and back into AMReX storage.
|
| |
IJ-based nodal Laplacian that mirrors MLNodeLinOp's discretization.
◆ AtomicInt
◆ Int
◆ HypreNodeLap() [1/3]
Construct an IJ-based nodal Laplacian mirroring MLNodeLinOp.
- Parameters
-
| grids_ | Cell-centered grids that define the nodal mesh. |
| dmap_ | Distribution mapping for grids_. |
| geom_ | Geometry describing the level. |
| factory_ | Fab factory referenced when creating workspace. |
| owner_mask_ | Ownership mask used to deduplicate shared nodes. |
| dirichlet_mask_ | Mask describing Dirichlet nodes. |
| comm_ | MPI communicator supplied to HYPRE. |
| linop_ | MLNodeLinOp used as the reference discretization. |
| verbose_ | Verbosity forwarded to HYPRE. |
| options_namespace_ | ParmParse namespace for runtime options. |
◆ ~HypreNodeLap()
| amrex::HypreNodeLap::~HypreNodeLap |
( |
| ) |
|
|
default |
◆ HypreNodeLap() [2/3]
◆ HypreNodeLap() [3/3]
◆ adjust_singular_matrix()
| void amrex::HypreNodeLap::adjust_singular_matrix |
( |
Int const * |
ncols, |
|
|
Int const * |
cols, |
|
|
Int const * |
rows, |
|
|
Real * |
mat |
|
) |
| |
|
static |
Apply the fix-up HYPRE expects for singular matrices (Dirichlet pinning).
- Parameters
-
| ncols | Number of columns in each CSR row. |
| cols | Column indices. |
| rows | Row indices. |
| mat | Matrix entries updated in place. |
◆ fill_global_node_id()
| void amrex::HypreNodeLap::fill_global_node_id |
( |
| ) |
|
Convert local ids to globally unique ids recognized by HYPRE.
◆ fill_local_node_id()
Assign local ids to each owned node.
- Returns
- Total owned-node count on this rank.
◆ fill_local_node_id_cpu()
CPU fallback local-id fill routine; returns the owned-node count.
◆ fill_local_node_id_gpu()
GPU-specific local-id fill routine; returns the owned-node count.
◆ getSolution()
| void amrex::HypreNodeLap::getSolution |
( |
MultiFab & |
soln | ) |
|
Copy the solved data soln out of HYPRE and back into AMReX storage.
◆ loadVectors()
Copy AMReX solution guess soln and RHS rhs into HYPRE's IJ vectors prior to solving.
◆ operator=() [1/2]
◆ operator=() [2/2]
◆ setHypreOptionsNamespace()
| void amrex::HypreNodeLap::setHypreOptionsNamespace |
( |
const std::string & |
ns | ) |
|
|
inline |
Override the ParmParse namespace used when configuring HYPRE (ns).
◆ solve()
Solve the nodal Laplacian using HYPRE's IJ interface.
- Parameters
-
| soln | Solution MultiFab (nodal) updated on return. |
| rhs | RHS MultiFab (nodal). |
| rel_tol | Relative tolerance. |
| abs_tol | Absolute tolerance. |
| max_iter | Maximum allowed iterations. |
The documentation for this class was generated from the following files: