7.1
general documentation
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-2021 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_equation_param.h"
35 #include "cs_equation_common.h"
36 #include "cs_field.h"
37 #include "cs_mesh.h"
38 #include "cs_restart.h"
39 #include "cs_time_step.h"
40 
41 /*----------------------------------------------------------------------------*/
42 
44 
45 /*============================================================================
46  * Macro definitions
47  *============================================================================*/
48 
49 /*============================================================================
50  * Type definitions
51  *============================================================================*/
52 
53 typedef struct _cs_equation_t cs_equation_t;
54 
55 /*============================================================================
56  * Public function prototypes
57  *============================================================================*/
58 
59 /*----------------------------------------------------------------------------*/
65 /*----------------------------------------------------------------------------*/
66 
67 int
69 
70 /*----------------------------------------------------------------------------*/
79 /*----------------------------------------------------------------------------*/
80 
82 cs_equation_by_name(const char *eqname);
83 
84 /*----------------------------------------------------------------------------*/
93 /*----------------------------------------------------------------------------*/
94 
96 cs_equation_by_field_name(const char *field_name);
97 
98 /*----------------------------------------------------------------------------*/
109 /*----------------------------------------------------------------------------*/
110 
111 bool
113  const char *fld_name);
114 
115 /*----------------------------------------------------------------------------*/
128 /*----------------------------------------------------------------------------*/
129 
131 cs_equation_param_by_name(const char *eqname);
132 
133 /*----------------------------------------------------------------------------*/
143 /*----------------------------------------------------------------------------*/
144 
146 cs_equation_param_by_field_name(const char *field_name);
147 
148 /*----------------------------------------------------------------------------*/
157 /*----------------------------------------------------------------------------*/
158 
161 
162 /*----------------------------------------------------------------------------*/
171 /*----------------------------------------------------------------------------*/
172 
174 cs_equation_by_id(int eq_id);
175 
176 /*----------------------------------------------------------------------------*/
184 /*----------------------------------------------------------------------------*/
185 
186 const char *
188 
189 /*----------------------------------------------------------------------------*/
197 /*----------------------------------------------------------------------------*/
198 
199 int
201 
202 /*----------------------------------------------------------------------------*/
210 /*----------------------------------------------------------------------------*/
211 
212 cs_field_t *
214 
215 /*----------------------------------------------------------------------------*/
224 /*----------------------------------------------------------------------------*/
225 
226 int
228 
229 /*----------------------------------------------------------------------------*/
238 /*----------------------------------------------------------------------------*/
239 
240 const cs_range_set_t *
242 
243 /*----------------------------------------------------------------------------*/
253 /*----------------------------------------------------------------------------*/
254 
255 cs_gnum_t
257  const cs_cdo_quantities_t *cdoq);
258 
259 /*----------------------------------------------------------------------------*/
268 /*----------------------------------------------------------------------------*/
269 
270 cs_field_t *
272 
273 /*----------------------------------------------------------------------------*/
281 /*----------------------------------------------------------------------------*/
282 
283 cs_flag_t
285 
286 /*----------------------------------------------------------------------------*/
293 /*----------------------------------------------------------------------------*/
294 
295 void
297  cs_flag_t flag);
298 
299 /*----------------------------------------------------------------------------*/
310 /*----------------------------------------------------------------------------*/
311 
312 void
314  void *context,
316 
317 /*----------------------------------------------------------------------------*/
326 /*----------------------------------------------------------------------------*/
327 
330 
331 /*----------------------------------------------------------------------------*/
340 /*----------------------------------------------------------------------------*/
341 
342 void *
344 
345 /*----------------------------------------------------------------------------*/
353 /*----------------------------------------------------------------------------*/
354 
355 bool
357 
358 /*----------------------------------------------------------------------------*/
366 /*----------------------------------------------------------------------------*/
367 
368 bool
370 
371 /*----------------------------------------------------------------------------*/
383 /*----------------------------------------------------------------------------*/
384 
386 cs_equation_add(const char *eqname,
387  const char *varname,
388  cs_equation_type_t eqtype,
389  int dim,
390  cs_param_bc_type_t default_bc);
391 
392 /*----------------------------------------------------------------------------*/
403 /*----------------------------------------------------------------------------*/
404 
406 cs_equation_add_user(const char *eqname,
407  const char *varname,
408  int dim,
409  cs_param_bc_type_t default_bc);
410 
411 /*----------------------------------------------------------------------------*/
428 /*----------------------------------------------------------------------------*/
429 
431 cs_equation_add_user_tracer(const char *eqname,
432  const char *varname,
433  int dim,
434  cs_param_bc_type_t default_bc,
435  cs_property_t *time_pty,
436  cs_adv_field_t *adv,
437  cs_property_t *diff_pty);
438 /*----------------------------------------------------------------------------*/
442 /*----------------------------------------------------------------------------*/
443 
444 void
446 
447 /*----------------------------------------------------------------------------*/
454 /*----------------------------------------------------------------------------*/
455 
456 bool
458 
459 /*----------------------------------------------------------------------------*/
464 /*----------------------------------------------------------------------------*/
465 
466 void
468 
469 /*----------------------------------------------------------------------------*/
477 /*----------------------------------------------------------------------------*/
478 
479 void
480 cs_equation_get_count(int *n_equations,
481  int *n_predef_equations,
482  int *n_user_equations);
483 
484 /*----------------------------------------------------------------------------*/
488 /*----------------------------------------------------------------------------*/
489 
490 void
492 
493 /*----------------------------------------------------------------------------*/
500 /*----------------------------------------------------------------------------*/
501 
502 void
504  const char *keyval);
505 
506 /*----------------------------------------------------------------------------*/
510 /*----------------------------------------------------------------------------*/
511 
512 void
514 
515 /*----------------------------------------------------------------------------*/
529 /*----------------------------------------------------------------------------*/
530 
531 void
533  const cs_cdo_quantities_t *quant,
534  const cs_time_step_t *time_step,
535  cs_flag_t eb_scheme_flag,
536  cs_flag_t fb_scheme_flag,
537  cs_flag_t vb_scheme_flag,
538  cs_flag_t vcb_scheme_flag,
539  cs_flag_t hho_scheme_flag);
540 
541 /*----------------------------------------------------------------------------*/
552 /*----------------------------------------------------------------------------*/
553 
554 void
556  cs_flag_t vcb_scheme_flag,
557  cs_flag_t eb_scheme_flag,
558  cs_flag_t fb_scheme_flag,
559  cs_flag_t hho_scheme_flag);
560 
561 /*----------------------------------------------------------------------------*/
568 /*----------------------------------------------------------------------------*/
569 
570 void
572 
573 /*----------------------------------------------------------------------------*/
582 /*----------------------------------------------------------------------------*/
583 
584 bool
586 
587 /*----------------------------------------------------------------------------*/
591 /*----------------------------------------------------------------------------*/
592 
593 void
595 
596 /*----------------------------------------------------------------------------*/
607 /*----------------------------------------------------------------------------*/
608 
609 void
611  const cs_time_step_t *ts,
612  const cs_cdo_quantities_t *quant,
613  cs_cdo_connect_t *connect);
614 
615 /*----------------------------------------------------------------------------*/
623 /*----------------------------------------------------------------------------*/
624 
625 void
627  cs_equation_t *eq);
628 
629 /*----------------------------------------------------------------------------*/
638 /*----------------------------------------------------------------------------*/
639 
640 void
641 cs_equation_solve(bool cur2prev,
642  const cs_mesh_t *mesh,
643  cs_equation_t *eq);
644 
645 /*----------------------------------------------------------------------------*/
653 /*----------------------------------------------------------------------------*/
654 
655 void
656 cs_equation_solve_steady_state_wrapper(const char *eqname);
657 
658 /*----------------------------------------------------------------------------*/
667 /*----------------------------------------------------------------------------*/
668 
669 void
670 cs_equation_solve_wrapper(bool cur2prev,
671  const char *eqname);
672 
673 /*----------------------------------------------------------------------------*/
680 /*----------------------------------------------------------------------------*/
681 
682 void
684  cs_equation_t *eq);
685 
686 /*----------------------------------------------------------------------------*/
692 /*----------------------------------------------------------------------------*/
693 
694 void
696 
697 /*----------------------------------------------------------------------------*/
706 /*----------------------------------------------------------------------------*/
707 
710 
711 /*----------------------------------------------------------------------------*/
720 /*----------------------------------------------------------------------------*/
721 
724 
725 /*----------------------------------------------------------------------------*/
737 /*----------------------------------------------------------------------------*/
738 
741  const int reaction_id);
742 
743 /*----------------------------------------------------------------------------*/
752 /*----------------------------------------------------------------------------*/
753 
756 
757 /*----------------------------------------------------------------------------*/
767 /*----------------------------------------------------------------------------*/
768 
769 cs_real_t
771 
772 /*----------------------------------------------------------------------------*/
781 /*----------------------------------------------------------------------------*/
782 
785 
786 /*----------------------------------------------------------------------------*/
795 /*----------------------------------------------------------------------------*/
796 
797 int
799 
800 /*----------------------------------------------------------------------------*/
808 /*----------------------------------------------------------------------------*/
809 
810 int
812 
813 /*----------------------------------------------------------------------------*/
821 /*----------------------------------------------------------------------------*/
822 
825 
826 /*----------------------------------------------------------------------------*/
834 /*----------------------------------------------------------------------------*/
835 
836 void
838 
839 /*----------------------------------------------------------------------------*/
848 /*----------------------------------------------------------------------------*/
849 
850 void
852  cs_cell_sys_t **csys,
853  cs_cell_builder_t **cb);
854 
855 /*----------------------------------------------------------------------------*/
865 /*----------------------------------------------------------------------------*/
866 
867 cs_real_t *
869  bool previous);
870 
871 /*----------------------------------------------------------------------------*/
881 /*----------------------------------------------------------------------------*/
882 
883 cs_real_t *
885  bool previous);
886 
887 /*----------------------------------------------------------------------------*/
897 /*----------------------------------------------------------------------------*/
898 
899 cs_real_t *
901  bool previous);
902 
903 /*----------------------------------------------------------------------------*/
913 /*----------------------------------------------------------------------------*/
914 
915 cs_real_t *
917  bool previous);
918 
919 /*----------------------------------------------------------------------------*/
929 /*----------------------------------------------------------------------------*/
930 
931 void
933  const cs_cdo_quantities_t *cdoq,
934  const cs_equation_t *eq,
935  cs_real_t *result);
936 
937 /*----------------------------------------------------------------------------*/
948 /*----------------------------------------------------------------------------*/
949 
950 void
952  const cs_equation_t *eq,
953  cs_real_t *diff_flux);
954 
955 /*----------------------------------------------------------------------------*/
966 /*----------------------------------------------------------------------------*/
967 
968 void
970  const char *ml_name,
971  const cs_real_3_t direction,
972  cs_real_t *diff_flux,
973  cs_real_t *conv_flux);
974 
975 /*----------------------------------------------------------------------------*/
985 /*----------------------------------------------------------------------------*/
986 
987 void
989  cs_flag_t location,
990  cs_real_t t_eval,
991  cs_real_t *diff_flux);
992 
993 /*----------------------------------------------------------------------------*/
1000 /*----------------------------------------------------------------------------*/
1001 
1002 void
1004  cs_real_t *v_gradient);
1005 
1006 /*----------------------------------------------------------------------------*/
1015 /*----------------------------------------------------------------------------*/
1016 
1017 void
1019  const cs_time_step_t *ts,
1020  cs_real_t peclet[]);
1021 
1022 /*----------------------------------------------------------------------------*/
1029 /*----------------------------------------------------------------------------*/
1030 
1031 void
1033 
1034 /*----------------------------------------------------------------------------*/
1041 /*----------------------------------------------------------------------------*/
1042 
1043 void
1045 
1046 /*----------------------------------------------------------------------------*/
1055 /*----------------------------------------------------------------------------*/
1056 
1057 void
1059  const cs_cdo_connect_t *connect,
1060  const cs_cdo_quantities_t *cdoq,
1061  const cs_time_step_t *ts);
1062 
1063 /*----------------------------------------------------------------------------*/
1068 /*----------------------------------------------------------------------------*/
1069 
1070 void
1072 
1073 /*----------------------------------------------------------------------------*/
1074 
1076 
1077 #endif /* __CS_EQUATION_H__ */
Store common elements used when building an algebraic system related to an equation.
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:3515
time step descriptor
Definition: cs_time_step.h:64
unsigned long cs_gnum_t
global mesh entity number
Definition: cs_defs.h:301
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:906
Definition: cs_advection_field.h:149
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:3467
void cs_equation_set_flag(cs_equation_t *eq, cs_flag_t flag)
Redefine the flag associated to an equation.
Definition: cs_equation.c:779
Field descriptor.
Definition: cs_field.h:125
Set of parameters to handle an unsteady convection-diffusion-reaction equation with term sources...
Definition: cs_equation_param.h:177
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:1995
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:3223
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. Only for an advanced usage.
Definition: cs_equation.c:844
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:2976
#define BEGIN_C_DECLS
Definition: cs_defs.h:510
void cs_equation_set_sles(void)
Setup the linear algebra requirements.
Definition: cs_equation.c:1575
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:3138
bool cs_equation_uses_new_mechanism(const cs_equation_t *eq)
Return true is the given equation is steady otherwise false.
Definition: cs_equation.c:1136
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:2868
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:2897
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:1545
Definition: cs_cdo_connect.h:79
void cs_equation_compute_diff_flux_cellwise(const cs_equation_t *eq, cs_flag_t location, cs_real_t t_eval, cs_real_t *diff_flux)
Cellwise computation of the diffusive flux across all cell faces. Primal or dual faces are considered...
Definition: cs_equation.c:3296
void cs_equation_build_system(const cs_mesh_t *mesh, cs_equation_t *eq)
Build the linear system for this equation.
Definition: cs_equation.c:2568
double cs_real_t
Floating-point value.
Definition: cs_defs.h:322
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:3028
Definition: cs_cdo_quantities.h:129
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:146
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:931
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:497
Definition: cs_mesh.h:84
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:3002
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:542
void cs_equation_log_setup(void)
Summarize all cs_equation_t structures.
Definition: cs_equation.c:1508
cs_param_space_scheme_t
Type of numerical scheme for the discretization in space.
Definition: cs_param_types.h:180
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:522
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:399
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:1027
void cs_equation_initialize(const cs_mesh_t *mesh, const cs_time_step_t *ts, const cs_cdo_quantities_t *quant, cs_cdo_connect_t *connect)
Allocate and initialize the builder of the algebraic system. Set the initialize condition to all vari...
Definition: cs_equation.c:2509
void cs_equation_unset_shared_structures(cs_flag_t vb_scheme_flag, cs_flag_t vcb_scheme_flag, cs_flag_t eb_scheme_flag, cs_flag_t fb_scheme_flag, cs_flag_t hho_scheme_flag)
Release shared structures among the activated class of discretization schemes.
Definition: cs_equation.c:1740
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:956
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:2950
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:864
struct _cs_restart_t cs_restart_t
Definition: cs_restart.h:93
Definition: cs_range_set.h:57
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:3636
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:736
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:3377
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:884
void cs_equation_solve_deprecated(cs_equation_t *eq)
Solve the linear system for this equation.
Definition: cs_equation.c:2609
Set of local and temporary buffers.
Definition: cs_cdo_local.h:60
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:582
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:1315
cs_equation_key_t
List of available keys for setting the parameters of an equation.
Definition: cs_equation_param.h:1086
cs_real_t cs_real_3_t[3]
vector of 3 floating-point values
Definition: cs_defs.h:335
cs_equation_type_t
Type of equations managed by the solver.
Definition: cs_equation_param.h:156
char *restrict varname
Definition: cs_equation_priv.h:330
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:1363
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:622
void cs_equation_create_fields(void)
Create a field structure related to all cs_equation_t structures.
Definition: cs_equation.c:2404
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:431
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:1091
void cs_equation_add_user_hook(cs_equation_t *eq, void *context, cs_equation_user_hook_t *func)
Add a user hook to enable an advanced user to get a fine control of the cellwise system building...
Definition: cs_equation.c:803
#define END_C_DECLS
Definition: cs_defs.h:511
unsigned short int cs_flag_t
Definition: cs_defs.h:324
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:2756
cs_param_bc_type_t
Definition: cs_param_types.h:439
cs_flag_t cs_equation_get_flag(const cs_equation_t *eq)
Return the flag associated to an equation.
Definition: cs_equation.c:757
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:663
bool cs_equation_needs_steady_state_solve(void)
Check if a steady-state computation is requested according to the setting.
Definition: cs_equation.c:1443
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:602
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.
Definition: cs_equation.c:642
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:1173
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:3419
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:2793
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:463
void cs_equation_set_shared_structures(const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant, const cs_time_step_t *time_step, 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 structures among the activated class of discretization schemes.
Definition: cs_equation.c:1615
void() cs_equation_user_hook_t(const cs_equation_param_t *eqp, const cs_equation_builder_t *eqb, const void *eq_context, const cs_cell_mesh_t *cm, 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_common.h:93
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:1070
void cs_equation_set_range_set(const cs_cdo_connect_t *connect)
Assign a cs_range_set_t structures for synchronization when computing in parallel mode...
Definition: cs_equation.c:1782
void cs_equation_destroy_all(void)
Destroy all cs_equation_t structures.
Definition: cs_equation.c:1396
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:1492
Main structure to handle the discretization and the resolution of an equation.
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:2719
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:2924
cs_param_time_scheme_t
Definition: cs_param_types.h:242
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:562
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:365
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:1049
Structure associated to the definition of a property relying on the cs_xdef_t structure.
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:3490
Definition: cs_equation_priv.h:323
int cs_equation_get_n_equations(void)
Retrieve the number of equations.
Definition: cs_equation.c:348
Definition: mesh.f90:26
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:2831
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:979
void cs_equation_log_monitoring(void)
Print a synthesis of the monitoring information in the performance file.
Definition: cs_equation.c:1465
bool cs_equation_is_steady(const cs_equation_t *eq)
Return true is the given equation is steady otherwise false.
Definition: cs_equation.c:1112