16#ifndef IJK_One_Dimensional_Subproblem_included
17#define IJK_One_Dimensional_Subproblem_included
21#include <IJK_Interfaces.h>
22#include <Linear_algebra_tools.h>
23#include <IJK_Field_vector.h>
24#include <TRUSTArrays.h>
29#include <IJK_Finite_Difference_One_Dimensional_Matrix_Assembler.h>
30#include <IJK_subres_constants.h>
32#define INVALID_TEMPERATURE 1e10
33#define INVALID_FIELD 1e10
34#define INVALID_VELOCITY 1e-12
35#define INVALID_INTERP 1.e20
36#define INVALID_INTERP_TEST 1.e19
37#define INVALID_VELOCITY_CFL 1e-20
38#define INVALID_SOURCE_TERM 1e-20
39#define NEIGHBOURS_FIRST_DIR {-1., -1., 1., 1.}
40#define NEIGHBOURS_SECOND_DIR {-1., 1., -1., 1.}
41#define NEIGHBOURS_SIGN {1, 0, 1, 0, 1, 0}
42#define FACES_DIR {0, 0, 1, 1, 2, 2}
43#define FLUXES_OUT {-1, 1, -1, 1, -1, 1}
44#define FLUX_SIGN_DIFF {-1, -1, -1, -1, -1, -1}
45#define FLUX_SIGN_CONV {1, 1, 1, 1, 1, 1}
46#define INVALID_INDEX -100
47#define MAX_FLUX_TEST 1.e16
68 int sub_problem_index,
69 double global_time_step,
74 double interfacial_area,
75 ArrOfDouble facet_barycentre,
76 ArrOfDouble normal_vector,
77 double bubble_rising_velocity,
78 ArrOfDouble bubble_rising_vector,
79 ArrOfDouble bubble_barycentre,
80 const double& indicator,
82 const IJK_Field_vector3_double& velocity,
83 const IJK_Field_vector3_double& velocity_ft,
84 const IJK_Field_double& pressure);
98 const double& dy_contrib,
99 const double& dz_contrib);
102 const double& dy_contrib,
103 const double& dz_contrib);
105 const double& dy_contrib,
106 const double& dz_contrib,
108 double compute_colinearity(
const double& dx_contrib,
const double& dy_contrib,
const double& dz_contrib);
110 const double& dy_contrib,
111 const double& dz_contrib,
114 const double& dy_contrib,
115 const double& dz_contrib);
126 double& distance_vertex_centre,
127 double& tangential_distance_vertex_centre,
128 Vecteur3& tangential_distance_vector_vertex_centre);
133 DoubleVect * thermal_subproblems_temperature_solution_ini,
134 int& boundary_condition_interface,
135 const double& interfacial_boundary_condition_value,
136 const int& impose_boundary_condition_interface_from_simulation,
137 int& boundary_condition_end,
138 const double& end_boundary_condition_value,
139 const int& impose_user_boundary_condition_end_value);
141 const double& interfacial_boundary_condition_value,
142 const int& impose_boundary_condition_interface_from_simulation,
143 const int& boundary_condition_end,
144 const double& end_boundary_condition_value,
145 const int& impose_user_boundary_condition_end_value);
150 void add_source_terms(
const int& boundary_condition_interface,
const int& boundary_condition_end);
177 const DoubleVect& field,
178 const int temp_bool)
const;
180 const DoubleVect& field,
181 const DoubleVect& field_weak_gradient,
182 const IJK_Field_double& eulerian_field,
184 const int weak_gradient_variable,
185 const int interp_eulerian)
const;
191 const int& index_i=INVALID_INDEX,
192 const int& index_j=INVALID_INDEX,
193 const int& index_k=INVALID_INDEX,
194 const int& temperature=0);
198 const DoubleVect& field,
199 const DoubleVect& field_weak_gradient,
200 const IJK_Field_double& eulerian_field,
202 const int weak_gradient_variable,
208 const DoubleVect& field,
209 const DoubleVect& field_weak_gradient,
210 const IJK_Field_double& eulerian_field,
215 const DoubleVect& field,
216 const DoubleVect& field_weak_gradient,
217 const IJK_Field_double& eulerian_field,
218 const int weak_gradient_variable,
219 const int temp_bool);
226 const int& dir,
const double& dist,
228 const double& surface,
229 const DoubleVect& field,
230 const DoubleVect& field_weak_gradient,
231 const IJK_Field_double& eulerian_field,
233 const int weak_gradient_variable,
234 const double dl1_parent,
235 const double dl2_parent,
237 DoubleVect& discrete_values,
238 int& value_counter)
const;
241 const int& index_i=-100,
242 const int& index_j=-100,
243 const int& index_k=-100)
const;
249 const int& index_k)
const;
253 const double& first_dir,
const double& second_dir,
254 double& dl1,
double& dl2,
Vecteur3& point_coords)
const;
260 const Nom& local_quantities_thermal_probes_time_index_folder);
264 std::vector<std::string> key_results_int,
265 std::vector<std::string> key_results_double,
266 std::map<std::string, ArrOfInt>& results_probes_int,
267 std::map<std::string, ArrOfDouble>& results_probes_double);
270 std::vector<std::string> key_results_int,
271 std::vector<std::string> key_results_double,
272 std::map<std::string, ArrOfInt>& results_probes_int,
273 std::map<std::string, ArrOfDouble>& results_probes_double,
283 ArrOfDouble& thermal_flux_out,
284 IJK_Field_vector3_double& interfacial_heat_flux_current);
290 IJK_Field_vector3_double& interfacial_heat_flux_current);
297 const int inv_sign=0);
581 const int& n_iter_distance,
582 const double& delta_T_subcooled_overheated,
583 const int& pre_initialise_thermal_subproblems_list,
584 const int& use_sparse_matrix,
585 const int& compute_normal_derivative_on_reference_probes,
586 const int& latastep_reprise);
589 const int& distance_cell_faces_from_lrs,
590 const int& interp_eulerian,
591 const int& use_corrected_velocity_convection,
592 const int& use_velocity_cartesian_grid,
593 const int& compute_radial_displacement,
594 const int& fluxes_correction_conservations,
595 const int& conserve_max_interfacial_fluxes,
596 const int& fluxes_corrections_weighting,
597 const int& use_normal_gradient_for_flux_corr);
601 const int& advected_frame_of_reference,
602 const int& neglect_frame_of_reference_radial_advection,
603 const int& compute_tangential_variables);
605 Matrice& thermal_subproblems_matrix_assembly,
606 DoubleVect& thermal_subproblems_rhs_assembly,
607 DoubleVect& thermal_subproblems_temperature_solution,
608 DoubleVect& thermal_subproblems_temperature_solution_ini);
613 const int& enable_resize_probe_collision,
614 const int& debug_probe_collision);
616 bool& first_time_step_temporal,
617 const int& first_time_step_explicit,
618 const double& local_fourier,
619 const double& local_cfl,
620 const double& min_delta_xyz,
623 const int& first_time_step_varying_probes,
624 const int& probe_variations_priority,
625 const int& disable_interpolation_in_mixed_cells);
648 const IJK_Field_double * eulerian_distance,
649 const IJK_Field_double * eulerian_curvature,
650 const IJK_Field_double * eulerian_interfacial_area,
651 const IJK_Field_vector3_double * eulerian_normal_vect,
652 const IJK_Field_vector3_double * eulerian_facets_barycentre,
653 const IJK_Field_double& temperature,
654 const IJK_Field_double& temperature_ft,
655 const IJK_Field_double& temperature_before_extrapolation,
656 const IJK_Field_vector3_double& velocity,
657 const IJK_Field_vector3_double& velocity_ft,
658 const IJK_Field_double& pressure,
659 const IJK_Field_vector3_double& grad_T_elem,
660 const IJK_Field_vector3_double& grad_T_elem_smooth,
661 const IJK_Field_vector3_double& hess_diag_T_elem,
662 const IJK_Field_vector3_double& hess_cross_T_elem,
663 const IJK_Field_double& eulerian_grad_T_interface_ns,
664 IJK_Field_double& probe_collision_debug_field,
665 IJK_Field_int& zero_liquid_neighbours,
666 const int& smooth_grad_T_elem);
668 const int& correct_neighbours_rank,
669 const int& neighbours_corrected_rank,
670 const int& neighbours_colinearity_weighting,
671 const int& neighbours_distance_weighting,
672 const int& neighbours_colinearity_distance_weighting,
673 const int& neighbours_last_faces_colinearity_weighting,
674 const int& neighbours_last_faces_colinearity_face_weighting,
675 const int& neighbours_last_faces_distance_weighting,
676 const int& neighbours_last_faces_distance_colinearity_weighting,
677 const int& neighbours_last_faces_distance_colinearity_face_weighting,
678 const int& compute_reachable_fluxes,
679 const int& find_cell_neighbours_for_fluxes_spherical_correction);
681 const double& cp_liquid,
683 const double& lambda,
684 const double& prandtl_number,
685 const double& coeff_distance_diagonal,
686 const double& cell_diagonal,
687 const double& dr_base,
688 const DoubleVect& radial_coordinates);
690 const ArrOfDouble& radius_from_surfaces_per_bubble,
691 const ArrOfDouble& radius_from_volumes_per_bubble,
692 const double& delta_temperature,
693 const double& mean_liquid_temperature,
694 const ArrOfDouble * bubbles_volume,
695 const DoubleTab * rising_vectors);
697 const int& implicit_solver_from_previous_probe_field,
698 const std::map<
int, std::map<
int, std::map<int, int>>>& subproblem_to_ijk_indices_previous,
699 const std::vector<DoubleVect>& temperature_probe_previous,
700 const std::vector<double>& indicator_probes_previous,
701 const std::vector<Vecteur3>& velocities_probes_previous,
702 const std::vector<Vecteur3>& normal_vector_compo_probes_previous);
704 const Matrice& radial_second_order_operator_raw,
705 const Matrice& radial_first_order_operator,
706 const Matrice& radial_second_order_operator,
707 const Matrice& identity_matrix_explicit_implicit,
708 Matrice& identity_matrix_subproblems,
709 Matrice& radial_diffusion_matrix,
710 Matrice& radial_convection_matrix);
735 void correct_velocity(
const DoubleVect& velocity, DoubleVect& velocity_corrected);
741 DoubleVect& projection);
747 const int& previous_rank,
748 const double& best_indicator_prev,
749 const double& colinearity,
750 const double& velocity_eval,
751 DoubleVect& temperature_previous,
752 DoubleVect& temperature_previous_options,
753 double& averaging_weight);
754 int is_in_map_index_ijk(
const std::map<
int, std::map<
int, std::map<int, int>>>& subproblem_to_ijk_indices,
769 const Vecteur3& first_tangential_vector_compo,
770 const Vecteur3& second_tangential_vector_compo,
771 const DoubleVect& radial_velocity_frame,
772 const DoubleVect& first_tangential_velocity_frame,
773 const DoubleVect& second_tangential_velocity_frame,
774 const DoubleVect& temperature_time_increment,
775 DoubleVect& convective_term,
776 DoubleVect& material_derivative);
779 void find_interval(
const double& dist,
int& left_interval,
int& right_interval)
const;
void compute_projection_matrix_cartesian_to_local_spherical()
void compute_temporal_explicit_implicit_matrices()
double sum_convective_flux_op_leaving_lrs_
int first_time_step_explicit_
double compute_temperature_integral_subproblem(const double &distance)
void project_cartesian_onto_basis_vector(const DoubleVect &compo_x, const DoubleVect &compo_y, const DoubleVect &compo_z, const Vecteur3 &basis, DoubleVect &projection)
int increased_point_numbers_
void compute_temperature_integral_subproblem_probe()
void set_post_processing_theta_phi_scope(const int index)
void add_source_terms_temporal_tests(const int &boundary_condition_interface, const int &boundary_condition_end)
void project_matrix_on_basis(const Matrice33 &projection_matrix, const Matrice33 &inverse_projection_matrix, const Matrice33 &matrix, Matrice33 &projected_matrix)
DoubleVect convective_term_static_frame_rising_
double get_interfacial_double_derivative_corrected() const
int neighbours_corrected_rank_
void associate_thermal_subproblem_parameters(const int &reference_gfm_on_probes, const int &debug, const int &n_iter_distance, const double &delta_T_subcooled_overheated, const int &pre_initialise_thermal_subproblems_list, const int &use_sparse_matrix, const int &compute_normal_derivative_on_reference_probes, const int &latastep_reprise)
void complete_tangential_source_terms_for_post_processings()
double get_max_temperature_domain_ends() const
void compute_energy_from_temperature_interp()
double sum_convective_flux_op_value_vap_
double energy_increment_times_dt
double compute_min_distance_pure_face_centre()
FixedVector< DoubleVect, 3 > hess_diag_T_elem_interp_
double cell_centre_distance_corrected_
double get_discrete_surface_at_level(const int &dir, const int &level) const
const double & get_interfacial_thermal_flux_raw() const
void interpolate_temperature_gradient_on_probe()
IJK_Finite_Difference_One_Dimensional_Matrix_Assembler * finite_difference_assembler_
DoubleVect temperature_time_increment_
const IJK_Field_double * temperature_
double get_velocity_component_at_point(const double &dist, const int &dir, const int &index_i=-100, const int &index_j=-100, const int &index_k=-100) const
const Matrice * radial_first_order_operator_
Matrice33 projection_matrix_
Vecteur3 facet_barycentre_
double sum_convective_flux_op_value_normal_contrib_
DoubleVect osculating_radial_coordinates_
void locate_pure_mixed_neighbours_without_pure_liquid_faces()
std::vector< std::vector< std::vector< std::vector< double > > > > pure_neighbours_last_faces_corrected_colinearity_
DoubleVect normal_temperature_double_derivative_solution_
int is_in_map_index_ijk(const std::map< int, std::map< int, std::map< int, int > > > &subproblem_to_ijk_indices, const int &index_i, const int &index_j, const int &index_k)
void set_subproblem_index(const int &sub_problem_index)
DoubleVect tangential_temperature_gradient_second_
void compute_local_discretisation()
FixedVector< double, 6 > face_centres_distance_
const IJK_Field_vector3_double * hess_cross_T_elem_
const int & get_compo() const
void compute_identity_matrix_local(Matrice &identity_matrix_explicit_implicit)
FixedVector< FixedVector< Vecteur3, 4 >, 6 > vertices_tangential_distance_vector_
int probe_variations_enabled_
Vecteur3 normal_interfacial_gradient_compo_
double sum_convective_flux_op_value_
const double & get_radius_spherical_coords() const
FixedVector< int, 3 > pure_neighbours_corrected_sign_
void retrieve_temperature_solution()
DoubleVect azymuthal_velocity_
void correct_velocities()
void associate_varying_probes_params(const int &readjust_probe_length_from_vertices, const int &first_time_step_varying_probes, const int &probe_variations_priority, const int &disable_interpolation_in_mixed_cells)
DoubleVect material_derivative_static_frame_
const Matrice * radial_second_order_operator_
double get_temperature_gradient_profile_at_point(const double &dist, const int &dir) const
double normal_temperature_double_derivative_solution_integral_exact_
Matrice radial_first_order_operator_local_
void get_discrete_two_dimensional_spacing(const int &dir, const int &level, const double &first_dir, const double &second_dir, double &dl1, double &dl2, Vecteur3 &point_coords) const
Vecteur3 interfacial_temperature_gradient_compo_
DoubleVect radial_convection_prefactor_
void prepare_temporal_schemes()
DoubleVect radial_velocity_corrected_
void retrieve_variables_solution_gfm_on_probes()
int use_corrected_velocity_convection_
int dxyz_over_two_increment_bool_
FixedVector< Vecteur3, 6 > face_tangential_distance_vector_
FixedVector< double, 6 > diffusive_flux_op_value_mixed_
double get_field_profile_at_point(const double &dist, const DoubleVect &field, const int temp_bool) const
DoubleVect first_tangential_velocity_normal_gradient_
void interpolate_temperature_on_probe()
double get_temperature_gradient_times_conductivity_profile_at_point(const double &dist, const int &dir, bool &valid_val) const
DoubleVect radial_velocity_advected_frame_
Vecteur3 first_tangential_vector_compo_
void compute_second_order_operator_local(Matrice &second_first_order_operator)
DoubleVect temperature_diffusion_hessian_trace_
Matrice * thermal_subproblems_matrix_assembly_
void initialise_radial_diffusion_operator_local()
void compute_pure_liquid_neighbours()
DoubleVect first_tangential_velocity_advected_frame_
double bubble_rising_velocity_
FixedVector< DoubleVect, 3 > temperature_gradient_solution_
bool has_computed_lrs_flux_frame_of_ref_terms_
void compute_source_terms()
int probe_variations_priority_
void interpolate_velocity_at_cell_centre()
const Matrice * radial_velocity_convection_matrix_base_
void initialise_identity_operator_local()
Vecteur3 facet_barycentre_relative_
void associer(const Probleme_FTD_IJK_base &ijk_ft)
DoubleVect material_derivative_velocity_static_frame_
const FixedVector< double, 6 > & get_dist_faces() const
std::vector< std::vector< std::vector< bool > > > pure_neighbours_to_correct_
DoubleVect tangential_convection_source_terms_second_
void initialise_radial_convection_operator_local()
void associate_flags_neighbours_correction(const int &correct_temperature_cell_neighbours, const int &correct_neighbours_rank, const int &neighbours_corrected_rank, const int &neighbours_colinearity_weighting, const int &neighbours_distance_weighting, const int &neighbours_colinearity_distance_weighting, const int &neighbours_last_faces_colinearity_weighting, const int &neighbours_last_faces_colinearity_face_weighting, const int &neighbours_last_faces_distance_weighting, const int &neighbours_last_faces_distance_colinearity_weighting, const int &neighbours_last_faces_distance_colinearity_face_weighting, const int &compute_reachable_fluxes, const int &find_cell_neighbours_for_fluxes_spherical_correction)
void get_ijk_indices(int &i, int &j, int &k) const
int neighbours_last_faces_weighting_
DoubleVect pressure_normal_gradient_
DoubleVect second_tangential_velocity_
FixedVector< double, 6 > convective_flux_op_entering_value_
FixedVector< double, 6 > temperature_interp_conv_flux_
int debug_probe_collision_
DoubleVect tangential_diffusion_source_terms_
double get_azymuthal_velocity_normal_gradient() const
int readjust_probe_length_from_vertices_
void dispatch_interfacial_heat_flux(IJK_Field_vector3_double &interfacial_heat_flux_dispatched, FixedVector< ArrOfInt, 3 > &ijk_indices_out, FixedVector< ArrOfDouble, 3 > &thermal_flux_out)
const DoubleVect * radial_coordinates_
DoubleVect temperature_x_gradient_solution_
void correct_velocity(const DoubleVect &velocity, DoubleVect &velocity_corrected)
DoubleVect temperature_time_increment_from_eulerian_
double sum_diffusive_flux_op_value_normal_contrib_
const IJK_Field_vector3_double * grad_T_elem_solver_
const IJK_Field_vector3_double * velocity_
double temperature_integral_
void compute_error_flux_interface()
void associate_collisions_parameters(const int &enable_probe_collision_detection, const int &enable_resize_probe_collision, const int &debug_probe_collision)
void associate_interface_related_parameters(double distance, double curvature, double interfacial_area, ArrOfDouble facet_barycentre, ArrOfDouble normal_vector)
int velocities_calculation_counter_
const std::vector< Vecteur3 > * normal_vector_compo_probes_previous_
void compute_pure_spherical_basis_vectors()
void compute_local_temperature_gradient_solution()
double compute_colinearity(const double &dx_contrib, const double &dy_contrib, const double &dz_contrib)
@ spherical_diffusion_approx
@ tangential_conv_2D_tangential_diffusion_3D
@ tangential_conv_3D_tangentual_diffusion_3D
const DoubleVect & get_current_temperature_solution() const
DoubleVect normal_temperature_gradient_solution_
void associate_compos(int compo_connex)
void complete_frame_of_reference_lrs_fluxes_eval()
void compute_integral_quantity(DoubleVect &quantity, double &integrated_quantity)
const double * prandtl_number_
double get_min_temperature_domain_ends() const
DoubleVect normal_velocity_normal_gradient_
bool is_post_processed_local_
const double & get_local_time_step_round() const
int disable_probe_weak_gradient_local_
int correct_tangential_temperature_gradient_
double local_dt_cfl_min_delta_xyz_
void compute_modified_probe_length_condition(const int probe_length_condition)
void compute_bubble_related_quantities()
FixedVector< double, 6 > convective_flux_op_value_normal_contrib_
DoubleTab coordinates_cartesian_compo_
void compute_local_shear_stress()
double sum_convective_flux_op_entering_value_
int compute_normal_derivative_on_reference_probes_
void correct_tangential_temperature_hessian(DoubleVect &tangential_diffusion_source_terms)
DoubleTab osculating_radial_coordinates_cartesian_compo_
const IJK_Field_vector3_double * grad_T_elem_smooth_
FixedVector< bool, 6 > pure_liquid_neighbours_
int distance_cell_faces_from_lrs_
FixedVector< double, 6 > diffusive_flux_op_entering_value_
const DoubleTab * bubbles_rising_vectors_per_bubble_
int short_probe_condition_
double find_cell_related_indicator_on_probes(const int &last_index)
double get_temperature_times_velocity_profile_at_point(const double &dist, const int &dir, bool &valid_val, const int &l, const int &index_i=INVALID_INDEX, const int &index_j=INVALID_INDEX, const int &index_k=INVALID_INDEX, const int &temperature=0)
void compute_velocity_magnitude()
void approximate_temperature_material_derivatives()
void compute_distance_cell_centre()
double sum_convective_flux_op_leaving_value_
DoubleVect x_velocity_corrected_
DoubleVect nusselt_number_integrand_
FixedVector< DoubleVect, 3 > hess_cross_T_elem_spherical_from_rising_
int fluxes_correction_conservations_
const IJK_Field_double * temperature_ft_
double tangential_source_terms_integral_
int disable_probe_because_collision_
double sum_diffusive_flux_op_entering_lrs_
Matrice33 inverse_projection_matrix_from_rising_
void associate_finite_difference_solver_solution(IJK_Finite_Difference_One_Dimensional_Matrix_Assembler &finite_difference_assembler, Matrice &thermal_subproblems_matrix_assembly, DoubleVect &thermal_subproblems_rhs_assembly, DoubleVect &thermal_subproblems_temperature_solution, DoubleVect &thermal_subproblems_temperature_solution_ini)
double tangential_convection_second_integral_
DoubleVect get_temperature_profile_discrete_integral_at_point(const double &dist, const int &levels, const int &dir)
const double & get_shear_stress() const
const double & get_local_dt_cfl_min_delta_xyz() const
DoubleVect shear_stress_from_rising_dir_
const double & get_sum_convective_diffusive_flux_op_value_entering(const int flux_type) const
void compute_modified_probe_length_vertex_condition()
DoubleVect radial_scale_factor_interp_
DoubleVect first_tangential_velocity_
void compute_modified_probe_length_collision()
IJK_Field_int * zero_liquid_neighbours_
int neglect_frame_of_reference_radial_advection_
Matrice identity_matrix_explicit_implicit_local_
void associate_eulerian_field_values(int compo_connex, const double &indicator)
const IJK_Field_vector3_double * velocity_ft_
void project_temperature_hessian_on_probes()
DoubleVect get_field_discrete_integral_velocity_weighting_at_point(const double &dist, const int &levels, const int &dir, const DoubleVect &field, const DoubleVect &field_weak_gradient, const IJK_Field_double &eulerian_field, const int temp_bool, const int weak_gradient_variable, const int vel, const int &l=-1)
void project_basis_vector_onto_cartesian_dir(const int &dir, const DoubleVect &compo_u, const DoubleVect &compo_v, const DoubleVect &compo_w, const Vecteur3 &basis_u, const Vecteur3 &basis_v, const Vecteur3 &basis_w, DoubleVect &projection)
DoubleVect radial_temperature_diffusion_solution_
double sum_diffusive_flux_op_entering_value_
const double & get_interfacial_thermal_flux_max() const
void retrieve_previous_temperature_on_probe()
DoubleVect normal_temperature_gradient_previous_
DoubleVect tangential_temperature_gradient_first_
void associate_temporal_parameters(const double &global_time_step, const double ¤t_time)
const double * coeff_distance_diagonal_
double thermal_flux_total_
const std::vector< std::vector< std::vector< std::vector< double > > > > get_pure_neighbours_last_faces_corrected_distance() const
FixedVector< ArrOfInt, 6 > * first_indices_sparse_matrix_
double modified_probe_length_from_vertices_
const double & get_sum_convective_diffusive_flux_op_value_leaving_lrs(const int flux_type) const
OBS_PTR(Probleme_FTD_IJK_base) ref_ijk_ft_
int first_time_step_varying_probes_
void associate_thermal_subproblem_sparse_matrix(FixedVector< ArrOfInt, 6 > &first_indices_sparse_matrix)
DoubleVect azymuthal_velocity_corrected_
DoubleVect get_field_times_velocity_discrete_integral_at_point(const double &dist, const int &levels, const int &dir, const DoubleVect &field, const DoubleVect &field_weak_gradient, const IJK_Field_double &eulerian_field, const int &l)
Vecteur3 tangential_distance_vector_
const std::vector< std::vector< std::vector< std::vector< bool > > > > get_pure_neighbours_last_faces_to_correct() const
IJK_One_Dimensional_Subproblem(const Probleme_FTD_IJK_base &ijk_ft)
void retrieve_interfacial_quantities(const int rank, const int &itr, std::vector< std::string > key_results_int, std::vector< std::string > key_results_double, std::map< std::string, ArrOfInt > &results_probes_int, std::map< std::string, ArrOfDouble > &results_probes_double, const int &coord=0)
const int & get_dxyz_increment_bool() const
void compute_modified_probe_length(const int &probe_variations_enabled)
void initialise_thermal_probe()
double radial_displacement_over_time_step_
void compute_local_velocity_gradient()
double normal_interfacial_gradient_
const Matrice * radial_first_order_operator_base_
int temperature_probe_condition_
void compute_interface_basis_vectors()
void correct_radial_velocity_probe()
const Matrice * identity_matrix_explicit_implicit_
const std::vector< Vecteur3 > * velocities_probes_previous_
int correct_radial_velocity_
double delta_T_subcooled_overheated_
double local_time_step_overall_
DoubleVect convective_term_advected_frame_rising_
const IJK_Interfaces * interfaces_
DoubleVect material_derivative_velocity_advected_frame_
FixedVector< DoubleVect, 3 > hess_cross_T_elem_interp_
int compute_radial_displacement_
void post_process_radial_quantities(const int rank, const Nom &local_quantities_thermal_probes_time_index_folder)
void interpolate_pressure_on_probes()
int disable_find_cell_centre_probe_tip_
void get_field_discrete_value_recursive(const int &ilevel, const int &max_level, const int &dir, const double &dist, const int &vel, const double &surface, const DoubleVect &field, const DoubleVect &field_weak_gradient, const IJK_Field_double &eulerian_field, const int temp_bool, const int weak_gradient_variable, const double dl1_parent, const double dl2_parent, Vecteur3 &point_coords_parent, DoubleVect &discrete_values, int &value_counter) const
void correct_velocity_rise(const DoubleVect &velocity, const Vecteur3 &basis, DoubleVect &velocity_corrected)
const Matrice * radial_second_order_operator_base_
void initialise_empty_variables_for_post_processing()
int fluxes_corrections_weighting_
const double & get_interfacial_thermal_flux() const
DoubleVect * tangential_temperature_gradient_second_solver_
double energy_temperature_interp_
double get_temperature_profile_at_point(const double &dist) const
DoubleVect z_velocity_corrected_
const double & get_sum_convective_diffusive_flux_op_value_lrs(const int flux_type)
const double & get_sum_convective_diffusive_flux_op_value_mixed(const int flux_type) const
DoubleVect temperature_ini_temporal_schemes_
DoubleVect azymuthal_velocity_advected_frame_
double get_velocity_cartesian_grid_value(const double &dist, const int &dir, const int &sign_dir, const int &index_i, const int &index_j, const int &index_k) const
Matrice33 interfacial_temperature_hessian_compo_
void set_global_index(const int &global_subproblem_index)
const double & get_dist_cell() const
DoubleVect y_velocity_corrected_
int pure_thermal_diffusion_
int avoid_post_processing_all_terms_
int disable_probe_weak_gradient_gfm_
DoubleVect temperature_solution_
double get_value_from_index(const int &index_val)
void compute_tangential_convection_source_terms_second()
DoubleVect material_derivative_velocity_static_frame_rising_
void interpolate_project_velocities_on_probes()
void interpolate_indicator_on_probes()
int correct_temperature_cell_neighbours_
const double & get_local_dt_cfl() const
int disable_interpolation_in_mixed_cells_
double local_fourier_time_step_probe_length_
DoubleVect radial_convection_solution_
int index_post_processing_
void copy_interpolations_on_solution_variables_for_post_processing()
IJK_Field_double * probe_collision_debug_field_
void compute_second_order_operator_local_varying_probe_length(const Matrice *radial_second_order_operator)
const Vecteur3 & get_normal_vector_compo() const
DoubleVect first_tangential_velocity_from_rising_dir_corrected_
void compute_first_order_operator_local_varying_probe_length(const Matrice *radial_first_order_operator)
int get_dxyz_increment_max()
int correct_tangential_temperature_hessian_
double compute_cell_faces_weighting(const double &dx_contrib, const double &dy_contrib, const double &dz_contrib, const int &dir)
DoubleVect * thermal_subproblems_rhs_assembly_
double radial_convection_solution_integral_
FixedVector< double, 6 > convective_flux_op_value_
DoubleVect radial_temperature_diffusion_
void thermal_subresolution_outputs_parallel(const int rank, const Nom &local_quantities_thermal_probes_time_index_folder)
std::vector< std::vector< std::vector< double > > > pure_neighbours_corrected_distance_
const double * cell_diagonal_
const double & get_sum_convective_diffusive_flux_op_value_normal(const int flux_type) const
double get_corrective_flux_from_current(const int &l)
int disable_probe_weak_gradient_
DoubleVect temperature_previous_
DoubleVect * thermal_subproblems_temperature_solution_ini_
Vecteur3 osculating_sphere_centre_
void retrieve_previous_temperature_on_probe_type(const int computation_type, const int &previous_rank, const double &best_indicator_prev, const double &colinearity, const double &velocity_eval, DoubleVect &temperature_previous, DoubleVect &temperature_previous_options, double &averaging_weight)
DoubleVect velocity_magnitude_
Vecteur3 bubble_rising_vector_
FixedVector< double, 6 > convective_flux_op_value_vap_
void approximate_partial_temperature_time_increment()
int neighbours_last_faces_colinearity_face_weighting_
const Matrice * identity_matrix_explicit_implicit_base_
const double & get_sum_convective_diffusive_flux_op_value_entering_lrs(const int flux_type) const
const double & get_lambda() const
void compute_distance_faces_centres()
int use_velocity_cartesian_grid_
Vecteur3 bubble_barycentre_
const ArrOfDouble * bubbles_surface_
void reinit_variable(DoubleVect &vect)
int reconstruct_previous_probe_field_
FixedVector< double, 6 > convective_flux_op_value_mixed_
void compute_tangential_convection_source_terms_first()
double velocity_shear_force_
const double * cp_liquid_
void compute_tangential_diffusion_source_terms()
double get_min_temperature() const
int find_cell_neighbours_for_fluxes_spherical_correction_
FixedVector< double, 6 > face_centres_distance_corrected_
DoubleVect tangential_temperature_diffusion_
double modified_probe_length_from_collision_
DoubleVect * second_tangential_velocity_solver_
double cell_centre_distance_
int implicit_solver_from_previous_probe_field_
void compute_integral_quantities_solution()
DoubleVect * first_tangential_velocity_solver_
void compute_radial_convection_scale_factor_solution()
void associate_tweaked_parameters(const int &disable_probe_weak_gradient, const int &disable_probe_weak_gradient_gfm)
const int * points_per_thermal_subproblem_base_
DoubleVect * second_tangential_velocity_not_corrected_
Matrice radial_second_order_operator_local_
void associate_sub_problem_to_inputs(IJK_Thermal_Subresolution &ref_thermal_subresolution, IJK_One_Dimensional_Subproblems &ref_one_dimensional_subproblems, int i, int j, int k, int init, int sub_problem_index, double global_time_step, double current_time, int compo_connex, double distance, double curvature, double interfacial_area, ArrOfDouble facet_barycentre, ArrOfDouble normal_vector, double bubble_rising_velocity, ArrOfDouble bubble_rising_vector, ArrOfDouble bubble_barycentre, const double &indicator, const IJK_Interfaces &interfaces, const IJK_Field_vector3_double &velocity, const IJK_Field_vector3_double &velocity_ft, const IJK_Field_double &pressure)
bool has_computed_cell_faces_distance_
double get_interfacial_gradient_corrected() const
int neighbours_last_faces_distance_colinearity_weighting_
void compute_vertex_position(const int &vertex_number, const int &face_dir, Vecteur3 &bary_vertex, double &distance_vertex_centre, double &tangential_distance_vertex_centre, Vecteur3 &tangential_distance_vector_vertex_centre)
DoubleVect tangential_hessian_contribution_
const IJK_Field_double * eulerian_interfacial_area_
double sum_convective_flux_op_lrs_
const std::map< int, std::map< int, std::map< int, int > > > * subproblem_to_ijk_indices_previous_
int neighbours_colinearity_distance_weighting_
DoubleVect material_derivative_velocity_advected_frame_rising_
DoubleVect azymuthal_velocity_static_frame_
int enable_resize_probe_collision_
DoubleVect get_temperature_gradient_profile_discrete_integral_at_point(const double &dist, const int &levels, const int &dir)
const ArrOfDouble * bubbles_volume_
const Matrice * radial_second_order_operator_raw_base_
FixedVector< FixedVector< double, 4 >, 6 > vertices_centres_tangential_distance_
int get_dxyz_over_two_increment_max()
void compare_flux_interface(std::vector< double > &radial_flux_error)
int resize_probe_collision_
const double & get_phi_spherical_coords() const
int order_approx_temperature_ext_
void associate_eulerian_fields_references(const IJK_Interfaces &interfaces, const IJK_Field_double *eulerian_distance, const IJK_Field_double *eulerian_curvature, const IJK_Field_double *eulerian_interfacial_area, const IJK_Field_vector3_double *eulerian_normal_vect, const IJK_Field_vector3_double *eulerian_facets_barycentre, const IJK_Field_double &temperature, const IJK_Field_double &temperature_ft, const IJK_Field_double &temperature_before_extrapolation, const IJK_Field_vector3_double &velocity, const IJK_Field_vector3_double &velocity_ft, const IJK_Field_double &pressure, const IJK_Field_vector3_double &grad_T_elem, const IJK_Field_vector3_double &grad_T_elem_smooth, const IJK_Field_vector3_double &hess_diag_T_elem, const IJK_Field_vector3_double &hess_cross_T_elem, const IJK_Field_double &eulerian_grad_T_interface_ns, IJK_Field_double &probe_collision_debug_field, IJK_Field_int &zero_liquid_neighbours, const int &smooth_grad_T_elem)
const double & get_interfacial_thermal_flux_max_gfm() const
double radial_scale_factor_solution_integral_
void set_reference_gfm_on_probes(const int &reference_gfm_on_probes)
double max_cfl_fourier_probe_length_
const double * delta_temperature_
const IJK_Field_vector3_double * eulerian_facets_barycentre_
const FixedVector< int, 3 > & get_pure_neighbours_corrected_sign() const
const IJK_Field_double * eulerian_curvature_
FixedVector< DoubleVect, 3 > hess_cross_T_elem_spherical_
int neighbours_colinearity_weighting_
const std::vector< DoubleVect > * temperature_probes_previous_
void compute_weighting_coefficient(const int &l, double &weight, const int &weight_type=0)
double get_velocity_weighting(const double &dist, const int &dir, const int vel) const
const double & get_pressure_gradient() const
void compute_modified_probe_length_temporal_condition()
void compute_local_pressure_gradient()
FixedVector< double, 6 > diffusive_flux_op_leaving_value_
void reset_post_processing_theta_phi_scope()
void project_velocities_on_probes()
bool has_computed_cell_centre_distance_
DoubleVect azymuthal_velocity_normal_gradient_
int neighbours_last_faces_distance_weighting_
void compare_fluxes_thermal_subproblems(const IJK_Field_vector3_double &convective_diffusive_fluxes_raw, const int flux_type, const int inv_sign=0)
DoubleVect * tangential_temperature_gradient_first_solver_
DoubleVect thermal_flux_interp_gfm_
DoubleVect indicator_interp_
std::vector< std::vector< std::vector< double > > > pure_neighbours_corrected_colinearity_
void retrieve_temperature_diffusion_spherical_on_probes()
int neighbours_weighting_
void associate_cell_ijk(int i, int j, int k)
void compute_radial_temperature_diffusion_solution()
FixedVector< double, 6 > diffusive_flux_op_value_vap_
FixedVector< DoubleVect, 3 > hess_diag_T_elem_spherical_from_rising_
const int & get_disable_probe_collision() const
std::vector< std::vector< std::vector< std::vector< double > > > > pure_neighbours_last_faces_corrected_distance_
DoubleTab radial_coordinates_cartesian_compo_
const int & get_end_index_subproblem() const
double normal_temperature_gradient_solution_integral_exact_
std::vector< std::vector< std::vector< std::vector< bool > > > > pure_neighbours_last_faces_to_correct_
double cell_centre_tangential_distance_
const int * increase_number_of_points()
int correct_neighbours_rank_
void prepare_boundary_conditions(DoubleVect *thermal_subproblems_rhs_assembly, DoubleVect *thermal_subproblems_temperature_solution_ini, int &boundary_condition_interface, const double &interfacial_boundary_condition_value, const int &impose_boundary_condition_interface_from_simulation, int &boundary_condition_end, const double &end_boundary_condition_value, const int &impose_user_boundary_condition_end_value)
Vecteur3 * first_tangential_vector_compo_solver_
Vecteur3 interfacial_tangential_velocity_compo_
Matrice * identity_matrix_subproblems_
const IJK_Field_double * pressure_
DoubleVect first_tangential_velocity_normal_gradient_from_rising_dir_
double velocity_shear_stress_
DoubleVect radial_velocity_static_frame_
FixedVector< double, 6 > convective_flux_op_leaving_value_
DoubleVect get_temperature_times_velocity_profile_discrete_integral_at_point(const double &dist, const int &levels, const int &dir, const int &l)
void interpolate_cartesian_velocities_on_probes()
int resize_probe_collision_index_
void correct_tangential_temperature_gradient(DoubleVect &tangential_convection_source_terms)
void retrieve_shell_quantities(const int rank, const int &itr, std::vector< std::string > key_results_int, std::vector< std::string > key_results_double, std::map< std::string, ArrOfInt > &results_probes_int, std::map< std::string, ArrOfDouble > &results_probes_double)
void interpolate_temperature_hessian_on_probe()
Vecteur3 xyz_velocity_cell_
Vecteur3 first_tangential_vector_compo_from_rising_dir_
void compute_first_order_operator_local(Matrice &radial_first_order_operator)
const double & get_local_fourier_time_step_probe_length() const
void project_temperature_gradient_on_probes()
void recompute_finite_difference_matrices()
double energy_temperature_solution_
const Vecteur3 & get_bary_facet() const
double pressure_gradient_
Vecteur3 second_tangential_vector_compo_
const IJK_Field_vector3_double * eulerian_normal_vect_
DoubleVect radial_coordinates_modified_
const std::vector< double > * indicator_probes_previous_
int compute_tangential_variables_
void retrieve_radial_quantities()
bool has_computed_liquid_neighbours_
const Vecteur3 & get_current_cell_xyz_velocities() const
int use_normal_gradient_for_flux_corr_
const IJK_Field_vector3_double * hess_diag_T_elem_
const double & get_theta_spherical_coords() const
double normal_temperature_double_derivative_solution_numerical_integral_
const int * latastep_reprise_
const IJK_Field_vector3_double * grad_T_elem_
const double & get_interfacial_thermal_flux_lrs() const
const std::vector< std::vector< std::vector< bool > > > & get_pure_neighbours_to_correct() const
double compute_max_distance_pure_face_vertices()
DoubleVect tangential_convection_source_terms_first_
DoubleVect convective_term_advected_frame_
const double & get_interfacial_thermal_flux_max_raw() const
void associate_source_terms_parameters(const int &source_terms_type, const int &correct_tangential_temperature_gradient, const int &correct_tangential_temperature_hessian, const int &advected_frame_of_reference, const int &neglect_frame_of_reference_radial_advection, const int &compute_tangential_variables)
double sum_diffusive_flux_op_leaving_value_
void add_interfacial_heat_flux_neighbours(IJK_Field_vector3_double &interfacial_heat_flux_dispatched)
Vecteur3 azymuthal_vector_compo_
DoubleVect * first_tangential_velocity_not_corrected_
DoubleVect temperature_y_gradient_solution_
const std::vector< std::vector< std::vector< double > > > & get_pure_neighbours_corrected_distance() const
FixedVector< double, 6 > diffusive_flux_op_lrs_
double sum_convective_flux_op_value_mixed_
const std::vector< std::vector< std::vector< std::vector< double > > > > get_pure_neighbours_last_faces_corrected_colinearity() const
FixedVector< double, 6 > corrective_flux_from_neighbours_
void approximate_temperature_increment_material_derivative()
void associate_probe_parameters(const int &points_per_thermal_subproblem, const double &cp_liquid, const double &alpha, const double &lambda, const double &prandtl_number, const double &coeff_distance_diagonal, const double &cell_diagonal, const double &dr_base, const DoubleVect &radial_coordinates)
bool global_probes_characteristics_
const std::vector< std::vector< std::vector< double > > > & get_pure_neighbours_corrected_colinearity() const
FixedVector< double, 6 > diffusive_flux_op_value_normal_contrib_
void compute_radial_convection_diffusion_operators()
FixedVector< double, 6 > diffusive_flux_op_value_
void associate_sub_problem_temporal_params(const bool &is_first_time_step, bool &first_time_step_temporal, const int &first_time_step_explicit, const double &local_fourier, const double &local_cfl, const double &min_delta_xyz, int max_u_radial)
int compute_reachable_fluxes_
void dispatch_interfacial_heat_flux_correction(IJK_Field_vector3_double &interfacial_heat_flux_dispatched, FixedVector< ArrOfInt, 4 > &ijk_indices_out, ArrOfDouble &thermal_flux_out, IJK_Field_vector3_double &interfacial_heat_flux_current)
const IJK_Field_double * temperature_before_extrapolation_
double sum_diffusive_flux_op_value_
const int & get_dxyz_over_two_increment_bool() const
bool tangential_from_rising_vel_
double fourier_probe_length_
void compute_local_time_step()
DoubleVect * thermal_subproblems_temperature_solution_
DoubleVect nusselt_number_liquid_temperature_integrand_
DoubleVect first_tangential_velocity_corrected_
DoubleVect nusselt_number_
void add_interfacial_heat_flux_neighbours_correction(IJK_Field_vector3_double &interfacial_heat_flux_dispatched, IJK_Field_vector3_double &interfacial_heat_flux_current)
DoubleVect get_field_discrete_integral_at_point(const double &dist, const int &levels, const int &dir, const DoubleVect &field, const DoubleVect &field_weak_gradient, const IJK_Field_double &eulerian_field, const int weak_gradient_variable, const int temp_bool)
double sum_diffusive_flux_op_lrs_
const double & get_local_surface_area() const
void interpolate_quantities_at_point(const IJK_Field_double &eulerian_field, const Vecteur3 &compo_xyz, double &field_value)
DoubleVect tangential_convection_source_terms_
bool * first_time_step_temporal_
DoubleVect material_derivative_static_frame_rising_
DoubleVect temperature_interp_
double thermal_flux_max_raw_
void compute_distance_last_cell_faces_neighbours()
FixedVector< FixedVector< double, 4 >, 6 > vertices_centres_distance_
FixedVector< DoubleVect, 3 > hess_diag_T_elem_spherical_
FixedVector< double, 6 > face_centres_tangential_distance_
int advected_frame_of_reference_
DoubleVect get_temperature_gradient_times_conductivity_profile_discrete_integral_at_point(const double &dist, const int &levels, const int &dir)
double compute_colinearity_cell_faces(const double &dx_contrib, const double &dy_contrib, const double &dz_contrib, const int &dir)
DoubleVect convective_term_static_frame_
void associate_flux_correction_parameters(const int &correct_fluxes, const int &distance_cell_faces_from_lrs, const int &interp_eulerian, const int &use_corrected_velocity_convection, const int &use_velocity_cartesian_grid, const int &compute_radial_displacement, const int &fluxes_correction_conservations, const int &conserve_max_interfacial_fluxes, const int &fluxes_corrections_weighting, const int &use_normal_gradient_for_flux_corr)
double compute_max_distance_pure_face_centre()
DoubleVect first_tangential_velocity_from_rising_dir_advected_frame_
int disable_relative_velocity_energy_balance_
Vecteur3 bubble_rising_velocity_compo_
Vecteur3 interfacial_velocity_compo_
int enable_probe_collision_detection_
DoubleVect first_tangential_velocity_from_rising_dir_
double cell_centre_osculating_radius_difference_
DoubleVect radial_scale_factor_solution_
int conserve_max_interfacial_fluxes_
Matrice * radial_diffusion_matrix_base_
void compute_distance_cell_centres_neighbours()
DoubleVect second_tangential_velocity_static_frame_
double interfacial_boundary_condition_value_
int pre_initialise_thermal_subproblems_list_
double normal_temperature_gradient_solution_numerical_integral_
const ArrOfDouble * radius_from_surfaces_per_bubble_
double osculating_radius_
double tangential_diffusion_integral_
DoubleVect nusselt_number_liquid_temperature_
Vecteur3 normal_vector_compo_
void post_process_interfacial_quantities(SFichier &fic, const int rank, const int &coord=0)
void set_pure_flux_corrected(const double &flux_face, const int &l, const int flux_type)
int neighbours_face_corrected_rank_
const double * mean_liquid_temperature_
const int & get_probe_variations_enabled() const
double cell_centre_radius_difference_
void find_interval(const double &dist, int &left_interval, int &right_interval) const
DoubleVect temperature_diffusion_hessian_cartesian_trace_
Matrice * radial_convection_matrix_base_
double end_boundary_condition_value_
DoubleVect second_tangential_velocity_normal_gradient_
FixedVector< double, 6 > face_centres_radius_difference_
int neighbours_last_faces_colinearity_weighting_
void compute_source_terms_impose_boundary_conditions(const int &boundary_condition_interface, const double &interfacial_boundary_condition_value, const int &impose_boundary_condition_interface_from_simulation, const int &boundary_condition_end, const double &end_boundary_condition_value, const int &impose_user_boundary_condition_end_value)
Vecteur3 azymuthal_vector_compo_raw_
double get_normal_velocity_normal_gradient() const
const double & get_sum_convective_diffusive_flux_op_value_vap(const int flux_type) const
const ArrOfDouble * radius_from_volumes_per_bubble_
DoubleVect first_tangential_velocity_from_rising_dir_static_frame_
double time_increment_from_energy_increment_
double local_cfl_time_step_probe_length_
int reference_gfm_on_probes_
double get_tangential_velocity_normal_gradient() const
DoubleVect material_derivative_advected_frame_rising_
const double & get_interfacial_thermal_flux_gfm() const
const IJK_Field_double * eulerian_distance_
const double & get_sum_convective_diffusive_flux_op_value_leaving(const int flux_type) const
void associate_rising_velocity(double bubble_rising_velocity, ArrOfDouble bubble_rising_vector, ArrOfDouble bubble_barycentre)
DoubleVect osculating_radial_coordinates_inv_
double local_time_step_round_
double sum_diffusive_flux_op_value_mixed_
double compute_min_distance_pure_face_vertices()
FixedVector< double, 6 > corrective_flux_to_neighbours_
double sum_diffusive_flux_op_leaving_lrs_
double compute_cell_weighting(const double &dx_contrib, const double &dy_contrib, const double &dz_contrib)
DoubleVect azymuthal_temperature_gradient_
const double & get_current_indicator() const
FixedVector< DoubleVect, 3 > grad_T_elem_interp_
DoubleVect second_tangential_velocity_advected_frame_
const DoubleVect * radial_coordinates_base_
Vecteur3 * second_tangential_vector_compo_solver_
void reajust_probe_length()
int neighbours_distance_weighting_
Matrice33 projection_matrix_from_rising_
int global_subproblem_index_
FixedVector< double, 6 > convective_flux_op_lrs_
double get_second_tangential_velocity_normal_gradient() const
double get_corrective_flux_from_neighbours(const int &l)
Matrice33 inverse_projection_matrix_
int operators_reinitialisation_
void thermal_subresolution_outputs(SFichier &fic, SFichier &fic_shell, const int rank, const Nom &local_quantities_thermal_probes_time_index_folder)
void associate_bubble_parameters(const ArrOfDouble &bubbles_surface, const ArrOfDouble &radius_from_surfaces_per_bubble, const ArrOfDouble &radius_from_volumes_per_bubble, const double &delta_temperature, const double &mean_liquid_temperature, const ArrOfDouble *bubbles_volume, const DoubleTab *rising_vectors)
const int & get_nb_iter_explicit() const
double sum_convective_flux_op_entering_lrs_
double sum_convective_diffusive_flux_op_lrs_
const IJK_Field_double * eulerian_grad_T_interface_ns_
void set_local_time_step(const double &local_time_step)
const int * points_per_thermal_subproblem_
FixedVector< double, 6 > corrective_flux_current_
FixedVector< double, 3 > thermal_flux_dir_
void add_source_terms(const int &boundary_condition_interface, const int &boundary_condition_end)
FixedVector< bool, 6 > pure_vapour_neighbours_
DoubleVect second_tangential_velocity_corrected_
double thermal_flux_max_gfm_
const double & get_sum_convective_diffusive_flux_op_value(const int flux_type) const
void associate_global_subproblems_parameters(const int &reconstruct_previous_probe_field, const int &implicit_solver_from_previous_probe_field, const std::map< int, std::map< int, std::map< int, int > > > &subproblem_to_ijk_indices_previous, const std::vector< DoubleVect > &temperature_probe_previous, const std::vector< double > &indicator_probes_previous, const std::vector< Vecteur3 > &velocities_probes_previous, const std::vector< Vecteur3 > &normal_vector_compo_probes_previous)
DoubleTab get_single_point_coordinates(const Vecteur3 &compo_xyz)
double sum_diffusive_flux_op_value_vap_
DoubleVect material_derivative_advected_frame_
int neighbours_last_faces_distance_colinearity_face_weighting_
DoubleVect temperature_z_gradient_solution_
const double & get_shear_force() const
DoubleVect first_tangential_velocity_static_frame_
double radial_flux_error_lrs_
void recompute_finite_difference_matrices_varying_probe_length()
DoubleVect pressure_interp_
DoubleVect tangential_temperature_gradient_first_from_rising_dir_
double compute_distance_cell_faces(const double &dx_contrib, const double &dy_contrib, const double &dz_contrib)
Vecteur3 compute_relative_vector_cell_faces(const double &dx_contrib, const double &dy_contrib, const double &dz_contrib)
DoubleVect radial_convection_interp_
void compute_integral_quantity_on_probe(DoubleVect &quantity, double &integrated_quantity)
void associate_finite_difference_operators(const Matrice &radial_first_order_operator_raw, const Matrice &radial_second_order_operator_raw, const Matrice &radial_first_order_operator, const Matrice &radial_second_order_operator, const Matrice &identity_matrix_explicit_implicit, Matrice &identity_matrix_subproblems, Matrice &radial_diffusion_matrix, Matrice &radial_convection_matrix)
DoubleVect radial_velocity_
const Matrice * radial_first_order_operator_raw_base_
DoubleVect normal_temperature_gradient_interp_
const double & get_local_cfl_time_step_probe_length() const
double tangential_convection_first_integral_
double get_max_temperature() const
void associate_compos(int compo_connex, int compo_group)
Classe Matrice Classe generique de la hierarchie des matrices.
class Nom Une chaine de caractere pour nommer les objets de TRUST
Objet_U()
Constructeur par defaut : attribue un numero d'identifiant unique a l'objet (object_id_),...
Cette classe est a la classe C++ ofstream ce que la classe Sortie est a la classe C++ ostream Elle re...