6.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-2020 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 
55 typedef enum {
56 
57  CS_EXT_NEIGHBORHOOD_NONE, /* No extended neighborhood */
58  CS_EXT_NEIGHBORHOOD_COMPLETE, /* Full extended neighborhood */
59  CS_EXT_NEIGHBORHOOD_CELL_CENTER_OPPOSITE, /* Cell centers best aligned
60  opposite to adjacent
61  cell centers */
62  CS_EXT_NEIGHBORHOOD_NON_ORTHO_MAX /* Cells adjacent to faces
63  whose non-orthogonality exceeds
64  a given threshold */
65 
67 
68 /*============================================================================
69  * Global variables
70  *============================================================================*/
71 
72 /* Short names for extended neighborhood types */
73 
74 extern const char *cs_ext_neighborhood_type_name[];
75 
76 /*============================================================================
77  * Public function prototypes
78  *============================================================================*/
79 
80 /*----------------------------------------------------------------------------*/
86 /*----------------------------------------------------------------------------*/
87 
90 
91 /*----------------------------------------------------------------------------*/
97 /*----------------------------------------------------------------------------*/
98 
99 void
101 
102 /*----------------------------------------------------------------------------*/
109 /*----------------------------------------------------------------------------*/
110 
111 cs_real_t
113 
114 /*----------------------------------------------------------------------------*/
121 /*----------------------------------------------------------------------------*/
122 
123 void
125 
126 /*----------------------------------------------------------------------------*/
137 /*----------------------------------------------------------------------------*/
138 
139 void
141  cs_mesh_quantities_t *mesh_quantities);
142 
143 /*----------------------------------------------------------------------------*/
149 /*----------------------------------------------------------------------------*/
150 
151 void
153 
154 /*----------------------------------------------------------------------------*/
155 
157 
158 #endif /* __CS_EXT_NEIGHBOR_H__ */
cs_ext_neighborhood_type_name
const char * cs_ext_neighborhood_type_name[]
cs_ext_neighborhood_get_type
cs_ext_neighborhood_type_t cs_ext_neighborhood_get_type(void)
Get the extended neighborhood type.
Definition: cs_ext_neighborhood.c:1571
CS_EXT_NEIGHBORHOOD_NONE
@ CS_EXT_NEIGHBORHOOD_NONE
Definition: cs_ext_neighborhood.h:57
cs_ext_neighborhood_get_non_ortho_max
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.c:1604
CS_EXT_NEIGHBORHOOD_NON_ORTHO_MAX
@ CS_EXT_NEIGHBORHOOD_NON_ORTHO_MAX
Definition: cs_ext_neighborhood.h:62
END_C_DECLS
#define END_C_DECLS
Definition: cs_defs.h:493
cs_real_t
double cs_real_t
Floating-point value.
Definition: cs_defs.h:304
BEGIN_C_DECLS
#define BEGIN_C_DECLS
Definition: cs_defs.h:492
cs_ext_neighborhood_reduce
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.c:1638
cs_mesh_quantities.h
cs_mesh_quantities_t
Definition: cs_mesh_quantities.h:89
mesh
Definition: mesh.f90:26
CS_EXT_NEIGHBORHOOD_CELL_CENTER_OPPOSITE
@ CS_EXT_NEIGHBORHOOD_CELL_CENTER_OPPOSITE
Definition: cs_ext_neighborhood.h:59
cs_ext_neighborhood_type_t
cs_ext_neighborhood_type_t
Type of extended neighborhood associated with the mesh.
Definition: cs_ext_neighborhood.h:55
cs_mesh.h
cs_ext_neighborhood_define
void cs_ext_neighborhood_define(cs_mesh_t *mesh)
Create the "cell -> cells" connectivity.
Definition: cs_ext_neighborhood.c:1780
cs_ext_neighborhood_set_type
void cs_ext_neighborhood_set_type(cs_ext_neighborhood_type_t enh_type)
Set the extended neighborhood type.
Definition: cs_ext_neighborhood.c:1585
CS_EXT_NEIGHBORHOOD_COMPLETE
@ CS_EXT_NEIGHBORHOOD_COMPLETE
Definition: cs_ext_neighborhood.h:58
cs_mesh_t
Definition: cs_mesh.h:84
cs_base.h
cs_ext_neighborhood_set_non_ortho_max
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.c:1619