7.3
general documentation
cs_hodge.h
Go to the documentation of this file.
1 #ifndef __CS_HODGE_H__
2 #define __CS_HODGE_H__
3 
4 /*============================================================================
5  * Manage discrete Hodge operators and closely related operators
6  *============================================================================*/
7 
8 /*
9  This file is part of code_saturne, a general-purpose CFD tool.
10 
11  Copyright (C) 1998-2022 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  * Standard C library headers
30  *----------------------------------------------------------------------------*/
31 
32 /*----------------------------------------------------------------------------
33  * Local headers
34  *----------------------------------------------------------------------------*/
35 
36 #include "cs_cdo_connect.h"
37 #include "cs_cdo_local.h"
38 #include "cs_cdo_quantities.h"
39 #include "cs_param_cdo.h"
40 #include "cs_property.h"
41 #include "cs_sdm.h"
42 
43 /*----------------------------------------------------------------------------*/
44 
46 
47 /*============================================================================
48  * Macro and type definitions
49  *============================================================================*/
50 
81 typedef enum {
82 
90 
92 
94 
135 typedef enum {
136 
143 
145 
147 
154 typedef struct {
155 
156  bool inv_pty;
157 
168  double coef;
169 
177 
178 /* DISCRETE HODGE OPERATORS */
179 /* ======================== */
180 
186 typedef struct {
187 
191 
198  cs_sdm_t *matrix;
200 } cs_hodge_t;
201 
202 /*----------------------------------------------------------------------------*/
218 /*----------------------------------------------------------------------------*/
219 
220 typedef bool
222  cs_hodge_t *hodge,
223  cs_cell_builder_t *cb);
224 
225 /*============================================================================
226  * Static inline public function definitions
227  *============================================================================*/
228 
229 /*----------------------------------------------------------------------------*/
239 /*----------------------------------------------------------------------------*/
240 
241 static inline bool
243  const cs_hodge_param_t h2_info)
244 {
245  if (h1_info.type != h2_info.type)
246  return false;
247  if (h1_info.algo != h2_info.algo)
248  return false;
249  if (h1_info.algo == CS_HODGE_ALGO_COST ||
250  h1_info.algo == CS_HODGE_ALGO_BUBBLE) {
251  if (fabs(h1_info.coef - h2_info.coef) > 0)
252  return false;
253  else
254  return true;
255  }
256  else
257  return true;
258 }
259 
260 /*============================================================================
261  * Public function definitions
262  *============================================================================*/
263 
264 /*----------------------------------------------------------------------------*/
276 /*----------------------------------------------------------------------------*/
277 
278 cs_hodge_t *
279 cs_hodge_create(const cs_cdo_connect_t *connect,
280  const cs_property_t *property,
281  const cs_hodge_param_t *hp,
282  bool need_tensor,
283  bool need_eigen);
284 
285 /*----------------------------------------------------------------------------*/
299 /*----------------------------------------------------------------------------*/
300 
301 cs_hodge_t **
303  const cs_property_t *property,
304  const cs_hodge_param_t *hp,
305  bool need_tensor,
306  bool need_eigen);
307 
308 /*----------------------------------------------------------------------------*/
314 /*----------------------------------------------------------------------------*/
315 
316 void
317 cs_hodge_free(cs_hodge_t **p_hodge);
318 
319 /*----------------------------------------------------------------------------*/
325 /*----------------------------------------------------------------------------*/
326 
327 void
328 cs_hodge_free_context(cs_hodge_t ***p_hodges);
329 
330 /*----------------------------------------------------------------------------*/
339 /*----------------------------------------------------------------------------*/
340 
342 cs_hodge_get_func(const char *calling_func,
343  const cs_hodge_param_t hp);
344 
345 /*----------------------------------------------------------------------------*/
359 /*----------------------------------------------------------------------------*/
360 
362 cs_hodge_set_mass_algo(const char *eqname,
363  cs_hodge_algo_t reac_algo,
364  cs_hodge_algo_t time_algo,
365  cs_hodge_algo_t srct_algo);
366 
367 /*----------------------------------------------------------------------------*/
375 /*----------------------------------------------------------------------------*/
376 
377 void
378 cs_hodge_param_log(const char *prefix,
379  const cs_property_t *property,
380  const cs_hodge_param_t hp);
381 
382 /*----------------------------------------------------------------------------*/
390 /*----------------------------------------------------------------------------*/
391 
392 void
394  cs_hodge_param_t *h_cpy);
395 
396 /*----------------------------------------------------------------------------*/
407 /*----------------------------------------------------------------------------*/
408 
409 void
411  const cs_real_t t_eval,
412  const cs_flag_t c_flag,
413  cs_hodge_t *hodge);
414 
415 /*----------------------------------------------------------------------------*/
427 /*----------------------------------------------------------------------------*/
428 
429 void
431  const cs_real_t t_eval,
432  const cs_flag_t c_flag,
433  cs_hodge_t *hodge);
434 
435 /*----------------------------------------------------------------------------*/
448 /*----------------------------------------------------------------------------*/
449 
450 bool
452  cs_hodge_t *hodge,
453  cs_cell_builder_t *cb);
454 
455 /*----------------------------------------------------------------------------*/
469 /*----------------------------------------------------------------------------*/
470 
471 bool
473  cs_hodge_t *hodge,
474  cs_cell_builder_t *cb);
475 
476 /*----------------------------------------------------------------------------*/
489 /*----------------------------------------------------------------------------*/
490 
491 bool
493  cs_hodge_t *hodge,
494  cs_cell_builder_t *cb);
495 
496 /*----------------------------------------------------------------------------*/
509 /*----------------------------------------------------------------------------*/
510 
511 bool
513  cs_hodge_t *hodge,
514  cs_cell_builder_t *cb);
515 
516 /*----------------------------------------------------------------------------*/
529 /*----------------------------------------------------------------------------*/
530 
531 bool
533  cs_hodge_t *hodge,
534  cs_cell_builder_t *cb);
535 
536 /*----------------------------------------------------------------------------*/
549 /*----------------------------------------------------------------------------*/
550 
551 bool
553  cs_hodge_t *hodge,
554  cs_cell_builder_t *cb);
555 
556 /*----------------------------------------------------------------------------*/
569 /*----------------------------------------------------------------------------*/
570 
571 bool
573  cs_hodge_t *hodge,
574  cs_cell_builder_t *cb);
575 
576 /*----------------------------------------------------------------------------*/
591 /*----------------------------------------------------------------------------*/
592 
593 bool
595  cs_hodge_t *hodge,
596  cs_cell_builder_t *cb);
597 
598 /*----------------------------------------------------------------------------*/
611 /*----------------------------------------------------------------------------*/
612 
613 bool
615  cs_hodge_t *hodge,
616  cs_cell_builder_t *cb);
617 
618 /*----------------------------------------------------------------------------*/
631 /*----------------------------------------------------------------------------*/
632 
633 bool
635  cs_hodge_t *hodge,
636  cs_cell_builder_t *cb);
637 
638 /*----------------------------------------------------------------------------*/
650 /*----------------------------------------------------------------------------*/
651 
652 bool
654  cs_hodge_t *hodge,
655  cs_cell_builder_t *cb);
656 
657 /*----------------------------------------------------------------------------*/
669 /*----------------------------------------------------------------------------*/
670 
671 bool
673  cs_hodge_t *hodge,
674  cs_cell_builder_t *cb);
675 
676 /*----------------------------------------------------------------------------*/
689 /*----------------------------------------------------------------------------*/
690 
691 bool
693  cs_hodge_t *hodge,
694  cs_cell_builder_t *cb);
695 
696 /*----------------------------------------------------------------------------*/
709 /*----------------------------------------------------------------------------*/
710 
711 bool
713  cs_hodge_t *hodge,
714  cs_cell_builder_t *cb);
715 
716 /*----------------------------------------------------------------------------*/
728 /*----------------------------------------------------------------------------*/
729 
730 bool
732  cs_hodge_t *hodge,
733  cs_cell_builder_t *cb);
734 
735 /*----------------------------------------------------------------------------*/
748 /*----------------------------------------------------------------------------*/
749 
750 bool
752  cs_hodge_t *hodge,
753  cs_cell_builder_t *cb);
754 
755 /*----------------------------------------------------------------------------*/
768 /*----------------------------------------------------------------------------*/
769 
770 bool
772  cs_hodge_t *hodge,
773  cs_cell_builder_t *cb);
774 
775 /*----------------------------------------------------------------------------*/
788 /*----------------------------------------------------------------------------*/
789 
790 bool
792  cs_hodge_t *hodge,
793  cs_cell_builder_t *cb);
794 
795 /*----------------------------------------------------------------------------*/
808 /*----------------------------------------------------------------------------*/
809 
810 bool
812  cs_hodge_t *hodge,
813  cs_cell_builder_t *cb);
814 
815 /*----------------------------------------------------------------------------*/
829 /*----------------------------------------------------------------------------*/
830 
831 bool
833  cs_hodge_t *hodge,
834  cs_cell_builder_t *cb);
835 
836 /*----------------------------------------------------------------------------*/
851 /*----------------------------------------------------------------------------*/
852 
853 bool
855  cs_hodge_t *hodge,
856  cs_cell_builder_t *cb);
857 
858 /*----------------------------------------------------------------------------*/
871 /*----------------------------------------------------------------------------*/
872 
873 bool
875  cs_hodge_t *hodge,
876  cs_cell_builder_t *cb);
877 
878 /*----------------------------------------------------------------------------*/
891 /*----------------------------------------------------------------------------*/
892 
893 bool
895  cs_hodge_t *hodge,
896  cs_cell_builder_t *cb);
897 
898 /*----------------------------------------------------------------------------*/
911 /*----------------------------------------------------------------------------*/
912 
913 bool
915  cs_hodge_t *hodge,
916  cs_cell_builder_t *cb);
917 
918 /*----------------------------------------------------------------------------*/
931 /*----------------------------------------------------------------------------*/
932 
933 bool
935  cs_hodge_t *hodge,
936  cs_cell_builder_t *cb);
937 
938 /*----------------------------------------------------------------------------*/
950 /*----------------------------------------------------------------------------*/
951 
952 bool
954  cs_hodge_t *hodge,
955  cs_cell_builder_t *cb);
956 
957 /*----------------------------------------------------------------------------*/
970 /*----------------------------------------------------------------------------*/
971 
972 bool
974  cs_hodge_t *hodge,
975  cs_cell_builder_t *cb);
976 
977 /*----------------------------------------------------------------------------*/
989 /*----------------------------------------------------------------------------*/
990 
991 bool
993  cs_hodge_t *hodge,
994  cs_cell_builder_t *cb);
995 
996 /*----------------------------------------------------------------------------*/
1009 /*----------------------------------------------------------------------------*/
1010 
1011 bool
1013  cs_hodge_t *hodge,
1014  cs_cell_builder_t *cb);
1015 
1016 /*----------------------------------------------------------------------------*/
1029 /*----------------------------------------------------------------------------*/
1030 
1031 void
1032 cs_hodge_matvec(const cs_cdo_connect_t *connect,
1033  const cs_cdo_quantities_t *quant,
1034  const cs_hodge_param_t hodgep,
1035  const cs_property_t *pty,
1036  const cs_real_t in_vals[],
1037  cs_real_t t_eval,
1038  cs_real_t result[]);
1039 
1040 /*----------------------------------------------------------------------------*/
1053 /*----------------------------------------------------------------------------*/
1054 
1055 void
1057  const cs_cdo_quantities_t *quant,
1058  cs_real_t t_eval,
1059  const cs_hodge_param_t hodgep,
1060  const cs_property_t *pty,
1061  const cs_real_t flux[],
1062  cs_real_t circul[]);
1063 
1064 /*----------------------------------------------------------------------------*/
1073 /*----------------------------------------------------------------------------*/
1074 
1075 void
1077  cs_sdm_t *hf);
1078 
1079 /*----------------------------------------------------------------------------*/
1080 
1082 
1083 #endif /* __CS_HODGE_H__ */
Definition: cs_hodge.h:86
bool cs_hodge_vpcd_voro_get(const cs_cell_mesh_t *cm, cs_hodge_t *hodge, cs_cell_builder_t *cb)
Build a local Hodge operator for a given cell using VORONOI algo. Hodge op. from primal vertices to d...
Definition: cs_hodge.c:3449
void cs_hodge_compute_wbs_surfacic(const cs_face_mesh_t *fm, cs_sdm_t *hf)
Compute the hodge operator related to a face (i.e. a mass matrix with unity property) using a Whitney...
Definition: cs_hodge.c:4759
bool cs_hodge_edfp_cost_get_opt(const cs_cell_mesh_t *cm, cs_hodge_t *hodge, cs_cell_builder_t *cb)
Build a local Hodge operator for a given cell using the COST algo. Hodge op. from dual edges to prima...
Definition: cs_hodge.c:4246
bool cs_hodge_fb_cost_get_stiffness(const cs_cell_mesh_t *cm, cs_hodge_t *hodge, cs_cell_builder_t *cb)
Build a local stiffness matrix using the generic COST algo. The computed matrix is stored in cb->loc ...
Definition: cs_hodge.c:1885
bool cs_hodge_vb_ocs2_get_aniso_stiffness(const cs_cell_mesh_t *cm, cs_hodge_t *hodge, cs_cell_builder_t *cb)
Build a local stiffness matrix using the Orthogonal Consistent/Sub-Stabilization decomposition (OCS2)...
Definition: cs_hodge.c:2346
bool inv_pty
Inversion of the property evaluation or not.
Definition: cs_hodge.h:156
Definition: cs_hodge.h:83
bool cs_hodge_vb_cost_get_aniso_stiffness(const cs_cell_mesh_t *cm, cs_hodge_t *hodge, cs_cell_builder_t *cb)
Build a local stiffness matrix using the generic COST algo. The computed matrix is stored in cb->loc ...
Definition: cs_hodge.c:2158
bool cs_hodge_vcb_voro_get(const cs_cell_mesh_t *cm, cs_hodge_t *hodge, cs_cell_builder_t *cb)
Build a local Hodge operator for a given cell using the Voronoi algo. This leads to a diagonal operat...
Definition: cs_hodge.c:3101
cs_hodge_type_t type
Definition: cs_hodge.h:165
static bool cs_hodge_param_is_similar(const cs_hodge_param_t h1_info, const cs_hodge_param_t h2_info)
Check if two sets of parameters related to how build a discrete Hodge operator are similar...
Definition: cs_hodge.h:242
cs_hodge_compute_t * cs_hodge_get_func(const char *calling_func, const cs_hodge_param_t hp)
Retrieve a function pointer to compute a discrete Hodge operator.
Definition: cs_hodge.c:1435
Structure storing the evaluation of a property and its related data.
Definition: cs_property.h:211
bool cs_hodge_epfd_cost_get(const cs_cell_mesh_t *cm, cs_hodge_t *hodge, cs_cell_builder_t *cb)
Build a local Hodge operator for a given cell using the COST algo. Hodge op. from primal edges to dua...
Definition: cs_hodge.c:3593
bool cs_hodge_epfd_ocs2_get(const cs_cell_mesh_t *cm, cs_hodge_t *hodge, cs_cell_builder_t *cb)
Build a local Hodge operator for a given cell using the Orthogonal Consistent/Sub-Stabilization decom...
Definition: cs_hodge.c:3771
#define BEGIN_C_DECLS
Definition: cs_defs.h:512
bool cs_hodge_vb_wbs_get_stiffness(const cs_cell_mesh_t *cm, cs_hodge_t *hodge, cs_cell_builder_t *cb)
Build a local stiffness matrix using the generic WBS algo. WBS means for Whitney Barycentric Subdivis...
Definition: cs_hodge.c:2726
void cs_hodge_free(cs_hodge_t **p_hodge)
Free a cs_hodge_t structure.
Definition: cs_hodge.c:1376
Definition: cs_hodge.h:89
bool cs_hodge_vb_cost_get_iso_stiffness(const cs_cell_mesh_t *cm, cs_hodge_t *hodge, cs_cell_builder_t *cb)
Build a local stiffness matrix using the generic COST algo. The computed matrix is stored in cb->loc ...
Definition: cs_hodge.c:2095
bool cs_hodge_fb_voro_get_stiffness(const cs_cell_mesh_t *cm, cs_hodge_t *hodge, cs_cell_builder_t *cb)
Build a local stiffness matrix using the Voronoi algorithm The computed matrix is stored in cb->loc a...
Definition: cs_hodge.c:2026
bool cs_hodge_vb_voro_get_stiffness(const cs_cell_mesh_t *cm, cs_hodge_t *hodge, cs_cell_builder_t *cb)
Build a local stiffness matrix using the Voronoi algorithm The computed matrix is stored in cb->loc a...
Definition: cs_hodge.c:2620
Set of local quantities and connectivities related to a mesh cell.
Definition: cs_cdo_local.h:203
bool cs_hodge_epfd_bubble_get(const cs_cell_mesh_t *cm, cs_hodge_t *hodge, cs_cell_builder_t *cb)
Build a local Hodge operator for a given cell using the COST algo. with a bubble stabilization. The discrete Hodge operator is stored in hodge->matrix Hodge op. from primal edges to dual faces. This function is specific for vertex-based schemes.
Definition: cs_hodge.c:3685
void cs_hodge_set_property_value_cw(const cs_cell_mesh_t *cm, const cs_real_t t_eval, const cs_flag_t c_flag, cs_hodge_t *hodge)
Set the property value (scalar- or tensor-valued) related to a discrete Hodge operator inside a cell ...
Definition: cs_hodge.c:1804
Definition: cs_cdo_connect.h:61
cs_hodge_t ** cs_hodge_init_context(const cs_cdo_connect_t *connect, const cs_property_t *property, const cs_hodge_param_t *hp, bool need_tensor, bool need_eigen)
Create and initialize an array of pointers to a cs_hodge_t structures. This array is of size the numb...
Definition: cs_hodge.c:1337
Definition: cs_hodge.h:144
bool cs_hodge_fped_voro_get(const cs_cell_mesh_t *cm, cs_hodge_t *hodge, cs_cell_builder_t *cb)
Build a local Hodge operator for a given cell using VORONOI algo. Hodge op. from primal faces to dual...
Definition: cs_hodge.c:3828
Structure associated to a discrete Hodge operator *.
Definition: cs_hodge.h:186
double cs_real_t
Floating-point value.
Definition: cs_defs.h:322
Definition: cs_cdo_quantities.h:132
double coef
Scaling coefficient value.
Definition: cs_hodge.h:168
bool cs_hodge_vcb_wbs_get(const cs_cell_mesh_t *cm, cs_hodge_t *hodge, cs_cell_builder_t *cb)
Build a local Hodge operator for a given cell using the WBS algo. This function is specific for verte...
Definition: cs_hodge.c:3181
cs_hodge_algo_t cs_hodge_set_mass_algo(const char *eqname, cs_hodge_algo_t reac_algo, cs_hodge_algo_t time_algo, cs_hodge_algo_t srct_algo)
Check the consistency of the settings between terms related to a mass matrix and define the common al...
Definition: cs_hodge.c:1577
bool cs_hodge_vb_bubble_get_iso_stiffness(const cs_cell_mesh_t *cm, cs_hodge_t *hodge, cs_cell_builder_t *cb)
Build a local stiffness matrix using the generic Bubble algo. The computed matrix is stored in cb->lo...
Definition: cs_hodge.c:2220
Definition: cs_field_pointer.h:128
void cs_hodge_free_context(cs_hodge_t ***p_hodges)
Free a set of cs_hodge_t structures.
Definition: cs_hodge.c:1402
Definition: cs_hodge.h:137
Definition: cs_hodge.h:91
bool cs_hodge_fped_bubble_get(const cs_cell_mesh_t *cm, cs_hodge_t *hodge, cs_cell_builder_t *cb)
Build a local Hodge operator for a given cell using the Bubble algo. Hodge op. from primal faces to d...
Definition: cs_hodge.c:3995
bool cs_hodge_edfp_bubble_get(const cs_cell_mesh_t *cm, cs_hodge_t *hodge, cs_cell_builder_t *cb)
Build a local Hodge operator for a given cell using the Bubble algo. Hodge op. from dual edges to pri...
Definition: cs_hodge.c:4332
cs_hodge_type_t
Type of discrete Hodge operators.
Definition: cs_hodge.h:81
bool cs_hodge_fb_get(const cs_cell_mesh_t *cm, cs_hodge_t *hodge, cs_cell_builder_t *cb)
Build a local Hodge operator on a given cell which is equivalent of a mass matrix. It relies on a CO+ST algo. and is specific to CDO-Fb schemes. The discrete Hodge operator is stored in hodge->matrix.
Definition: cs_hodge.c:3015
Definition: cs_hodge.h:138
void cs_hodge_set_property_value(const cs_lnum_t c_id, const cs_real_t t_eval, const cs_flag_t c_flag, cs_hodge_t *hodge)
Set the property value (scalar- or tensor-valued) related to a discrete Hodge operator inside a cell ...
Definition: cs_hodge.c:1722
bool cs_hodge_vcb_get_stiffness(const cs_cell_mesh_t *cm, cs_hodge_t *hodge, cs_cell_builder_t *cb)
Build a local stiffness matrix using the generic WBS algo. WBS means Whitney Barycentric Subdivision ...
Definition: cs_hodge.c:2863
cs_hodge_algo_t
Type of algorithm to build a discrete Hodge operator.
Definition: cs_hodge.h:135
Set of local and temporary buffers.
Definition: cs_cdo_local.h:60
Definition: cs_hodge.h:140
Definition: cs_hodge.h:141
cs_hodge_t * cs_hodge_create(const cs_cdo_connect_t *connect, const cs_property_t *property, const cs_hodge_param_t *hp, bool need_tensor, bool need_eigen)
Create and initialize a pointer to a cs_hodge_t structure.
Definition: cs_hodge.c:1273
bool cs_hodge_fb_bubble_get_stiffness(const cs_cell_mesh_t *cm, cs_hodge_t *hodge, cs_cell_builder_t *cb)
Build a local stiffness matrix using the generic COST algo. with the usage of bubble stabilization...
Definition: cs_hodge.c:1956
int cs_lnum_t
local mesh entity id
Definition: cs_defs.h:316
const cs_hodge_param_t * param
Definition: cs_hodge.h:188
bool cs_hodge_fped_cost_get(const cs_cell_mesh_t *cm, cs_hodge_t *hodge, cs_cell_builder_t *cb)
Build a local Hodge operator for a given cell using the COST algo. Hodge op. from primal faces to dua...
Definition: cs_hodge.c:3904
void cs_hodge_circulation_from_flux(const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant, cs_real_t t_eval, const cs_hodge_param_t hodgep, const cs_property_t *pty, const cs_real_t flux[], cs_real_t circul[])
Compute cellwise a discrete hodge operator in order to define a circulation array from a flux array...
Definition: cs_hodge.c:4648
cs_property_data_t * pty_data
Data evaluation.
Definition: cs_hodge.h:190
cs_sdm_t * matrix
Definition: cs_hodge.h:198
#define END_C_DECLS
Definition: cs_defs.h:513
Definition: cs_hodge.h:142
unsigned short int cs_flag_t
Definition: cs_defs.h:324
bool cs_hodge_vb_bubble_get_aniso_stiffness(const cs_cell_mesh_t *cm, cs_hodge_t *hodge, cs_cell_builder_t *cb)
Build a local stiffness matrix using the generic Bubble algo. The computed matrix is stored in cb->lo...
Definition: cs_hodge.c:2282
Definition: cs_hodge.h:88
Definition: cs_hodge.h:139
void cs_hodge_matvec(const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant, const cs_hodge_param_t hodgep, const cs_property_t *pty, const cs_real_t in_vals[], cs_real_t t_eval, cs_real_t result[])
Compute cellwise a discrete hodge operator and multiple it with a vector.
Definition: cs_hodge.c:4418
bool cs_hodge_edfp_voro_get(const cs_cell_mesh_t *cm, cs_hodge_t *hodge, cs_cell_builder_t *cb)
Build a local Hodge operator for a given cell using VORONOI algo. Hodge op. from dual edges to primal...
Definition: cs_hodge.c:4081
bool cs_hodge_vb_cost_get_stiffness(const cs_cell_mesh_t *cm, cs_hodge_t *hodge, cs_cell_builder_t *cb)
Build a local stiffness matrix using the generic COST algo. The computed matrix is stored in cb->loc ...
Definition: cs_hodge.c:2395
Set of local quantities and connectivities related to a mesh face Structure used to get a better memo...
Definition: cs_cdo_local.h:279
bool() cs_hodge_compute_t(const cs_cell_mesh_t *cm, cs_hodge_t *hodge, cs_cell_builder_t *cb)
Build a discrete Hodge operator or a related operator (such as the stiffmess matrix) for a given cell...
Definition: cs_hodge.h:221
cs_hodge_algo_t algo
Definition: cs_hodge.h:166
Definition: cs_hodge.h:85
Definition: cs_hodge.h:84
bool cs_hodge_vpcd_wbs_get(const cs_cell_mesh_t *cm, cs_hodge_t *hodge, cs_cell_builder_t *cb)
Build a local Hodge operator for a given cell using WBS algo. Hodge op. from primal vertices to dual ...
Definition: cs_hodge.c:3320
void cs_hodge_param_log(const char *prefix, const cs_property_t *property, const cs_hodge_param_t hp)
Output the settings related to a cs_hodge_param_t structure.
Definition: cs_hodge.c:1657
bool cs_hodge_edfp_cost_get(const cs_cell_mesh_t *cm, cs_hodge_t *hodge, cs_cell_builder_t *cb)
Build a local Hodge operator for a given cell using the COST algo. Hodge op. from dual edges to prima...
Definition: cs_hodge.c:4157
Structure associated to the definition of a property relying on the cs_xdef_t structure.
Structure storing all metadata/parameters related to the usage of a discrete Hodge operator...
Definition: cs_hodge.h:154
bool cs_hodge_epfd_voro_get(const cs_cell_mesh_t *cm, cs_hodge_t *hodge, cs_cell_builder_t *cb)
Build a local Hodge operator for a given cell using VORONOI algo. Hodge op. from primal edges to dual...
Definition: cs_hodge.c:3511
void cs_hodge_copy_parameters(const cs_hodge_param_t *h_ref, cs_hodge_param_t *h_cpy)
Copy the set of parameters associated to a discrete Hodge operator to another one.
Definition: cs_hodge.c:1696
Definition: cs_hodge.h:87