8.2
general documentation
Loading...
Searching...
No Matches
cs_equation.h
Go to the documentation of this file.
1#ifndef __CS_EQUATION_H__
2#define __CS_EQUATION_H__
3
4/*============================================================================
5 * Functions to handle the cs_equation_t structure and its related structures
6 *============================================================================*/
7
8/*
9 This file is part of code_saturne, a general-purpose CFD tool.
10
11 Copyright (C) 1998-2024 EDF S.A.
12
13 This program is free software; you can redistribute it and/or modify it under
14 the terms of the GNU General Public License as published by the Free Software
15 Foundation; either version 2 of the License, or (at your option) any later
16 version.
17
18 This program is distributed in the hope that it will be useful, but WITHOUT
19 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
20 FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
21 details.
22
23 You should have received a copy of the GNU General Public License along with
24 this program; if not, write to the Free Software Foundation, Inc., 51 Franklin
25 Street, Fifth Floor, Boston, MA 02110-1301, USA.
26*/
27
28/*----------------------------------------------------------------------------
29 * Local headers
30 *----------------------------------------------------------------------------*/
31
32#include "cs_cdo_connect.h"
33#include "cs_cdo_quantities.h"
34#include "cs_cdo_toolbox.h"
35#include "cs_equation_param.h"
36#include "cs_equation_builder.h"
37#include "cs_field.h"
38#include "cs_mesh.h"
39#include "cs_restart.h"
40#include "cs_time_step.h"
41
42/*----------------------------------------------------------------------------*/
43
45
46/*============================================================================
47 * Macro definitions
48 *============================================================================*/
49
50/*============================================================================
51 * Type definitions
52 *============================================================================*/
53
54typedef struct _cs_equation_t cs_equation_t;
55
81
89
90/*============================================================================
91 * Public function prototypes
92 *============================================================================*/
93
94/*----------------------------------------------------------------------------*/
100/*----------------------------------------------------------------------------*/
101
102int
104
105/*----------------------------------------------------------------------------*/
114/*----------------------------------------------------------------------------*/
115
117cs_equation_by_name(const char *eqname);
118
119/*----------------------------------------------------------------------------*/
128/*----------------------------------------------------------------------------*/
129
131cs_equation_by_field_name(const char *field_name);
132
133/*----------------------------------------------------------------------------*/
144/*----------------------------------------------------------------------------*/
145
146bool
148 const char *fld_name);
149
150/*----------------------------------------------------------------------------*/
163/*----------------------------------------------------------------------------*/
164
166cs_equation_param_by_name(const char *eqname);
167
168/*----------------------------------------------------------------------------*/
178/*----------------------------------------------------------------------------*/
179
181cs_equation_param_by_field_name(const char *field_name);
182
183/*----------------------------------------------------------------------------*/
192/*----------------------------------------------------------------------------*/
193
196
197/*----------------------------------------------------------------------------*/
206/*----------------------------------------------------------------------------*/
207
209cs_equation_by_id(int eq_id);
210
211/*----------------------------------------------------------------------------*/
219/*----------------------------------------------------------------------------*/
220
221const char *
223
224/*----------------------------------------------------------------------------*/
232/*----------------------------------------------------------------------------*/
233
234int
236
237/*----------------------------------------------------------------------------*/
245/*----------------------------------------------------------------------------*/
246
249
250/*----------------------------------------------------------------------------*/
259/*----------------------------------------------------------------------------*/
260
261int
263
264/*----------------------------------------------------------------------------*/
275/*----------------------------------------------------------------------------*/
276
277const cs_range_set_t *
279
280/*----------------------------------------------------------------------------*/
290/*----------------------------------------------------------------------------*/
291
292cs_gnum_t
294 const cs_cdo_quantities_t *cdoq);
295
296/*----------------------------------------------------------------------------*/
305/*----------------------------------------------------------------------------*/
306
309
310/*----------------------------------------------------------------------------*/
318/*----------------------------------------------------------------------------*/
319
322
323/*----------------------------------------------------------------------------*/
330/*----------------------------------------------------------------------------*/
331
332void
334 cs_flag_t flag);
335
336/*----------------------------------------------------------------------------*/
347/*----------------------------------------------------------------------------*/
348
349void
351 void *context,
353
354/*----------------------------------------------------------------------------*/
363/*----------------------------------------------------------------------------*/
364
367
368/*----------------------------------------------------------------------------*/
377/*----------------------------------------------------------------------------*/
378
379void *
381
382/*----------------------------------------------------------------------------*/
391/*----------------------------------------------------------------------------*/
392
395
396/*----------------------------------------------------------------------------*/
406/*----------------------------------------------------------------------------*/
407
408cs_real_t *
410
411/*----------------------------------------------------------------------------*/
419/*----------------------------------------------------------------------------*/
420
421bool
423
424/*----------------------------------------------------------------------------*/
433/*----------------------------------------------------------------------------*/
434
435bool
437
438/*----------------------------------------------------------------------------*/
450/*----------------------------------------------------------------------------*/
451
453cs_equation_add(const char *eqname,
454 const char *varname,
455 cs_equation_type_t eqtype,
456 int dim,
457 cs_param_bc_type_t default_bc);
458
459/*----------------------------------------------------------------------------*/
470/*----------------------------------------------------------------------------*/
471
473cs_equation_add_user(const char *eqname,
474 const char *varname,
475 int dim,
476 cs_param_bc_type_t default_bc);
477
478/*----------------------------------------------------------------------------*/
495/*----------------------------------------------------------------------------*/
496
498cs_equation_add_user_tracer(const char *eqname,
499 const char *varname,
500 int dim,
501 cs_param_bc_type_t default_bc,
502 cs_property_t *time_pty,
503 cs_adv_field_t *adv,
504 cs_property_t *diff_pty);
505/*----------------------------------------------------------------------------*/
509/*----------------------------------------------------------------------------*/
510
511void
513
514/*----------------------------------------------------------------------------*/
521/*----------------------------------------------------------------------------*/
522
523bool
525
526/*----------------------------------------------------------------------------*/
531/*----------------------------------------------------------------------------*/
532
533void
535
536/*----------------------------------------------------------------------------*/
544/*----------------------------------------------------------------------------*/
545
546void
547cs_equation_get_count(int *n_equations,
548 int *n_predef_equations,
549 int *n_user_equations);
550
551/*----------------------------------------------------------------------------*/
555/*----------------------------------------------------------------------------*/
556
557void
559
560/*----------------------------------------------------------------------------*/
567/*----------------------------------------------------------------------------*/
568
569void
571 const char *keyval);
572
573/*----------------------------------------------------------------------------*/
577/*----------------------------------------------------------------------------*/
578
579void
581
582/*----------------------------------------------------------------------------*/
598/*----------------------------------------------------------------------------*/
599
600void
602 const cs_cdo_connect_t *connect,
603 const cs_cdo_quantities_t *cdoq,
604 const cs_time_step_t *time_step,
605 cs_flag_t cb_scheme_flag,
606 cs_flag_t eb_scheme_flag,
607 cs_flag_t fb_scheme_flag,
608 cs_flag_t vb_scheme_flag,
609 cs_flag_t vcb_scheme_flag,
610 cs_flag_t hho_scheme_flag);
611
612/*----------------------------------------------------------------------------*/
623/*----------------------------------------------------------------------------*/
624
625void
627 cs_flag_t eb_scheme_flag,
628 cs_flag_t fb_scheme_flag,
629 cs_flag_t vb_scheme_flag,
630 cs_flag_t vcb_scheme_flag,
631 cs_flag_t hho_scheme_flag);
632
633/*----------------------------------------------------------------------------*/
642/*----------------------------------------------------------------------------*/
643
644bool
646
647/*----------------------------------------------------------------------------*/
652/*----------------------------------------------------------------------------*/
653
654void
656
657/*----------------------------------------------------------------------------*/
673/*----------------------------------------------------------------------------*/
674
675void
677 cs_equation_t *eq);
678
679/*----------------------------------------------------------------------------*/
683/*----------------------------------------------------------------------------*/
684
685void
687
688/*----------------------------------------------------------------------------*/
694/*----------------------------------------------------------------------------*/
695
696void
698
699/*----------------------------------------------------------------------------*/
703/*----------------------------------------------------------------------------*/
704
705void
707
708/*----------------------------------------------------------------------------*/
716/*----------------------------------------------------------------------------*/
717
718void
720 cs_equation_core_t **p_core);
721
722/*----------------------------------------------------------------------------*/
730/*----------------------------------------------------------------------------*/
731
732void
734 const cs_time_step_t *ts);
735
736/*----------------------------------------------------------------------------*/
744/*----------------------------------------------------------------------------*/
745
746void
748 cs_equation_t *eq);
749
750/*----------------------------------------------------------------------------*/
759/*----------------------------------------------------------------------------*/
760
761void
762cs_equation_solve(bool cur2prev,
763 const cs_mesh_t *mesh,
764 cs_equation_t *eq);
765
766/*----------------------------------------------------------------------------*/
774/*----------------------------------------------------------------------------*/
775
776void
778
779/*----------------------------------------------------------------------------*/
788/*----------------------------------------------------------------------------*/
789
790void
791cs_equation_solve_wrapper(bool cur2prev,
792 const char *eqname);
793
794/*----------------------------------------------------------------------------*/
802/*----------------------------------------------------------------------------*/
803
804void
806 cs_equation_t *eq);
807
808/*----------------------------------------------------------------------------*/
815/*----------------------------------------------------------------------------*/
816
817void
819
820/*----------------------------------------------------------------------------*/
829/*----------------------------------------------------------------------------*/
830
833
834/*----------------------------------------------------------------------------*/
843/*----------------------------------------------------------------------------*/
844
847
848/*----------------------------------------------------------------------------*/
859/*----------------------------------------------------------------------------*/
860
863 const int reaction_id);
864
865/*----------------------------------------------------------------------------*/
874/*----------------------------------------------------------------------------*/
875
878
879/*----------------------------------------------------------------------------*/
889/*----------------------------------------------------------------------------*/
890
893
894/*----------------------------------------------------------------------------*/
903/*----------------------------------------------------------------------------*/
904
907
908/*----------------------------------------------------------------------------*/
917/*----------------------------------------------------------------------------*/
918
919int
921
922/*----------------------------------------------------------------------------*/
930/*----------------------------------------------------------------------------*/
931
932int
934
935/*----------------------------------------------------------------------------*/
943/*----------------------------------------------------------------------------*/
944
947
948/*----------------------------------------------------------------------------*/
958/*----------------------------------------------------------------------------*/
959
960double
962 const cs_equation_t *eq);
963
964/*----------------------------------------------------------------------------*/
972/*----------------------------------------------------------------------------*/
973
974void
976
977/*----------------------------------------------------------------------------*/
986/*----------------------------------------------------------------------------*/
987
988void
990 cs_cell_sys_t **csys,
991 cs_cell_builder_t **cb);
992
993/*----------------------------------------------------------------------------*/
1003/*----------------------------------------------------------------------------*/
1004
1005cs_real_t *
1007 bool previous);
1008
1009/*----------------------------------------------------------------------------*/
1019/*----------------------------------------------------------------------------*/
1020
1021cs_real_t *
1023 bool previous);
1024
1025/*----------------------------------------------------------------------------*/
1035/*----------------------------------------------------------------------------*/
1036
1037cs_real_t *
1039 bool previous);
1040
1041/*----------------------------------------------------------------------------*/
1051/*----------------------------------------------------------------------------*/
1052
1053cs_real_t *
1055 bool previous);
1056
1057/*----------------------------------------------------------------------------*/
1069/*----------------------------------------------------------------------------*/
1070
1071void
1073 const cs_cdo_quantities_t *cdoq,
1074 const cs_equation_t *eq,
1075 cs_real_t *result);
1076
1077/*----------------------------------------------------------------------------*/
1088/*----------------------------------------------------------------------------*/
1089
1090void
1092 const cs_equation_t *eq,
1093 cs_real_t *diff_flux);
1094
1095/*----------------------------------------------------------------------------*/
1106/*----------------------------------------------------------------------------*/
1107
1108void
1110 const char *ml_name,
1111 const cs_real_3_t direction,
1112 cs_real_t *diff_flux,
1113 cs_real_t *conv_flux);
1114
1115/*----------------------------------------------------------------------------*/
1154/*----------------------------------------------------------------------------*/
1155
1156void
1158 const cs_equation_param_t *eqp,
1159 const cs_property_t *diff_pty,
1160 const cs_real_t *dof_vals,
1161 const cs_real_t *cell_vals,
1162 cs_flag_t location,
1163 cs_real_t t_eval,
1164 cs_real_t *diff_flux);
1165
1166/*----------------------------------------------------------------------------*/
1173/*----------------------------------------------------------------------------*/
1174
1175void
1177 cs_real_t *v_gradient);
1178
1179/*----------------------------------------------------------------------------*/
1188/*----------------------------------------------------------------------------*/
1189
1190void
1192 const cs_time_step_t *ts,
1193 cs_real_t peclet[]);
1194
1195/*----------------------------------------------------------------------------*/
1202/*----------------------------------------------------------------------------*/
1203
1204void
1206
1207/*----------------------------------------------------------------------------*/
1214/*----------------------------------------------------------------------------*/
1215
1216void
1218
1219/*----------------------------------------------------------------------------*/
1228/*----------------------------------------------------------------------------*/
1229
1230void
1232 const cs_cdo_connect_t *connect,
1233 const cs_cdo_quantities_t *cdoq,
1234 const cs_time_step_t *ts);
1235
1236/*----------------------------------------------------------------------------*/
1248/*----------------------------------------------------------------------------*/
1249
1250void
1252 const cs_property_t *property,
1253 const cs_real_t *pot,
1254 cs_flag_t loc_res,
1255 cs_real_t *res);
1256
1257/*----------------------------------------------------------------------------*/
1262/*----------------------------------------------------------------------------*/
1263
1264void
1266
1267/*----------------------------------------------------------------------------*/
1268
1270
1271#endif /* __CS_EQUATION_H__ */
#define BEGIN_C_DECLS
Definition cs_defs.h:528
double cs_real_t
Floating-point value.
Definition cs_defs.h:332
#define END_C_DECLS
Definition cs_defs.h:529
unsigned short int cs_flag_t
Definition cs_defs.h:334
cs_real_t cs_real_3_t[3]
vector of 3 floating-point values
Definition cs_defs.h:347
cs_equation_t * cs_equation_add_user_tracer(const char *eqname, const char *varname, int dim, cs_param_bc_type_t default_bc, cs_property_t *time_pty, cs_adv_field_t *adv, cs_property_t *diff_pty)
Add a new user transport equation and set a first set of parameters If time_pty is NULL,...
Definition cs_equation.c:1656
cs_real_t * cs_equation_get_cell_values(const cs_equation_t *eq, bool previous)
For a given equation, retrieve an array of values related to each cell of the mesh for the unknowns.
Definition cs_equation.c:3199
void cs_equation_add_build_hook(cs_equation_t *eq, void *context, cs_equation_build_hook_t *func)
Add a hook function to enable an advanced control during the cellwise system building....
Definition cs_equation.c:1373
void cs_equation_define_builders(const cs_mesh_t *mesh)
Allocate and define the builder structure.
Definition cs_equation.c:2708
void cs_equation_predefined_create_field(int n_previous, cs_equation_t *eq)
Create a field structure related to the predefined equation given as parameter. This includes an equa...
Definition cs_equation.c:2652
cs_equation_core_t cs_equation_get_core_structure(const cs_equation_t *eq)
Return a pointer to a structure useful to handle low-level operations for the given equation.
Definition cs_equation.c:964
cs_equation_t * cs_equation_by_id(int eq_id)
Find the cs_equation_t structure with id eq_id Return NULL if not find.
Definition cs_equation.c:694
void cs_equation_lock_settings(void)
After this call, parameters related to an equation are set once for all.
Definition cs_equation.c:2607
void cs_equation_extra_post(void)
Predefined extra-operations related to equations according to the type of numerical scheme (for the s...
Definition cs_equation.c:4137
cs_real_t * cs_equation_get_source_term_array(const cs_equation_t *eq)
Return a pointer to an array of values corresponding to the values of the source terms (cumulated val...
Definition cs_equation.c:993
void cs_equation_write_extra_restart(cs_restart_t *restart)
Write into the restart file additionnal arrays (not defined as fields) but useful for the checkpoint/...
Definition cs_equation.c:3937
void cs_equation_finalize_sharing(cs_flag_t cb_scheme_flag, cs_flag_t eb_scheme_flag, cs_flag_t fb_scheme_flag, cs_flag_t vb_scheme_flag, cs_flag_t vcb_scheme_flag, cs_flag_t hho_scheme_flag)
Free shared local structures among the discretization schemes.
Definition cs_equation.c:2018
cs_property_t * cs_equation_get_time_property(const cs_equation_t *eq)
Return a pointer to the cs_property_t structure associated to the unsteady term for this equation (NU...
Definition cs_equation.c:1067
void cs_equation_post_balance(const cs_mesh_t *mesh, const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *cdoq, const cs_time_step_t *ts)
Predefined extra-operations related to all equations.
Definition cs_equation.c:3962
const cs_range_set_t * cs_equation_get_range_set(const cs_equation_t *eq)
Return the range set structure associated to a cs_equation_t structure. One assumes that there is onl...
Definition cs_equation.c:796
cs_equation_param_t * cs_equation_get_param(const cs_equation_t *eq)
Return the cs_equation_param_t structure associated to a cs_equation_t structure.
Definition cs_equation.c:674
cs_equation_t * cs_equation_add_user(const char *eqname, const char *varname, int dim, cs_param_bc_type_t default_bc)
Add a new user equation structure and set a first set of parameters.
Definition cs_equation.c:1607
void cs_equation_set_default_param(cs_equation_key_t key, const char *keyval)
Set a parameter attached to a keyname for the default settigns.
Definition cs_equation.c:1865
bool cs_equation_set_functions(void)
Assign a set of pointer functions for managing the cs_equation_t structure during the computation Aft...
Definition cs_equation.c:2065
void cs_equation_read_extra_restart(cs_restart_t *restart)
Write into the restart file additionnal arrays (not defined as fields) but useful for the checkpoint/...
Definition cs_equation.c:3914
void cs_equation_set_sles(void)
Setup the linear algebra requirements.
Definition cs_equation.c:1895
void cs_equation_solve(bool cur2prev, const cs_mesh_t *mesh, cs_equation_t *eq)
Build and then solve the linear system for an equation with an unsteady term.
Definition cs_equation.c:3031
void cs_equation_set_flag(cs_equation_t *eq, cs_flag_t flag)
Redefine the flag associated to an equation.
Definition cs_equation.c:1349
int cs_equation_get_space_poly_degree(const cs_equation_t *eq)
Return the max. degree used in the polynomial basis for the space discretization.
Definition cs_equation.c:1209
bool cs_equation_needs_steady_state_solve(void)
Check if a steady-state computation is requested according to the setting.
Definition cs_equation.c:1739
void cs_equation_solve_steady_state(const cs_mesh_t *mesh, cs_equation_t *eq)
Build and then solve the linear system for this equation when the goal is to find the steady state.
Definition cs_equation.c:2995
void * cs_equation_get_scheme_context(const cs_equation_t *eq)
Return a pointer to a structure useful to handle low-level operations for the given equation.
Definition cs_equation.c:944
cs_flag_t cs_equation_get_flag(const cs_equation_t *eq)
Return the flag associated to an equation.
Definition cs_equation.c:1327
cs_param_time_scheme_t cs_equation_get_time_scheme(const cs_equation_t *eq)
Return the type of numerical scheme used for the discretization in time.
Definition cs_equation.c:1116
cs_field_t * cs_equation_get_field(const cs_equation_t *eq)
Return the field structure associated to a cs_equation_t structure.
Definition cs_equation.c:754
cs_param_space_scheme_t cs_equation_get_space_scheme(const cs_equation_t *eq)
Return the type of numerical scheme used for the discretization in space.
Definition cs_equation.c:1187
cs_equation_param_t * cs_equation_param_by_name(const char *eqname)
Return the cs_equation_param_t structure associated to a cs_equation_t structure based on the equatio...
Definition cs_equation.c:615
void cs_equation_get_count(int *n_equations, int *n_predef_equations, int *n_user_equations)
Get the count of equations of each macro type.
Definition cs_equation.c:1813
bool cs_equation_uses_new_mechanism(const cs_equation_t *eq)
Return true is the given equation follows the new mechanism otherwise false.
Definition cs_equation.c:1439
void cs_equation_define_context_structures(void)
Allocate and define the context structure associated to each equation.
Definition cs_equation.c:2737
void cs_equation_log_monitoring(void)
Print a synthesis of the monitoring information in the performance file.
Definition cs_equation.c:1761
const char * cs_equation_get_name(const cs_equation_t *eq)
Return the name related to the given cs_equation_t structure.
Definition cs_equation.c:714
cs_real_t * cs_equation_get_edge_values(const cs_equation_t *eq, bool previous)
For a given equation, retrieve an array of values related to each edge of the mesh for the unknowns.
Definition cs_equation.c:3251
cs_equation_t * cs_equation_by_field_name(const char *field_name)
Return the pointer to a cs_equation_t structure thanks to the field name of the variable field associ...
Definition cs_equation.c:551
void cs_equation_define_core_structure(const cs_equation_t *eq, cs_equation_core_t **p_core)
Build a pointer to a core structure. If the input core structure is not allocated,...
Definition cs_equation.c:2784
void cs_equation_compute_vtx_field_gradient(const cs_equation_t *eq, cs_real_t *v_gradient)
Cellwise computation of the discrete gradient at vertices.
Definition cs_equation.c:3824
void cs_equation_init_field_values(const cs_mesh_t *mesh, const cs_time_step_t *ts)
Set the initialize condition to all variable fields associated to each cs_equation_t structure.
Definition cs_equation.c:2813
void cs_equation_init_sharing(const cs_mesh_t *mesh, const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *cdoq, const cs_time_step_t *time_step, cs_flag_t cb_scheme_flag, cs_flag_t eb_scheme_flag, cs_flag_t fb_scheme_flag, cs_flag_t vb_scheme_flag, cs_flag_t vcb_scheme_flag, cs_flag_t hho_scheme_flag)
Set shared pointers to the main structures. Associate these structures among the activated class of d...
Definition cs_equation.c:1939
cs_equation_builder_t * cs_equation_get_builder(const cs_equation_t *eq)
Return the cs_equation_builder_t structure associated to a cs_equation_t structure....
Definition cs_equation.c:924
void cs_equation_solve_wrapper(bool cur2prev, const char *eqname)
Build and then solve the linear system for an equation with an unsteady term. This is wrapper for the...
Definition cs_equation.c:3106
cs_gnum_t cs_equation_get_global_n_dofs(const cs_equation_t *eq, const cs_cdo_quantities_t *cdoq)
Return the global number of degrees of freedom associated to this cs_equation_t structure.
Definition cs_equation.c:830
void cs_equation_compute_diffusive_flux(const cs_equation_t *eq, const cs_equation_param_t *eqp, const cs_property_t *diff_pty, const cs_real_t *dof_vals, const cs_real_t *cell_vals, cs_flag_t location, cs_real_t t_eval, cs_real_t *diff_flux)
Computation of the diffusive flux across the requested location. If the location is not the "natural"...
Definition cs_equation.c:3608
bool cs_equation_is_steady(const cs_equation_t *eq)
Return true is the given equation is steady otherwise false.
Definition cs_equation.c:1414
cs_property_t * cs_equation_get_diffusion_property(const cs_equation_t *eq)
Return a pointer to the cs_property_t structure associated to the diffusion term for this equation (N...
Definition cs_equation.c:1045
bool cs_equation_has_field_name(const cs_equation_t *eq, const char *fld_name)
Check if the asociated field to a cs_equation_t structure has name equal to fld_name.
Definition cs_equation.c:583
cs_property_t * cs_equation_get_reaction_property(const cs_equation_t *eq, const int reaction_id)
Return a pointer to the cs_property_t structure associated to the reaction term with id equal to reac...
Definition cs_equation.c:1091
void cs_equation_compute_boundary_diff_flux(cs_real_t t_eval, const cs_equation_t *eq, cs_real_t *diff_flux)
Compute the diffusive flux across all boundary faces According to the space discretization scheme,...
Definition cs_equation.c:3420
cs_real_t * cs_equation_get_face_values(const cs_equation_t *eq, bool previous)
For a given equation, retrieve an array of values related to each face of the mesh for the unknowns.
Definition cs_equation.c:3225
void cs_equation_compute_flux_across_plane(const cs_equation_t *eq, const char *ml_name, const cs_real_3_t direction, cs_real_t *diff_flux, cs_real_t *conv_flux)
Compute the diffusive and convective flux across a plane defined by a mesh location structure attache...
Definition cs_equation.c:3505
cs_equation_t * cs_equation_by_name(const char *eqname)
Find the cs_equation_t structure with name eqname Return NULL if not find.
Definition cs_equation.c:517
void cs_equation_current_to_previous(const cs_equation_t *eq)
Apply the current to previous to all fields (and potentially arrays) related to an equation....
Definition cs_equation.c:3143
void cs_equation_integrate_variable(const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *cdoq, const cs_equation_t *eq, cs_real_t *result)
Compute the integral over the domain of the variable field associated to the given equation....
Definition cs_equation.c:3305
void cs_equation_build_system(const cs_mesh_t *mesh, cs_equation_t *eq)
Build the linear system for this equation (deprecated). Only for HHO schemes.
Definition cs_equation.c:2865
void cs_equation_apply_stiffness(cs_equation_t *eq, const cs_property_t *property, const cs_real_t *pot, cs_flag_t loc_res, cs_real_t *res)
Compute the cellwise stiffness matrix associated to the property given as a parameter and apply it to...
Definition cs_equation.c:4090
void cs_equation_destroy_all(void)
Destroy all cs_equation_t structures.
Definition cs_equation.c:1692
void cs_equation_get_cellwise_builders(const cs_equation_t *eq, cs_cell_sys_t **csys, cs_cell_builder_t **cb)
For a given equation, retrieve the related cellwise builder structures: cs_cell_builder_t and cs_cell...
Definition cs_equation.c:3172
void cs_equation_log_setup(void)
Summarize all cs_equation_t structures.
Definition cs_equation.c:1829
void cs_equation_user_create_fields(void)
Create a field structure related to all user-defined equations.
Definition cs_equation.c:2679
cs_real_t cs_equation_get_theta_time_val(const cs_equation_t *eq)
Return the value of the theta parameter in theta time scheme discretization.
Definition cs_equation.c:1139
cs_real_t * cs_equation_get_vertex_values(const cs_equation_t *eq, bool previous)
For a given equation, retrieve an array of values related to each vertex of the mesh for the unknowns...
Definition cs_equation.c:3277
cs_field_t * cs_equation_get_boundary_flux(const cs_equation_t *eq)
Return the field structure for the (normal) boundary flux associated to a cs_equation_t structure.
Definition cs_equation.c:902
int cs_equation_get_id(const cs_equation_t *eq)
Return the id number related to the given cs_equation_t structure.
Definition cs_equation.c:734
cs_equation_type_t cs_equation_get_type(const cs_equation_t *eq)
Return the type of equation for the given equation structure.
Definition cs_equation.c:1251
void cs_equation_solve_steady_state_wrapper(const char *eqname)
Build and then solve the linear system for a steady-state equation. This is wrapper for the FORTRAN i...
Definition cs_equation.c:3068
double cs_equation_get_time_eval(const cs_time_step_t *ts, const cs_equation_t *eq)
Estimate the time at which the evaluation of properties related to the different terms of an equation...
Definition cs_equation.c:1274
cs_equation_t * cs_equation_add(const char *eqname, const char *varname, cs_equation_type_t eqtype, int dim, cs_param_bc_type_t default_bc)
Add a new equation structure and set a first set of parameters.
Definition cs_equation.c:1477
int cs_equation_get_field_id(const cs_equation_t *eq)
Return the id related to the variable field structure associated to the cs_equation_t structure.
Definition cs_equation.c:774
cs_equation_param_t * cs_equation_param_by_field_name(const char *field_name)
Return the cs_equation_param_t structure related to a cs_equation_t structure thanks to the field nam...
Definition cs_equation.c:649
int cs_equation_get_var_dim(const cs_equation_t *eq)
Return the dimension of the variable solved by this equation.
Definition cs_equation.c:1230
int cs_equation_get_n_equations(void)
Retrieve the number of equations.
Definition cs_equation.c:500
void cs_equation_compute_peclet(const cs_equation_t *eq, const cs_time_step_t *ts, cs_real_t peclet[])
Compute and post-process Peclet number if requested.
Definition cs_equation.c:3864
void cs_equation_solve_deprecated(cs_equation_t *eq)
Solve the linear system for this equation (deprecated). Only for HHO schemes.
Definition cs_equation.c:2893
void cs_equation_build_hook_t(const cs_equation_param_t *eqp, const cs_equation_builder_t *eqb, const void *eqc, const cs_cell_mesh_t *cm, void *context, cs_hodge_t *mass_hodge, cs_hodge_t *diff_hodge, cs_cell_sys_t *csys, cs_cell_builder_t *cb)
Generic function prototype for a hook during the cellwise building of the linear system Enable an adv...
Definition cs_equation_builder.h:76
cs_equation_key_t
List of available keys for setting the parameters of an equation.
Definition cs_equation_param.h:1184
cs_equation_type_t
Type of equations managed by the solver.
Definition cs_equation_param.h:172
cs_param_space_scheme_t
Type of numerical scheme for the discretization in space.
Definition cs_param_types.h:211
cs_param_bc_type_t
Definition cs_param_types.h:476
cs_param_time_scheme_t
Definition cs_param_types.h:274
struct _cs_restart_t cs_restart_t
Definition cs_restart.h:95
Definition mesh.f90:26
Definition cs_equation_priv.h:321
Definition cs_advection_field.h:150
Definition cs_cdo_connect.h:61
Definition cs_cdo_quantities.h:137
Set of local and temporary buffers.
Definition cs_cdo_local.h:60
Set of arrays and local (small) dense matrices related to a mesh cell This is a key structure for bui...
Definition cs_cdo_local.h:147
Store common elements used when building an algebraic system related to an equation.
Main structures on which an equation structure relies.
Definition cs_equation.h:82
void * scheme_context
Definition cs_equation.h:86
cs_equation_builder_t * builder
Definition cs_equation.h:85
cs_equation_param_t * param
Definition cs_equation.h:84
Set of parameters to handle an unsteady convection-diffusion-reaction equation with term sources.
Definition cs_equation_param.h:193
Main structure to handle the discretization and the resolution of an equation.
Field descriptor.
Definition cs_field.h:131
Definition cs_mesh.h:85
Structure associated to the definition of a property relying on the cs_xdef_t structure.
Definition cs_range_set.h:57
time step descriptor
Definition cs_time_step.h:64