8.1
general documentation
cs_halo_perio.h
Go to the documentation of this file.
1 #ifndef __CS_HALO_PERIO_H__
2 #define __CS_HALO_PERIO_H__
3 
4 /*============================================================================
5  * Structure and function headers associated to periodicity
6  *============================================================================*/
7 
8 /*
9  This file is part of code_saturne, a general-purpose CFD tool.
10 
11  Copyright (C) 1998-2023 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 #include "cs_defs.h"
31 
32 /*----------------------------------------------------------------------------
33  * Local headers
34  *----------------------------------------------------------------------------*/
35 
36 #include "cs_base.h"
37 #include "cs_halo.h"
38 
39 /*----------------------------------------------------------------------------*/
40 
42 
43 /*============================================================================
44  * Type definitions
45  *============================================================================*/
46 
47 /*=============================================================================
48  * Public function prototypes
49  *============================================================================*/
50 
51 /*----------------------------------------------------------------------------
52  * Apply transformation on coordinates.
53  *
54  * parameters:
55  * halo <-> halo associated with coordinates to synchronize
56  * sync_mode --> kind of halo treatment (standard or extended)
57  * coords --> coordinates on which transformation have to be done.
58  *----------------------------------------------------------------------------*/
59 
60 void
62  cs_halo_type_t sync_mode,
63  cs_real_t *coords);
64 
65 /*----------------------------------------------------------------------------
66  * Synchronize values for a real vector (interleaved) between periodic cells.
67  *
68  * parameters:
69  * halo <-> halo associated with variable to synchronize
70  * sync_mode --> type of halo treatment (standard or extended)
71  * var <-> vector to update
72  * incvar <-- specifies the increment for the elements of var
73  *----------------------------------------------------------------------------*/
74 
75 void
77  cs_halo_type_t sync_mode,
78  cs_real_t var[],
79  int incvar);
80 
81 /*----------------------------------------------------------------------------
82  * Synchronize values for a real tensor (interleaved) between periodic cells.
83  *
84  * parameters:
85  * halo <-> halo associated with variable to synchronize
86  * sync_mode --> kind of halo treatment (standard or extended)
87  * var <-> tensor to update
88  *----------------------------------------------------------------------------*/
89 
90 void
92  cs_halo_type_t sync_mode,
93  cs_real_t var[]);
94 
95 /*----------------------------------------------------------------------------
96  * Synchronize values for a real tensor (symmetric interleaved) between
97  * periodic cells.
98  *
99  * parameters:
100  * halo <-> halo associated with variable to synchronize
101  * sync_mode --> kind of halo treatment (standard or extended)
102  * var <-> symmetric tensor to update (6 values)
103  *----------------------------------------------------------------------------*/
104 
105 void
107  cs_halo_type_t sync_mode,
108  cs_real_t var[]);
109 
110 /*----------------------------------------------------------------------------
111  * Synchronize values for a real gradient of a tensor (symmetric interleaved)
112  * between periodic cells.
113  *
114  * parameters:
115  * halo <-> halo associated with variable to synchronize
116  * sync_mode <-- kind of halo treatment (standard or extended)
117  * var <-> symmetric tensor to update (6 values)
118  *----------------------------------------------------------------------------*/
119 
120 void
122  cs_halo_type_t sync_mode,
123  cs_real_t var[]);
124 
125 /*----------------------------------------------------------------------------*/
126 
128 
129 #endif /* __CS_HALO_PERIO_H__ */
130 
#define BEGIN_C_DECLS
Definition: cs_defs.h:514
double cs_real_t
Floating-point value.
Definition: cs_defs.h:319
#define END_C_DECLS
Definition: cs_defs.h:515
cs_halo_type_t
Definition: cs_halo.h:56
void cs_halo_perio_sync_var_sym_tens(const cs_halo_t *halo, cs_halo_type_t sync_mode, cs_real_t var[])
Definition: cs_halo_perio.c:576
void cs_halo_perio_sync_var_vect(const cs_halo_t *halo, cs_halo_type_t sync_mode, cs_real_t var[], int incvar)
Definition: cs_halo_perio.c:435
void cs_halo_perio_sync_var_tens(const cs_halo_t *halo, cs_halo_type_t sync_mode, cs_real_t var[])
Definition: cs_halo_perio.c:506
void cs_halo_perio_sync_coords(const cs_halo_t *halo, cs_halo_type_t sync_mode, cs_real_t *coords)
Definition: cs_halo_perio.c:368
void cs_halo_perio_sync_var_sym_tens_grad(const cs_halo_t *halo, cs_halo_type_t sync_mode, cs_real_t var[])
Definition: cs_halo_perio.c:646
Definition: cs_halo.h:77