1 #ifndef __CS_LAGR_FRAGMENTATION_H__
2 #define __CS_LAGR_FRAGMENTATION_H__
3 
4 /*============================================================================
5  * Fragmentation modeling.
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 #include "cs_defs.h"
31 
32 /*----------------------------------------------------------------------------
33  * Standard C library headers
34  *----------------------------------------------------------------------------*/
35 
36 /*----------------------------------------------------------------------------
37  *  Local headers
38  *----------------------------------------------------------------------------*/
39 
40 /*----------------------------------------------------------------------------*/
41 
42 BEGIN_C_DECLS
43 
44 /*============================================================================
45  * Public function prototypes
46  *============================================================================*/
47 
48 /*----------------------------------------------------------------------------*/
49 /*!
50  * \brief Particle fragmentation algorithm.
51  *
52  * Parcels represent physical particles with similar properties (size).
53  * The number of physical particles in a parcel is represented by the
54  * statistical weight.
55  *
56  * For each parcel, the number of fragmentation events is generated with
57  * a Poisson distribution that depends on the fragmentation kernel.
58  *
59  * Working hypotheses:
60  *  1) Discrete diameters
61  *     - Minimal particle size , called a monomere (unbreakable particle)
62  *  2) Fragmentation is binary
63  *     - Equally sized fragments (N0/2, or (N0+-1)/2)
64  *  3) Fragmentation is treated after agglomeration
65  *
66  * Warning:  particle indices are not necessarily contiguous
67  *           (due to agglomeration occuring before).
68  *
69  * Two contiguous groups: particles present before agglomeration
70  *                        newly created particles (due to agglomeration)
71  *
72  * \param[in]  dt                     time step
73  * \param[in]  minimum_particle_diam  minumum diameter (monomere diameter)
74  * \param[in]  main_start             index of the first particle in cell
75  *                                    present before the agglomeration
76  * \param[in]  main_end               index after the last particle in cell,
77  *                                    present before the agglomeration
78  * \param[in]  agglo_start            index of the first particle in cell,
79  *                                    created by the agglomeration
80  * \param[in]  agglo_end              index after the last particle in cell,
81  *                                    created by the agglomeration
82  *
83  * \returns  modified list of particles containing newly created parcels
84  *           at the end
85  */
86 /*----------------------------------------------------------------------------*/
87 
88 cs_lnum_t
89 cs_lagr_fragmentation(cs_real_t  dt,
90                       cs_real_t  minimum_particle_diam,
91                       cs_lnum_t  main_start,
92                       cs_lnum_t  main_end,
93                       cs_lnum_t  agglo_start,
94                       cs_lnum_t  agglo_end);
95 
96 /*----------------------------------------------------------------------------*/
97 
98 END_C_DECLS
99 
100 #endif /* __CS_LAGR_FRAGMENTATION_H__*/
101