9.0
general documentation
Loading...
Searching...
No Matches
Compressible example

A complete initialization routine with the compresssible module is provided below. When adapting it, it is recommended to remove all parts not needed or than may be handled through the GUI.

/* If this is restarted computation, do not reinitialize values */
if (domain->time_step->nt_prev > 0)
return;
const cs_lnum_t n_cells = domain->mesh->n_cells;
cs_real_t *cvar_pr = CS_F_(p)->val;
cs_real_t *cpro_rho = CS_F_(rho)->val;
cs_real_t *cvar_energ = CS_F_(e_tot)->val;
cs_real_t *cvar_tempk = CS_F_(t_kelvin)->val;
cs_real_3_t *cvar_vel = (cs_real_3_t *)CS_F_(vel)->val;
/* Velocity all components */
cs_array_real_fill_zero(3*n_cells, (cs_real_t*)cvar_vel);
/* User defined scalars */
cs_real_t * cvar_scal = cs_field_by_name("user_name")->val;
/* Initialize each cell value */
cs_array_real_fill_zero(n_cells, cvar_scal);
/* Pressure, Density, Temperature, Total Energy
* Only 2 out of these 4 variables are independent: one may choose to
* initialize any pair of variables picked out of these 4, except
* (Temperature-Energy). The remaining 2 variables will be deduced
* automatically.
* Initialize 2 and only 2 variables
* To do so, set iutile=1 for each of the 2 selected variables
* and iutile=0 for each of the 2 others
* In the example provided below, Pressure and Temperature are
* initialized.
* ithvar indicates which variables have been set:
* it is completed automatically for each variable and
* it must not be modified. */
const int ithvar = cf_model->ithvar;
/* 1. Pressure (Pa) */
if (true) {
cf_model->ithvar = 2*ithvar;
cs_array_real_set_scalar(n_cells, p0, cvar_pr);
}
/* 2. Density (kg.m-3) */
if (false) {
cf_model->ithvar = 3*ithvar;
cs_array_real_set_scalar(n_cells, ro0, cpro_rho);
}
/* 3. Temperature (K -- Warning: Kelvin) */
if (true) {
cf_model->ithvar = 5*ithvar;
cs_array_real_set_scalar(n_cells, t0, cvar_tempk);
}
/* 4. Total Energy (J/kg) */
if (false) {
cf_model->ithvar = 7*ithvar;
cs_array_real_set_scalar(n_cells, cv0*t0, cvar_energ);
}