1 #ifndef __CS_SLES_HYPRE_H__
2 #define __CS_SLES_HYPRE_H__
#define BEGIN_C_DECLS
Definition: cs_defs.h:509
double cs_real_t
Floating-point value.
Definition: cs_defs.h:319
#define END_C_DECLS
Definition: cs_defs.h:510
cs_log_t
Definition: cs_log.h:48
struct _cs_matrix_t cs_matrix_t
Definition: cs_matrix.h:110
cs_sles_convergence_state_t
Definition: cs_sles.h:56
struct _cs_sles_t cs_sles_t
Definition: cs_sles.h:68
void * cs_sles_hypre_copy(const void *context)
Create HYPRE sparse linear system solver info and context based on existing info and context.
Definition: cs_sles_hypre.c:436
cs_sles_convergence_state_t cs_sles_hypre_solve(void *context, const char *name, const cs_matrix_t *a, int verbosity, double precision, double r_norm, int *n_iter, double *residue, const cs_real_t *rhs, cs_real_t *vx, size_t aux_size, void *aux_vectors)
Call HYPRE linear equation solver.
Definition: cs_sles_hypre.c:975
cs_sles_hypre_t * cs_sles_hypre_create(cs_sles_hypre_type_t solver_type, cs_sles_hypre_type_t precond_type, cs_sles_hypre_setup_hook_t *setup_hook, void *context)
Create HYPRE linear system solver info and context.
Definition: cs_sles_hypre.c:353
cs_sles_hypre_type_t
Definition: cs_sles_hypre.h:58
@ CS_SLES_HYPRE_FLEXGMRES
Definition: cs_sles_hypre.h:68
@ CS_SLES_HYPRE_EUCLID
Definition: cs_sles_hypre.h:74
@ CS_SLES_HYPRE_PARASAILS
Definition: cs_sles_hypre.h:75
@ CS_SLES_HYPRE_GMRES
Definition: cs_sles_hypre.h:67
@ CS_SLES_HYPRE_BICGSTAB
Definition: cs_sles_hypre.h:66
@ CS_SLES_HYPRE_NONE
Definition: cs_sles_hypre.h:79
@ CS_SLES_HYPRE_ILU
Definition: cs_sles_hypre.h:64
@ CS_SLES_HYPRE_PCG
Definition: cs_sles_hypre.h:70
@ CS_SLES_HYPRE_LGMRES
Definition: cs_sles_hypre.h:69
@ CS_SLES_HYPRE_BOOMERAMG
Definition: cs_sles_hypre.h:62
@ CS_SLES_HYPRE_HYBRID
Definition: cs_sles_hypre.h:63
void cs_sles_hypre_set_n_max_iter(cs_sles_hypre_t *context, int n_max_iter)
Set the max. number of iterations associated to the given HYPRE contrext.
Definition: cs_sles_hypre.c:1328
void cs_sles_hypre_set_host_device(cs_sles_hypre_t *context, int use_device)
Define whether the solver should run on the host or accelerated device.
Definition: cs_sles_hypre.c:1385
void cs_sles_hypre_free(void *context)
Free HYPRE linear equation solver setup context.
Definition: cs_sles_hypre.c:1246
void cs_sles_hypre_destroy(void **context)
Destroy iterative sparse linear system solver info and context.
Definition: cs_sles_hypre.c:407
void cs_sles_hypre_log(const void *context, cs_log_t log_type)
Log sparse linear equation solver info.
Definition: cs_sles_hypre.c:510
bool cs_sles_hypre_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 HYPRE solver.
Definition: cs_sles_hypre.c:470
void cs_sles_hypre_setup(void *context, const char *name, const cs_matrix_t *a, int verbosity)
Setup iterative sparse linear equation solver.
Definition: cs_sles_hypre.c:580
cs_sles_hypre_t * cs_sles_hypre_define(int f_id, const char *name, cs_sles_hypre_type_t solver_type, cs_sles_hypre_type_t precond_type, cs_sles_hypre_setup_hook_t *setup_hook, void *context)
Define and associate a HYPRE linear system solver for a given field or equation name.
Definition: cs_sles_hypre.c:300
int cs_sles_hypre_get_host_device(const cs_sles_hypre_t *context)
Query whether the solver should run on the host or accelerated device.
Definition: cs_sles_hypre.c:1406
void() cs_sles_hypre_setup_hook_t(int verbosity, void *context, void *solver)
Function pointer for settings of a HYPRE solver setup.
Definition: cs_sles_hypre.h:102
struct _cs_sles_hypre_t cs_sles_hypre_t
Definition: cs_sles_hypre.h:108
void cs_sles_hypre_library_info(cs_log_t log_type)
Print information on hypre library.
Definition: cs_sles_hypre.c:1420
double precision, save a
Definition: cs_fuel_incl.f90:148