The cs_user_1d_wall_thermal_setup subroutine is used to set global parameters for the 1D-wall thermal module, and will soon replace the cs_user_1d_wall_thermal subroutine.
Postprocessing for the module thermal field can be activated as follows:
void cs_1d_wall_thermal_post_set_status(bool new_status)
Set postprocessing status.
Definition: cs_1d_wall_thermal.cpp:699
To add a 1D wall thermal condition to a given boundary zone, one first needs to define in cs_user_1d_wall_thermal_setup the different parameters related to the zone.
First the zone to couple and number of layers in the 1D mesh:
void cs_1d_wall_thermal_add_zone(const cs_zone_t *zone, const int n_layers)
Add faces of a boundary zone to 1D wall module.
Definition: cs_1d_wall_thermal.cpp:466
const cs_zone_t * cs_boundary_zone_by_name(const char *name)
Return a pointer to a boundary zone based on its name if present.
Definition: cs_boundary_zone.cpp:708
Define the mesh parameters for each layer:
{
const int layer_id = 0;
const int n_pts = 8;
layer_id,
n_pts,
thickness,
geom_factor);
}
void cs_1d_wall_thermal_zone_define_layer_mesh(const cs_zone_t *zone, const int layer_id, const int n_points, const cs_real_t thickness, const cs_real_t refine_factor)
Define a layers' mesh.
Definition: cs_1d_wall_thermal.cpp:512
double cs_real_t
Floating-point value.
Definition: cs_defs.h:332
Define layer's properties:
{
const int layer_id = 0;
layer_id,
T_ini,
}
void cs_1d_wall_thermal_zone_define_layer_properties_const(const cs_zone_t *zone, const int layer_id, const cs_real_t initial_temperature, const cs_real_t thermal_conductivity, const cs_real_t density, const cs_real_t heat_capacity)
Define layer's physical properties.
Definition: cs_1d_wall_thermal.cpp:541
@ rho
Definition: cs_field_pointer.h:96
@ lambda
Definition: cs_field_pointer.h:105
And finally define a boundary condition, which is either a Dirichlet, Neumann or a Robin boundary condition:
{
}
void cs_1d_wall_thermal_zone_define_dirichlet_bc_const(const cs_zone_t *zone, const cs_real_t t_ext)
Define a dirichlet boundary condition.
Definition: cs_1d_wall_thermal.cpp:572
{
}
void cs_1d_wall_thermal_zone_define_neumann_bc_const(const cs_zone_t *zone, const cs_real_t phi_ext)
Define nuemann (flux) boundary conditions.
Definition: cs_1d_wall_thermal.cpp:591
{
}
void cs_1d_wall_thermal_zone_define_robin_bc_const(const cs_zone_t *zone, const cs_real_t t_ext, const cs_real_t h_ext)
Define Robin boundary condition.
Definition: cs_1d_wall_thermal.cpp:611
The cs_user_1d_wall_thermal subroutine, which is now deprecated, is used to set the 1D-wall thermal module parameters.
This function is called 3 times:
- A first call (
iappel == 1) to count faces in the selected zones.
- A second call (
iappel == 2) to initialize associated arrays.
- Subsequent calls (
iappel == 3) at each time step to define and update additional arrays.
Local variables declaration
The values in this example should be defined for each call.
cs_1d_wall_thermal_t * cs_get_glob_1d_wall_thermal(void)
Provide access to cs_glob_1d_wall_thermal.
Definition: cs_1d_wall_thermal.cpp:1806
1D wall thermal module descriptor.
Definition: cs_1d_wall_thermal.h:101
The restart behavior of this module can be modified by adapting the following snippet:
int cs_restart_present(void)
Check if we have a restart directory.
Definition: cs_restart.cpp:2170
bool use_restart
Definition: cs_1d_wall_thermal.h:112
Associatation with boundary zones.
For the first and second initialization passes (iappel = 1 or 2), the associated faces must be determined.
At the first pass, the faces must simply be counted. At the second pass, the list of associated faces is actually set.
The following code illustrates how this can be handled.
if (iappel == 1 || iappel == 2) {
&nlelt, lstelt);
if (iappel == 1) {
}
else if (iappel == 2) {
for (
cs_lnum_t ilelt = 0 ; ilelt < nlelt ; ilelt++) {
wall_thermal->
ifpt1d[ifbt1d] = ifac+1;
ifbt1d++;
}
}
}
Define a templated array class (owner of data)
Definition: cs_array.h:1118
int cs_lnum_t
local mesh entity id
Definition: cs_defs.h:325
void cs_selector_get_b_face_list(const char *criteria, cs_lnum_t *n_b_faces, cs_lnum_t b_face_list[])
Fill a list of boundary faces verifying a given selection criteria.
Definition: cs_selector.cpp:89
cs_lnum_t nfpt1d
Definition: cs_1d_wall_thermal.h:103
cs_lnum_t * ifpt1d
Definition: cs_1d_wall_thermal.h:116
cs_lnum_t n_b_faces
Definition: cs_mesh.h:99
Thermal model setup.
At the second initialization pass (iappel 2), the number of discretization points along each 1d segment, their distribution (based on a geometric progression ratio), the wall thickness, and initial temperature must also be defined:
For the second initialization pass (iappel 2), The list of associated faces is actualley set. Also, the number of discretization points along each 1d segment, their distribution (based on a geometric progression ratio), the wall thickness, and initial temperature must also be defined.
if (iappel == 2) {
}
}
const cs_fluid_properties_t * cs_glob_fluid_properties
Definition: cs_physical_constants.cpp:462
cs_real_t rgpt1d
Definition: cs_1d_wall_thermal.h:69
cs_real_t eppt1d
Definition: cs_1d_wall_thermal.h:66
int nppt1d
Definition: cs_1d_wall_thermal.h:57
cs_1d_wall_thermal_local_model_t * local_models
Definition: cs_1d_wall_thermal.h:125
cs_real_t * tppt1d
Definition: cs_1d_wall_thermal.h:120
double t0
Definition: cs_physical_constants.h:84
Computation
In the solution steps, the solid thermal properties and boundary conditions can be updated at each time step, where the function is called with parameter iappel = 3.
if (iappel == 3) {
const auto cpro_dt =
CS_F_(
dt)->get_val_s();
if (
cdgfbo[face_id][2] <= 1.e-3) {
}
else {
}
}
}
cs_real_t cs_real_3_t[3]
vector of 3 floating-point values
Definition: cs_defs.h:349
@ dt
Definition: cs_field_pointer.h:61
#define CS_F_(e)
Macro used to return a field pointer by its enumerated value.
Definition: cs_field_pointer.h:47
cs_mesh_quantities_t * cs_glob_mesh_quantities
double precision, dimension(:,:), pointer cdgfbo
coordinates of the centers of the boundary faces
Definition: mesh.f90:65
cs_real_t xlmbt1
Definition: cs_1d_wall_thermal.h:82
int iclt1d
Definition: cs_1d_wall_thermal.h:61
cs_real_t rcpt1d
Definition: cs_1d_wall_thermal.h:84
cs_real_t dtpt1d
Definition: cs_1d_wall_thermal.h:87
cs_real_t tept1d
Definition: cs_1d_wall_thermal.h:72
cs_real_3_t * b_face_cog
Definition: cs_mesh_quantities.h:102
cs_lnum_t * b_face_cells
Definition: cs_mesh.h:112