Hex  1.0
Hydrogen-electron collision solver
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Static Public Attributes
MultiresPreconditioner Class Reference

Multi-resolution (V-cycle) preconditioner. More...

#include <preconditioners.h>

Inheritance diagram for MultiresPreconditioner:
Inheritance graph
[legend]
Collaboration diagram for MultiresPreconditioner:
Collaboration graph
[legend]

Public Member Functions

 MultiresPreconditioner (Parallel const &par, InputFile const &inp, std::vector< std::pair< int, int >> const &ll, Bspline const &bspline, CommandLine const &cmd)
 
 ~MultiresPreconditioner ()
 
RadialIntegrals const & rad () const
 Get radial integrals. More...
 
void setup ()
 Initialize the preconditioner. More...
 
void update (double E)
 Update the preconditioner for the next energy. More...
 
void rhs (cArrayView chi, int ienergy, int instate) const
 Return the right-hand side. More...
 
void multiply (const cArrayView p, cArrayView q) const
 Multiply by the matrix equation. More...
 
void precondition (const cArrayView r, cArrayView z) const
 Precondition the equation. More...
 

Static Public Attributes

static const std::string name
 
static const std::string description
 

Detailed Description

Note
Not implemented yet.

Constructor & Destructor Documentation

MultiresPreconditioner::MultiresPreconditioner ( Parallel const &  par,
InputFile const &  inp,
std::vector< std::pair< int, int >> const &  ll,
Bspline const &  bspline,
CommandLine const &  cmd 
)
MultiresPreconditioner::~MultiresPreconditioner ( )

Member Function Documentation

void MultiresPreconditioner::multiply ( const cArrayView  p,
cArrayView  q 
) const
inlinevirtual

This function implements matrix multiplication by the matrix of the set of equations that is to be solved.

Implements PreconditionerBase.

void MultiresPreconditioner::precondition ( const cArrayView  r,
cArrayView  z 
) const
virtual

This function preconditions the equation, solving the preconditioner equation

\[ \mathbf{M}\mathbf{z} = \mathbf{r} \ . \]

It may use the MPI environment.

Implements PreconditionerBase.

RadialIntegrals const& MultiresPreconditioner::rad ( ) const
inlinevirtual

Implements PreconditionerBase.

void MultiresPreconditioner::rhs ( cArrayView  chi,
int  ienergy,
int  instate 
) const
inlinevirtual

Implements PreconditionerBase.

void MultiresPreconditioner::setup ( )
inlinevirtual

This function contains all computation intensive preparations for the preconditioner, e.g. computation of radial integrals. It may use only SMP environment.

Implements PreconditionerBase.

void MultiresPreconditioner::update ( double  E)
inlinevirtual

This function updates the preconditioner for another right hand side. It may use the MPI environment.

Implements PreconditionerBase.

Field Documentation

const std::string MultiresPreconditioner::description
static
const std::string MultiresPreconditioner::name
static

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