9.2
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-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#include "base/cs_defs.h"
31
32/*----------------------------------------------------------------------------
33 * Local headers
34 *----------------------------------------------------------------------------*/
35
36#include "base/cs_base.h"
37#include "base/cs_halo.h"
38
39/*============================================================================
40 * Type definitions
41 *============================================================================*/
42
43/*=============================================================================
44 * Public function prototypes
45 *============================================================================*/
46
47/*----------------------------------------------------------------------------
48 * Apply transformation on coordinates.
49 *
50 * parameters:
51 * halo <-> halo associated with coordinates to synchronize
52 * sync_mode --> kind of halo treatment (standard or extended)
53 * coords --> coordinates on which transformation have to be done.
54 *----------------------------------------------------------------------------*/
55
56void
58 cs_halo_type_t sync_mode,
59 cs_real_t *coords);
60
61/*----------------------------------------------------------------------------
62 * Synchronize values for a real tensor (symmetric interleaved) between
63 * periodic cells.
64 *
65 * parameters:
66 * halo <-> halo associated with variable to synchronize
67 * sync_mode --> kind of halo treatment (standard or extended)
68 * var <-> symmetric tensor to update (6 values)
69 *----------------------------------------------------------------------------*/
70
71void
73 cs_halo_type_t sync_mode,
74 cs_real_t var[]);
75
76/*----------------------------------------------------------------------------
77 * Synchronize values for a real vector (interleaved) between periodic cells.
78 *
79 * parameters:
80 * halo <-> halo associated with variable to synchronize
81 * sync_mode --> type of halo treatment (standard or extended)
82 * var <-> vector to update
83 * incvar <-- specifies the increment for the elements of var
84 *----------------------------------------------------------------------------*/
85
86template <typename T>
87void
89 cs_halo_type_t sync_mode,
90 T var[],
91 int incvar);
92
93/*----------------------------------------------------------------------------
94 * Synchronize values for a real tensor (interleaved) between periodic cells.
95 *
96 * parameters:
97 * halo <-> halo associated with variable to synchronize
98 * sync_mode --> kind of halo treatment (standard or extended)
99 * var <-> tensor to update
100 *----------------------------------------------------------------------------*/
101
102template <typename T>
103void
105 cs_halo_type_t sync_mode,
106 T var[]);
107
108/*----------------------------------------------------------------------------
109 * Synchronize values for a real gradient of a tensor (symmetric interleaved)
110 * between periodic cells.
111 *
112 * parameters:
113 * halo <-> halo associated with variable to synchronize
114 * sync_mode <-- kind of halo treatment (standard or extended)
115 * var <-> symmetric tensor to update (6 values)
116 *----------------------------------------------------------------------------*/
117
118template <typename T>
119void
121 cs_halo_type_t sync_mode,
122 T var[]);
123
124/*----------------------------------------------------------------------------*/
125
126#endif /* CS_HALO_PERIO_H */
double cs_real_t
Floating-point value.
Definition: cs_defs.h:332
cs_halo_type_t
Definition: cs_halo.h:53
void cs_halo_perio_sync_var_vect(const cs_halo_t *halo, cs_halo_type_t sync_mode, T var[], int incvar)
Definition: cs_halo_perio.cpp:385
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.cpp:553
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.cpp:319
void cs_halo_perio_sync_var_sym_tens_grad(const cs_halo_t *halo, cs_halo_type_t sync_mode, T var[])
Definition: cs_halo_perio.cpp:624
void cs_halo_perio_sync_var_tens(const cs_halo_t *halo, cs_halo_type_t sync_mode, T var[])
Definition: cs_halo_perio.cpp:471
Definition: cs_halo.h:74