16#ifndef IJK_Thermal_Subresolution_included
17#define IJK_Thermal_Subresolution_included
19#include <IJK_Thermal_base.h>
20#include <IJK_Field_vector.h>
22#include <Boundary_Conditions_Thermique.h>
23#include <Domaine_IJK.h>
25#include <IJK_Lata_writer.h>
26#include <OpConvQuickIJKScalar.h>
27#include <OpConvCentre2IJKScalar.h>
28#include <Ouvrir_fichier.h>
29#include <Corrige_flux_FT_base.h>
31#include <Operateur_IJK_elem_diff_base.h>
32#include <OpConvAmontIJK.h>
33#include <OpConvDiscQuickIJKScalar.h>
34#include <OpConvCentre4IJK.h>
35#include <IJK_One_Dimensional_Subproblems.h>
36#include <IJK_Finite_Difference_One_Dimensional_Matrix_Assembler.h>
37#include <IJK_SolveSys_FD_thermal.h>
38#include <MD_Vector_tools.h>
62 const Nom& shell_quantities_thermal_probes,
63 const Nom& overall_bubbles_quantities,
64 const Nom& local_quantities_thermal_probes_time_index_folder)
override;
67 const int& nb_thermal_circles,
68 const int& nb_thermal_lines);
70 const int& nb_thermal_circles,
71 const int& nb_thermal_lines);
73 const int& nb_thermal_circles,
74 const int& nb_thermal_lines);
76 const int& nb_thermal_circles,
77 const int& nb_thermal_lines);
79 ArrOfDouble& linear_coord,
84 const int& nb_thermal_lines,
85 const double& diameter_approx,
94 double& min_dir,
double& max_dir);
96 const int& nb_thermal_circles,
97 const int& index_circle,
98 const int& index_line,
99 const std::vector<std::vector<ArrOfInt>>& is_point_on_proc,
102 const IJK_Field_double& field,
103 const IJK_Field_vector3_double& field_gradient,
104 const IJK_Field_vector3_double& velocity,
106 const int field_type);
108 const int& nb_thermal_circles,
109 const int& index_circle,
110 const int& index_line,
111 const std::vector<std::vector<ArrOfInt>>& is_point_on_proc,
116 const int& nb_thermal_circles,
117 const int& index_circle,
118 const int& index_line,
119 const std::vector<std::vector<ArrOfInt>>& is_point_on_proc,
124 const int& nb_thermal_circles,
125 const int& index_circle,
126 const int& index_line,
127 const std::vector<std::vector<ArrOfInt>>& is_point_on_proc,
132 const int& nb_thermal_circles,
133 const int& index_circle,
134 const int& index_line,
135 const std::vector<std::vector<ArrOfInt>>& is_point_on_proc,
140 const int& nb_thermal_circles,
141 const int& index_circle,
142 const int& index_line,
143 const std::vector<std::vector<ArrOfInt>>& is_point_on_proc,
149 const int& linear_circle_line_index,
150 const int& index_circle,
151 const int& index_line,
152 const double& diameter_approx,
153 std::vector<std::vector<ArrOfInt>>& is_point_on_proc,
155 const ArrOfDouble& linear_coord,
158 const DoubleVect& temperature_line,
159 const DoubleVect& velocity_line,
160 const DoubleVect& convective_term_line,
161 const DoubleVect& diffusive_term_line,
162 const DoubleVect& temperature_incr_line);
165 const double& nb_diam_slice,
166 const Nom& local_quantities_thermal_slices_time_index_folder);
168 int& index_dir_global,
169 int& n_cross_section_1,
170 int& n_cross_section_2,
172 const double& nb_diam,
178 const double& slice_pos,
181 const IJK_Field_double& field,
182 const IJK_Field_vector3_double& field_gradient,
183 const IJK_Field_vector3_double& velocity,
185 const int field_type,
186 const int slice_to_nearest_plane,
187 const int compute_indices = 0);
189 int& index_dir_local,
191 const double& slice_pos,
195 const Nom& local_quantities_thermal_slices_time_index_folder);
197 int& index_dir_local,
199 const double& slice_pos,
203 const Nom& local_quantities_thermal_slices_time_index_folder);
205 int& index_dir_local,
207 const double& slice_pos,
210 DoubleTab& velocity_values,
211 const Nom& local_quantities_thermal_slices_time_index_folder);
213 int& index_dir_local,
215 const double& slice_pos,
219 DoubleTab& velocity_values,
220 const Nom& local_quantities_thermal_slices_time_index_folder);
222 int& index_dir_local,
224 const double& slice_pos,
228 const Nom& local_quantities_thermal_slices_time_index_folder);
230 int& index_dir_local,
232 const double& slice_pos,
236 const Nom& local_quantities_thermal_slices_time_index_folder);
238 const Nom& local_quantities_thermal_slices_time_index_folder,
239 const double& diameter_approx,
240 const double& nb_diam_slice,
241 const int& n_cross_section_1,
242 const int& n_cross_section_2,
245 const DoubleTab& temperature_slice,
246 const DoubleTab& velocity_slice,
247 const DoubleTab& convection_slice,
248 const DoubleTab& diffusion_slice,
249 const DoubleTab& temperature_incr_slice);
412 const IJK_Field_double& temperature_ana,
413 IJK_Field_double& error_temperature_ana,
414 IJK_Field_double& error_temperature_ana_rel);
416 double& total_parameter);
418 double& total_parameter);
442 Matrice& radial_second_order_operator_raw,
443 Matrice& radial_first_order_operator,
444 Matrice& radial_second_order_operator);
450 Matrice& identity_matrix_subproblems);
452 Matrice& identity_matrix_subproblems);
454 Matrice& radial_convection_matrix);
456 Matrice& radial_convection_matrix);
458 Matrice& radial_diffusion_matrix);
460 Matrice& radial_diffusion_matrix);
This class encapsulates all the information related to the eulerian mesh for TrioIJK.
const IJK_Field_vector3_double & get_cell_faces_neighbours_corrected_diffusive() const override
void update_thermal_properties() override
void reajust_probes_length_collisions()
void clip_max_temperature_values() override
bool disable_subresolution_
void prepare_thermal_flux_correction()
double local_dt_fourier_counter_
int subproblem_temperature_extension_
void compute_Nusselt_spherical_diffusion()
Motcles source_terms_type_dict_
Nom generate_expression_temperature_ini(const double &time_scope, const double x, const double y, const double z)
Matrice radial_diffusion_matrix_test_
double compute_spherical_steady_dirichlet_left_right_value(const double &r)
bool use_cell_neighbours_for_fluxes_spherical_correction_
double end_boundary_condition_value_
Matrice thermal_subproblems_matrix_assembly_for_solver_
IJK_Field_vector3_double cell_faces_corrected_convective_
bool readjust_probe_length_from_vertices_
const IJK_Field_vector3_double & get_interfacial_heat_flux_contrib() const override
void complete_field_thermal_wake_slice_ij_convection(const int &slice, int &index_dir_local, const int &dir, const double &slice_pos, FixedVector< IntTab, 2 > &ij_indices, FixedVector< DoubleTab, 3 > &ij_coords, DoubleTab &values, DoubleTab &velocity_values, const Nom &local_quantities_thermal_slices_time_index_folder)
bool probe_variations_priority_
bool correct_neighbours_using_probe_length_
bool copy_fluxes_on_every_procs_
const IJK_Field_vector3_double & get_cell_faces_corrected_diffusive() const override
void set_zero_temperature_increment() override
void compute_second_order_operator(Matrice &radial_second_order_operator, double dr)
double get_modified_time() override
int first_step_thermals_post_
Matrice thermal_subproblems_matrix_assembly_
int distance_cell_faces_from_lrs_
FixedVector< ArrOfDouble, 3 > thermal_flux_out_
void interpolate_temperature_on_downstream_line(const int &dir, const int &nb_thermal_circles, const int &index_circle, const int &index_line, const std::vector< std::vector< ArrOfInt > > &is_point_on_proc, const FixedVector< ArrOfDouble, 3 > &coordinates_line, const std::vector< std::vector< FixedVector< ArrOfDouble, 2 > > > &coordinates_sides, DoubleVect &values)
double compute_rho_cp_u_mean(const IJK_Field_double &vx) override
bool computed_centred_bubble_start_
IJK_Field_double temperature_cell_neighbours_debug_
double nb_diam_thermal_line_length_
bool impose_user_boundary_condition_end_value_
bool disable_interpolation_in_mixed_cells_
void initialise_thermal_line_points(const int &line_dir, ArrOfDouble &linear_coord, FixedVector< ArrOfDouble, 3 > &coordinates_line, double &diameter)
double pre_factor_subproblems_number_
void clip_min_temperature_values() override
void compute_convective_fluxes_face_centre() override
IJK_Field_vector3_double interfacial_heat_flux_contrib_
double heat_flux_spherical_
bool reference_gfm_on_probes_
bool neglect_frame_of_reference_radial_advection_
bool keep_max_flux_correction_
bool keep_temperature_extrapolated_from_LRS_
void initialise_thermal_subproblems_list()
void compute_subresolution_temporal_explicit_implicit_matrices()
DoubleVect radial_coordinates_
bool clip_temperature_values_
bool approximate_temperature_increment_
bool disable_probe_weak_gradient_
void compute_diffusion_increment() override
ArrOfDouble thermal_flux_out_contrib_
void compute_min_max_reachable_fluxes()
void compute_first_order_operator_raw(Matrice &radial_first_order_operator)
void pre_initialise_thermal_subproblems_matrices()
void compute_first_order_operator(Matrice &radial_first_order_operator, double dr)
void store_previous_temperature_indicator_velocities()
Matrice identity_matrix_subproblems_
Motcles boundary_condition_end_dict_
double post_process_thermal_wake_slice_index_dir(int &index_dir_local, int &index_dir_global, int &n_cross_section_1, int &n_cross_section_2, int &dir, const double &nb_diam, int upstream_dir, int gravity_dir, double &diameter)
Matrice radial_diffusion_matrix_
const IJK_Field_vector3_double & get_interfacial_heat_flux_dispatched() const override
Matrice * thermal_subproblems_matrix_assembly_for_solver_ref_
int lire_motcle_non_standard(const Motcle &, Entree &) override
Reads non-simple-type parameters of an Objet_U from an input stream.
double nusselt_spherical_diffusion_
bool probe_variations_enabled_
bool post_process_thermal_lines_
IJK_Field_vector3_double cell_faces_neighbours_corrected_diffusive_
double get_probes_length()
double probes_end_value_coeff_
void compute_temperature_cell_centres_first_correction()
IJK_Field_int neighbours_temperature_to_correct_trimmed_
const IJK_Field_vector3_double & get_cell_faces_corrected_convective() const override
int initialise_sparse_indices_
IJK_Field_vector3_double interfacial_heat_flux_current_
void solve_thermal_subproblems()
bool disable_post_processing_probes_out_files_
bool post_process_all_probes_
void complete_field_thermal_wake_slice_ij_diffusion(const int &slice, int &index_dir_local, const int &dir, const double &slice_pos, FixedVector< IntTab, 2 > &ij_indices, FixedVector< DoubleTab, 3 > &ij_coords, DoubleTab &values, const Nom &local_quantities_thermal_slices_time_index_folder)
void prepare_ij_fluxes_k_layers() override
bool debug_probe_collision_
bool use_reachable_fluxes_
IJK_Field_vector3_int cell_faces_neighbours_corrected_min_max_bool_
void set_field_temperature_per_bubble(const int index_bubble)
int boundary_condition_end_
bool diffusive_flux_correction_
bool disable_fo_flux_correction_
void clean_ijk_intersections() override
double error_temperature_ana_rel_total_
int boundary_condition_interface_
double error_temperature_ana_squared_total_
bool implicit_solver_from_previous_probe_field_
void enforce_periodic_temperature_boundary_value() override
void evaluate_total_liquid_parameter_squared(const IJK_Field_double &field, double &total_parameter)
void compute_second_order_operator_raw(Matrice &radial_second_order_operator)
void compute_temperature_cell_centres(const int first_corr) override
int nb_iter_explicit_local_
IJK_Field_vector3_double neighbours_faces_weighting_colinearity_
IJK_SolveSys_FD_thermal one_dimensional_advection_diffusion_thermal_solver_implicit_
bool store_cell_faces_corrected_
void correct_temperature_for_eulerian_fluxes() override
bool conserve_max_interfacial_fluxes_
void interpolate_convective_term_on_downstream_line(const int &dir, const int &nb_thermal_circles, const int &index_circle, const int &index_line, const std::vector< std::vector< ArrOfInt > > &is_point_on_proc, const FixedVector< ArrOfDouble, 3 > &coordinates_line, const std::vector< std::vector< FixedVector< ArrOfDouble, 2 > > > &coordinates_sides, DoubleVect &values)
void store_temperature_before_extrapolation() override
void complete_convective_flux_frame_of_reference()
bool neighbours_last_faces_colinearity_face_weighting_
void approximate_temperature_increment_material_derivative()
bool single_centred_bubble_
void initialize(const Domaine_IJK &splitting) override
bool compute_radial_displacement_
void complete_field_thermal_wake_slice_ij_values(int &index_dir_local, const int &dir, const double &slice_pos, FixedVector< IntTab, 2 > &ij_indices, FixedVector< DoubleTab, 3 > &ij_coords, const IJK_Field_double &field, const IJK_Field_vector3_double &field_gradient, const IJK_Field_vector3_double &velocity, DoubleTab &values, const int field_type, const int slice_to_nearest_plane, const int compute_indices=0)
bool smooth_temperature_field_
IJK_Field_double probe_collision_debug_field_
void detect_probe_collision()
double modified_time_init_
double interfacial_boundary_condition_value_
bool post_process_thermal_slices_
void update_intersections() override
bool source_terms_correction_
FixedVector< ArrOfInt, 6 > first_indices_sparse_matrix_
void retrieve_temperature_solution()
void find_points_on_proc(std::vector< std::vector< ArrOfInt > > &is_point_on_proc, std::vector< std::vector< FixedVector< ArrOfInt, 3 > > > &ijk_indices, const FixedVector< ArrOfDouble, 3 > &coordinates_line, const std::vector< std::vector< FixedVector< ArrOfDouble, 2 > > > &coordinates_sides, const int &line_dir)
int neighbours_last_faces_weighting_
bool reconstruct_previous_probe_field_
void post_process_thermal_downstream_lines(const Nom &local_quantities_thermal_lines_time_index_folder) override
const IJK_Field_vector3_double & get_neighbours_faces_weighting_colinearity() const override
void initialise_identity_matrices(Matrice &identity_matrix, Matrice &identity_matrix_subproblems)
void compute_convective_diffusive_fluxes_face_centre() override
IJK_Field_double neighbours_temperature_colinearity_weighting_
bool first_time_step_implicit_
void min_max_ldir(const int &dir, const Domaine_IJK &geom, double &min_dir, double &max_dir)
bool enable_resize_probe_collision_
void reajust_probes_length()
int impose_fo_flux_correction_
bool enable_probe_collision_detection_
double single_centred_bubble_radius_ini_
void compute_source_terms_impose_subresolution_boundary_conditions()
Motcles boundary_condition_interface_dict_
double local_dt_cfl_min_delta_xyz_
void correct_operators_for_visu() override
friend class IJK_One_Dimensional_Subproblem
bool advected_frame_of_reference_
IJK_Finite_Difference_One_Dimensional_Matrix_Assembler finite_difference_assembler_
Matrice radial_first_order_operator_
void compare_temperature_fields(const IJK_Field_double &temperature, const IJK_Field_double &temperature_ana, IJK_Field_double &error_temperature_ana, IJK_Field_double &error_temperature_ana_rel)
void post_process_after_temperature_increment() override
const IJK_Field_int & get_cell_neighbours_corrected() const override
bool disable_slice_to_nearest_plane_
bool find_reachable_fluxes_
void set_param(Param ¶m) const override
IJK_Field_vector3_double cell_faces_corrected_diffusive_
IJK_Field_vector3_double cell_faces_neighbours_corrected_convective_frame_of_reference_
void correct_temperature_for_visu() override
void compute_mean_liquid_temperature()
bool copy_temperature_on_every_procs_
IJK_Field_vector3_int cell_faces_neighbours_corrected_all_bool_
void initialise_radial_diffusion_operator(Matrice &radial_second_order_operator, Matrice &radial_diffusion_matrix)
const IJK_Field_double & get_temperature_cell_neighbours_debug() const override
IJK_Field_int zero_liquid_neighbours_
const IJK_Field_vector3_int & get_cell_faces_corrected_bool() const override
IJK_Field_vector3_double cell_faces_neighbours_corrected_convective_
const IJK_Field_vector3_int & get_cell_faces_neighbours_corrected_diag_bool() const override
void post_processed_fields_on_downstream_line(const Nom &local_quantities_thermal_lines_time_index_folder, const int &line_dir, const int &linear_circle_line_index, const int &index_circle, const int &index_line, const double &diameter_approx, std::vector< std::vector< ArrOfInt > > &is_point_on_proc, const std::vector< std::vector< FixedVector< ArrOfInt, 3 > > > &indices_ijk, const ArrOfDouble &linear_coord, const FixedVector< ArrOfDouble, 3 > &coordinates_line, const std::vector< std::vector< FixedVector< ArrOfDouble, 2 > > > &coordinates_sides, const DoubleVect &temperature_line, const DoubleVect &velocity_line, const DoubleVect &convective_term_line, const DoubleVect &diffusive_term_line, const DoubleVect &temperature_incr_line)
int nb_thermal_line_points_
int points_per_thermal_subproblem_
bool disable_distance_cell_faces_from_lrs_
bool override_vapour_mixed_values_
void prepare_temporal_schemes()
void reset_subresolution_distributed_vectors()
bool use_normal_gradient_for_flux_corr_
double find_time_dichotomy_derivative(const double &temperature_derivative, double &temperature_limit_left, double &temperature_limit_right)
void compute_thermal_subproblems() override
IJK_Field_double temperature_cell_neighbours_
IJK_Field_vector3_int cell_faces_corrected_bool_
double delta_T_subcooled_overheated_
void set_subproblems_interfaces_fields(const Domaine_IJK &splitting) override
void initialise_radial_diffusion_operator_sparse(Matrice &radial_second_order_operator, Matrice &radial_diffusion_matrix)
bool compute_normal_derivatives_on_reference_probes_
void post_process_thermal_wake_slices(const Nom &local_quantities_thermal_slices_time_index_folder) override
void interpolate_velocity_on_downstream_line(const int &dir, const int &nb_thermal_circles, const int &index_circle, const int &index_line, const std::vector< std::vector< ArrOfInt > > &is_point_on_proc, const FixedVector< ArrOfDouble, 3 > &coordinates_line, const std::vector< std::vector< FixedVector< ArrOfDouble, 2 > > > &coordinates_sides, DoubleVect &values)
int correct_first_iter_deactivate_cell_neighbours_
DoubleVect thermal_subproblems_temperature_solution_ini_
FixedVector< ArrOfInt, 3 > ijk_indices_flux_out_
bool use_temperature_cell_neighbours_
void compute_temperature_cell_centres_second_correction()
bool fluxes_correction_conservations_
Matrice radial_convection_matrix_
int fluxes_corrections_weighting_
bool remove_append_subproblems_
const IJK_Field_double & get_probe_collision_debug_field() const override
const IJK_Field_vector3_int & get_cell_faces_neighbours_corrected_all_bool() const override
bool disable_spherical_diffusion_start_
int neighbours_corrected_rank_
bool neighbours_colinearity_weighting_
IJK_Field_vector3_double interfacial_heat_flux_dispatched_
Matrice radial_second_order_operator_
IJK_Field_vector3_int cell_faces_neighbours_corrected_diag_bool_
bool find_temperature_cell_neighbours_
void set_field_T_ana() override
double get_time_inflection_derivative(double &temperature_end_min)
void initialise_radial_convection_operator_sparse(Matrice &radial_first_order_operator, Matrice &radial_convection_matrix)
Matrice radial_second_order_operator_raw_
int temperature_ini_type_
void compute_local_substep()
bool disable_first_step_thermals_post_
const IJK_Field_double & get_neighbours_temperature_colinearity_weighting() const override
double local_cfl_time_step_probe_length_
IJK_Field_int neighbours_temperature_to_correct_
bool correct_temperature_cell_neighbours_first_iter_
bool neighbours_last_faces_distance_colinearity_face_weighting_
Matrice thermal_subproblems_matrix_assembly_for_solver_reduced_
void approx_erf_inverse(const double &x, double &res)
void initialise_radial_convection_operator(Matrice &radial_first_order_operator, Matrice &radial_convection_matrix)
int get_first_step_thermals_post() override
double mean_liquid_temperature_
void check_wrong_values_rhs()
bool pre_initialise_thermal_subproblems_list_
int neighbours_weighting_
const IJK_Field_vector3_int & get_cell_faces_neighbours_corrected_min_max_bool() const override
void initialise_thermal_dowstreamlines_tabs(std::vector< std::vector< FixedVector< ArrOfInt, 3 > > > ¶meters, const int &nb_thermal_circles, const int &nb_thermal_lines)
void complete_field_thermal_wake_slice_ij_indices_coords(const int &slice, int &index_dir_local, const int &dir, const double &slice_pos, FixedVector< IntTab, 2 > &ij_indices, FixedVector< DoubleTab, 3 > &ij_coords, DoubleTab &values, const Nom &local_quantities_thermal_slices_time_index_folder)
void interpolate_indicator_on_probes()
Nom compute_quasi_static_spherical_diffusion_expression(const double &time_scope, const int index_bubble, const int index_bubble_real)
bool impose_boundary_condition_interface_from_simulation_
const IJK_Field_vector3_double & get_cell_faces_neighbours_corrected_velocity_temperature() const override
bool disable_probe_weak_gradient_gfm_
int get_disable_post_processing_probes_out_files() const override
const IJK_Field_double & get_debug_lrs_cells() const override
double error_temperature_ana_total_
bool neighbours_distance_weighting_
void interpolate_diffusive_term_on_downstream_line(const int &dir, const int &nb_thermal_circles, const int &index_circle, const int &index_line, const std::vector< std::vector< ArrOfInt > > &is_point_on_proc, const FixedVector< ArrOfDouble, 3 > &coordinates_line, const std::vector< std::vector< FixedVector< ArrOfDouble, 2 > > > &coordinates_sides, DoubleVect &values)
bool first_time_step_explicit_
bool allow_temperature_correction_for_visu_
void compute_radial_first_second_order_operators(Matrice &radial_first_order_operator_raw, Matrice &radial_second_order_operator_raw, Matrice &radial_first_order_operator, Matrice &radial_second_order_operator)
bool keep_first_reachable_fluxes_
int stencil_periodic_boundary_value_
void compute_temperature_init() override
void initialise_identity_matrices_sparse(Matrice &identity_matrix, Matrice &identity_matrix_subproblems)
double compute_spherical_steady_dirichlet_left_right_integral(const double &temperature_end_prev)
DoubleVect thermal_subproblems_temperature_solution_
void calculer_ecart_T_ana() override
void complete_field_thermal_wake_slice_ij_velocity(const int &slice, int &index_dir_local, const int &dir, const double &slice_pos, FixedVector< IntTab, 2 > &ij_indices, FixedVector< DoubleTab, 3 > &ij_coords, DoubleTab &velocity_values, const Nom &local_quantities_thermal_slices_time_index_folder)
void pre_initialise_thermal_subproblems_any_matrices()
Matrice identity_matrix_explicit_implicit_
bool enable_mixed_cells_increment_
bool use_velocity_cartesian_grid_
const IJK_Field_vector3_double & get_cell_faces_neighbours_corrected_convective_frame_of_ref() const override
void clean_thermal_subproblems() override
bool thermal_slices_regions_
void post_process_thermal_wake_slice(const int &slice, const double &nb_diam_slice, const Nom &local_quantities_thermal_slices_time_index_folder)
bool disable_mixed_cells_increment_
const IJK_Field_double & get_temperature_cell_neighbours() const override
double nusselt_spherical_diffusion_liquid_
Matrice radial_first_order_operator_raw_
void interpolate_project_velocities_on_probes()
bool find_cell_neighbours_for_fluxes_spherical_correction_
double local_dt_cfl_counter_
void replace_temperature_cell_centres_neighbours(const int &use_neighbours_temperature_to_correct_trimmed)
bool neighbours_colinearity_distance_weighting_
double coeff_distance_diagonal_
void compute_ghost_cell_numbers_for_subproblems(const Domaine_IJK &splitting, int ghost_init) override
double probes_end_value_start_
bool neighbours_last_faces_distance_weighting_
void correct_temperature_increment_for_interface_leaving_cell() override
double compute_spherical_steady_dirichlet_left_right_derivative_value(const double &r, const double &temperature_prev)
void compute_radial_subresolution_convection_diffusion_operators()
void set_thermal_subresolution_outputs(const Nom &interfacial_quantities_thermal_probes, const Nom &shell_quantities_thermal_probes, const Nom &overall_bubbles_quantities, const Nom &local_quantities_thermal_probes_time_index_folder) override
void compute_diffusive_fluxes_face_centre() override
double local_fourier_time_step_probe_length_
const IJK_Field_int & get_cell_neighbours_corrected_trimmed() const override
bool first_time_step_varying_probes_
double find_time_dichotomy_integral(const double &temperature_integral, double &temperature_end_prev)
IJK_Field_double debug_LRS_cells_
void find_cocentric_line_coordinates(const int &nb_thermal_circles, const int &nb_thermal_lines, const double &diameter_approx, std::vector< std::vector< FixedVector< ArrOfDouble, 2 > > > &coordinates_sides)
void compute_add_subresolution_source_terms()
const IJK_Field_vector3_double & get_cell_faces_neighbours_corrected_convective() const override
bool use_corrected_velocity_convection_
void compute_overall_probes_parameters()
void recompute_temperature_init() override
bool convective_flux_correction_
void evaluate_total_liquid_absolute_parameter(const IJK_Field_double &field, double &total_parameter)
bool first_time_step_temporal_
bool enforce_periodic_boundary_value_
bool neighbours_last_faces_colinearity_weighting_
void correct_any_temperature_fields_for_eulerian_fluxes(IJK_Field_double &temperature)
IJK_Field_vector3_double cell_faces_neighbours_corrected_velocity_temperature_
void complete_field_thermal_wake_slice_ij_temperature_incr(const int &slice, int &index_dir_local, const int &dir, const double &slice_pos, FixedVector< IntTab, 2 > &ij_indices, FixedVector< DoubleTab, 3 > &ij_coords, DoubleTab &values, const Nom &local_quantities_thermal_slices_time_index_folder)
int global_probes_characteristics_
void convert_into_sparse_matrix()
void clean_add_thermal_subproblems()
void complete_thermal_fluxes_face_centre(const int &fluxes_correction_conservations)
void initialise_thermal_subproblems()
void correct_any_temperature_field_for_visu(IJK_Field_double &temperature)
void clear_sort_problems_colliding_bubbles()
int compute_tangential_variables_
IJK_One_Dimensional_Subproblems thermal_local_subproblems_
FixedVector< ArrOfInt, 4 > ijk_indices_flux_contrib_
bool local_diffusion_fourier_priority_
double convection_diffusion_time_scale_factor_
void interpolate_fields_on_downstream_line(const int &dir, const int &nb_thermal_circles, const int &index_circle, const int &index_line, const std::vector< std::vector< ArrOfInt > > &is_point_on_proc, const FixedVector< ArrOfDouble, 3 > &coordinates_line, const std::vector< std::vector< FixedVector< ArrOfDouble, 2 > > > &coordinates_sides, const IJK_Field_double &field, const IJK_Field_vector3_double &field_gradient, const IJK_Field_vector3_double &velocity, DoubleVect &values, const int field_type)
bool neighbours_last_faces_distance_colinearity_weighting_
void find_thermal_line_points_in_procs(std::vector< std::vector< ArrOfInt > > ¶meters)
const IJK_Field_vector3_double & get_interfacial_heat_flux_current() const override
void complete_field_thermal_wake_slice_ij_temperature(const int &slice, int &index_dir_local, const int &dir, const double &slice_pos, FixedVector< IntTab, 2 > &ij_indices, FixedVector< DoubleTab, 3 > &ij_coords, DoubleTab &values, const Nom &local_quantities_thermal_slices_time_index_folder)
DoubleVect thermal_subproblems_rhs_assembly_
friend class IJK_One_Dimensional_Subproblems
void interpolate_temperature_increment_on_downstream_line(const int &dir, const int &nb_thermal_circles, const int &index_circle, const int &index_line, const std::vector< std::vector< ArrOfInt > > &is_point_on_proc, const FixedVector< ArrOfDouble, 3 > &coordinates_line, const std::vector< std::vector< FixedVector< ArrOfDouble, 2 > > > &coordinates_sides, DoubleVect &values)
int nb_thermal_concentric_circles_
IJK_SolveSys_FD_thermal one_dimensional_advection_diffusion_thermal_solver_
void compare_fluxes_thermal_subproblems() override
void post_processed_field_thermal_wake_slice_ij(const int &slice, const Nom &local_quantities_thermal_slices_time_index_folder, const double &diameter_approx, const double &nb_diam_slice, const int &n_cross_section_1, const int &n_cross_section_2, const FixedVector< IntTab, 2 > ij_indices, const FixedVector< DoubleTab, 3 > &ij_coords, const DoubleTab &temperature_slice, const DoubleTab &velocity_slice, const DoubleTab &convection_slice, const DoubleTab &diffusion_slice, const DoubleTab &temperature_incr_slice)
IJK_Field_double dummy_double_field_
bool store_flux_operators_for_energy_balance_
IJK_Field_int dummy_int_field_
IJK_Field_vector3_int dummy_int_vect_
virtual double compute_rho_cp_u_mean(const IJK_Field_double &vx)
IJK_Field_vector3_double dummy_double_vect_
: This class is an OWN_PTR but the pointed object is shared among multiple
Matrice class - Generic class in the matrix hierarchy.
A character string (Nom) in uppercase.
An array of Motcle objects.
class Nom: a character string for naming TRUST objects.
Helper class to factorize the readOn method of Objet_U classes.