1 #ifndef __CS_JOIN_POST_H__
2 #define __CS_JOIN_POST_H__
3 
4 /*============================================================================
5  * Subroutines to manage post-treatment for joining operation
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  * Standard C library headers
32  *----------------------------------------------------------------------------*/
33 
34 /*----------------------------------------------------------------------------
35  * Local headers
36  *----------------------------------------------------------------------------*/
37 
38 #include "fvm_nodal.h"
39 #include "fvm_writer.h"
40 
41 #include "cs_join_mesh.h"
42 #include "cs_join_util.h"
43 #include "cs_mesh.h"
44 
45 /*----------------------------------------------------------------------------*/
46 
47 BEGIN_C_DECLS
48 
49 /*============================================================================
50  * Macro and type definitions
51  *============================================================================*/
52 
53 /*============================================================================
54  * Public function prototypes
55  *============================================================================*/
56 
57 /*----------------------------------------------------------------------------
58  * Create and define a writer to make post-treatment for the joining operation
59  *---------------------------------------------------------------------------*/
60 
61 void
62 cs_join_post_init(void);
63 
64 /*----------------------------------------------------------------------------
65  * Post-treatment of a cs_join_mesh_t structure.
66  *
67  * parameters:
68  *  mesh_name <-- name of the mesh for the post-processing
69  *  mesh      <-- pointer to a cs_join_mesh_t structure to post
70  *---------------------------------------------------------------------------*/
71 
72 void
73 cs_join_post_mesh(const char            *mesh_name,
74                   const cs_join_mesh_t  *join_mesh);
75 
76 /*----------------------------------------------------------------------------
77  * Post-process a subset of faces of a cs_join_mesh_t structure.
78  *
79  * parameters:
80  *   mesh_name        <-- name of the sub-set mesh
81  *   mesh             <-- pointer to the parent cs_join_mesh_t structure
82  *   n_selected_faces <-- number of selected faces (size of the sub-set)
83  *   selected_faces   <-- list of local number in parent mesh
84  *---------------------------------------------------------------------------*/
85 
86 void
87 cs_join_post_faces_subset(const char            *mesh_name,
88                           const cs_join_mesh_t  *parent_mesh,
89                           cs_lnum_t              n_select_faces,
90                           const cs_lnum_t        selected_faces[]);
91 
92 /*----------------------------------------------------------------------------
93  * Post-process mesh after the update following the fusion operation.
94  *
95  * parameters:
96  *  join_param    <--  set of parameters for the joining operation
97  *  join_select   <--  list of all implied entities in the joining operation
98  *---------------------------------------------------------------------------*/
99 
100 void
101 cs_join_post_after_merge(cs_join_param_t          join_param,
102                          const cs_join_select_t  *join_select);
103 
104 
105 /*----------------------------------------------------------------------------
106  * Post-process mesh after the update following the split operation.
107  *
108  * parameters:
109  *  n_old_i_faces   <--  initial number of interior faces
110  *  n_old_b_faces   <--  initial number of border faces
111  *  n_g_new_b_faces <--  global number of new border faces
112  *  n_select_faces  <--  number of selected faces
113  *  mesh            <--  pointer to a cs_mesh_t structure
114  *  join_param      <--  set of parameters for the joining operation
115  *---------------------------------------------------------------------------*/
116 
117 void
118 cs_join_post_after_split(cs_lnum_t         n_old_i_faces,
119                          cs_lnum_t         n_old_b_faces,
120                          cs_gnum_t         n_g_new_b_faces,
121                          cs_lnum_t         n_select_faces,
122                          const cs_mesh_t  *mesh,
123                          cs_join_param_t   join_param);
124 
125 /*----------------------------------------------------------------------------
126  * Post-process mesh after the update following the split operation.
127  *
128  * parameters:
129  *   n_i_clean_faces <-- number of interior faces cleaned
130  *   i_clean_faces   <-> list of interior face numbers (ordered on exit)
131  *   n_b_clean_faces <-- number of border faces cleaned
132  *   b_clean_faces   <-> list of border face numbers (ordered on exit)
133  *   param           <-- set of parameters for the joining operation
134  *---------------------------------------------------------------------------*/
135 
136 void
137 cs_join_post_cleaned_faces(cs_lnum_t        n_i_clean_faces,
138                            cs_lnum_t        i_clean_faces[],
139                            cs_lnum_t        n_b_clean_faces,
140                            cs_lnum_t        b_clean_faces[],
141                            cs_join_param_t  param);
142 
143 /*----------------------------------------------------------------------------
144  * Post and dump a cs_join_mesh_t according to the verbosity level.
145  *
146  * parameters:
147  *   basename <--  generic name for the mesh to post
148  *   mesh     <--  fvm_join_mesh_t structure to post
149  *   param    <--  fvm_join_param_t structure
150  *---------------------------------------------------------------------------*/
151 
152 void
153 cs_join_post_dump_mesh(const char            *basename,
154                        const cs_join_mesh_t  *mesh,
155                        cs_join_param_t        param);
156 
157 /*----------------------------------------------------------------------------*/
158 
159 END_C_DECLS
160 
161 #endif /* __CS_JOIN_POST_H__ */
162