#include "cs_defs.h"#include <assert.h>#include "bft_mem.h"#include "bft_error.h"#include "bft_printf.h"#include "cs_air_props.h"#include "cs_cdo_headers.h"#include "cs_ale.h"#include "cs_array.h"#include "cs_atmo.h"#include "cs_balance.h"#include "cs_blas.h"#include "cs_boundary_conditions.h"#include "cs_boundary_conditions_set_coeffs.h"#include "cs_cf_thermo.h"#include "cs_convection_diffusion.h"#include "cs_divergence.h"#include "cs_equation_iterative_solve.h"#include "cs_face_viscosity.h"#include "cs_field.h"#include "cs_field_default.h"#include "cs_field_operator.h"#include "cs_field_pointer.h"#include "cs_gradient.h"#include "cs_halo.h"#include "cs_lagr.h"#include "cs_log.h"#include "cs_matrix_building.h"#include "cs_mesh_location.h"#include "cs_parall.h"#include "cs_parameters.h"#include "cs_physical_constants.h"#include "cs_physical_model.h"#include "cs_porous_model.h"#include "cs_post.h"#include "cs_prototypes.h"#include "cs_sat_coupling.h"#include "cs_sles_default.h"#include "cs_thermal_model.h"#include "cs_time_step.h"#include "cs_velocity_pressure.h"#include "cs_vof.h"#include "cs_volume_mass_injection.h"#include "cs_pressure_correction.h" Include dependency graph for cs_pressure_correction.cpp:
 Include dependency graph for cs_pressure_correction.cpp:| Macros | |
| #define | CS_PRESSURE_CORRECTION_CDO_DBG 0 | 
| Functions | |
| static void | _hydrostatic_pressure_compute (const cs_mesh_t *m, cs_mesh_quantities_t *mq, int *indhyd, int iterns, const cs_real_t frcxt[][3], const cs_real_t dfrcxt[][3], cs_real_t cvar_hydro_pres[], cs_real_t iflux[], cs_real_t bflux[], cs_real_t i_visc[], cs_real_t b_visc[], cs_real_t dam[], cs_real_t xam[], cs_real_t dphi[], cs_real_t rhs[]) | 
| Poisson equation resolution for hydrostatic pressure:  .  More... | |
| static void | _pressure_correction_fv (int iterns, cs_lnum_t nfbpcd, cs_lnum_t ncmast, cs_lnum_t ifbpcd[], cs_lnum_t ltmast[], const int isostd[], cs_real_t vel[restrict][3], cs_real_t da_uu[restrict][6], cs_field_bc_coeffs_t *bc_coeffs_v, cs_field_bc_coeffs_t *bc_coeffs_dp, cs_real_t spcond[restrict], cs_real_t svcond[restrict], cs_real_t frcxt[restrict][3], cs_real_t dfrcxt[restrict][3], cs_real_t i_visc[restrict], cs_real_t b_visc[restrict]) | 
| Perform the pressure correction step of the Navier-Stokes equations for incompressible or slightly compressible flows.  More... | |
| static void | _pressure_correction_cdo (cs_real_t vel[restrict][3], cs_field_bc_coeffs_t *bc_coeffs_v) | 
| Perform the pressure correction step of the Navier-Stokes equations for incompressible or slightly compressible flows.  More... | |
| static cs_pressure_correction_cdo_t * | _pressure_correction_cdo_create (void) | 
| Create and initialize a cs_pressure_correction_cdo_t structure.  More... | |
| void | cs_pressure_correction_fv_activate (void) | 
| Activate the pressure increment solving with Legacy FV.  More... | |
| void | cs_pressure_correction_cdo_activate (void) | 
| Activate the pressure increment solving with CDO.  More... | |
| void | cs_pressure_correction_model_activate (void) | 
| Activate the pressure increment, either FV or CDO.  More... | |
| bool | cs_pressure_correction_cdo_is_activated (void) | 
| Test if pressure solving with CDO is activated.  More... | |
| void | cs_pressure_correction_cdo_init_setup (void) | 
| Start setting-up the pressure increment equation At this stage, numerical settings should be completely determined but connectivity and geometrical information is not yet available.  More... | |
| void | cs_pressure_correction_cdo_finalize_setup (const cs_domain_t *domain) | 
| Finalize setting-up the pressure increment equation At this stage, numerical settings should be completely determined.  More... | |
| void | cs_pressure_correction_cdo_destroy_all (void) | 
| Free the main structure related to the pressure correction.  More... | |
| void | cs_pressure_correction (int iterns, cs_lnum_t nfbpcd, cs_lnum_t ncmast, cs_lnum_t ifbpcd[], cs_lnum_t ltmast[], const int isostd[], cs_real_t vel[restrict][3], cs_real_t da_uu[restrict][6], cs_field_bc_coeffs_t *bc_coeffs_v, cs_field_bc_coeffs_t *bc_coeffs_dp, cs_real_t spcond[restrict], cs_real_t svcond[restrict], cs_real_t frcxt[restrict][3], cs_real_t dfrcxt[restrict][3], cs_real_t i_visc[restrict], cs_real_t b_visc[restrict]) | 
| Perform the pressure correction step of the Navier-Stokes equations for incompressible or slightly compressible flows.  More... | |
| Variables | |
| static const char | _err_empty_prcdo [] | 
| static bool | cs_pressure_correction_cdo_active = false | 
| static cs_pressure_correction_cdo_t * | cs_pressure_correction_cdo = NULL | 
| #define CS_PRESSURE_CORRECTION_CDO_DBG 0 | 
| 
 | static | 
Poisson equation resolution for hydrostatic pressure:  .
. 
| [in] | m | pointer to glob mesh | 
| [in] | mq | pointer to glob mesh quantiites | 
| [out] | indhyd | indicateur de mise a jour de cvar_hydro_pres | 
| [in] | iterns | Navier-Stokes iteration number | 
| [in] | frcxt | external force generating hydrostatic pressure | 
| [in] | dfrcxt | external force increment generating hydrostatic pressure | 
| [out] | cvar_hydro_pres | hydrostatic pressure increment | 
| [in] | iflux | work array | 
| [in] | bflux | work array | 
| [in,out] | i_visc | work array | 
| [in,out] | b_visc | work array | 
| [in,out] | dam | work array | 
| [in,out] | xam | work array | 
| [in,out] | dphi | work array | 
| [in,out] | rhs | work array | 
| 
 | static | 
Perform the pressure correction step of the Navier-Stokes equations for incompressible or slightly compressible flows.
![\[ - DIV \cdot Hdg \cdot GRAD \left(\delta p \right) = - \divs \left( \rho \vect{\widetilde{u}}\right) \]](form_245.png) 
![\[ \dot{m}^{n+1} = \dot{m}^{n} - Hodge \cdot GRAD \left(\delta p \right) \]](form_246.png) 
| [in] | vel | velocity values | 
| [in] | bc_coeffs_v | boundary condition coefficients | 
| 
 | static | 
Create and initialize a cs_pressure_correction_cdo_t structure.
| 
 | static | 
Perform the pressure correction step of the Navier-Stokes equations for incompressible or slightly compressible flows.
This function solves the following Poisson equation on the pressure:
![\[ D \left( \Delta t, \delta p \right) = \divs \left( \rho \vect{\widetilde{u}}\right) - \Gamma^n + \dfrac{\rho^n - \rho^{n-1}}{\Delta t} \]](form_241.png) 
The mass flux is then updated as follows:
![\[ \dot{m}^{n+1}_\ij = \dot{m}^{n}_\ij - \Delta t \grad_\fij \delta p \cdot \vect{S}_\ij \]](form_242.png) 
Please refer to the resopv section of the theory guide for more information.
| [in] | iterns | Navier-Stokes iteration number | 
| [in] | nfbpcd | number of faces with condensation source term | 
| [in] | ncmast | number of cells with condensation source terms | 
| [in] | ifbpcd | index of faces with condensation source term | 
| [in] | ltmast | list of cells with condensation source terms (1 to n numbering) | 
| [in] | isostd | indicator of standard outlet and index of the reference outlet face | 
| [in] | vel | velocity | 
| [in,out] | da_uu | velocity matrix | 
| [in] | bc_coeffs_v | boundary condition structure for the variable | 
| [in] | bc_coeffs_dp | boundary conditions structure for the pressure increment | 
| [in] | spcond | variable value associated to the condensation source term (for ivar=ipr, spcond is the flow rate  ) | 
| [in] | svcond | variable value associated to the condensation source term (for ivar=ipr, svcond is the flow rate  ) | 
| [in] | frcxt | external forces making hydrostatic pressure | 
| [in] | dfrcxt | variation of the external forces composing the hydrostatic pressure | 
| [in] | i_visc | visc*surface/dist aux faces internes | 
| [in] | b_visc | visc*surface/dist aux faces de bord | 
| void cs_pressure_correction | ( | int | iterns, | 
| cs_lnum_t | nfbpcd, | ||
| cs_lnum_t | ncmast, | ||
| cs_lnum_t | ifbpcd[], | ||
| cs_lnum_t | ltmast[], | ||
| const int | isostd[], | ||
| cs_real_t | vel[restrict][3], | ||
| cs_real_t | da_uu[restrict][6], | ||
| cs_field_bc_coeffs_t * | bc_coeffs_v, | ||
| cs_field_bc_coeffs_t * | bc_coeffs_dp, | ||
| cs_real_t | spcond[restrict], | ||
| cs_real_t | svcond[restrict], | ||
| cs_real_t | frcxt[restrict][3], | ||
| cs_real_t | dfrcxt[restrict][3], | ||
| cs_real_t | i_visc[restrict], | ||
| cs_real_t | b_visc[restrict] | ||
| ) | 
Perform the pressure correction step of the Navier-Stokes equations for incompressible or slightly compressible flows.
This function solves the following Poisson equation on the pressure:
![\[ D \left( \Delta t, \delta p \right) = \divs \left( \rho \vect{\widetilde{u}}\right) - \Gamma^n + \dfrac{\rho^n - \rho^{n-1}}{\Delta t} \]](form_241.png) 
Either the legacy FV method or a CDO face-based scheme is used.
For the legacy case, the mass flux is updated as follows:
![\[ \dot{m}^{n+1}_\ij = \dot{m}^{n}_\ij - \Delta t \grad_\fij \delta p \cdot \vect{S}_\ij \]](form_242.png) 
Please refer to the resopv section of the theory guide for more information.
| [in] | iterns | Navier-Stokes iteration number | 
| [in] | nfbpcd | number of faces with condensation source term | 
| [in] | ncmast | number of cells with condensation source terms | 
| [in] | ifbpcd | index of faces with condensation source term | 
| [in] | ltmast | list of cells with condensation source terms (1 to n numbering) | 
| [in] | isostd | indicator of standard outlet and index of the reference outlet face | 
| [in] | vel | velocity | 
| [in,out] | da_uu | velocity matrix | 
| [in] | bc_coeffs_v | boundary condition structure for the variable | 
| [in] | bc_coeffs_dp | boundary conditions structure for the pressure increment | 
| [in] | spcond | variable value associated to the condensation source term (for ivar=ipr, spcond is the flow rate  ) | 
| [in] | svcond | variable value associated to the condensation source term (for ivar=ipr, svcond is the flow rate  ) | 
| [in] | frcxt | external forces making hydrostatic pressure | 
| [in] | dfrcxt | variation of the external forces composing the hydrostatic pressure | 
| [in] | i_visc | visc*surface/dist aux faces internes | 
| [in] | b_visc | visc*surface/dist aux faces de bord | 
| void cs_pressure_correction_cdo_activate | ( | void | ) | 
Activate the pressure increment solving with CDO.
| void cs_pressure_correction_cdo_destroy_all | ( | void | ) | 
Free the main structure related to the pressure correction.
| void cs_pressure_correction_cdo_finalize_setup | ( | const cs_domain_t * | domain | ) | 
Finalize setting-up the pressure increment equation At this stage, numerical settings should be completely determined.
| [in] | domain | pointer to a cs_domaint_t structure | 
| void cs_pressure_correction_cdo_init_setup | ( | void | ) | 
Start setting-up the pressure increment equation At this stage, numerical settings should be completely determined but connectivity and geometrical information is not yet available.
| bool cs_pressure_correction_cdo_is_activated | ( | void | ) | 
Test if pressure solving with CDO is activated.
| void cs_pressure_correction_fv_activate | ( | void | ) | 
Activate the pressure increment solving with Legacy FV.
| void cs_pressure_correction_model_activate | ( | void | ) | 
Activate the pressure increment, either FV or CDO.
| 
 | static | 
| 
 | static | 
| 
 | static |