8.3
general documentation
cs_ext_neighborhood.h
Go to the documentation of this file.
1#ifndef __CS_EXT_NEIGHBOR_H__
2#define __CS_EXT_NEIGHBOR_H__
3
4/*============================================================================
5 * Fortran interfaces of functions needing a synchronization of the extended
6 * neighborhood.
7 *============================================================================*/
8
9/*
10 This file is part of code_saturne, a general-purpose CFD tool.
11
12 Copyright (C) 1998-2024 EDF S.A.
13
14 This program is free software; you can redistribute it and/or modify it under
15 the terms of the GNU General Public License as published by the Free Software
16 Foundation; either version 2 of the License, or (at your option) any later
17 version.
18
19 This program is distributed in the hope that it will be useful, but WITHOUT
20 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
21 FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
22 details.
23
24 You should have received a copy of the GNU General Public License along with
25 this program; if not, write to the Free Software Foundation, Inc., 51 Franklin
26 Street, Fifth Floor, Boston, MA 02110-1301, USA.
27*/
28
29/*----------------------------------------------------------------------------*/
30
31/*----------------------------------------------------------------------------
32 * Local headers
33 *----------------------------------------------------------------------------*/
34
35#include "cs_base.h"
36#include "cs_mesh.h"
37#include "cs_mesh_quantities.h"
38
39/*----------------------------------------------------------------------------*/
40
42
43/*=============================================================================
44 * Local Macro definitions
45 *============================================================================*/
46
47/*============================================================================
48 * Type definition
49 *============================================================================*/
50
51/*----------------------------------------------------------------------------
52 * Extended neighborhood type
53 *----------------------------------------------------------------------------*/
54
55typedef enum {
56
57 CS_EXT_NEIGHBORHOOD_NONE, /* No extended neighborhood */
58 CS_EXT_NEIGHBORHOOD_COMPLETE, /* Full extended neighborhood */
59 CS_EXT_NEIGHBORHOOD_OPTIMIZED, /* Extended neighborhood
60 optimized through heuristics */
61 CS_EXT_NEIGHBORHOOD_CELL_CENTER_OPPOSITE, /* Cell centers best aligned
62 opposite to adjacent
63 cell centers */
64 CS_EXT_NEIGHBORHOOD_NON_ORTHO_MAX /* Cells adjacent to faces
65 whose non-orthogonality exceeds
66 a given threshold */
67
69
70/*============================================================================
71 * Global variables
72 *============================================================================*/
73
74/* Short names for extended neighborhood types */
75
76extern const char *cs_ext_neighborhood_type_name[];
77
78/*============================================================================
79 * Public function prototypes
80 *============================================================================*/
81
82/*----------------------------------------------------------------------------*/
88/*----------------------------------------------------------------------------*/
89
92
93/*----------------------------------------------------------------------------*/
99/*----------------------------------------------------------------------------*/
100
101void
103
104/*----------------------------------------------------------------------------*/
110/*----------------------------------------------------------------------------*/
111
112bool
114
115/*----------------------------------------------------------------------------*/
122/*----------------------------------------------------------------------------*/
123
124void
126
127/*----------------------------------------------------------------------------*/
134/*----------------------------------------------------------------------------*/
135
138
139/*----------------------------------------------------------------------------*/
146/*----------------------------------------------------------------------------*/
147
148void
150
151/*----------------------------------------------------------------------------*/
162/*----------------------------------------------------------------------------*/
163
164void
166 cs_mesh_quantities_t *mesh_quantities);
167
168/*----------------------------------------------------------------------------*/
174/*----------------------------------------------------------------------------*/
175
176void
178
179/*----------------------------------------------------------------------------*/
180
182
183#endif /* __CS_EXT_NEIGHBOR_H__ */
#define BEGIN_C_DECLS
Definition: cs_defs.h:542
double cs_real_t
Floating-point value.
Definition: cs_defs.h:342
#define END_C_DECLS
Definition: cs_defs.h:543
cs_ext_neighborhood_type_t
Definition: cs_ext_neighborhood.h:55
@ CS_EXT_NEIGHBORHOOD_OPTIMIZED
Definition: cs_ext_neighborhood.h:59
@ CS_EXT_NEIGHBORHOOD_NON_ORTHO_MAX
Definition: cs_ext_neighborhood.h:64
@ CS_EXT_NEIGHBORHOOD_COMPLETE
Definition: cs_ext_neighborhood.h:58
@ CS_EXT_NEIGHBORHOOD_CELL_CENTER_OPPOSITE
Definition: cs_ext_neighborhood.h:61
@ CS_EXT_NEIGHBORHOOD_NONE
Definition: cs_ext_neighborhood.h:57
cs_ext_neighborhood_type_t cs_ext_neighborhood_get_type(void)
Get the extended neighborhood type.
Definition: cs_ext_neighborhood.cpp:2013
const char * cs_ext_neighborhood_type_name[]
void cs_ext_neighborhood_set_non_ortho_max(cs_real_t non_ortho_max)
Set the non_orthogonality threshold (in degrees) associated with the CS_EXT_NEIGHBORHOOD_NON_ORTHO_MA...
Definition: cs_ext_neighborhood.cpp:2090
void cs_ext_neighborhood_set_boundary_complete(bool keep)
Set the extended neighborhood type.
Definition: cs_ext_neighborhood.cpp:2060
cs_real_t cs_ext_neighborhood_get_non_ortho_max(void)
Get the non_orthogonality threshold (in degrees) associated with the CS_EXT_NEIGHBORHOOD_NON_ORTHO_MA...
Definition: cs_ext_neighborhood.cpp:2075
void cs_ext_neighborhood_set_type(cs_ext_neighborhood_type_t enh_type)
Set the extended neighborhood type.
Definition: cs_ext_neighborhood.cpp:2027
void cs_ext_neighborhood_define(cs_mesh_t *mesh)
Create the "cell -> cells" connectivity.
Definition: cs_ext_neighborhood.cpp:2266
bool cs_ext_neighborhood_get_boundary_complete(void)
Query whether full extended neighborhood should be kept at boundaries.
Definition: cs_ext_neighborhood.cpp:2045
void cs_ext_neighborhood_reduce(cs_mesh_t *mesh, cs_mesh_quantities_t *mesh_quantities)
Reduce the "cell -> cells" connectivity for the extended neighborhood using a non-orthogonality crite...
Definition: cs_ext_neighborhood.cpp:2109
Definition: mesh.f90:26
Definition: cs_mesh_quantities.h:92
Definition: cs_mesh.h:85