16#ifndef IJK_Bubble_tools_included
17#define IJK_Bubble_tools_included
20#include <IJK_Field_vector.h>
21#include <IJK_Interfaces.h>
22#include <Maillage_FT_IJK.h>
23#include <IJK_subres_constants.h>
28std::vector<int> arg_sort_array(
const ArrOfDouble& array_to_sort);
30std::vector<int> arg_sort_array_phi(
const ArrOfDouble& angle_incr,
const ArrOfDouble& first_angle,
const ArrOfDouble& array_to_sort);
32void compute_bounding_box_fill_compo(
const IJK_Interfaces& interfaces,
33 DoubleTab& bounding_box,
34 DoubleTab& min_max_larger_box,
35 IJK_Field_double& eulerian_compo_connex,
36 IJK_Field_double& eulerian_compo_connex_ghost,
37 DoubleTab& bubbles_barycentre);
39void compute_interfacial_compo_fill_compo(
const IJK_Interfaces& interfaces, IJK_Field_double& eulerian_compo_connex);
41void compute_rising_velocity_overall(
const IJK_Interfaces& interfaces,
42 const DoubleTab& rising_vectors,
43 const ArrOfDouble& rising_velocities,
44 const ArrOfDouble& bubbles_volume,
46 const DoubleTab& bubbles_velocities_from_interface,
47 const int& use_bubbles_velocities_from_interface,
48 const DoubleTab& bubbles_velocities_from_barycentres,
49 const int& use_bubbles_velocities_from_barycentres);
51void compute_rising_velocity(
const IJK_Field_vector3_double& velocity,
53 const IJK_Field_int& eulerian_compo_connex_ns,
54 const int& gravity_dir,
55 ArrOfDouble& rising_velocities,
56 DoubleTab& rising_vectors,
58 const DoubleTab& bubbles_velocities_from_interface,
59 const int& use_bubbles_velocities_from_interface,
60 const DoubleTab& bubbles_velocities_from_barycentres,
61 const int& use_bubbles_velocities_from_barycentres);
63void fill_rising_velocity_double(
const IJK_Field_double * eulerian_compo_connex_ns,
const ArrOfDouble& rising_velocities,
64 IJK_Field_double& eulerian_rising_velocity);
66void fill_rising_velocity_int(
const IJK_Field_int& eulerian_compo_connex_ns,
67 const ArrOfDouble& rising_velocities, IJK_Field_double& eulerian_rising_velocity);