/*----------------------------------------------------------------------------*/ /* This file is generated by Code_Saturne, a general-purpose CFD tool. */ /*----------------------------------------------------------------------------*/ #include "cs_defs.h" /*---------------------------------------------------------------------------- * Standard C library headers *----------------------------------------------------------------------------*/ #include #include #if defined(HAVE_MPI) #include #endif /*---------------------------------------------------------------------------- * Local headers *----------------------------------------------------------------------------*/ #include "cs_headers.h" /*----------------------------------------------------------------------------*/ BEGIN_C_DECLS /*----------------------------------------------------------------------------*/ cs_real_t * cs_meg_initialization(const cs_zone_t *zone, const char *field_name) { cs_real_t *new_vals = NULL; /*-----------------------------------------------------------------------*/ /* User defined initialization for variable velocity over zone all_cells */ if (strcmp(zone->name, "all_cells") == 0 && strcmp(field_name, "velocity") == 0 ) { const int vals_size = zone->n_elts * 3; BFT_MALLOC(new_vals, vals_size, cs_real_t); for (cs_lnum_t e_id = 0; e_id < zone->n_elts; e_id++) { cs_lnum_t c_id = zone->elt_ids[e_id]; new_vals[3 * e_id + 0] = 0. ; new_vals[3 * e_id + 1] = 0. ; new_vals[3 * e_id + 2] = 0. ; } } /*-----------------------------------------------------------------------*/ /*----------------------------------------------------------------------*/ /* User defined initialization for variable thermal over zone all_cells */ if (strcmp(zone->name, "all_cells") == 0 && strcmp(field_name, "thermal") == 0 ) { const int vals_size = zone->n_elts * 1; BFT_MALLOC(new_vals, vals_size, cs_real_t); for (cs_lnum_t e_id = 0; e_id < zone->n_elts; e_id++) { cs_lnum_t c_id = zone->elt_ids[e_id]; new_vals[e_id] = 293.15 ; } } /*----------------------------------------------------------------------*/ /*----------------------------------------------------------------------*/ /* User defined initialization for variable traceur over zone all_cells */ if (strcmp(zone->name, "all_cells") == 0 && strcmp(field_name, "traceur") == 0 ) { const int vals_size = zone->n_elts * 1; BFT_MALLOC(new_vals, vals_size, cs_real_t); for (cs_lnum_t e_id = 0; e_id < zone->n_elts; e_id++) { cs_lnum_t c_id = zone->elt_ids[e_id]; new_vals[e_id] = 0 ; } } /*----------------------------------------------------------------------*/ /*------------------------------------------------------------------------*/ /* User defined initialization for variable velocity over zone dessus_rue */ if (strcmp(zone->name, "dessus_rue") == 0 && strcmp(field_name, "velocity") == 0 ) { const cs_real_3_t *xyz = (cs_real_3_t *)cs_glob_mesh_quantities->cell_cen; const int vals_size = zone->n_elts * 3; BFT_MALLOC(new_vals, vals_size, cs_real_t); const cs_real_t H = cs_notebook_parameter_value_by_name("H"); const cs_real_t zref = cs_notebook_parameter_value_by_name("zref"); const cs_real_t Uref = cs_notebook_parameter_value_by_name("Uref"); const cs_real_t z0 = cs_notebook_parameter_value_by_name("z0"); const cs_real_t phi = cs_notebook_parameter_value_by_name("phi"); const cs_real_t pi = cs_math_pi; for (cs_lnum_t e_id = 0; e_id < zone->n_elts; e_id++) { cs_lnum_t c_id = zone->elt_ids[e_id]; const cs_real_t z = xyz[c_id][2]; new_vals[3 * e_id + 0] = sin(phi * pi / 180) * Uref * log((z - H + z0) / z0) / log((zref - H + z0) / z0) ; new_vals[3 * e_id + 1] = cos(phi * pi / 180) * Uref * log((z - H + z0) / z0) / log((zref - H + z0) / z0) ; new_vals[3 * e_id + 2] = 0. ; } } /*------------------------------------------------------------------------*/ /*--------------------------------------------------------------------------*/ /* User defined initialization for variable turbulence over zone dessus_rue */ if (strcmp(zone->name, "dessus_rue") == 0 && strcmp(field_name, "turbulence") == 0 ) { const cs_real_3_t *xyz = (cs_real_3_t *)cs_glob_mesh_quantities->cell_cen; const int vals_size = zone->n_elts * 2; BFT_MALLOC(new_vals, vals_size, cs_real_t); const cs_real_t H = cs_notebook_parameter_value_by_name("H"); const cs_real_t zref = cs_notebook_parameter_value_by_name("zref"); const cs_real_t Uref = cs_notebook_parameter_value_by_name("Uref"); const cs_real_t z0 = cs_notebook_parameter_value_by_name("z0"); const cs_real_t k = cs_notebook_parameter_value_by_name("k"); for (cs_lnum_t e_id = 0; e_id < zone->n_elts; e_id++) { cs_lnum_t c_id = zone->elt_ids[e_id]; const cs_real_t z = xyz[c_id][2]; cs_real_t ustar = k * Uref / (log((zref - H + z0) / z0)) ; new_vals[2 * e_id + 0] = (cs_math_pow2((ustar))) / (pow(0.09, 0.5)) ; new_vals[2 * e_id + 1] = (cs_math_pow3((ustar))) / (k * (z - H + z0)) ; } } /*--------------------------------------------------------------------------*/ /*-----------------------------------------------------------------------*/ /* User defined initialization for variable thermal over zone dessus_rue */ if (strcmp(zone->name, "dessus_rue") == 0 && strcmp(field_name, "thermal") == 0 ) { const int vals_size = zone->n_elts * 1; BFT_MALLOC(new_vals, vals_size, cs_real_t); for (cs_lnum_t e_id = 0; e_id < zone->n_elts; e_id++) { cs_lnum_t c_id = zone->elt_ids[e_id]; new_vals[e_id] = 293.15 ; } } /*-----------------------------------------------------------------------*/ /*-----------------------------------------------------------------------*/ /* User defined initialization for variable traceur over zone dessus_rue */ if (strcmp(zone->name, "dessus_rue") == 0 && strcmp(field_name, "traceur") == 0 ) { const int vals_size = zone->n_elts * 1; BFT_MALLOC(new_vals, vals_size, cs_real_t); for (cs_lnum_t e_id = 0; e_id < zone->n_elts; e_id++) { cs_lnum_t c_id = zone->elt_ids[e_id]; new_vals[e_id] = 0 ; } } /*-----------------------------------------------------------------------*/ return new_vals; } /*----------------------------------------------------------------------------*/ END_C_DECLS