|
WarpX
|
Point-Jacobi Preconditioner. More...
#include <JacobiPC.H>
Public Types | |
| using | RT = typename T::value_type |
Public Types inherited from Preconditioner< T, Ops > | |
| using | RT = typename T::value_type |
Public Member Functions | |
| JacobiPC ()=default | |
| Default constructor. | |
| ~JacobiPC () override=default | |
| Default destructor. | |
| JacobiPC (const JacobiPC &)=delete | |
| JacobiPC & | operator= (const JacobiPC &)=delete |
| JacobiPC (JacobiPC &&) noexcept=delete | |
| JacobiPC & | operator= (JacobiPC &&) noexcept=delete |
| void | Define (const T &, Ops *const) override |
| Define the preconditioner. | |
| void | Update (const T &a_U) override |
| Update the preconditioner. | |
| void | Apply (T &, const T &) override |
| Apply (solve) the preconditioner given a RHS. | |
| void | printParameters () const override |
| Print parameters. | |
| bool | IsDefined () const override |
| Check if the nonlinear solver has been defined. | |
Public Member Functions inherited from Preconditioner< T, Ops > | |
| Preconditioner ()=default | |
| Default constructor. | |
| virtual | ~Preconditioner ()=default |
| Default destructor. | |
| Preconditioner (const Preconditioner &)=default | |
| Preconditioner & | operator= (const Preconditioner &)=default |
| Preconditioner (Preconditioner &&) noexcept=default | |
| Preconditioner & | operator= (Preconditioner &&) noexcept=default |
| virtual void | getPCMatrix (amrex::Gpu::DeviceVector< int > &, amrex::Gpu::DeviceVector< int > &, amrex::Gpu::DeviceVector< int > &, amrex::Gpu::DeviceVector< RT > &, int &, int &) |
| Get the sparse matrix form of the preconditioner. | |
| virtual void | setName (const std::string &) |
| Set the name for screen output and parsing inputs. | |
| void | CurTime (const RT a_time) |
| Set the current time. | |
| void | CurTimeStep (const RT a_dt) |
| Set the current time step size. | |
Protected Types | |
| using | MFArr = amrex::Array<amrex::MultiFab,3> |
Protected Member Functions | |
| void | readParameters () |
| Read parameters. | |
Protected Attributes | |
| bool | m_is_defined = false |
| bool | m_verbose = true |
| int | m_max_iter = 10 |
| RT | m_atol = 1.0e-16 |
| RT | m_rtol = 1.0e-4 |
| Ops * | m_ops = nullptr |
| int | m_num_amr_levels = 0 |
| amrex::Vector< amrex::Geometry > | m_geom |
| amrex::Vector< amrex::BoxArray > | m_grids |
| amrex::Vector< amrex::DistributionMapping > | m_dmap |
| amrex::IntVect | m_gv |
| const amrex::Vector< amrex::Array< amrex::MultiFab *, 3 > > * | m_bcoefs = nullptr |
Protected Attributes inherited from Preconditioner< T, Ops > | |
| RT | m_time = 0.0 |
| RT | m_dt = 0.0 |
Point-Jacobi Preconditioner.
Solve a given system using the Point-Jaocbi method
The equation solves for Eg in: A * Eg = b where
This class is templated on a solution-type class T and an operator class Ops.
The Ops class must have the following function:
The T class must have the following functions:
|
protected |
| using JacobiPC< T, Ops >::RT = typename T::value_type |
|
default |
Default constructor.
|
delete |
|
deletenoexcept |
|
overridevirtual |
Apply (solve) the preconditioner given a RHS.
Given a right-hand-side b, solve: A x = b where A is the linear operator.
Implements Preconditioner< T, Ops >.
|
overridevirtual |
Define the preconditioner.
Implements Preconditioner< T, Ops >.
|
inlinenodiscardoverridevirtual |
Check if the nonlinear solver has been defined.
Implements Preconditioner< T, Ops >.
|
delete |
|
deletenoexcept |
|
overridevirtual |
Print parameters.
Reimplemented from Preconditioner< T, Ops >.
|
protected |
Read parameters.
|
overridevirtual |
Update the preconditioner.
Implements Preconditioner< T, Ops >.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |