1#ifndef __CS_SLES_IT_H__
2#define __CS_SLES_IT_H__
446 MPI_Comm caller_comm);
579 const char *base_name,
#define BEGIN_C_DECLS
Definition: cs_defs.h:554
double cs_real_t
Floating-point value.
Definition: cs_defs.h:357
#define END_C_DECLS
Definition: cs_defs.h:555
int cs_lnum_t
local mesh entity id
Definition: cs_defs.h:350
cs_log_t
Definition: cs_log.h:48
struct _cs_matrix_t cs_matrix_t
Definition: cs_matrix.h:114
cs_sles_convergence_state_t
Definition: cs_sles.h:56
struct _cs_sles_t cs_sles_t
Definition: cs_sles.h:68
double cs_sles_it_get_last_initial_residual(const cs_sles_it_t *context)
Return the initial residual for the previous solve operation with a solver.
Definition: cs_sles_it.cpp:5286
cs_sles_convergence_state_t cs_sles_it_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, cs_real_t *vx_ini, size_t aux_size, void *aux_vectors)
Call iterative sparse linear equation solver.
Definition: cs_sles_it.cpp:4975
double cs_sles_it_get_breakdown_threshold(void)
Retrieve the threshold value under which a breakdown happens in solvers like BiCGStab or BiCGStab2.
Definition: cs_sles_it.cpp:5532
void cs_sles_it_transfer_pc(cs_sles_it_t *context, cs_sles_pc_t **pc)
Assign a preconditioner to an iterative sparse linear equation solver, transfering its ownership to t...
Definition: cs_sles_it.cpp:5339
cs_sles_pc_t * cs_sles_it_get_pc(cs_sles_it_t *context)
Return a preconditioner context for an iterative sparse linear equation solver.
Definition: cs_sles_it.cpp:5310
void cs_sles_it_transfer_parameters(const cs_sles_it_t *src, cs_sles_it_t *dest)
Copy options from one iterative sparse linear system solver info and context to another.
Definition: cs_sles_it.cpp:5371
cs_sles_it_t * cs_sles_it_create(cs_sles_it_type_t solver_type, int poly_degree, int n_max_iter, bool update_stats)
Create iterative sparse linear system solver info and context.
Definition: cs_sles_it.cpp:4463
bool cs_sles_it_error_post_and_abort(cs_sles_t *sles, cs_sles_convergence_state_t state, const cs_matrix_t *a, const cs_real_t *rhs, cs_real_t *vx)
Error handler for iterative sparse linear equation solver.
Definition: cs_sles_it.cpp:5638
void cs_sles_it_set_n_max_iter(cs_sles_it_t *context, int n_max_iter)
Define the max. number of iterations before stopping the algorithm.
Definition: cs_sles_it.cpp:5610
void cs_sles_it_set_fallback_threshold(cs_sles_it_t *context, cs_sles_convergence_state_t threshold, int n_iter_max)
Define convergence level under which the fallback to another solver may be used if applicable.
Definition: cs_sles_it.cpp:5572
void cs_sles_it_setup(void *context, const char *name, const cs_matrix_t *a, int verbosity)
Setup iterative sparse linear equation solver.
Definition: cs_sles_it.cpp:4768
void cs_sles_it_set_shareable(cs_sles_it_t *context, const cs_sles_it_t *shareable)
Associate a similar info and context object with which some setup data may be shared.
Definition: cs_sles_it.cpp:5420
void cs_sles_it_set_restart_interval(cs_sles_it_t *context, int interval)
Define the number of iterations to be done before restarting the solver. Useful only for GCR or GMRES...
Definition: cs_sles_it.cpp:5591
void cs_sles_it_log(const void *context, cs_log_t log_type)
Log sparse linear equation solver info.
Definition: cs_sles_it.cpp:4652
cs_sles_it_t * cs_sles_it_define(int f_id, const char *name, cs_sles_it_type_t solver_type, int poly_degree, int n_max_iter)
Define and associate an iterative sparse linear system solver for a given field or equation name.
Definition: cs_sles_it.cpp:4410
void * cs_sles_it_copy(const void *context)
Create iterative sparse linear system solver info and context based on existing info and context.
Definition: cs_sles_it.cpp:4606
cs_sles_convergence_state_t cs_sles_it_convergence_test(cs_sles_it_t *c, unsigned n_iter, double residual, cs_sles_it_convergence_t *convergence)
Definition: cs_sles_it.cpp:5729
void cs_sles_it_set_plot_options(cs_sles_it_t *context, const char *base_name, bool use_iteration)
Set plotting options for an iterative sparse linear equation solver.
Definition: cs_sles_it.cpp:5685
struct _cs_sles_it_t cs_sles_it_t
Definition: cs_sles_it.h:95
void cs_sles_it_free(void *context)
Free iterative sparse linear equation solver setup context.
Definition: cs_sles_it.cpp:5217
void cs_sles_it_assign_order(cs_sles_it_t *context, cs_lnum_t **order)
Assign ordering to iterative solver.
Definition: cs_sles_it.cpp:5500
const char * cs_sles_it_type_name[]
struct _cs_sles_it_convergence_t cs_sles_it_convergence_t
Definition: cs_sles_it.h:99
cs_sles_it_type_t
Definition: cs_sles_it.h:55
@ CS_SLES_P_SYM_GAUSS_SEIDEL
Definition: cs_sles_it.h:71
@ CS_SLES_JACOBI
Definition: cs_sles_it.h:63
@ CS_SLES_RJ2
Definition: cs_sles_it.h:82
@ CS_SLES_PCR3
Definition: cs_sles_it.h:72
@ CS_SLES_GMRES
Definition: cs_sles_it.h:68
@ CS_SLES_GCR
Definition: cs_sles_it.h:67
@ CS_SLES_P_GAUSS_SEIDEL
Definition: cs_sles_it.h:70
@ CS_SLES_BICGSTAB
Definition: cs_sles_it.h:64
@ CS_SLES_N_IT_TYPES
Definition: cs_sles_it.h:75
@ CS_SLES_BICGSTAB2
Definition: cs_sles_it.h:66
@ CS_SLES_L1_JACOBI
Definition: cs_sles_it.h:80
@ CS_SLES_USER_DEFINED
Definition: cs_sles_it.h:73
@ CS_SLES_RJ3
Definition: cs_sles_it.h:83
@ CS_SLES_PCG
Definition: cs_sles_it.h:59
@ CS_SLES_TS_B_GAUSS_SEIDEL
Definition: cs_sles_it.h:86
@ CS_SLES_IPCG
Definition: cs_sles_it.h:62
@ CS_SLES_R_JACOBI
Definition: cs_sles_it.h:81
@ CS_SLES_N_SMOOTHER_TYPES
Definition: cs_sles_it.h:88
@ CS_SLES_FCG
Definition: cs_sles_it.h:60
@ CS_SLES_TS_F_GAUSS_SEIDEL
Definition: cs_sles_it.h:85
void cs_sles_it_set_breakdown_threshold(double threshold)
Define the threshold value under which a breakdown happens in solvers like BiCGStab or BiCGStab2.
Definition: cs_sles_it.cpp:5547
cs_sles_convergence_state_t cs_user_sles_it_solver(cs_sles_it_t *c, const cs_matrix_t *a, cs_lnum_t diag_block_size, cs_sles_it_convergence_t *convergence, const cs_real_t *rhs, cs_real_t *vx_ini, cs_real_t *vx, size_t aux_size, void *aux_vectors)
void cs_sles_it_destroy(void **context)
Destroy iterative sparse linear system solver info and context.
Definition: cs_sles_it.cpp:4568
cs_sles_it_type_t cs_sles_it_get_type(const cs_sles_it_t *context)
Return iterative solver type.
Definition: cs_sles_it.cpp:5258
struct _cs_sles_pc_t cs_sles_pc_t
Definition: cs_sles_pc.h:66