My Project
programmer's documentation
|
#include "cs_defs.h"
#include <limits.h>
#include <stdio.h>
#include <stddef.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <ctype.h>
#include <float.h>
#include <assert.h>
#include "bft_printf.h"
#include "bft_error.h"
#include "bft_mem.h"
#include "fvm_periodicity.h"
#include "cs_base.h"
#include "cs_halo.h"
#include "cs_interface.h"
#include "cs_math.h"
#include "cs_mesh.h"
#include "cs_mesh_quantities.h"
#include "cs_notebook.h"
#include "cs_order.h"
#include "cs_parall.h"
#include "cs_prototypes.h"
#include "cs_random.h"
#include "cs_search.h"
#include "cs_time_step.h"
#include "cs_timer_stats.h"
#include "cs_thermal_model.h"
#include "cs_field.h"
#include "cs_field_pointer.h"
#include "cs_lagr.h"
#include "cs_lagr_new.h"
#include "cs_lagr_particle.h"
#include "cs_lagr_stat.h"
#include "cs_lagr_sde.h"
#include "cs_lagr_prototypes.h"
Functions | |
void | cs_user_lagr_ef (cs_real_t dt_p, const cs_real_t taup[], const cs_real_3_t tlag[], const cs_real_3_t piil[], const cs_real_33_t bx[], const cs_real_t tsfext[], const cs_real_33_t vagaus[], const cs_real_3_t gradpr[], const cs_real_33_t gradvf[], cs_real_t rho_p[], cs_real_3_t fextla[]) |
User definition of an external force field acting on the particles. More... | |
void | cs_user_lagr_extra_operations (const cs_real_t dt[]) |
User function (non-mandatory intervention) More... | |
void | cs_user_lagr_imposed_motion (const cs_real_t coords[3], cs_real_t dt, cs_real_t disp[3]) |
Impose the motion of a particle flagged CS_LAGR_PART_IMPOSED_MOTION. More... | |
void | cs_user_lagr_in (cs_lagr_particle_set_t *particles, const cs_lagr_injection_set_t *zis, const cs_lnum_t particle_range[2], const cs_lnum_t particle_face_id[], const cs_real_t visc_length[]) |
User modification of newly injected particles. More... | |
void | cs_user_lagr_rt (cs_lnum_t id_p, cs_real_t re_p, cs_real_t uvwr, cs_real_t rho_f, cs_real_t rho_p, cs_real_t nu_f, cs_real_t taup[], const cs_real_t dt[]) |
Modification of the calculation of the particle relaxation time with respect to the chosen formulation for the drag coefficient. More... | |
void | cs_user_lagr_rt_t (cs_lnum_t id_p, cs_real_t re_p, cs_real_t uvwr, cs_real_t rho_f, cs_real_t rho_p, cs_real_t nu_f, cs_real_t cp_f, cs_real_t k_f, cs_real_t tauc[], const cs_real_t dt[]) |
Modification of the computation of the thermal relaxation time of the particles with respect to the chosen formulation of the Nusselt number. More... | |
void | cs_user_lagr_sde (const cs_real_t dt[], cs_real_t taup[], cs_real_3_t tlag[], cs_real_t tempct[]) |
User integration of the SDE for the user-defined variables. More... | |
void cs_user_lagr_ef | ( | cs_real_t | dt_p, |
const cs_real_t | taup[], | ||
const cs_real_3_t | tlag[], | ||
const cs_real_3_t | piil[], | ||
const cs_real_33_t | bx[], | ||
const cs_real_t | tsfext[], | ||
const cs_real_33_t | vagaus[], | ||
const cs_real_3_t | gradpr[], | ||
const cs_real_33_t | gradvf[], | ||
cs_real_t | rho_p[], | ||
cs_real_3_t | fextla[] | ||
) |
User definition of an external force field acting on the particles.
It must be prescribed in every cell and be homogeneous to gravity (m/s^2) By default gravity and drag force are the only forces acting on the particles (the gravity components gx gy gz are assigned in the GUI or in usipsu)
[in] | dt_p | time step (for the cell) |
[in] | taup | particle relaxation time |
[in] | tlag | relaxation time for the flow |
[in] | piil | term in the integration of the sde |
[in] | bx | characteristics of the turbulence |
[in] | tsfext | infos for the return coupling |
[in] | vagaus | Gaussian random variables |
[in] | gradpr | pressure gradient |
[in] | gradvf | gradient of the flow velocity |
[in,out] | rho_p | particle density |
[out] | fextla | user external force field (m/s^2)$ |
void cs_user_lagr_extra_operations | ( | const cs_real_t | dt[] | ) |
User function (non-mandatory intervention)
User-defined modifications on the variables at the end of the Lagrangian time step and calculation of user-defined additional statistics on the particles.
[in] | dt | time step (per cell) |
Impose the motion of a particle flagged CS_LAGR_PART_IMPOSED_MOTION.
User-defined modifications on the particle position and its velocity.
[in] | coords | old particle coordinates |
[in] | dt | time step (per particle) |
[out] | disp | particle dispacement |
void cs_user_lagr_in | ( | cs_lagr_particle_set_t * | particles, |
const cs_lagr_injection_set_t * | zis, | ||
const cs_lnum_t | particle_range[2], | ||
const cs_lnum_t | particle_face_id[], | ||
const cs_real_t | visc_length[] | ||
) |
User modification of newly injected particles.
This function is called after the initialization of the new particles in order to modify them according to new particle profiles (injection profiles, position of the injection point, statistical weights, correction of the diameter if the standard-deviation option is activated).
This function is called for each injection zone and set. Particles with ids between pset->n_particles
and n_elts
are initialized but may be modidied by this function.
[in,out] | particles | particle set |
[in] | zis | zone injection set data |
[in] | particle_range | start and past-the-end ids of new particles for this zone and class |
[in] | particle_face_id | face ids of new particles if zone is a boundary, NULL otherwise |
[in] | visc_length | viscous layer thickness (size: number of mesh boundary faces) |
void cs_user_lagr_rt | ( | cs_lnum_t | id_p, |
cs_real_t | re_p, | ||
cs_real_t | uvwr, | ||
cs_real_t | rho_f, | ||
cs_real_t | rho_p, | ||
cs_real_t | nu_f, | ||
cs_real_t | taup[], | ||
const cs_real_t | dt[] | ||
) |
Modification of the calculation of the particle relaxation time with respect to the chosen formulation for the drag coefficient.
This function is called in a loop on the particles, so be careful to avoid too costly operations.
m Cp p p Tau = --------------- c 2 PI d h p e Tau : Thermal relaxation time (value to be computed) c m : Particle mass p Cp : Particle specific heat p d : Particle diameter p h : Coefficient of thermal exchange e
he coefficient of thermal exchange is calculated from a Nusselt number, itself evaluated by a correlation (Ranz-Marshall by default)
h d e p Nu = -------- = 2 + 0.55 Re **(0.5) Prt**(0.33) Lambda p Lambda : Thermal conductivity of the carrier field Re : Particle Reynolds number p Prt : Prandtl number
[in] | id_p | particle id |
[in] | re_p | particle Reynolds number |
[in] | uvwr | relative velocity of the particle (flow-seen velocity - part. velocity) |
[in] | rho_f | fluid density at particle position |
[in] | rho_p | particle density |
[in] | nu_f | kinematic viscosity of the fluid at particle position |
[out] | taup | thermal relaxation time |
[in] | dt | time step (per cell) |
void cs_user_lagr_rt_t | ( | cs_lnum_t | id_p, |
cs_real_t | re_p, | ||
cs_real_t | uvwr, | ||
cs_real_t | rho_f, | ||
cs_real_t | rho_p, | ||
cs_real_t | nu_f, | ||
cs_real_t | cp_f, | ||
cs_real_t | k_f, | ||
cs_real_t | tauc[], | ||
const cs_real_t | dt[] | ||
) |
Modification of the computation of the thermal relaxation time of the particles with respect to the chosen formulation of the Nusselt number.
Modification of the calculation of the thermal relaxation time of the particles with respect to the chosen formulation of the Nusselt number.
This function is called in a loop on the particles, so be careful to avoid too costly operations.
[in] | id_p | particle id |
[in] | re_p | particle Reynolds number |
[in] | uvwr | relative velocity of the particle (flow-seen velocity - part. velocity) |
[in] | rho_f | fluid density at particle position |
[in] | rho_p | particle density |
[in] | nu_f | kinematic viscosity of the fluid at particle position |
[in] | cp_f | specific heat of the fluid at particle position |
[in] | k_f | diffusion coefficient of the fluid at particle position |
[out] | tauc | thermal relaxation time |
[in] | dt | time step (per cell) |
void cs_user_lagr_sde | ( | const cs_real_t | dt[], |
cs_real_t | taup[], | ||
cs_real_3_t | tlag[], | ||
cs_real_t | tempct[] | ||
) |
User integration of the SDE for the user-defined variables.
The variables are constant by default. The SDE must be of the form:
T: particle attribute representing the variable Tca: characteristic time for the sde to be prescribed in the array auxl1 PIP: coefficient of the SDE (pseudo RHS) to be prescribed in the array auxl2. If the chosen scheme is first order (nordre=1) then, at the first and only call pip is expressed as a function of the quantities of the previous time step (contained in the particle data). If the chosen scheme is second order (nordre=2) then, at the first call (nor=1) pip is expressed as a function of the quantities of the previous time step, and at the second passage (nor=2) pip is expressed as a function of the quantities of the current time step.
[in] | dt | time step (per cell) |
[in] | taup | particle relaxation time |
[in] | tlag | relaxation time for the flow |
[in] | tempct | characteristic thermal time and implicit source term of return coupling |