16#ifndef IJK_One_Dimensional_Subproblem_Geometry_included
17#define IJK_One_Dimensional_Subproblem_Geometry_included
21#include <IJK_Interfaces.h>
22#include <FixedVector.h>
24#include <IJK_subres_constants.h>
26#define INVALID_TEMPERATURE 1e10
27#define INVALID_FIELD 1e10
28#define INVALID_VELOCITY 1e-12
29#define INVALID_INTERP 1.e20
30#define INVALID_INTERP_TEST 1.e19
31#define INVALID_VELOCITY_CFL 1e-20
32#define INVALID_SOURCE_TERM 1e-20
33#define NEIGHBOURS_FIRST_DIR {-1., -1., 1., 1.}
34#define NEIGHBOURS_SECOND_DIR {-1., 1., -1., 1.}
35#define FACES_DIR {0, 0, 1, 1, 2, 2}
36#define FLUX_SIGN_DIFF {-1, -1, -1, -1, -1, -1}
37#define FLUX_SIGN_CONV {1, 1, 1, 1, 1, 1}
61 const double& dy_contrib,
62 const double& dz_contrib);
67 const double& dy_contrib,
68 const double& dz_contrib,
71 const double& dy_contrib,
72 const double& dz_contrib);
74 const double& dy_contrib,
75 const double& dz_contrib);
77 const double& dy_contrib,
78 const double& dz_contrib,
81 const double& dy_contrib,
82 const double& dz_contrib);
95 double& distance_vertex_centre,
96 double& tangential_distance_vertex_centre,
97 Vecteur3& tangential_distance_vector_vertex_centre);
bool has_computed_cell_faces_distance_
void compute_distance_cell_centres_neighbours()
FixedVector< FixedVector< double, 4 >, 6 > vertices_centres_distance_
void compute_distance_faces_centres()
void interpolate_indicator_on_probes()
Vecteur3 tangential_distance_vector_
double modified_probe_length_from_vertices_
int correct_neighbours_rank_
int correct_temperature_cell_neighbours_
Vecteur3 facet_barycentre_
int neighbours_weighting_
int neighbours_last_faces_colinearity_face_weighting_
int * points_per_thermal_subproblem_
FixedVector< double, 6 > face_centres_tangential_distance_
FixedVector< double, 6 > face_centres_distance_
double cell_centre_tangential_distance_
double compute_distance_cell_faces(const double &dx_contrib, const double &dy_contrib, const double &dz_contrib)
FixedVector< FixedVector< double, 4 >, 6 > vertices_centres_tangential_distance_
std::vector< std::vector< std::vector< std::vector< double > > > > pure_neighbours_last_faces_corrected_distance_
int neighbours_last_faces_distance_colinearity_weighting_
double compute_cell_faces_weighting(const double &dx_contrib, const double &dy_contrib, const double &dz_contrib, const int &dir)
int neighbours_last_faces_distance_weighting_
int neighbours_face_corrected_rank_
int disable_probe_collision_
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)
std::vector< std::vector< std::vector< double > > > pure_neighbours_corrected_distance_
const IJK_Interfaces * interfaces_
int compute_reachable_fluxes_
FixedVector< Vecteur3, 6 > face_tangential_distance_vector_
double find_cell_related_indicator_on_probes(const int &last_index)
friend class IJK_One_Dimensional_Subproblem
int get_dxyz_increment_max()
int find_cell_neighbours_for_fluxes_spherical_correction_
int neighbours_last_faces_colinearity_weighting_
DoubleTab coordinates_cartesian_compo_
int neighbours_colinearity_weighting_
int neighbours_corrected_rank_
double cell_centre_distance_
std::vector< std::vector< std::vector< std::vector< double > > > > pure_neighbours_last_faces_corrected_colinearity_
int get_dxyz_over_two_increment_max()
void compute_distance_cell_centre()
int neighbours_colinearity_distance_weighting_
double compute_cell_weighting(const double &dx_contrib, const double &dy_contrib, const double &dz_contrib)
void compute_pure_spherical_basis_vectors()
int neighbours_distance_weighting_
FixedVector< FixedVector< Vecteur3, 4 >, 6 > vertices_tangential_distance_vector_
int neighbours_last_faces_weighting_
int dxyz_over_two_increment_bool_
int enable_resize_probe_collision_
int disable_find_cell_centre_probe_tip_
Vecteur3 compute_relative_vector_cell_faces(const double &dx_contrib, const double &dy_contrib, const double &dz_contrib)
FixedVector< int, 3 > pure_neighbours_corrected_sign_
void compute_distance_last_cell_faces_neighbours()
FixedVector< bool, 6 > pure_liquid_neighbours_
double compute_colinearity_cell_faces(const double &dx_contrib, const double &dy_contrib, const double &dz_contrib, const int &dir)
double compute_colinearity(const double &dx_contrib, const double &dy_contrib, const double &dz_contrib)
OBS_PTR(Probleme_FTD_IJK_base) ref_ijk_ft_
DoubleVect indicator_interp_
std::vector< std::vector< std::vector< double > > > pure_neighbours_corrected_colinearity_
int neighbours_last_faces_distance_colinearity_face_weighting_
bool has_computed_cell_centre_distance_
void compute_local_discretisation()
Vecteur3 normal_vector_compo_
std::vector< std::vector< std::vector< std::vector< bool > > > > pure_neighbours_last_faces_to_correct_
int resize_probe_collision_index_
void compute_interface_basis_vectors()
void get_maximum_remaining_distance(int &dx_remaining, int &dy_remaining, int &dz_remaining)
std::vector< std::vector< std::vector< bool > > > pure_neighbours_to_correct_
Objet_U()
Constructeur par defaut : attribue un numero d'identifiant unique a l'objet (object_id_),...