9.1
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-2025 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
59typedef struct {
60
61 /* There are three important parameters:
62 * Left bound values --> easy problem and low cost
63 * Right bound values --> hard problem and high cost
64 * - 1 <= harmonic_overlap <= 10
65 * - 40 <= nb_eigenvector =< 500
66 * - 0.5 >= relative_threshold >= 1.e-6
67 * - 1 <= p < nb_mpi/2
68 */
69
75 int p;
78 /* Advanced options */
79
80 bool adaptative; /* Compute parameters using adaptative algorithm */
93 int nb_iter_prev; /* Number of iterations of previous solve */
94
96
97/*============================================================================
98 * Global variables
99 *============================================================================*/
100
101/*============================================================================
102 * Public function prototypes
103 *============================================================================*/
104
105/*----------------------------------------------------------------------------*/
112/*----------------------------------------------------------------------------*/
113
116
117/*----------------------------------------------------------------------------*/
126/*----------------------------------------------------------------------------*/
127
130
131/*----------------------------------------------------------------------------*/
138/*----------------------------------------------------------------------------*/
139
140void
141cs_param_hpddm_log(const char *name, const cs_param_hpddm_t *hpddmp);
142
143/*----------------------------------------------------------------------------*/
144
146
147#endif /* __CS_PARAM_HPDDM_H__ */
#define BEGIN_C_DECLS
Definition: cs_defs.h:554
#define END_C_DECLS
Definition: cs_defs.h:555
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:130
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:167
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:88
Set of parameters to specify additional options to HPDDM For more advanced settings,...
Definition: cs_param_hpddm.h:59
int min_iter
Definition: cs_param_hpddm.h:89
double relative_threshold
Definition: cs_param_hpddm.h:76
int harmonic_overlap
Definition: cs_param_hpddm.h:71
bool use_neumann
Definition: cs_param_hpddm.h:70
bool adaptative
Definition: cs_param_hpddm.h:80
int p
Definition: cs_param_hpddm.h:75
int max_iter
Definition: cs_param_hpddm.h:90
int nb_iter_prev
Definition: cs_param_hpddm.h:93
int max_harmonic_overlap
Definition: cs_param_hpddm.h:82
int min_nb_eigenvector
Definition: cs_param_hpddm.h:84
int max_nb_eigenvector
Definition: cs_param_hpddm.h:86
int nb_eigenvector
Definition: cs_param_hpddm.h:72
int min_harmonic_overlap
Definition: cs_param_hpddm.h:81