#include "cs_base.h"
#include "cs_halo_perio.h"
#include "cs_matrix.h"
#include "cs_sles.h"
#include "cs_sles_it.h"
Go to the source code of this file.
|  | 
| cs_sles_it_t * | cs_multigrid_smoother_create (cs_sles_it_type_t smoother_type, int poly_degree, int n_iter) | 
|  | Create iterative sparse linear system solver info and context used as a smoother in a multigrid solver.  More... 
 | 
|  | 
| void | cs_multigrid_smoother_destroy (void **context) | 
|  | Destroy iterative sparse linear system solver info and context used as a smoother in a multigrid solver.  More... 
 | 
|  | 
| void | cs_multigrid_smoother_setup (void *context, const char *name, const cs_matrix_t *a, int verbosity) | 
|  | Setup iterative sparse linear equation solver in case of used as a multigrid smoother.  More... 
 | 
|  | 
| cs_sles_convergence_state_t | cs_multigrid_smoother_solve (void *context, const char *name, const cs_matrix_t *a, int verbosity, double precision, double r_norm, int *n_iter, double *residual, const cs_real_t *rhs, cs_real_t *vx_ini, cs_real_t *vx, size_t aux_size, void *aux_vectors) | 
|  | Call iterative sparse linear equation solver.  More... 
 | 
|  | 
| void | cs_multigrid_smoother_free (void *context) | 
|  | 
| void | cs_multigrid_smoother_log (const void *context, cs_log_t log_type) | 
|  | 
| cs_sles_it_type_t | cs_multigrid_smoother_get_type (const cs_multigrid_smoother_t *context) | 
|  | 
◆ cs_multigrid_smoother_t
◆ cs_multigrid_smoother_create()
Create iterative sparse linear system solver info and context used as a smoother in a multigrid solver. 
parameters: 
- Parameters
- 
  
    | [in] | smoother_type | type of smoother (CG, Jacobi, ...) |  | [in] | poly_degree | preconditioning polynomial degree (0: diagonal; -1: non-preconditioned; see Iterative linear solvers. for details) |  | [in] | n_iter | number of iterations to perform |  
 
- Returns
- a pointer to newly created smoother info object. 
 
 
◆ cs_multigrid_smoother_destroy()
      
        
          | void cs_multigrid_smoother_destroy | ( | void ** | context | ) |  | 
      
 
Destroy iterative sparse linear system solver info and context used as a smoother in a multigrid solver. 
- Parameters
- 
  
    | [in,out] | context | pointer to iterative sparse linear solver info (actual type: cs_sles_it_t **) |  
 
 
 
◆ cs_multigrid_smoother_free()
      
        
          | void cs_multigrid_smoother_free | ( | void * | context | ) |  | 
      
 
 
◆ cs_multigrid_smoother_get_type()
◆ cs_multigrid_smoother_log()
      
        
          | void cs_multigrid_smoother_log | ( | const void * | context, | 
        
          |  |  | cs_log_t | log_type | 
        
          |  | ) |  |  | 
      
 
 
◆ cs_multigrid_smoother_setup()
      
        
          | void cs_multigrid_smoother_setup | ( | void * | context, | 
        
          |  |  | const char * | name, | 
        
          |  |  | const cs_matrix_t * | a, | 
        
          |  |  | int | verbosity | 
        
          |  | ) |  |  | 
      
 
Setup iterative sparse linear equation solver in case of used as a multigrid smoother. 
- Parameters
- 
  
    | [in,out] | context | pointer to iterative solver info and context (actual type: cs_sles_it_t *) |  | [in] | name | pointer to system name |  | [in] | a | associated matrix |  | [in] | verbosity | associated verbosity |  
 
 
 
◆ cs_multigrid_smoother_solve()
      
        
          | cs_sles_convergence_state_t cs_multigrid_smoother_solve | ( | void * | context, | 
        
          |  |  | const char * | name, | 
        
          |  |  | const cs_matrix_t * | a, | 
        
          |  |  | int | verbosity, | 
        
          |  |  | double | precision, | 
        
          |  |  | double | r_norm, | 
        
          |  |  | int * | n_iter, | 
        
          |  |  | double * | residual, | 
        
          |  |  | const cs_real_t * | rhs, | 
        
          |  |  | cs_real_t * | vx_ini, | 
        
          |  |  | cs_real_t * | vx, | 
        
          |  |  | size_t | aux_size, | 
        
          |  |  | void * | aux_vectors | 
        
          |  | ) |  |  | 
      
 
Call iterative sparse linear equation solver. 
- Parameters
- 
  
    | [in,out] | context | pointer to iterative solver info and context (actual type: cs_sles_it_t *) |  | [in] | name | pointer to system name |  | [in] | a | matrix |  | [in] | verbosity | associated verbosity |  | [in] | precision | solver precision |  | [in] | r_norm | residual normalization |  | [out] | n_iter | number of "equivalent" iterations |  | [out] | residual | residual |  | [in] | rhs | right hand side |  | [in] | vx_ini | initial system solution (vx if nonzero, nullptr if zero) |  | [in,out] | vx | system solution |  | [in] | aux_size | number of elements in aux_vectors (in bytes) |  |  | aux_vectors | optional working area (internal allocation if NULL) |  
 
- Returns
- convergence state