|
WarpX
|
Curl-curl Preconditioner. More...
#include <CurlCurlMLMGPC.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 | |
| CurlCurlMLMGPC ()=default | |
| Default constructor. | |
| ~CurlCurlMLMGPC () override=default | |
| Default destructor. | |
| CurlCurlMLMGPC (const CurlCurlMLMGPC &)=delete | |
| CurlCurlMLMGPC & | operator= (const CurlCurlMLMGPC &)=delete |
| CurlCurlMLMGPC (CurlCurlMLMGPC &&) noexcept=delete | |
| CurlCurlMLMGPC & | operator= (CurlCurlMLMGPC &&) 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 |
| bool | m_bottom_verbose = false |
| bool | m_agglomeration = true |
| bool | m_consolidation = true |
| bool | m_use_gmres = false |
| bool | m_use_gmres_pc = true |
| int | m_max_iter = 10 |
| int | m_max_coarsening_level = 30 |
| bool | m_beta_scalar = true |
| 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 |
| amrex::Array< amrex::LinOpBCType, 3 > | m_bc_lo |
| amrex::Array< amrex::LinOpBCType, 3 > | m_bc_hi |
| std::unique_ptr< amrex::LPInfo > | m_info |
| std::unique_ptr< amrex::MLCurlCurl > | m_curl_curl |
| std::unique_ptr< amrex::MLMGT< MFArr > > | m_solver |
| std::unique_ptr< amrex::GMRESMLMGT< MFArr > > | m_gmres_solver |
Protected Attributes inherited from Preconditioner< T, Ops > | |
| RT | m_time = 0.0 |
| RT | m_dt = 0.0 |
Curl-curl Preconditioner.
Preconditioner that solves the curl-curl equation for the E-field, given a RHS. Uses AMReX's curl-curl linear operator and multigrid solver.
The equation solves for Eg in: curl ( alpha * curl ( Eg ) ) + beta * 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 CurlCurlMLMGPC< T, Ops >::RT = typename T::value_type |
|
default |
Default constructor.
|
overridedefault |
Default destructor.
|
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, in this case, the curl-curl operator: A x = curl (alpha * curl (x) ) + beta * x
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 |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |