7.2
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 /*----------------------------------------------------------------------------*/
651 /*----------------------------------------------------------------------------*/
652 
653 bool
655  cs_hodge_t *hodge,
656  cs_cell_builder_t *cb);
657 
658 /*----------------------------------------------------------------------------*/
670 /*----------------------------------------------------------------------------*/
671 
672 bool
674  cs_hodge_t *hodge,
675  cs_cell_builder_t *cb);
676 
677 /*----------------------------------------------------------------------------*/
690 /*----------------------------------------------------------------------------*/
691 
692 bool
694  cs_hodge_t *hodge,
695  cs_cell_builder_t *cb);
696 
697 /*----------------------------------------------------------------------------*/
710 /*----------------------------------------------------------------------------*/
711 
712 bool
714  cs_hodge_t *hodge,
715  cs_cell_builder_t *cb);
716 
717 /*----------------------------------------------------------------------------*/
729 /*----------------------------------------------------------------------------*/
730 
731 bool
733  cs_hodge_t *hodge,
734  cs_cell_builder_t *cb);
735 
736 /*----------------------------------------------------------------------------*/
749 /*----------------------------------------------------------------------------*/
750 
751 bool
753  cs_hodge_t *hodge,
754  cs_cell_builder_t *cb);
755 
756 /*----------------------------------------------------------------------------*/
769 /*----------------------------------------------------------------------------*/
770 
771 bool
773  cs_hodge_t *hodge,
774  cs_cell_builder_t *cb);
775 
776 /*----------------------------------------------------------------------------*/
789 /*----------------------------------------------------------------------------*/
790 
791 bool
793  cs_hodge_t *hodge,
794  cs_cell_builder_t *cb);
795 
796 /*----------------------------------------------------------------------------*/
809 /*----------------------------------------------------------------------------*/
810 
811 bool
813  cs_hodge_t *hodge,
814  cs_cell_builder_t *cb);
815 
816 /*----------------------------------------------------------------------------*/
830 /*----------------------------------------------------------------------------*/
831 
832 bool
834  cs_hodge_t *hodge,
835  cs_cell_builder_t *cb);
836 
837 /*----------------------------------------------------------------------------*/
852 /*----------------------------------------------------------------------------*/
853 
854 bool
856  cs_hodge_t *hodge,
857  cs_cell_builder_t *cb);
858 
859 /*----------------------------------------------------------------------------*/
872 /*----------------------------------------------------------------------------*/
873 
874 bool
876  cs_hodge_t *hodge,
877  cs_cell_builder_t *cb);
878 
879 /*----------------------------------------------------------------------------*/
892 /*----------------------------------------------------------------------------*/
893 
894 bool
896  cs_hodge_t *hodge,
897  cs_cell_builder_t *cb);
898 
899 /*----------------------------------------------------------------------------*/
912 /*----------------------------------------------------------------------------*/
913 
914 bool
916  cs_hodge_t *hodge,
917  cs_cell_builder_t *cb);
918 
919 /*----------------------------------------------------------------------------*/
932 /*----------------------------------------------------------------------------*/
933 
934 bool
936  cs_hodge_t *hodge,
937  cs_cell_builder_t *cb);
938 
939 /*----------------------------------------------------------------------------*/
951 /*----------------------------------------------------------------------------*/
952 
953 bool
955  cs_hodge_t *hodge,
956  cs_cell_builder_t *cb);
957 
958 /*----------------------------------------------------------------------------*/
971 /*----------------------------------------------------------------------------*/
972 
973 bool
975  cs_hodge_t *hodge,
976  cs_cell_builder_t *cb);
977 
978 /*----------------------------------------------------------------------------*/
990 /*----------------------------------------------------------------------------*/
991 
992 bool
994  cs_hodge_t *hodge,
995  cs_cell_builder_t *cb);
996 
997 /*----------------------------------------------------------------------------*/
1010 /*----------------------------------------------------------------------------*/
1011 
1012 bool
1014  cs_hodge_t *hodge,
1015  cs_cell_builder_t *cb);
1016 
1017 /*----------------------------------------------------------------------------*/
1030 /*----------------------------------------------------------------------------*/
1031 
1032 void
1033 cs_hodge_matvec(const cs_cdo_connect_t *connect,
1034  const cs_cdo_quantities_t *quant,
1035  const cs_hodge_param_t hodgep,
1036  const cs_property_t *pty,
1037  const cs_real_t in_vals[],
1038  cs_real_t t_eval,
1039  cs_real_t result[]);
1040 
1041 /*----------------------------------------------------------------------------*/
1054 /*----------------------------------------------------------------------------*/
1055 
1056 void
1058  const cs_cdo_quantities_t *quant,
1059  cs_real_t t_eval,
1060  const cs_hodge_param_t hodgep,
1061  const cs_property_t *pty,
1062  const cs_real_t flux[],
1063  cs_real_t circul[]);
1064 
1065 /*----------------------------------------------------------------------------*/
1074 /*----------------------------------------------------------------------------*/
1075 
1076 void
1078  cs_sdm_t *hf);
1079 
1080 /*----------------------------------------------------------------------------*/
1081 
1083 
1084 #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:3453
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:4763
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:4250
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:1888
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:2349
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:2161
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:3105
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:1438
Structure storing the evaluation of a property and its related data.
Definition: cs_property.h:199
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:3597
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:3775
#define BEGIN_C_DECLS
Definition: cs_defs.h:510
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 standing for Whitney Barycentric Subdi...
Definition: cs_hodge.c:2730
void cs_hodge_free(cs_hodge_t **p_hodge)
Free a cs_hodge_t structure.
Definition: cs_hodge.c:1379
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:2098
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:2029
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:2623
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:3689
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:1807
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:1340
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:3832
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:3185
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:1580
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:2223
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:1405
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:3999
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:4336
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:3019
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:1725
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 standing for Whitney Barycentric Subdi...
Definition: cs_hodge.c:2867
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:1276
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:1959
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:3908
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:4652
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:511
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:2285
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:4422
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:4085
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:2398
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:3324
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:1660
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:4161
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:3515
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:1699
Definition: cs_hodge.h:87