Go to the documentation of this file.
20 #ifndef LIBMESH_EIGEN_TIME_SOLVER_H
21 #define LIBMESH_EIGEN_TIME_SOLVER_H
23 #include "libmesh/libmesh_config.h"
24 #ifdef LIBMESH_HAVE_SLEPC
27 #include "libmesh/time_solver.h"
35 template <
typename T>
class EigenSolver;
95 virtual void init ()
override;
101 virtual void reinit ()
override;
107 virtual void solve ()
override;
149 virtual bool is_steady()
const override {
return true; }
224 #endif // LIBMESH_HAVE_SLEPC
225 #endif // LIBMESH_EIGEN_TIME_SOLVER_H
virtual bool element_residual(bool get_jacobian, DiffContext &) override
Forms either the spatial (Jacobian) or mass matrix part of the operator, depending on which is reques...
Real error_order() const
error convergence order against deltat is not applicable to an eigenvalue problem.
DifferentiableSystem sys_type
The type of system.
unsigned int n_basis_vectors_to_use
The number of basis vectors to use in the computation.
The libMesh namespace provides an interface to certain functionality in the library.
Real tol
The linear solver tolerance to be used when solving the eigenvalue problem.
unsigned int maxits
The maximum number of iterations allowed to solve the problem.
virtual ~EigenTimeSolver()
Destructor.
This class provides a specific system class.
virtual void solve() override
Implements the assembly of both matrices A and B, and calls the EigenSolver to compute the eigenvalue...
TimeSolver Parent
The parent class.
The name of this class is confusing...it's meant to refer to the base class (TimeSolver) while still ...
virtual bool nonlocal_residual(bool get_jacobian, DiffContext &) override
Forms the jacobian of the nonlocal terms.
The matrix associated with the time derivative (mass matrix).
EigenTimeSolver(sys_type &s)
Constructor.
virtual void init() override
The initialization function.
unsigned int n_converged_eigenpairs
After a solve, holds the number of eigenpairs successfully converged.
unsigned int n_iterations_reqd
After a solve, holds the number of iterations required to converge the requested number of eigenpairs...
The enum is in an invalid state.
This class provides all data required for a physics package (e.g.
virtual Real du(const SystemNorm &) const override
virtual bool side_residual(bool get_jacobian, DiffContext &) override
Forms the jacobian of the boundary terms.
virtual void reinit() override
The reinitialization function.
NowAssembling now_assembling
Flag which controls the internals of element_residual() and side_residual().
This is a generic class that defines a solver to handle time integration of DifferentiableSystems.
unsigned int n_eigenpairs_to_compute
The number of eigenvectors/values to be computed.
virtual bool is_steady() const override
This is effectively a steady-state solver.
This class defines a norm/seminorm to be applied to a NumericVector which contains coefficients in a ...
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
The matrix associated with the spatial part of the operator.
std::unique_ptr< EigenSolver< Number > > eigen_solver
The EigenSolver object.
virtual void advance_timestep() override
It doesn't make sense to advance the timestep, so we shouldn't call this.