deal.II version GIT relicensing-2289-g1e5549a87a 2024-12-21 21:30:00+00:00
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
SLEPcWrappers::TransformationBase Class Reference

#include <deal.II/lac/slepc_spectral_transformation.h>

Inheritance diagram for SLEPcWrappers::TransformationBase:
Inheritance graph
[legend]

Public Member Functions

virtual ~TransformationBase ()
 
void set_matrix_mode (const STMatMode mode)
 
void set_solver (const PETScWrappers::SolverBase &solver)
 

Protected Member Functions

 TransformationBase (const MPI_Comm mpi_communicator)
 

Protected Attributes

ST st
 

Friends

class SolverBase
 

Detailed Description

Base class for spectral transformation classes using the SLEPc solvers which are selected based on flags passed to the spectral transformation.

SLEPcWrappers::TransformationXXX, where XXX is your favourite transformation type, can then be implemented in application codes in the following way for XXX=INVERT with the solver object eigensolver:

// Set a transformation, this one shifts the eigenspectrum by 3.142..
additional_data(3.142);
SLEPcWrappers::TransformationShift shift(mpi_communicator,additional_data);
eigensolver.set_transformation(shift);

and later calling the solve() function as usual:

SolverControl solver_control (1000, 1e-9);
SolverArnoldi system (solver_control, mpi_communicator);
eigensolver.solve (A, B, lambda, x, size_of_spectrum);
Note
These options can also be set at the command line.

Definition at line 75 of file slepc_spectral_transformation.h.

Constructor & Destructor Documentation

◆ TransformationBase()

SLEPcWrappers::TransformationBase::TransformationBase ( const MPI_Comm  mpi_communicator)
explicitprotected

Constructor.

Definition at line 31 of file slepc_spectral_transformation.cc.

◆ ~TransformationBase()

SLEPcWrappers::TransformationBase::~TransformationBase ( )
virtual

Destructor.

Definition at line 37 of file slepc_spectral_transformation.cc.

Member Function Documentation

◆ set_matrix_mode()

void SLEPcWrappers::TransformationBase::set_matrix_mode ( const STMatMode  mode)

Set a flag to indicate how the transformed matrices are being stored in the spectral transformations.

The possible values are given by the enumerator STMatMode in the SLEPc library https://slepc.upv.es/documentation/current/docs/manualpages/ST/STMatMode.html

Definition at line 48 of file slepc_spectral_transformation.cc.

◆ set_solver()

void SLEPcWrappers::TransformationBase::set_solver ( const PETScWrappers::SolverBase solver)

Set solver to be used when solving a system of linear algebraic equations inside the eigensolver.

Definition at line 55 of file slepc_spectral_transformation.cc.

Friends And Related Symbol Documentation

◆ SolverBase

friend class SolverBase
friend

Definition at line 115 of file slepc_spectral_transformation.h.

Member Data Documentation

◆ st

ST SLEPcWrappers::TransformationBase::st
protected

SLEPc spectral transformation object.

Definition at line 111 of file slepc_spectral_transformation.h.


The documentation for this class was generated from the following files: