TrioCFD 1.9.9_beta
TrioCFD documentation
Loading...
Searching...
No Matches
IJK_Finite_Difference_One_Dimensional_Matrix_Assembler Class Reference

#include <IJK_Finite_Difference_One_Dimensional_Matrix_Assembler.h>

Inheritance diagram for IJK_Finite_Difference_One_Dimensional_Matrix_Assembler:
[legend]
Collaboration diagram for IJK_Finite_Difference_One_Dimensional_Matrix_Assembler:
[legend]

Public Member Functions

void set_param (Param &param) const override
int build (Matrice &matrix, const int &nb_elem, const int &derivative_order)
int build_with_unknown_pattern (Matrice &matrix, const int &nb_elem, const int &derivative_order)
int build_with_known_pattern (Matrice &matrix, const int &nb_elem, const int &derivative_order)
void modify_rhs_for_bc (Matrice &modified_matrix, DoubleVect &modified_rhs, const int &ini_boundary_conditions, const int &end_boundary_conditions)
void scale_matrix_by_vector (Matrice &matrix, const DoubleVect &vector, const int &boundary_conditions)
void scale_matrix_subproblem_by_vector (Matrice *matrix, const DoubleVect &vector, const int &subproblem_index, const int &boundary_conditions, const int &use_sparse_matrix, const FixedVector< ArrOfInt, 6 > *first_indices_sparse_matrix)
void make_operation_on_sub_matrix_sparse (Matrice &local_sub_matrix, Matrice *matrix, const int &subproblem_index, const FixedVector< ArrOfInt, 6 > *first_indices_sparse_matrix)
void recombined_local_sub_matrix_with_matrix (Matrice &local_sub_matrix, Matrice *matrix, const int &subproblem_index, const FixedVector< ArrOfInt, 6 > *first_indices_sparse_matrix)
void impose_boundary_conditions (Matrice &modified_matrix, DoubleVect &mdified_rhs, const int &ini_boundary_conditions, const double &interfacial_value, const int &end_boundary_conditions, const double &end_values, const double &dr_inv, const int &first_time_step_temporal, const int &first_time_step_explicit, const DoubleVect &temperature_ini_temporal_schemes)
void impose_boundary_conditions_subproblem (Matrice *matrix, DoubleVect *global_rhs, DoubleVect &local_rhs, const int &ini_boundary_conditions, const double &interfacial_value, const int &end_boundary_conditions, const double &end_value, const int &subproblem_index, const double &dr_inv, const int &first_time_step_temporal, const int &first_time_step_explicit, const DoubleVect &temperature_ini_temporal_schemes, const int &start_index, const FixedVector< ArrOfInt, 6 > *first_indices_sparse_matrix, const int &use_sparse_matrix)
void sum_any_matrices_subproblems (Matrice &matrix_A, Matrice &matrix_B, const int &use_sparse_matrix, const int &debug)
void sum_sparse_matrices_subproblems (Matrice &matrix_A, Matrice &matrix_B, const int &debug)
void sum_matrices_subproblems (Matrice &matrix_A, Matrice &matrix_B)
void sum_matrices (Matrice &matrix_A, Matrice &matrix_B)
void initialise_sparse_matrix_subproblems (Matrice &matrix_subproblems, Matrice &fd_operator, const int &nb_subproblems, const int &first_time_step_varying_probes, FixedVector< ArrOfInt, 6 > &first_indices_sparse_matrix, const int &first_initialisation, int &initialise_sparse_indices)
void initialise_matrix_subproblems (Matrice &matrix_subproblems, Matrice &fd_operator, const int &subproblems, const int &first_time_step_varying_probes)
void reinitialise_any_matrix_subproblem (Matrice *matrix_subproblems, const Matrice *fd_operator, const int &nb_subproblems, const int &use_sparse_matrix, FixedVector< ArrOfInt, 6 > *first_indices_sparse_matrix, const int &first_initialisation, const int &keep_global_probes_discretisation)
void reinitialise_sparse_matrix_subproblem (Matrice *matrix_subproblems, const Matrice *fd_operator, const int &nb_subproblems, FixedVector< ArrOfInt, 6 > *first_indices_sparse_matrix, const int &first_initialisation, const int &keep_global_probes_discretisation)
void reinitialise_matrix_subproblem (Matrice *matrix_subproblems, const Matrice *fd_operator, const int &nb_subproblems, const int &keep_global_probes_discretisation)
void add_source_terms (DoubleVect *thermal_subproblems_rhs_assembly, DoubleVect &rhs_assembly, const DoubleVect &source_terms, const int &index_start, const int &boundary_condition_interface, const int &boundary_condition_end)
void compute_operator (const Matrice *fd_operator, const DoubleVect &solution, DoubleVect &res)
void apply_euler_time_step (Matrice *convection_matrix, Matrice *diffusion_matrix, const int &subproblem_index, const double &local_time_step, const double &alpha)
void correct_sign_temporal_schemes_subproblems (Matrice *convection_matrix, Matrice *diffusion_matrix, const int &subproblem_index, const double &local_time_step, const double &alpha)
void pre_initialise_matrix_subproblems (Matrice &matrice, Matrice &fd_operator, const int &max_subproblems_predicted)
void pre_initialise_sparse_matrix_subproblems (Matrice &matrix_subproblems, Matrice &fd_operator, const int &max_subproblems_predicted)
void complete_empty_matrices_initialisation (Matrice &matrix_subproblems, Matrice &fd_operator, const int &empty_problem_start_index, const int &empty_problem_end_index)
void reduce_solver_matrix (const Matrice_Morse &thermal_subproblems_matrix_assembly_for_solver, Matrice_Morse &thermal_subproblems_matrix_assembly_for_solver_reduced, const int &nb_points, const int &pre_initialise_thermal_subproblems_list)
Public Member Functions inherited from Objet_U
 ~Objet_U () override
 Destructor. Removes the object from the list of objects registered in "memory".
int numero () const
 Returns the index of the object in Memoire::data.
virtual int duplique () const =0
virtual SortieprintOn (Sortie &) const
 Writes the object to an output stream. Virtual method to override.
virtual EntreereadOn (Entree &)
 Reads an Objet_U from an input stream. Virtual method to override.
virtual unsigned taille_memoire () const =0
virtual int est_egal_a (const Objet_U &) const
 Returns 1 if x and *this are the same instance (same memory address).
virtual const Nomle_nom () const
 Returns the name of the Objet_U. Virtual method to override: returns "neant" in this implementation.
virtual void nommer (const Nom &)
 Assigns a name to the Objet_U. Virtual method to override.
virtual int reprendre (Entree &)
 Restores an Objet_U from an input stream. Virtual method to override.
virtual int sauvegarder (Sortie &) const
 Saves an Objet_U to an output stream. Virtual method to override.
int get_object_id () const
 Returns the unique identifier of the object (object_id_).
virtual const Type_infoget_info () const
 Returns type information for the Objet_U.
const Nomque_suis_je () const
 Returns the string identifying the class.
const char * le_type () const
 Returns the type name of the Objet_U.
virtual int change_num (const int *const)
 Changes the internal number of the Objet_U.
virtual int lire_motcle_non_standard (const Motcle &motlu, Entree &is)
 Reads non-simple-type parameters of an Objet_U from an input stream.
virtual int associer_ (Objet_U &)
 Associates the Objet_U with another Objet_U. Virtual method to override.
const Interpreteinterprete () const
Interpreteinterprete ()
Public Member Functions inherited from Process
virtual ~Process ()

Protected Types

enum  Fd_coefficient_type_ { identity =-1 , forward , centred , backward }
enum  Precision_Order_ { first_order , second_order }
enum  Derivative_Order_ { first , second }
enum  Boundary_conditions {
  default_bc =-1 , dirichlet , neumann , flux_jump ,
  implicit
}
enum  Remove_zero_coeff { keep_zeros , remove_zeros , remove_close_zeros }
enum  Equation_type { advection_diffusion , linear_diffusion }

Protected Member Functions

void set_operators_size (const std::vector< std::vector< double > > &fd_operator_vector, FixedVector< FixedVector< DoubleVect, 2 >, MAX_ORDER_DERIVATIVE > &fd_operator)
void set_operators_indices (const std::vector< std::vector< double > > &fd_operator_vector, FixedVector< FixedVector< DoubleVect, 2 >, MAX_ORDER_DERIVATIVE > &fd_operator, const int &fd_coefficient_type)
int non_zero_stencil_values (const FixedVector< FixedVector< DoubleVect, 2 >, MAX_ORDER_DERIVATIVE > &fd_operator)
int get_max_operators (const FixedVector< FixedVector< DoubleVect, 2 >, MAX_ORDER_DERIVATIVE > &fd_operator_conv, const FixedVector< FixedVector< DoubleVect, 2 >, MAX_ORDER_DERIVATIVE > &fd_operator_diff, int(&stencil_left_offset)[3], int(&stencil_right_offset)[3])
void get_max_stencil (const int &nb_elem, int &non_zero_elem_max, int &stencil_forward_max, int &stencil_centred_max, int &stencil_backward_max)
void compute_stencil_properties (const int nb_elem)
void fill_lines (Matrice &matrix)
Protected Member Functions inherited from Objet_U
 Objet_U ()
 Default constructor: assigns a unique identifier to the object (object_id_) and registers the object in "memory" by giving it a num_obj number.
 Objet_U (const Objet_U &)
 Copy constructor.
const Objet_Uoperator= (const Objet_U &)
 Assignment operator: does nothing (the number and identifier are preserved).

Protected Attributes

FixedVector< FixedVector< DoubleVect, 2 >, MAX_ORDER_DERIVATIVE > identity_coefficient_
const std::vector< std::vector< double > > first_order_derivative_forward_vector_
FixedVector< FixedVector< DoubleVect, 2 >, MAX_ORDER_DERIVATIVE > first_order_derivative_forward_
const std::vector< std::vector< double > > first_order_derivative_centred_vector_
FixedVector< FixedVector< DoubleVect, 2 >, MAX_ORDER_DERIVATIVE > first_order_derivative_centred_
const std::vector< std::vector< double > > first_order_derivative_backward_vector_
FixedVector< FixedVector< DoubleVect, 2 >, MAX_ORDER_DERIVATIVE > first_order_derivative_backward_
const std::vector< std::vector< double > > second_order_derivative_forward_vector_
FixedVector< FixedVector< DoubleVect, 2 >, MAX_ORDER_DERIVATIVE > second_order_derivative_forward_
const std::vector< std::vector< double > > second_order_derivative_centred_vector_
FixedVector< FixedVector< DoubleVect, 2 >, MAX_ORDER_DERIVATIVE > second_order_derivative_centred_
const std::vector< std::vector< double > > second_order_derivative_backward_vector_
FixedVector< FixedVector< DoubleVect, 2 >, MAX_ORDER_DERIVATIVE > second_order_derivative_backward_
int precision_order_ = 2
bool reduce_side_precision_ = false
int core_matrix_type_ = centred
int equation_type_ = advection_diffusion
int nb_elem_ = 0
int non_zero_elem_ = 0
int stencil_forward_max_ = 0
int stencil_centred_max_ = 0
int stencil_backward_max_ = 0
int forward_left_offset_ [3] = {0, 0, 0}
int forward_right_offset_ [3] = {0, 0, 0}
int centred_left_offset_ [3] = {0, 0, 0}
int centred_right_offset_ [3] = {0, 0, 0}
int backward_left_offset_ [3] = {0, 0, 0}
int backward_right_offset_ [3] = {0, 0, 0}
bool computed_stencil_ = false
int known_pattern_ =1

Additional Inherited Members

Static Public Member Functions inherited from Objet_U
static const Nomnom_du_cas ()
 Returns a constant reference to the case name. This method is static.
static Nomget_set_nom_du_cas ()
 Returns a non-constant reference to the case name (to allow modification). This method is static.
static const Type_infoinfo ()
 Returns type information for the Objet_U (static version).
static const Objet_Uself_cast (const Objet_U &)
 Method added for casting in Python.
static Objet_Uself_cast (Objet_U &)
Static Public Member Functions inherited from Process
static int me ()
 Returns the rank of the local processor in the current communication group. See Comm_Group::rank() and PE_Groups::current_group().
static int nproc ()
 Returns the number of processors in the current group. See Comm_Group::nproc() and PE_Groups::current_group().
static bool is_parallel ()
static void exit (int exit_code=-1)
 Exit routine for TRUST within a Kokkos region.
static double mp_sum (double)
 Computes the sum of x over all processors in the current group.
static float mp_sum (float)
static trustIdType mp_sum (trustIdType)
 Computes the sum of x over all processors in the current group.
static double mp_max (double)
static double mp_min (double)
static int mp_max (int)
 Returns the maximum value of x across all processors in the current group.
static int mp_min (int)
 Returns the minimum value of x across all processors in the current group.
static double mp_sum_as_double (int v)
static trustIdType mppartial_sum (trustIdType i)
 Computes the partial sum of x over processors 0 to me()-1 (returns 0 on processor 0).
template<typename T>
static void mp_sum_for_each (T &arg1, T &arg2)
 C++14 compatible mp_sum_for_each: combine multiple mp_sum calls into one collective operation Usage: mp_sum_for_each(a, b); mp_sum_for_each(a, b, c); mp_sum_for_each(a, b, c, d); mp_sum_for_each(a, b, c, d, e); All arguments must be of the same type (double or int) and are modified in place. Supports 2-5 parameters.
template<typename T>
static void mp_sum_for_each (T &arg1, T &arg2, T &arg3)
template<typename T>
static void mp_sum_for_each (T &arg1, T &arg2, T &arg3, T &arg4)
template<typename T>
static void mp_sum_for_each (T &arg1, T &arg2, T &arg3, T &arg4, T &arg5)
template<typename T>
static void mp_max_for_each (T &arg1, T &arg2)
 C++14 compatible mp_max_for_each: combine multiple mp_max calls into one collective operation.
template<typename T>
static void mp_max_for_each (T &arg1, T &arg2, T &arg3)
template<typename T>
static void mp_max_for_each (T &arg1, T &arg2, T &arg3, T &arg4)
template<typename T>
static void mp_max_for_each (T &arg1, T &arg2, T &arg3, T &arg4, T &arg5)
template<typename T>
static void mp_min_for_each (T &arg1, T &arg2)
 C++14 compatible mp_min_for_each: combine multiple mp_min calls into one collective operation.
template<typename T>
static void mp_min_for_each (T &arg1, T &arg2, T &arg3)
template<typename T>
static void mp_min_for_each (T &arg1, T &arg2, T &arg3, T &arg4)
template<typename T>
static void mp_min_for_each (T &arg1, T &arg2, T &arg3, T &arg4, T &arg5)
template<typename _TYPE_>
static void mp_sum_for_each_item (TRUSTArray< _TYPE_ > &x, int n=-1)
template<typename _TYPE_>
static void mp_max_for_each_item (TRUSTArray< _TYPE_ > &x, int n=-1)
template<typename _TYPE_>
static void mp_min_for_each_item (TRUSTArray< _TYPE_ > &x, int n=-1)
static bool mp_and (bool)
 Computes the logical AND of b across all processors in the current group.
static bool mp_or (bool)
static int check_int_overflow (trustIdType)
static int je_suis_maitre ()
 Returns 1 if on the master processor of the current group (i.e. me() == 0), 0 otherwise.
static KOKKOS_INLINE_FUNCTION void Kokkos_exit (const char *)
 Exit routine for TRUST within a Kokkos region.
static int node_master ()
 Returns 1 if on the NUMA node master processor, 0 otherwise.
static void exit (const Nom &message, int exit_code=-1)
static bool is_sequential ()
static void barrier ()
 Synchronizes all processors in the current group (waits until all processors have reached the barrier).
static void abort ()
 Abort routine for TRUST on a fatal error.
static SortieJournal (int message_level=0)
 Returns a static Sortie object used as an event journal.
static double ram_processeur ()
static void imprimer_ram_totale (int all_process=0)
static bool force_single_file (const int ranks, const Nom &filename)
Static Public Attributes inherited from Objet_U
static double precision_geom = 1e-10
static constexpr bool HAS_POINTER = false
static int dimension =0
static int format_precision_geom =11
static int axi =0
static int bidim_axi =0
static int DEACTIVATE_SIGINT_CATCH =0
static Type_info info_obj
static bool disable_TU =false
 Flag to disable or not the writing of the .TU files.
static bool stat_per_proc_perf_log =false
 Flag to enable the writing of the statistics detailed per processor in _csv.TU file.
Static Public Attributes inherited from Process
static int exception_sur_exit =0
static int multiple_files =5120

Detailed Description

Member Enumeration Documentation

◆ Boundary_conditions

Enumerator
default_bc 
dirichlet 
neumann 
flux_jump 
implicit 

Definition at line 161 of file IJK_Finite_Difference_One_Dimensional_Matrix_Assembler.h.

◆ Derivative_Order_

◆ Equation_type

Enumerator
advection_diffusion 
linear_diffusion 

Definition at line 168 of file IJK_Finite_Difference_One_Dimensional_Matrix_Assembler.h.

◆ Fd_coefficient_type_

Enumerator
identity 
forward 
centred 
backward 

Definition at line 157 of file IJK_Finite_Difference_One_Dimensional_Matrix_Assembler.h.

◆ Precision_Order_

◆ Remove_zero_coeff

Enumerator
keep_zeros 
remove_zeros 
remove_close_zeros 

Definition at line 167 of file IJK_Finite_Difference_One_Dimensional_Matrix_Assembler.h.

Member Function Documentation

◆ add_source_terms()

void IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::add_source_terms ( DoubleVect * thermal_subproblems_rhs_assembly,
DoubleVect & rhs_assembly,
const DoubleVect & source_terms,
const int & index_start,
const int & boundary_condition_interface,
const int & boundary_condition_end )

◆ apply_euler_time_step()

void IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::apply_euler_time_step ( Matrice * convection_matrix,
Matrice * diffusion_matrix,
const int & subproblem_index,
const double & local_time_step,
const double & alpha )

◆ build()

int IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::build ( Matrice & matrix,
const int & nb_elem,
const int & derivative_order )

◆ build_with_known_pattern()

int IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::build_with_known_pattern ( Matrice & matrix,
const int & nb_elem,
const int & derivative_order )

◆ build_with_unknown_pattern()

int IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::build_with_unknown_pattern ( Matrice & matrix,
const int & nb_elem,
const int & derivative_order )

◆ complete_empty_matrices_initialisation()

void IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::complete_empty_matrices_initialisation ( Matrice & matrix_subproblems,
Matrice & fd_operator,
const int & empty_problem_start_index,
const int & empty_problem_end_index )

◆ compute_operator()

void IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::compute_operator ( const Matrice * fd_operator,
const DoubleVect & solution,
DoubleVect & res )

◆ compute_stencil_properties()

void IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::compute_stencil_properties ( const int nb_elem)
protected

◆ correct_sign_temporal_schemes_subproblems()

void IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::correct_sign_temporal_schemes_subproblems ( Matrice * convection_matrix,
Matrice * diffusion_matrix,
const int & subproblem_index,
const double & local_time_step,
const double & alpha )

◆ fill_lines()

void IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::fill_lines ( Matrice & matrix)
protected

◆ get_max_operators()

int IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::get_max_operators ( const FixedVector< FixedVector< DoubleVect, 2 >, MAX_ORDER_DERIVATIVE > & fd_operator_conv,
const FixedVector< FixedVector< DoubleVect, 2 >, MAX_ORDER_DERIVATIVE > & fd_operator_diff,
int(&) stencil_left_offset[3],
int(&) stencil_right_offset[3] )
protected

◆ get_max_stencil()

void IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::get_max_stencil ( const int & nb_elem,
int & non_zero_elem_max,
int & stencil_forward_max,
int & stencil_centred_max,
int & stencil_backward_max )
protected

◆ impose_boundary_conditions()

void IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::impose_boundary_conditions ( Matrice & modified_matrix,
DoubleVect & mdified_rhs,
const int & ini_boundary_conditions,
const double & interfacial_value,
const int & end_boundary_conditions,
const double & end_values,
const double & dr_inv,
const int & first_time_step_temporal,
const int & first_time_step_explicit,
const DoubleVect & temperature_ini_temporal_schemes )

◆ impose_boundary_conditions_subproblem()

void IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::impose_boundary_conditions_subproblem ( Matrice * matrix,
DoubleVect * global_rhs,
DoubleVect & local_rhs,
const int & ini_boundary_conditions,
const double & interfacial_value,
const int & end_boundary_conditions,
const double & end_value,
const int & subproblem_index,
const double & dr_inv,
const int & first_time_step_temporal,
const int & first_time_step_explicit,
const DoubleVect & temperature_ini_temporal_schemes,
const int & start_index,
const FixedVector< ArrOfInt, 6 > * first_indices_sparse_matrix,
const int & use_sparse_matrix )

◆ initialise_matrix_subproblems()

void IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::initialise_matrix_subproblems ( Matrice & matrix_subproblems,
Matrice & fd_operator,
const int & subproblems,
const int & first_time_step_varying_probes )

◆ initialise_sparse_matrix_subproblems()

void IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::initialise_sparse_matrix_subproblems ( Matrice & matrix_subproblems,
Matrice & fd_operator,
const int & nb_subproblems,
const int & first_time_step_varying_probes,
FixedVector< ArrOfInt, 6 > & first_indices_sparse_matrix,
const int & first_initialisation,
int & initialise_sparse_indices )

◆ make_operation_on_sub_matrix_sparse()

void IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::make_operation_on_sub_matrix_sparse ( Matrice & local_sub_matrix,
Matrice * matrix,
const int & subproblem_index,
const FixedVector< ArrOfInt, 6 > * first_indices_sparse_matrix )

◆ modify_rhs_for_bc()

void IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::modify_rhs_for_bc ( Matrice & modified_matrix,
DoubleVect & modified_rhs,
const int & ini_boundary_conditions,
const int & end_boundary_conditions )

◆ non_zero_stencil_values()

int IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::non_zero_stencil_values ( const FixedVector< FixedVector< DoubleVect, 2 >, MAX_ORDER_DERIVATIVE > & fd_operator)
protected

◆ pre_initialise_matrix_subproblems()

void IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::pre_initialise_matrix_subproblems ( Matrice & matrice,
Matrice & fd_operator,
const int & max_subproblems_predicted )

◆ pre_initialise_sparse_matrix_subproblems()

void IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::pre_initialise_sparse_matrix_subproblems ( Matrice & matrix_subproblems,
Matrice & fd_operator,
const int & max_subproblems_predicted )

◆ recombined_local_sub_matrix_with_matrix()

void IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::recombined_local_sub_matrix_with_matrix ( Matrice & local_sub_matrix,
Matrice * matrix,
const int & subproblem_index,
const FixedVector< ArrOfInt, 6 > * first_indices_sparse_matrix )

◆ reduce_solver_matrix()

void IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::reduce_solver_matrix ( const Matrice_Morse & thermal_subproblems_matrix_assembly_for_solver,
Matrice_Morse & thermal_subproblems_matrix_assembly_for_solver_reduced,
const int & nb_points,
const int & pre_initialise_thermal_subproblems_list )

◆ reinitialise_any_matrix_subproblem()

void IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::reinitialise_any_matrix_subproblem ( Matrice * matrix_subproblems,
const Matrice * fd_operator,
const int & nb_subproblems,
const int & use_sparse_matrix,
FixedVector< ArrOfInt, 6 > * first_indices_sparse_matrix,
const int & first_initialisation,
const int & keep_global_probes_discretisation )

◆ reinitialise_matrix_subproblem()

void IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::reinitialise_matrix_subproblem ( Matrice * matrix_subproblems,
const Matrice * fd_operator,
const int & nb_subproblems,
const int & keep_global_probes_discretisation )

◆ reinitialise_sparse_matrix_subproblem()

void IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::reinitialise_sparse_matrix_subproblem ( Matrice * matrix_subproblems,
const Matrice * fd_operator,
const int & nb_subproblems,
FixedVector< ArrOfInt, 6 > * first_indices_sparse_matrix,
const int & first_initialisation,
const int & keep_global_probes_discretisation )

◆ scale_matrix_by_vector()

void IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::scale_matrix_by_vector ( Matrice & matrix,
const DoubleVect & vector,
const int & boundary_conditions )

◆ scale_matrix_subproblem_by_vector()

void IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::scale_matrix_subproblem_by_vector ( Matrice * matrix,
const DoubleVect & vector,
const int & subproblem_index,
const int & boundary_conditions,
const int & use_sparse_matrix,
const FixedVector< ArrOfInt, 6 > * first_indices_sparse_matrix )

◆ set_operators_indices()

void IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::set_operators_indices ( const std::vector< std::vector< double > > & fd_operator_vector,
FixedVector< FixedVector< DoubleVect, 2 >, MAX_ORDER_DERIVATIVE > & fd_operator,
const int & fd_coefficient_type )
protected

◆ set_operators_size()

void IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::set_operators_size ( const std::vector< std::vector< double > > & fd_operator_vector,
FixedVector< FixedVector< DoubleVect, 2 >, MAX_ORDER_DERIVATIVE > & fd_operator )
protected

◆ set_param()

void IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::set_param ( Param & param) const
overridevirtual

Reimplemented from Objet_U.

Definition at line 111 of file IJK_Finite_Difference_One_Dimensional_Matrix_Assembler.cpp.

◆ sum_any_matrices_subproblems()

void IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::sum_any_matrices_subproblems ( Matrice & matrix_A,
Matrice & matrix_B,
const int & use_sparse_matrix,
const int & debug )

◆ sum_matrices()

void IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::sum_matrices ( Matrice & matrix_A,
Matrice & matrix_B )

◆ sum_matrices_subproblems()

void IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::sum_matrices_subproblems ( Matrice & matrix_A,
Matrice & matrix_B )

◆ sum_sparse_matrices_subproblems()

void IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::sum_sparse_matrices_subproblems ( Matrice & matrix_A,
Matrice & matrix_B,
const int & debug )

Member Data Documentation

◆ backward_left_offset_

int IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::backward_left_offset_[3] = {0, 0, 0}
protected

◆ backward_right_offset_

int IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::backward_right_offset_[3] = {0, 0, 0}
protected

◆ centred_left_offset_

int IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::centred_left_offset_[3] = {0, 0, 0}
protected

◆ centred_right_offset_

int IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::centred_right_offset_[3] = {0, 0, 0}
protected

◆ computed_stencil_

bool IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::computed_stencil_ = false
protected

◆ core_matrix_type_

int IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::core_matrix_type_ = centred
protected

◆ equation_type_

int IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::equation_type_ = advection_diffusion
protected

◆ first_order_derivative_backward_

FixedVector<FixedVector<DoubleVect,2>,MAX_ORDER_DERIVATIVE> IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::first_order_derivative_backward_
protected

◆ first_order_derivative_backward_vector_

const std::vector<std::vector<double> > IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::first_order_derivative_backward_vector_
protected
Initial value:
= {{1., -1.},
{3./2., -2., 1./2.},
{11./6., -3., 3./2., -1./3.},
{25./12., -4., 3., -4./3., 1./4.}
}

Definition at line 194 of file IJK_Finite_Difference_One_Dimensional_Matrix_Assembler.h.

◆ first_order_derivative_centred_

FixedVector<FixedVector<DoubleVect,2>,MAX_ORDER_DERIVATIVE> IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::first_order_derivative_centred_
protected

◆ first_order_derivative_centred_vector_

const std::vector<std::vector<double> > IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::first_order_derivative_centred_vector_
protected
Initial value:
= {{-1./2., 0., 1./2.},
{-1./2., 0., 1./2.},
{1./12., -2./3., 0., 2./3., -1./12.},
{1./12., -2./3., 0., 2./3., -1./12.}
}

Definition at line 186 of file IJK_Finite_Difference_One_Dimensional_Matrix_Assembler.h.

◆ first_order_derivative_forward_

FixedVector<FixedVector<DoubleVect,2>,MAX_ORDER_DERIVATIVE> IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::first_order_derivative_forward_
protected

◆ first_order_derivative_forward_vector_

const std::vector<std::vector<double> > IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::first_order_derivative_forward_vector_
protected
Initial value:
= {{-1., 1.},
{-3./2., 2., -1./2.},
{-11./6., 3., -3./2., 1./3.},
{-25./12., 4., -3., 4./3., -1./4.}
}

Definition at line 178 of file IJK_Finite_Difference_One_Dimensional_Matrix_Assembler.h.

◆ forward_left_offset_

int IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::forward_left_offset_[3] = {0, 0, 0}
protected

◆ forward_right_offset_

int IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::forward_right_offset_[3] = {0, 0, 0}
protected

◆ identity_coefficient_

FixedVector<FixedVector<DoubleVect,2>,MAX_ORDER_DERIVATIVE> IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::identity_coefficient_
protected

◆ known_pattern_

int IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::known_pattern_ =1
protected

◆ nb_elem_

int IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::nb_elem_ = 0
protected

◆ non_zero_elem_

int IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::non_zero_elem_ = 0
protected

◆ precision_order_

int IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::precision_order_ = 2
protected

◆ reduce_side_precision_

bool IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::reduce_side_precision_ = false
protected

◆ second_order_derivative_backward_

FixedVector<FixedVector<DoubleVect,2>,MAX_ORDER_DERIVATIVE> IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::second_order_derivative_backward_
protected

◆ second_order_derivative_backward_vector_

const std::vector<std::vector<double> > IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::second_order_derivative_backward_vector_
protected
Initial value:
= {{1., -2., 1.},
{-2., 5., -4., 1.},
{35./12., -26./3., 19./2., -14./3., 11./12.},
{15./4., -77./6., 107./6., -13., 61./12., -5./6.}
}

Definition at line 221 of file IJK_Finite_Difference_One_Dimensional_Matrix_Assembler.h.

◆ second_order_derivative_centred_

FixedVector<FixedVector<DoubleVect,2>,MAX_ORDER_DERIVATIVE> IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::second_order_derivative_centred_
protected

◆ second_order_derivative_centred_vector_

const std::vector<std::vector<double> > IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::second_order_derivative_centred_vector_
protected
Initial value:
= {{1., -2., 1.},
{1., -2., 1.},
{-2., -1., 0., 1., 2.},
{-2., -1., 0., 1., 2.}
}

Definition at line 213 of file IJK_Finite_Difference_One_Dimensional_Matrix_Assembler.h.

◆ second_order_derivative_forward_

FixedVector<FixedVector<DoubleVect,2>,MAX_ORDER_DERIVATIVE> IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::second_order_derivative_forward_
protected

◆ second_order_derivative_forward_vector_

const std::vector<std::vector<double> > IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::second_order_derivative_forward_vector_
protected
Initial value:
= {{1., -2., 1.},
{2., -5., 4., -1.},
{35./12., -26./3., 19./2., -14./3., 11./12.},
{15./4., -77./6., 107./6., -13., 61./12., -5./6.}
}

Definition at line 205 of file IJK_Finite_Difference_One_Dimensional_Matrix_Assembler.h.

◆ stencil_backward_max_

int IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::stencil_backward_max_ = 0
protected

◆ stencil_centred_max_

int IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::stencil_centred_max_ = 0
protected

◆ stencil_forward_max_

int IJK_Finite_Difference_One_Dimensional_Matrix_Assembler::stencil_forward_max_ = 0
protected

The documentation for this class was generated from the following files: