ViennaSHE 1.3.0
Free open-source semiconductor device simulator using spherical harmonics expansions techniques.
viennashe::solvers::linear_solver_config Class Reference

A configuration class holding options for use within the different linear solvers. More...

#include <config.hpp>

Inheritance diagram for viennashe::solvers::linear_solver_config:
viennashe::solvers::linear_solver_ids

Public Types

typedef std::vector< std::pair< std::size_t, std::size_t > > block_preconditioner_boundaries_container
 
- Public Types inherited from viennashe::solvers::linear_solver_ids
enum  {
  dense_linear_solver , serial_linear_solver , parallel_linear_solver , gpu_parallel_linear_solver ,
  petsc_parallel_linear_solver , petsc_parallel_AMGX_solver
}
 

Public Member Functions

 linear_solver_config ()
 
void scale (bool value)
 Controls the scaling of unkowns. Give "false" to disable unkown scaling. More...
 
bool scale () const
 Returns whether or not the unkowns are scaled before solving the equation set. More...
 
long id () const
 Returns the current linear solver ID. More...
 
void set (long solver_id)
 Sets a new linear solver. Provide IDs defined in. More...
 
void set (std::string solver_name)
 Sets a new linear solver. Provide IDs defined in. More...
 
void finalize_petsc ()
 
double tolerance () const
 Returns the tolerance for the (iterative) linear solver. More...
 
void tolerance (double tol)
 Sets the tolerance for the (iterative) linear solver. Non-positive values are ignored. More...
 
std::size_t max_iters () const
 Returns the maximum number of iterative linear solver iterations. More...
 
void max_iters (std::size_t iters)
 Sets the maximum number of iterations within the iterative linear solver. More...
 
std::size_t ilut_entries () const
 Returns the maximum number of entries in each of the two factors of the ILUT preconditioner. More...
 
void ilut_entries (std::size_t num)
 Sets the maximum number of entries in each of the two factors of the ILUT preconditioner. More...
 
double ilut_drop_tolerance () const
 Returns the drop tolerance for the ILUT preconditioenr. More...
 
void ilut_drop_tolerance (double tol)
 Sets the drop tolerance for the ILUT preconditioner. Non-positive values are ignored. More...
 
block_preconditioner_boundaries_containerblock_preconditioner_boundaries ()
 
block_preconditioner_boundaries_container const & block_preconditioner_boundaries () const
 
int getArgc () const
 
void setArgc (int argc)
 
char ** getArgv () const
 
void setArgv (char **argv)
 
void finalize () const
 

Detailed Description

A configuration class holding options for use within the different linear solvers.

Internal note: May require a bit more polishing, particularly with respect to preconditioners

Definition at line 56 of file config.hpp.

Member Typedef Documentation

◆ block_preconditioner_boundaries_container

typedef std::vector<std::pair<std::size_t, std::size_t> > viennashe::solvers::linear_solver_config::block_preconditioner_boundaries_container

Definition at line 59 of file config.hpp.

Constructor & Destructor Documentation

◆ linear_solver_config()

viennashe::solvers::linear_solver_config::linear_solver_config ( )
inline

Definition at line 61 of file config.hpp.

Member Function Documentation

◆ block_preconditioner_boundaries() [1/2]

block_preconditioner_boundaries_container & viennashe::solvers::linear_solver_config::block_preconditioner_boundaries ( )
inline

Definition at line 188 of file config.hpp.

◆ block_preconditioner_boundaries() [2/2]

block_preconditioner_boundaries_container const & viennashe::solvers::linear_solver_config::block_preconditioner_boundaries ( ) const
inline

Definition at line 192 of file config.hpp.

◆ finalize()

void viennashe::solvers::linear_solver_config::finalize ( ) const
inline

Definition at line 217 of file config.hpp.

◆ finalize_petsc()

void viennashe::solvers::linear_solver_config::finalize_petsc ( )
inline

Definition at line 138 of file config.hpp.

◆ getArgc()

int viennashe::solvers::linear_solver_config::getArgc ( ) const
inline

Definition at line 197 of file config.hpp.

◆ getArgv()

char ** viennashe::solvers::linear_solver_config::getArgv ( ) const
inline

Definition at line 207 of file config.hpp.

◆ id()

long viennashe::solvers::linear_solver_config::id ( ) const
inline

Returns the current linear solver ID.

Definition at line 79 of file config.hpp.

◆ ilut_drop_tolerance() [1/2]

double viennashe::solvers::linear_solver_config::ilut_drop_tolerance ( ) const
inline

Returns the drop tolerance for the ILUT preconditioenr.

Definition at line 177 of file config.hpp.

◆ ilut_drop_tolerance() [2/2]

void viennashe::solvers::linear_solver_config::ilut_drop_tolerance ( double  tol)
inline

Sets the drop tolerance for the ILUT preconditioner. Non-positive values are ignored.

Definition at line 182 of file config.hpp.

◆ ilut_entries() [1/2]

std::size_t viennashe::solvers::linear_solver_config::ilut_entries ( ) const
inline

Returns the maximum number of entries in each of the two factors of the ILUT preconditioner.

Definition at line 166 of file config.hpp.

◆ ilut_entries() [2/2]

void viennashe::solvers::linear_solver_config::ilut_entries ( std::size_t  num)
inline

Sets the maximum number of entries in each of the two factors of the ILUT preconditioner.

Definition at line 171 of file config.hpp.

◆ max_iters() [1/2]

std::size_t viennashe::solvers::linear_solver_config::max_iters ( ) const
inline

Returns the maximum number of iterative linear solver iterations.

Definition at line 155 of file config.hpp.

◆ max_iters() [2/2]

void viennashe::solvers::linear_solver_config::max_iters ( std::size_t  iters)
inline

Sets the maximum number of iterations within the iterative linear solver.

Definition at line 160 of file config.hpp.

◆ scale() [1/2]

bool viennashe::solvers::linear_solver_config::scale ( ) const
inline

Returns whether or not the unkowns are scaled before solving the equation set.

Definition at line 73 of file config.hpp.

◆ scale() [2/2]

void viennashe::solvers::linear_solver_config::scale ( bool  value)
inline

Controls the scaling of unkowns. Give "false" to disable unkown scaling.

Definition at line 68 of file config.hpp.

◆ set() [1/2]

void viennashe::solvers::linear_solver_config::set ( long  solver_id)
inline

Sets a new linear solver. Provide IDs defined in.

See also
linear_solver_ids

Definition at line 84 of file config.hpp.

◆ set() [2/2]

void viennashe::solvers::linear_solver_config::set ( std::string  solver_name)
inline

Sets a new linear solver. Provide IDs defined in.

See also
linear_solver_ids

Definition at line 104 of file config.hpp.

◆ setArgc()

void viennashe::solvers::linear_solver_config::setArgc ( int  argc)
inline

Definition at line 202 of file config.hpp.

◆ setArgv()

void viennashe::solvers::linear_solver_config::setArgv ( char **  argv)
inline

Definition at line 212 of file config.hpp.

◆ tolerance() [1/2]

double viennashe::solvers::linear_solver_config::tolerance ( ) const
inline

Returns the tolerance for the (iterative) linear solver.

Definition at line 143 of file config.hpp.

◆ tolerance() [2/2]

void viennashe::solvers::linear_solver_config::tolerance ( double  tol)
inline

Sets the tolerance for the (iterative) linear solver. Non-positive values are ignored.

Definition at line 148 of file config.hpp.


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