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
Lecture des parametres de type non simple d'un objet_U a partir d'un flot d'entree.
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_
: Cette classe est un OWN_PTR mais l'objet pointe est partage entre plusieurs
Classe Matrice Classe generique de la hierarchie des matrices.
Une chaine de caractere (Nom) en majuscules.
Un tableau d'objets de la classe Motcle.
class Nom Une chaine de caractere pour nommer les objets de TRUST
Helper class to factorize the readOn method of Objet_U classes.