advection-diffusion sweeper with semi-implicit time-integration. More...
#include <advection_diffusion_sweeper.hpp>
Inheritance diagram for pfasst::examples::advection_diffusion::AdvectionDiffusionSweeper< time >:
Collaboration diagram for pfasst::examples::advection_diffusion::AdvectionDiffusionSweeper< time >:Public Member Functions | |
| AdvectionDiffusionSweeper (size_t nvars) | |
| AdvectionDiffusionSweeper ()=default | |
| virtual | ~AdvectionDiffusionSweeper () |
| void | exact (shared_ptr< Encapsulation< time >> q, time t) |
| void | exact (DVectorT &q, time t) |
| void | echo_error (time t) |
| void | echo_residual () |
| error_map | get_errors () |
| error_map | get_residuals () |
| void | post_predict () override |
| Compute low-order provisional solution. More... | |
| void | post_sweep () override |
| Perform one SDC sweep/iteration. More... | |
| void | f_expl_eval (shared_ptr< Encapsulation< time >> f_expl_encap, shared_ptr< Encapsulation< time >> u_encap, time t) override |
| Evaluate the explicit part of the ODE. More... | |
| void | f_impl_eval (shared_ptr< Encapsulation< time >> f_impl_encap, shared_ptr< Encapsulation< time >> u_encap, time t) override |
| Evaluate the implicit part of the ODE. More... | |
| void | impl_solve (shared_ptr< Encapsulation< time >> f_impl_encap, shared_ptr< Encapsulation< time >> u_encap, time t, time dt, shared_ptr< Encapsulation< time >> rhs_encap) override |
| Solve \( U - \Delta t F_{\rm impl}(U) = RHS \) for \( U \). More... | |
Public Member Functions inherited from pfasst::encap::IMEXSweeper< time > | |
| IMEXSweeper ()=default | |
| virtual | ~IMEXSweeper ()=default |
| virtual void | setup (bool coarse) override |
| Setup (allocate etc) the sweeper. More... | |
| virtual void | predict (bool initial) override |
| Compute low-order provisional solution. More... | |
| virtual void | sweep () override |
| Perform one SDC sweep/iteration. More... | |
| virtual void | advance () override |
| Advance the end solution to start solution. More... | |
| virtual void | reevaluate (bool initial_only) override |
| Re-evaluate function values. More... | |
| virtual void | integrate (time dt, vector< shared_ptr< Encapsulation< time >>> dst) const override |
| Integrates values of right hand side at all time nodes \( t \in [0,M-1] \) simultaneously. More... | |
| virtual void | residual (time dt, vector< shared_ptr< Encapsulation< time >>> dst) const override |
| Compute residual at each SDC node (including FAS corrections). More... | |
Public Member Functions inherited from pfasst::encap::EncapSweeper< time > | |
| EncapSweeper () | |
| virtual shared_ptr< Encapsulation< time > > | get_state (size_t m) const |
Retrieve solution values of current iteration at time node index m. More... | |
| virtual shared_ptr< Encapsulation< time > > | get_tau (size_t m) const |
Retrieve FAS correction of current iteration at time node index m. More... | |
| virtual shared_ptr< Encapsulation< time > > | get_saved_state (size_t m) const |
Retrieve solution values of previous iteration at time node index m. More... | |
| virtual void | set_options () override |
| Set options from command line etc. More... | |
| virtual void | spread () override |
| Initialize solution values at all time nodes with meaningful values. More... | |
| virtual void | save (bool initial_only) override |
| Save states (and/or function values) at all nodes. More... | |
| virtual void | set_quadrature (shared_ptr< IQuadrature< time >> quadrature) |
| virtual shared_ptr< const IQuadrature< time > > | get_quadrature () const |
| virtual const vector< time > | get_nodes () const |
| virtual void | set_factory (shared_ptr< EncapFactory< time >> factory) |
| virtual shared_ptr< EncapFactory< time > > | get_factory () const |
| virtual shared_ptr< Encapsulation< time > > | get_start_state () const |
| virtual shared_ptr< Encapsulation< time > > | get_end_state () |
| void | set_residual_tolerances (time abs_residual_tol, time rel_residual_tol, int order=0) |
| Set residual tolerances for convergence checking. More... | |
| virtual bool | converged () override |
| Return convergence status. More... | |
| virtual void | post (ICommunicator *comm, int tag) override |
| virtual void | send (ICommunicator *comm, int tag, bool blocking) override |
| virtual void | recv (ICommunicator *comm, int tag, bool blocking) override |
| virtual void | broadcast (ICommunicator *comm) override |
Public Member Functions inherited from pfasst::ISweeper< time > | |
| ISweeper () | |
| virtual | ~ISweeper () |
| virtual void | set_controller (Controller< time > *ctrl) |
| Set the sweepers controller. More... | |
| virtual Controller< time > * | get_controller () |
| Accessor to the controller managing this sweeper. More... | |
| virtual void | post_step () |
| Hook automatically run after each completed time step. More... | |
Static Public Member Functions | |
| static void | init_opts () |
| static void | init_logs () |
Private Attributes | |
| FFT | fft |
| vector< complex< double > > | ddx |
| vector< complex< double > > | lap |
| error_map | errors |
| error_map | residuals |
| double | v = 1.0 |
| time | t0 = 1.0 |
| double | nu = 0.02 |
| size_t | nf1evals = 0 |
Additional Inherited Members | |
Protected Member Functions inherited from pfasst::encap::IMEXSweeper< time > | |
| virtual void | integrate_end_state (time dt) |
| Set end state to \( U_0 + \int F_{expl} + F_{expl} \). More... | |
Protected Attributes inherited from pfasst::encap::IMEXSweeper< time > | |
| vector< shared_ptr< Encapsulation< time > > > | s_integrals |
| Node-to-node integrals of \( F(t,u) \) at all time nodes of the current iteration. More... | |
| vector< shared_ptr< Encapsulation< time > > > | fs_expl |
| Values of the explicit part of the right hand side \( F_{expl}(t,u) \) at all time nodes of the current iteration. More... | |
| shared_ptr< Encapsulation< time > > | fs_expl_start |
| vector< shared_ptr< Encapsulation< time > > > | fs_impl |
| Values of the implicit part of the right hand side \( F_{impl}(t,u) \) at all time nodes of the current iteration. More... | |
Protected Attributes inherited from pfasst::encap::EncapSweeper< time > | |
| string | FORMAT_STR |
| shared_ptr< IQuadrature< time > > | quadrature |
| shared_ptr< EncapFactory< time > > | factory |
| Encapsulation data structure factory. More... | |
| shared_ptr< Encapsulation< time > > | start_state |
| Separate start state, i.e. initial condition for the sweeper's current time step. More... | |
| shared_ptr< Encapsulation< time > > | end_state |
| Current solution at \( T_{end} \). More... | |
| vector< shared_ptr< Encapsulation< time > > > | residuals |
| Place for the residuals at the different time nodes. More... | |
| vector< shared_ptr< Encapsulation< time > > > | state |
| Solution values \( U \) at all time nodes of the current iteration. More... | |
| vector< shared_ptr< Encapsulation< time > > > | saved_state |
| Solution values \( U \) at all time nodes of the previous iteration. More... | |
| vector< shared_ptr< Encapsulation< time > > > | fas_corrections |
| FAS corrections \( \tau \) at all time nodes of the current iteration. More... | |
| int | residual_norm_order |
| time | abs_residual_tol |
| Tolerance for absolute residual. More... | |
| time | rel_residual_tol |
| Tolerance for relative residual. More... | |
Protected Attributes inherited from pfasst::ISweeper< time > | |
| Controller< time > * | controller |
| Backreference to the controller managing the sweeper instance. More... | |
advection-diffusion sweeper with semi-implicit time-integration.
Definition at line 78 of file advection_diffusion_sweeper.hpp.
|
inlineexplicit |
Definition at line 112 of file advection_diffusion_sweeper.hpp.
References PI.
|
default |
|
inlinevirtual |
Definition at line 125 of file advection_diffusion_sweeper.hpp.
References ML_CLOG.
|
inline |
Definition at line 154 of file advection_diffusion_sweeper.hpp.
References pfasst::examples::boris::max().
Here is the call graph for this function:
|
inline |
Definition at line 173 of file advection_diffusion_sweeper.hpp.
References ML_CLOG, and pfasst::encap::solution.
|
inline |
Definition at line 132 of file advection_diffusion_sweeper.hpp.
|
inline |
Definition at line 137 of file advection_diffusion_sweeper.hpp.
References PI.
|
inlineoverridevirtual |
Evaluate the explicit part of the ODE.
Reimplemented from pfasst::encap::IMEXSweeper< time >.
Definition at line 237 of file advection_diffusion_sweeper.hpp.
References pfasst::examples::advection_diffusion::FFT::backward(), pfasst::examples::advection_diffusion::FFT::forward(), and UNUSED.
Here is the call graph for this function:
|
inlineoverridevirtual |
Evaluate the implicit part of the ODE.
Reimplemented from pfasst::encap::IMEXSweeper< time >.
Definition at line 259 of file advection_diffusion_sweeper.hpp.
References pfasst::examples::advection_diffusion::FFT::backward(), pfasst::examples::advection_diffusion::FFT::forward(), and UNUSED.
Here is the call graph for this function:
|
inline |
Definition at line 198 of file advection_diffusion_sweeper.hpp.
Referenced by pfasst::examples::advection_diffusion::run_mpi_pfasst(), and pfasst::examples::advection_diffusion::run_serial_mlsdc().
Here is the caller graph for this function:
|
inline |
Definition at line 203 of file advection_diffusion_sweeper.hpp.
Referenced by pfasst::examples::advection_diffusion::run_serial_mlsdc().
Here is the caller graph for this function:
|
inlineoverridevirtual |
Solve \( U - \Delta t F_{\rm impl}(U) = RHS \) for \( U \).
Reimplemented from pfasst::encap::IMEXSweeper< time >.
Definition at line 279 of file advection_diffusion_sweeper.hpp.
References pfasst::examples::advection_diffusion::FFT::backward(), pfasst::examples::advection_diffusion::FFT::forward(), and UNUSED.
Here is the call graph for this function:
|
inlinestatic |
Definition at line 87 of file advection_diffusion_sweeper.hpp.
References pfasst::log::add_custom_logger().
Here is the call graph for this function:
|
inlinestatic |
Definition at line 82 of file advection_diffusion_sweeper.hpp.
|
inlineoverridevirtual |
Compute low-order provisional solution.
Reimplemented from pfasst::ISweeper< time >.
Definition at line 213 of file advection_diffusion_sweeper.hpp.
|
inlineoverridevirtual |
Perform one SDC sweep/iteration.
Reimplemented from pfasst::ISweeper< time >.
Definition at line 224 of file advection_diffusion_sweeper.hpp.
|
private |
Definition at line 95 of file advection_diffusion_sweeper.hpp.
|
private |
Definition at line 99 of file advection_diffusion_sweeper.hpp.
|
private |
Definition at line 94 of file advection_diffusion_sweeper.hpp.
|
private |
Definition at line 95 of file advection_diffusion_sweeper.hpp.
|
private |
Definition at line 107 of file advection_diffusion_sweeper.hpp.
|
private |
Definition at line 106 of file advection_diffusion_sweeper.hpp.
|
private |
Definition at line 100 of file advection_diffusion_sweeper.hpp.
|
private |
Definition at line 105 of file advection_diffusion_sweeper.hpp.
|
private |
Definition at line 104 of file advection_diffusion_sweeper.hpp.