9.2
general documentation
cs_param_hpddm.h
Go to the documentation of this file.
1#ifndef CS_PARAM_HPDDM_H
2#define CS_PARAM_HPDDM_H
3
4/*============================================================================
5 * Routines and structure to handle the HPDDM settings
6 *============================================================================*/
7
8/*
9 This file is part of code_saturne, a general-purpose CFD tool.
10
11 Copyright (C) 1998-2026 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
58typedef struct {
59
60 /* There are three important parameters:
61 * Left bound values --> easy problem and low cost
62 * Right bound values --> hard problem and high cost
63 * - 1 <= harmonic_overlap <= 10
64 * - 40 <= nb_eigenvector =< 500
65 * - 0.5 >= relative_threshold >= 1.e-6
66 * - 1 <= p < nb_mpi/2
67 */
68
74 int p;
77 /* Advanced options */
78
79 bool adaptative; /* Compute parameters using adaptative algorithm */
92 int nb_iter_prev; /* Number of iterations of previous solve */
93
95
96/*============================================================================
97 * Global variables
98 *============================================================================*/
99
100/*============================================================================
101 * Public function prototypes
102 *============================================================================*/
103
104/*----------------------------------------------------------------------------*/
111/*----------------------------------------------------------------------------*/
112
115
116/*----------------------------------------------------------------------------*/
125/*----------------------------------------------------------------------------*/
126
129
130/*----------------------------------------------------------------------------*/
137/*----------------------------------------------------------------------------*/
138
139void
140cs_param_hpddm_log(const char *name, const cs_param_hpddm_t *hpddmp);
141
142/*----------------------------------------------------------------------------*/
143
145
146#endif /* CS_PARAM_HPDDM_H */
#define BEGIN_C_DECLS
Definition: cs_defs.h:528
#define END_C_DECLS
Definition: cs_defs.h:529
cs_param_hpddm_t * cs_param_hpddm_copy(const cs_param_hpddm_t *hpddmp)
Copy into a new structure the given set of parameters used when calling HPDDM.
Definition: cs_param_hpddm.cpp:128
void cs_param_hpddm_log(const char *name, const cs_param_hpddm_t *hpddmp)
Log the structure storing the set of parameters used with HPDDM.
Definition: cs_param_hpddm.cpp:165
cs_param_hpddm_t * cs_param_hpddm_create(void)
Create and initialize with the default settings a new structure storing a set of parameters used when...
Definition: cs_param_hpddm.cpp:86
Set of parameters to specify additional options to HPDDM Please refer to the HPDDM user guide for mor...
Definition: cs_param_hpddm.h:58
int min_iter
Definition: cs_param_hpddm.h:88
double relative_threshold
Definition: cs_param_hpddm.h:75
int harmonic_overlap
Definition: cs_param_hpddm.h:70
bool use_neumann
Definition: cs_param_hpddm.h:69
bool adaptative
Definition: cs_param_hpddm.h:79
int p
Definition: cs_param_hpddm.h:74
int max_iter
Definition: cs_param_hpddm.h:89
int nb_iter_prev
Definition: cs_param_hpddm.h:92
int max_harmonic_overlap
Definition: cs_param_hpddm.h:81
int min_nb_eigenvector
Definition: cs_param_hpddm.h:83
int max_nb_eigenvector
Definition: cs_param_hpddm.h:85
int nb_eigenvector
Definition: cs_param_hpddm.h:71
int min_harmonic_overlap
Definition: cs_param_hpddm.h:80