Functions dedicated to to the linear algebra settings and operations in case of CDO face-based schemes with a monolithic velocity-pressure coupling. More...
#include "cs_defs.h"#include <assert.h>#include <float.h>#include <math.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <bft_mem.h>#include "cs_array.h"#include "cs_blas.h"#include "cs_cdo_blas.h"#include "cs_cdo_solve.h"#include "cs_cdofb_monolithic_sles.h"#include "cs_equation.h"#include "cs_fp_exception.h"#include "cs_matrix_default.h"#include "cs_parall.h"#include "cs_param_sles_setup.h"#include "cs_saddle_solver_setup.h"#include "cs_saddle_system.h"#include "cs_timer.h"#include "cs_macfb_monolithic_sles.h"Functions | |
| void | cs_macfb_monolithic_sles_init_sharing (const cs_mesh_t *mesh, const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant) |
| Set pointers to shared structures. | |
| void | cs_macfb_monolithic_sles_init_system_helper (const cs_navsto_param_t *nsp, const cs_param_saddle_t *saddlep, cs_macfb_monolithic_t *sc) |
| Define the system helper for a MAC-Fb scheme solving the Navier-Stokes equation using a monolithic approach for the velocity-pressure coupling. | |
| void | cs_macfb_monolithic_sles_init_solver (const cs_navsto_param_t *nsp, const cs_param_saddle_t *saddlep, cs_macfb_monolithic_t *sc) |
| Define the saddle solver and its context for a MAC-Fb scheme solving the Navier-Stokes equation using a monolithic approach for the velocity-pressure coupling. | |
| int | cs_macfb_monolithic_sles_alu (const cs_navsto_param_t *nsp, cs_saddle_solver_t *solver, cs_real_t *u_f, cs_real_t *p_c) |
| Solve a linear system arising from the discretization of the Navier-Stokes equation using a monolithic velocity-pressure coupling with a MAC face-based approach. Solve this system using the Augmented Lagrangian-Uzawa algorithm. | |
| int | cs_macfb_monolithic_sles_block_krylov (const cs_navsto_param_t *nsp, cs_saddle_solver_t *solver, cs_real_t *u_f, cs_real_t *p_c) |
| Solve a linear system arising from the discretization of the Navier-Stokes equation with a MAC face-based approach. The system is split into a velocity block and the (unassembled) divergence operator Block preconditioning using a Schur approximation on a Krylov solver such as the GCR or MINRES is available. | |
| int | cs_macfb_monolithic_sles_gkb_inhouse (const cs_navsto_param_t *nsp, cs_saddle_solver_t *solver, cs_real_t *u_f, cs_real_t *p_c) |
| Solve a linear system arising from the discretization of the Navier-Stokes equation using a monolithic velocity-pressure coupling with a MAC face-based approach. Solve this system using the Golub-Kahan Bidiagonalization algorithm. In-house implementation. The PETSc implementation is also available but appears less efficient in our tests. | |
| int | cs_macfb_monolithic_sles_uzawa_cg (const cs_navsto_param_t *nsp, cs_saddle_solver_t *solver, cs_real_t *u_f, cs_real_t *p_c) |
| Solve a linear system arising from the discretization of the Navier-Stokes equation using a monolithic velocity-pressure coupling with a MAC face-based approach. Solve this system using the Uzawa-CG algorithm. | |
Functions dedicated to to the linear algebra settings and operations in case of CDO face-based schemes with a monolithic velocity-pressure coupling.
| int cs_macfb_monolithic_sles_alu | ( | const cs_navsto_param_t * | nsp, |
| cs_saddle_solver_t * | solver, | ||
| cs_real_t * | u_f, | ||
| cs_real_t * | p_c ) |
Solve a linear system arising from the discretization of the Navier-Stokes equation using a monolithic velocity-pressure coupling with a MAC face-based approach. Solve this system using the Augmented Lagrangian-Uzawa algorithm.
| [in] | nsp | set of parameters related to the Navier-Stokes eqs. |
| [in,out] | solver | pointer to a cs_saddle_solver_t structure |
| [in,out] | u_f | values of the velocity at faces (1 components) |
| [in,out] | p_c | values of the pressure in cells |
| int cs_macfb_monolithic_sles_block_krylov | ( | const cs_navsto_param_t * | nsp, |
| cs_saddle_solver_t * | solver, | ||
| cs_real_t * | u_f, | ||
| cs_real_t * | p_c ) |
Solve a linear system arising from the discretization of the Navier-Stokes equation with a MAC face-based approach. The system is split into a velocity block and the (unassembled) divergence operator Block preconditioning using a Schur approximation on a Krylov solver such as the GCR or MINRES is available.
| [in] | nsp | set of parameters related to the Navier-Stokes eqs. |
| [in,out] | solver | pointer to a saddle-point solver |
| [in,out] | u_f | values of the velocity at faces |
| [in,out] | p_c | values of the pressure in cells |
| int cs_macfb_monolithic_sles_gkb_inhouse | ( | const cs_navsto_param_t * | nsp, |
| cs_saddle_solver_t * | solver, | ||
| cs_real_t * | u_f, | ||
| cs_real_t * | p_c ) |
Solve a linear system arising from the discretization of the Navier-Stokes equation using a monolithic velocity-pressure coupling with a MAC face-based approach. Solve this system using the Golub-Kahan Bidiagonalization algorithm. In-house implementation. The PETSc implementation is also available but appears less efficient in our tests.
| [in] | nsp | set of parameters related to the Navier-Stokes eqs. |
| [in,out] | solver | pointer to a cs_saddle_solver_t structure |
| [in,out] | u_f | values of the velocity at faces (1 components) |
| [in,out] | p_c | values of the pressure in cells |
| void cs_macfb_monolithic_sles_init_sharing | ( | const cs_mesh_t * | mesh, |
| const cs_cdo_connect_t * | connect, | ||
| const cs_cdo_quantities_t * | quant ) |
Set pointers to shared structures.
| [in] | mesh | pointer to the mesh structure |
| [in] | connect | pointer to additional CDO connectivities |
| [in] | quant | pointer to additional CDO mesh quantities |
| void cs_macfb_monolithic_sles_init_solver | ( | const cs_navsto_param_t * | nsp, |
| const cs_param_saddle_t * | saddlep, | ||
| cs_macfb_monolithic_t * | sc ) |
Define the saddle solver and its context for a MAC-Fb scheme solving the Navier-Stokes equation using a monolithic approach for the velocity-pressure coupling.
| [in] | nsp | set of parameters for the Navier-Stokes system |
| [in] | saddlep | parameters for solving a saddle-point problem |
| [in,out] | sc | pointer to a context structure cast on-the-fly |
| void cs_macfb_monolithic_sles_init_system_helper | ( | const cs_navsto_param_t * | nsp, |
| const cs_param_saddle_t * | saddlep, | ||
| cs_macfb_monolithic_t * | sc ) |
Define the system helper for a MAC-Fb scheme solving the Navier-Stokes equation using a monolithic approach for the velocity-pressure coupling.
| [in] | nsp | Navier-Stokes paremeters |
| [in] | saddlep | parameters for solving a saddle-point problem |
| [in,out] | sc | pointer to a context structure cast on-the-fly |
| int cs_macfb_monolithic_sles_uzawa_cg | ( | const cs_navsto_param_t * | nsp, |
| cs_saddle_solver_t * | solver, | ||
| cs_real_t * | u_f, | ||
| cs_real_t * | p_c ) |
Solve a linear system arising from the discretization of the Navier-Stokes equation using a monolithic velocity-pressure coupling with a MAC face-based approach. Solve this system using the Uzawa-CG algorithm.
| [in] | nsp | set of parameters related to the Navier-Stokes eqs. |
| [in,out] | solver | pointer to a cs_saddle_solver_t structure |
| [in,out] | u_f | values of the velocity at faces (1 components) |
| [in,out] | p_c | values of the pressure in cells |