8.2
general documentation
cs_param_mumps.h
Go to the documentation of this file.
1 #ifndef __CS_PARAM_MUMPS_H__
2 #define __CS_PARAM_MUMPS_H__
3 
4 /*============================================================================
5  * Routines and structure to handle the MUMPS settings
6  *============================================================================*/
7 
8 /*
9  This file is part of code_saturne, a general-purpose CFD tool.
10 
11  Copyright (C) 1998-2024 EDF S.A.
12 
13  This program is free software; you can redistribute it and/or modify it under
14  the terms of the GNU General Public License as published by the Free Software
15  Foundation; either version 2 of the License, or (at your option) any later
16  version.
17 
18  This program is distributed in the hope that it will be useful, but WITHOUT
19  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
20  FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
21  details.
22 
23  You should have received a copy of the GNU General Public License along with
24  this program; if not, write to the Free Software Foundation, Inc., 51 Franklin
25  Street, Fifth Floor, Boston, MA 02110-1301, USA.
26 */
27 
28 /*----------------------------------------------------------------------------*/
29 
30 /*----------------------------------------------------------------------------
31  * Local headers
32  *----------------------------------------------------------------------------*/
33 
34 /*----------------------------------------------------------------------------*/
35 
37 
45 /*============================================================================
46  * Macro definitions
47  *============================================================================*/
48 
49 /*============================================================================
50  * Type definitions
51  *============================================================================*/
52 
71 typedef enum {
72 
76 
78 
80 
81 
119 typedef enum {
120 
128 
130 
132 
134 
135 
149 typedef enum {
150 
154 
156 
158 
159 
166 typedef struct {
167 
168  /* \var analysis_algo
169  * Choice of the algorithm used to perform the analysis step
170  *
171  * \var facto_type
172  * Type of factorization to consider. This choice depends on the type of
173  * matrix to handle
174  *
175  * \var mem_usage
176  * Type of strategy to consider for the memory usage.
177  */
178 
182 
183  bool is_single;
188  double blr_threshold;
195  double mem_coef;
202  int ir_steps;
205 
206 /*============================================================================
207  * Global variables
208  *============================================================================*/
209 
210 /*============================================================================
211  * Public function prototypes
212  *============================================================================*/
213 
214 /*----------------------------------------------------------------------------*/
221 /*----------------------------------------------------------------------------*/
222 
225 
226 /*----------------------------------------------------------------------------*/
235 /*----------------------------------------------------------------------------*/
236 
239 
240 /*----------------------------------------------------------------------------*/
247 /*----------------------------------------------------------------------------*/
248 
249 void
250 cs_param_mumps_log(const char *name,
251  const cs_param_mumps_t *mumpsp);
252 
253 /*----------------------------------------------------------------------------*/
254 
256 
257 #endif /* __CS_PARAM_MUMPS_H__ */
#define BEGIN_C_DECLS
Definition: cs_defs.h:528
#define END_C_DECLS
Definition: cs_defs.h:529
cs_param_mumps_facto_type_t
type of factorization to consider when using the MUMPS solver to solve a linear system
Definition: cs_param_mumps.h:71
@ CS_PARAM_MUMPS_FACTO_LDLT_SPD
This factorization is devoted to SPD matrices and corresponds to a Cholesky factorization....
Definition: cs_param_mumps.h:75
@ CS_PARAM_MUMPS_FACTO_LU
LU factorization is the most generic factorization available with MUMPS. It can handle general matric...
Definition: cs_param_mumps.h:73
@ CS_PARAM_MUMPS_N_FACTO_TYPES
Definition: cs_param_mumps.h:77
@ CS_PARAM_MUMPS_FACTO_LDLT_SYM
This factorization is a Cholesky factorization (L.D.Lt) for general symmetric matrices.
Definition: cs_param_mumps.h:74
cs_param_mumps_memory_usage_t
Strategy for the memory usage inside MUMPS.
Definition: cs_param_mumps.h:149
@ CS_PARAM_MUMPS_MEMORY_CONSTRAINED
Definition: cs_param_mumps.h:151
@ CS_PARAM_MUMPS_MEMORY_CPU_DRIVEN
Definition: cs_param_mumps.h:153
@ CS_PARAM_MUMPS_N_MEMORY_USAGES
Definition: cs_param_mumps.h:155
@ CS_PARAM_MUMPS_MEMORY_AUTO
Definition: cs_param_mumps.h:152
cs_param_mumps_analysis_algo_t
Type of algorithm to consider when using the MUMPS solver to perform the analysis step (renumbering a...
Definition: cs_param_mumps.h:119
@ CS_PARAM_MUMPS_ANALYSIS_QAMD
Definition: cs_param_mumps.h:122
@ CS_PARAM_MUMPS_ANALYSIS_PORD
Definition: cs_param_mumps.h:123
@ CS_PARAM_MUMPS_ANALYSIS_SCOTCH
Definition: cs_param_mumps.h:124
@ CS_PARAM_MUMPS_N_ANALYSIS_ALGOS
Definition: cs_param_mumps.h:131
@ CS_PARAM_MUMPS_ANALYSIS_AUTO
Definition: cs_param_mumps.h:129
@ CS_PARAM_MUMPS_ANALYSIS_METIS
Definition: cs_param_mumps.h:126
@ CS_PARAM_MUMPS_ANALYSIS_PARMETIS
Definition: cs_param_mumps.h:127
@ CS_PARAM_MUMPS_ANALYSIS_AMD
Definition: cs_param_mumps.h:121
@ CS_PARAM_MUMPS_ANALYSIS_PTSCOTCH
Definition: cs_param_mumps.h:125
cs_param_mumps_t * cs_param_mumps_create(void)
Create and initialize with the default settings a new structure storing a set of parameters used when...
Definition: cs_param_mumps.c:87
cs_param_mumps_t * cs_param_mumps_copy(const cs_param_mumps_t *mumpsp)
Copy into a new structure the given set of parameters used when calling MUMPS.
Definition: cs_param_mumps.c:122
void cs_param_mumps_log(const char *name, const cs_param_mumps_t *mumpsp)
Log the structure storing the set of parameters used with MUMPS.
Definition: cs_param_mumps.c:150
Set of parameters to specify additional options to MUMPS For more advanced settings,...
Definition: cs_param_mumps.h:166
cs_param_mumps_facto_type_t facto_type
Definition: cs_param_mumps.h:180
double blr_threshold
Definition: cs_param_mumps.h:188
double mem_coef
Definition: cs_param_mumps.h:195
int ir_steps
Definition: cs_param_mumps.h:202
int block_analysis
Definition: cs_param_mumps.h:199
cs_param_mumps_memory_usage_t mem_usage
Definition: cs_param_mumps.h:181
bool is_single
Definition: cs_param_mumps.h:183
cs_param_mumps_analysis_algo_t analysis_algo
Definition: cs_param_mumps.h:179
bool advanced_optim
Definition: cs_param_mumps.h:185