8.3
general documentation
cs_equation_system.h
Go to the documentation of this file.
1#ifndef __CS_EQUATION_SYSTEM_H__
2#define __CS_EQUATION_SYSTEM_H__
3
4/*============================================================================
5 * Functions to handle a set of coupled equations hinging on the cs_equation_t
6 * structure
7 *============================================================================*/
8
9/*
10 This file is part of code_saturne, a general-purpose CFD tool.
11
12 Copyright (C) 1998-2024 EDF S.A.
13
14 This program is free software; you can redistribute it and/or modify it under
15 the terms of the GNU General Public License as published by the Free Software
16 Foundation; either version 2 of the License, or (at your option) any later
17 version.
18
19 This program is distributed in the hope that it will be useful, but WITHOUT
20 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
21 FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
22 details.
23
24 You should have received a copy of the GNU General Public License along with
25 this program; if not, write to the Free Software Foundation, Inc., 51 Franklin
26 Street, Fifth Floor, Boston, MA 02110-1301, USA.
27*/
28
29/*----------------------------------------------------------------------------
30 * Local headers
31 *----------------------------------------------------------------------------*/
32
33#include "cs_equation.h"
34#include "cs_equation_priv.h"
36#include "cs_param_types.h"
37
38/*----------------------------------------------------------------------------*/
39
41
42/*============================================================================
43 * Macro definitions
44 *============================================================================*/
45
46/*============================================================================
47 * Type definitions
48 *============================================================================*/
49
50/*----------------------------------------------------------------------------*/
66/*----------------------------------------------------------------------------*/
67
68typedef void *
71 cs_equation_core_t **core_array,
73
74/*----------------------------------------------------------------------------*/
90/*----------------------------------------------------------------------------*/
91
92typedef void *
94 cs_equation_core_t **core_array,
95 void *sys_context);
96
97/*----------------------------------------------------------------------------*/
109/*----------------------------------------------------------------------------*/
110
111typedef void
113 const cs_time_step_t *time_step,
114 int n_eqs,
116 cs_equation_core_t **blocks,
117 void *sys_context,
119
120
125typedef struct {
126
137
155
156 void *context;
157
174
200
225
228
234
235/*============================================================================
236 * Public function prototypes
237 *============================================================================*/
238
239/*----------------------------------------------------------------------------*/
245/*----------------------------------------------------------------------------*/
246
247int
249
250/*----------------------------------------------------------------------------*/
258/*----------------------------------------------------------------------------*/
259
261cs_equation_system_by_id(int sys_id);
262
263/*----------------------------------------------------------------------------*/
272/*----------------------------------------------------------------------------*/
273
276
277/*----------------------------------------------------------------------------*/
287/*----------------------------------------------------------------------------*/
288
290cs_equation_system_add(const char *sysname,
291 int n_eqs,
292 int block_var_dim);
293
294/*----------------------------------------------------------------------------*/
298/*----------------------------------------------------------------------------*/
299
300void
302
303/*----------------------------------------------------------------------------*/
307/*----------------------------------------------------------------------------*/
308
309void
311
312/*----------------------------------------------------------------------------*/
317/*----------------------------------------------------------------------------*/
318
319void
321
322/*----------------------------------------------------------------------------*/
331/*----------------------------------------------------------------------------*/
332
333void
335 const cs_cdo_connect_t *connect,
336 const cs_cdo_quantities_t *quant,
337 const cs_time_step_t *time_step);
338
339/*----------------------------------------------------------------------------*/
344/*----------------------------------------------------------------------------*/
345
346void
348
349/*----------------------------------------------------------------------------*/
353/*----------------------------------------------------------------------------*/
354
355void
357
358/*----------------------------------------------------------------------------*/
366/*----------------------------------------------------------------------------*/
367
368void
370
371/*----------------------------------------------------------------------------*/
379/*----------------------------------------------------------------------------*/
380
381void
383 bool cur2prev,
384 cs_equation_system_t *eqsys);
385
386/*----------------------------------------------------------------------------*/
395/*----------------------------------------------------------------------------*/
396
397void
399 cs_equation_t *eq,
400 cs_equation_system_t *eqsys);
401
402/*----------------------------------------------------------------------------*/
412/*----------------------------------------------------------------------------*/
413
414void
416 int col_id,
418 cs_equation_system_t *eqsys);
419
420/*----------------------------------------------------------------------------*/
421
423
424#endif /* __CS_EQUATION_SYSTEM_H__ */
#define BEGIN_C_DECLS
Definition: cs_defs.h:542
#define END_C_DECLS
Definition: cs_defs.h:543
cs_equation_system_t * cs_equation_system_by_id(int sys_id)
Retrieve the pointer to the equation system related to the given id.
Definition: cs_equation_system.cpp:288
void *() cs_equation_system_free_t(int n_eqs, cs_equation_core_t **core_array, void *sys_context)
Free an array of structures (equation parameters, equation builders or scheme context) for each equat...
Definition: cs_equation_system.h:93
void cs_equation_system_init_sharing(const cs_mesh_t *mesh, const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant, const cs_time_step_t *time_step)
Assign a set of shared pointer to the main structures.
Definition: cs_equation_system.cpp:488
void cs_equation_system_assign_param(int row_id, int col_id, cs_equation_param_t *eqp, cs_equation_system_t *eqsys)
Assign the given equation parameters to the block with ids (row_id, col_id) in the block matrix.
Definition: cs_equation_system.cpp:812
void cs_equation_system_assign_equation(int row_id, cs_equation_t *eq, cs_equation_system_t *eqsys)
Assign the given equation to the diagonal block located at position (row_id, row_id) in the matrix of...
Definition: cs_equation_system.cpp:765
void cs_equation_system_destroy_all(void)
Destroy all cs_equation_system_t structures.
Definition: cs_equation_system.cpp:358
void cs_equation_system_log_setup(void)
Log the setup for all structures managing systems of equations.
Definition: cs_equation_system.cpp:375
void cs_equation_system_solve(const cs_time_step_t *time_step, bool cur2prev, cs_equation_system_t *eqsys)
Solve of a system of coupled equations. Unsteady case.
Definition: cs_equation_system.cpp:719
void() cs_equation_system_solve_t(bool c2p, const cs_time_step_t *time_step, int n_eqs, cs_equation_system_param_t *sysp, cs_equation_core_t **blocks, void *sys_context, cs_cdo_system_helper_t *sh)
Build and solve a linear system within the CDO framework.
Definition: cs_equation_system.h:112
void cs_equation_system_define(void)
Define the builder and scheme context structures associated to all the systems of equations which hav...
Definition: cs_equation_system.cpp:660
void cs_equation_system_set_functions(void)
Assign a set of pointer functions for managing all the systems of equations.
Definition: cs_equation_system.cpp:555
cs_equation_system_param_t * cs_equation_system_param_by_id(int sys_id)
Retrieve the pointer to the set of parameters of a system of equations related to the given id.
Definition: cs_equation_system.cpp:308
void cs_equation_system_log_monitoring(void)
Print a synthesis of the monitoring information in the performance file.
Definition: cs_equation_system.cpp:458
int cs_equation_system_get_n_systems(void)
Get the number of systems of equations.
Definition: cs_equation_system.cpp:272
cs_equation_system_t * cs_equation_system_add(const char *sysname, int n_eqs, int block_var_dim)
Add a new structure to handle system of coupled equations.
Definition: cs_equation_system.cpp:329
void cs_equation_system_set_sles(void)
Set the SLES associated to each system of equations.
Definition: cs_equation_system.cpp:621
void *() cs_equation_system_define_t(int n_eqs, const cs_equation_system_param_t *sysp, cs_equation_core_t **core_array, cs_cdo_system_helper_t **p_sh)
Create and initialize equation builders and scheme context for each equation which are in the extra-d...
Definition: cs_equation_system.h:69
Definition: mesh.f90:26
Definition: cs_cdo_connect.h:61
Definition: cs_cdo_quantities.h:139
Definition: cs_cdo_system.h:377
Main structures on which an equation structure relies.
Definition: cs_equation.h:82
Set of parameters to handle an unsteady convection-diffusion-reaction equation with term sources.
Definition: cs_equation_param.h:192
Main structure storing the parameter settings.
Definition: cs_equation_system_param.h:72
Main structure to handle a set of coupled equations.
Definition: cs_equation_system.h:125
cs_equation_system_free_t * free
Definition: cs_equation_system.h:224
void * context
Definition: cs_equation_system.h:156
cs_equation_t ** equations
Definition: cs_equation_system.h:173
cs_equation_system_solve_t * solve_steady_state_system
Definition: cs_equation_system.h:227
cs_equation_system_param_t * param
Definition: cs_equation_system.h:136
int timer_id
Definition: cs_equation_system.h:139
cs_timer_counter_t timer
Definition: cs_equation_system.h:138
cs_equation_core_t ** block_factories
Definition: cs_equation_system.h:199
cs_equation_system_define_t * define
Definition: cs_equation_system.h:223
cs_cdo_system_helper_t * system_helper
Definition: cs_equation_system.h:154
cs_equation_system_solve_t * solve_system
Definition: cs_equation_system.h:226
int n_equations
Definition: cs_equation_system.h:172
Main structure to handle the discretization and the resolution of an equation.
Definition: cs_mesh.h:85
time step descriptor
Definition: cs_time_step.h:64
Definition: cs_timer.h:55