#include "cs_defs.h"#include <assert.h>#include <stdlib.h>#include <float.h>#include <bft_mem.h>#include "cs_array.h"#include "cs_blas.h"#include "cs_math.h"#include "cs_parall.h"#include "cs_parameters.h"#include "cs_cdo_solve.h" Include dependency graph for cs_cdo_solve.c:
 Include dependency graph for cs_cdo_solve.c:| Functions | |
| void | cs_cdo_solve_sync_rhs_norm (cs_param_resnorm_type_t type, double vol_tot, cs_lnum_t rhs_size, const cs_real_t rhs[], double *normalization) | 
| Compute the value of the rhs norm used as a renormalization coefficient for the residual norm when solving the linear system. A pre-computation performed during the cellwise building of the algebraic has been done before this call according to the requested type of renormalization.  More... | |
| void | cs_cdo_solve_prepare_system (int stride, bool interlace, cs_lnum_t x_size, const cs_range_set_t *rset, bool rhs_redux, cs_real_t *x, cs_real_t *b) | 
| Prepare a linear system and synchronize buffers in case of parallel or periodic computations. Transfer a mesh-based description of arrays x0 and rhs into an algebraic description for the linear system in x and b (scatter/gather views).  More... | |
| int | cs_cdo_solve_scalar_cell_system (cs_lnum_t n_dofs, const cs_param_sles_t *slesp, const cs_matrix_t *matrix, cs_real_t normalization, cs_sles_t *sles, cs_real_t *x, cs_real_t *b) | 
| Solve a linear system arising with scalar-valued cell-based DoFs* No rotation is taken into account when synchronizing halo.  More... | |
| int | cs_cdo_solve_scalar_system (cs_lnum_t n_scatter_dofs, const cs_param_sles_t *slesp, const cs_matrix_t *matrix, const cs_range_set_t *rset, cs_real_t normalization, bool rhs_redux, cs_sles_t *sles, cs_real_t *x, cs_real_t *b) | 
| Solve a linear system arising from CDO schemes with scalar-valued degrees of freedom.  More... | |
| int | cs_cdo_solve_vector_system (cs_lnum_t n_scatter_elts, bool interlace, const cs_param_sles_t *slesp, const cs_matrix_t *matrix, const cs_range_set_t *rset, cs_real_t normalization, bool rhs_redux, cs_sles_t *sles, cs_real_t *x, cs_real_t *b) | 
| Solve a linear system arising from CDO schemes with vector-valued degrees of freedom (DoFs). Number of DoFs is equal to 3*n_scatter_elts.  More... | |
| void cs_cdo_solve_prepare_system | ( | int | stride, | 
| bool | interlace, | ||
| cs_lnum_t | x_size, | ||
| const cs_range_set_t * | rset, | ||
| bool | rhs_redux, | ||
| cs_real_t * | x, | ||
| cs_real_t * | b | ||
| ) | 
Prepare a linear system and synchronize buffers in case of parallel or periodic computations. Transfer a mesh-based description of arrays x0 and rhs into an algebraic description for the linear system in x and b (scatter/gather views).
| [in] | stride | stride to apply to the range set operations | 
| [in] | interlace | is data interlaced or not | 
| [in] | x_size | size of the vector unknowns (scatter view) | 
| [in] | rset | pointer to a range set structure | 
| [in] | rhs_redux | do or not a parallel sum reduction on the RHS | 
| [in,out] | x | array of unknowns (in: initial guess) | 
| [in,out] | b | right-hand side | 
| int cs_cdo_solve_scalar_cell_system | ( | cs_lnum_t | n_dofs, | 
| const cs_param_sles_t * | slesp, | ||
| const cs_matrix_t * | matrix, | ||
| cs_real_t | normalization, | ||
| cs_sles_t * | sles, | ||
| cs_real_t * | x, | ||
| cs_real_t * | b | ||
| ) | 
Solve a linear system arising with scalar-valued cell-based DoFs* No rotation is taken into account when synchronizing halo.
Solve a linear system arising with scalar-valued cell-based DoFs No rotation is taken into account when synchronizing halo.
| [in] | n_dofs | local number of DoFs | 
| [in] | slesp | pointer to a cs_param_sles_t structure | 
| [in] | matrix | pointer to a cs_matrix_t structure | 
| [in] | normalization | value used for the residual normalization | 
| [in,out] | sles | pointer to a cs_sles_t structure | 
| [in,out] | x | solution of the linear system (in: initial guess) | 
| [in,out] | b | right-hand side (scatter/gather if needed) | 
| int cs_cdo_solve_scalar_system | ( | cs_lnum_t | n_scatter_dofs, | 
| const cs_param_sles_t * | slesp, | ||
| const cs_matrix_t * | matrix, | ||
| const cs_range_set_t * | rset, | ||
| cs_real_t | normalization, | ||
| bool | rhs_redux, | ||
| cs_sles_t * | sles, | ||
| cs_real_t * | x, | ||
| cs_real_t * | b | ||
| ) | 
Solve a linear system arising from CDO schemes with scalar-valued degrees of freedom.
| [in] | n_scatter_dofs | local number of DoFs (may be != n_gather_elts) | 
| [in] | slesp | pointer to a cs_param_sles_t structure | 
| [in] | matrix | pointer to a cs_matrix_t structure | 
| [in] | rset | pointer to a cs_range_set_t structure | 
| [in] | normalization | value used for the residual normalization | 
| [in] | rhs_redux | do or not a parallel sum reduction on the RHS | 
| [in,out] | sles | pointer to a cs_sles_t structure | 
| [in,out] | x | solution of the linear system (in: initial guess) | 
| [in,out] | b | right-hand side (scatter/gather if needed) | 
| void cs_cdo_solve_sync_rhs_norm | ( | cs_param_resnorm_type_t | type, | 
| double | vol_tot, | ||
| cs_lnum_t | rhs_size, | ||
| const cs_real_t | rhs[], | ||
| double * | normalization | ||
| ) | 
Compute the value of the rhs norm used as a renormalization coefficient for the residual norm when solving the linear system. A pre-computation performed during the cellwise building of the algebraic has been done before this call according to the requested type of renormalization.
| [in] | type | type of renormalization | 
| [in] | vol_tot | total volume of the computational domain | 
| [in] | rhs_size | size of the rhs array | 
| [in] | rhs | array related to the right-hand side | 
| [in,out] | normalization | value of the residual normalization | 
| int cs_cdo_solve_vector_system | ( | cs_lnum_t | n_scatter_elts, | 
| bool | interlace, | ||
| const cs_param_sles_t * | slesp, | ||
| const cs_matrix_t * | matrix, | ||
| const cs_range_set_t * | rset, | ||
| cs_real_t | normalization, | ||
| bool | rhs_redux, | ||
| cs_sles_t * | sles, | ||
| cs_real_t * | x, | ||
| cs_real_t * | b | ||
| ) | 
Solve a linear system arising from CDO schemes with vector-valued degrees of freedom (DoFs). Number of DoFs is equal to 3*n_scatter_elts.
| [in] | n_scatter_elts | local number of elements (may be != n_gather_elts) | 
| [in] | interlace | way to arrange data (true/false) | 
| [in] | slesp | pointer to a cs_param_sles_t structure | 
| [in] | matrix | pointer to a cs_matrix_t structure | 
| [in] | rset | pointer to a cs_range_set_t structure | 
| [in] | normalization | value used for the residual normalization | 
| [in] | rhs_redux | do or not a parallel sum reduction on the RHS | 
| [in,out] | sles | pointer to a cs_sles_t structure | 
| [in,out] | x | solution of the linear system (in: initial guess) | 
| [in,out] | b | right-hand side (scatter/gather if needed) |