1 #ifndef __CS_MESH_COARSEN_H__
2 #define __CS_MESH_COARSEN_H__
3 
4 /*============================================================================
5  * Mesh coarsening.
6  *============================================================================*/
7 
8 /*
9   This file is part of Code_Saturne, a general-purpose CFD tool.
10 
11   Copyright (C) 1998-2021 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 #include "cs_base.h"
35 #include "cs_mesh.h"
36 
37 /*----------------------------------------------------------------------------*/
38 
39 BEGIN_C_DECLS
40 
41 /*============================================================================
42  * Macro definitions
43  *============================================================================*/
44 
45 /*============================================================================
46  * Type definitions
47  *============================================================================*/
48 
49 /*=============================================================================
50  * Public function prototypes
51  *============================================================================*/
52 
53 /*----------------------------------------------------------------------------*/
54 /*!
55  * \brief Coarsen flagged mesh cells.
56  *
57  * \param[in, out]  m           mesh
58  * \param[in]       cell_flag   coarsening flag for each cell
59  *                              (0: do not coarsen; 1: coarsen)
60  */
61 /*----------------------------------------------------------------------------*/
62 
63 void
64 cs_mesh_coarsen_simple(cs_mesh_t  *m,
65                        const int   cell_flag[]);
66 
67 /*----------------------------------------------------------------------------*/
68 /*!
69  * \brief Coarsen selected mesh cells.
70  *
71  * \param[in, out]  m           mesh
72  * \param[in]       n_cells     number of selected cells
73  * \param[in]       cells       list of selected cells (0 to n-1)
74  *                              or NULL if no indirection is needed
75  */
76 /*----------------------------------------------------------------------------*/
77 
78 void
79 cs_mesh_coarsen_simple_selected(cs_mesh_t        *m,
80                                 cs_lnum_t         n_cells,
81                                 const cs_lnum_t   cells[]);
82 
83 /*----------------------------------------------------------------------------*/
84 
85 END_C_DECLS
86 
87 #endif /* __CS_MESH_COARSEN_H__ */
88