9.1
general documentation
cs_porous_model.h
Go to the documentation of this file.
1#ifndef __CS_POROUS_MODEL_H__
2#define __CS_POROUS_MODEL_H__
3
4/*============================================================================
5 * Porous model management
6 *============================================================================*/
7
8/*
9 This file is part of code_saturne, a general-purpose CFD tool.
10
11 Copyright (C) 1998-2025 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 "base/cs_base.h"
35#include "mesh/cs_mesh.h"
37
38#include "fvm/fvm_nodal.h"
39
40/*----------------------------------------------------------------------------*/
41
43
44/*=============================================================================
45 * Macro definitions
46 *============================================================================*/
47
48/*============================================================================
49 * Type definition
50 *============================================================================*/
51
52typedef struct {
53 fvm_nodal_t *ib_mesh;
57
58/*============================================================================
59 * Global variables
60 *============================================================================*/
61
63
64/* Choice of the porous model */
65extern int cs_glob_porous_model;
66
67/* Specific mesh quantities associated with porous model */
69
70/*=============================================================================
71 * Public function prototypes
72 *============================================================================*/
73
74/*----------------------------------------------------------------------------*/
78/*----------------------------------------------------------------------------*/
79
80void
82
83/*----------------------------------------------------------------------------
84 * Compute fluid volumes and fluid surfaces in addition to cell volumes
85 * and surfaces.
86 *
87 * parameters:
88 * porous_model <-- porous model option (> 0 for porosity)
89 *----------------------------------------------------------------------------*/
90
91void
92cs_porous_model_set_model(int porous_model);
93
94/*----------------------------------------------------------------------------*/
98/*----------------------------------------------------------------------------*/
99
100void
102
103/*----------------------------------------------------------------------------*/
109/*----------------------------------------------------------------------------*/
110
111void
113
114/*----------------------------------------------------------------------------*/
118/*----------------------------------------------------------------------------*/
119
120void
122
123/*----------------------------------------------------------------------------*/
127/*----------------------------------------------------------------------------*/
128
129void
131
132/*----------------------------------------------------------------------------*/
138/*----------------------------------------------------------------------------*/
139
140void
142
143/*----------------------------------------------------------------------------*/
144/*
145 * \brief Preprocess the fluid surfaces.
146 */
147/*----------------------------------------------------------------------------*/
148
149void
151
152/*----------------------------------------------------------------------------*/
153/*
154 * \brief Penalize porosity and fluid surfaces.
155 */
156/*----------------------------------------------------------------------------*/
157
158void
160
161/*----------------------------------------------------------------------------*/
162/*
163 * \brief Convert cell array to boundary array
164 */
165/*----------------------------------------------------------------------------*/
166
167void
169 const cs_lnum_t ibcell_cells[]);
170
171/*----------------------------------------------------------------------------*/
175/*----------------------------------------------------------------------------*/
176
177void
179
180/*----------------------------------------------------------------------------*/
197/*----------------------------------------------------------------------------*/
198
199void
201 const cs_lnum_t n_ib_cells_filt,
202 const cs_lnum_t ib_cells_filt[],
203 const cs_lnum_t n_glob_vtx,
204 const cs_lnum_t ibcell_cells[],
205 const cs_lnum_t vtx_ids[][2],
206 const cs_lnum_t w_vtx_idx[],
207 const cs_lnum_t face_vertex_idx[],
208 const cs_real_t w_vtx[][3]);
209
210/*----------------------------------------------------------------------------*/
211
213
214#endif /* __CS_POROUS_MODEL_H__ */
#define BEGIN_C_DECLS
Definition: cs_defs.h:554
double cs_real_t
Floating-point value.
Definition: cs_defs.h:357
#define END_C_DECLS
Definition: cs_defs.h:555
int cs_lnum_t
local mesh entity id
Definition: cs_defs.h:350
void cs_porous_model_set_model(int porous_model)
Definition: cs_porous_model.cpp:352
cs_mesh_quantities_t * cs_glob_mesh_quantities_f
void cs_porous_model_mesh_quantities_update(void)
Compute solid quantities.
Definition: cs_porous_model.cpp:462
void cs_porous_model_fluid_surfaces_preprocessing(void)
Preprocess the fluid surfaces.
Definition: cs_porous_model.cpp:657
void cs_porous_map_mesh_quantites_f_and_compute(void)
Map fluid mesh quantities.
Definition: cs_porous_model.cpp:291
void cs_porous_model_set_has_disable_flag(int flag)
Set (unset) has_disable_flag.
Definition: cs_porous_model.cpp:417
int cs_glob_porous_model
void cs_porous_model_clip(void)
Definition: cs_porous_model.cpp:581
void cs_porous_model_init_disable_flag(void)
Initialize disable_flag.
Definition: cs_porous_model.cpp:364
void cs_porous_model_init_fluid_quantities(void)
Init fluid quantities.
Definition: cs_porous_model.cpp:448
void cs_porous_model_convert_cell_to_boundary(const cs_lnum_t n_ib_cells, const cs_lnum_t ibcell_cells[])
Convert cell array to boundary array.
Definition: cs_porous_model.cpp:761
cs_porous_model_extra_faces * cs_glob_porous_model_extra_faces
void cs_porous_model_post_immmersed_plane(const cs_lnum_t n_ib_cells, const cs_lnum_t n_ib_cells_filt, const cs_lnum_t ib_cells_filt[], const cs_lnum_t n_glob_vtx, const cs_lnum_t ibcell_cells[], const cs_lnum_t vtx_ids[][2], const cs_lnum_t w_vtx_idx[], const cs_lnum_t face_vertex_idx[], const cs_real_t w_vtx[][3])
Post-processes the immersed boundary (ib) planes for display on paraview.
Definition: cs_porous_model.cpp:960
void cs_porous_model_postprocess_meshes(void)
Initialize porous model arrays.
Definition: cs_porous_model.cpp:921
void cs_porous_model_auto_face_porosity(void)
Automatic computation of the face porosity and factors.
Definition: cs_porous_model.cpp:487
Definition: cs_mesh_quantities.h:92
Definition: cs_porous_model.h:52
fvm_nodal_t * ib_mesh
Definition: cs_porous_model.h:53
int mesh_id
Definition: cs_porous_model.h:54
bool activate_post
Definition: cs_porous_model.h:55