Build additional connectivities (or adjacencies) useful for building CDO or HHO schemes. More...
#include "cs_defs.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include "bft_mem.h"
#include "fvm_io_num.h"
#include "cs_array.h"
#include "cs_flag.h"
#include "cs_log.h"
#include "cs_mesh_adjacencies.h"
#include "cs_order.h"
#include "cs_parall.h"
#include "cs_param_types.h"
#include "cs_param_cdo.h"
#include "cs_sort.h"
#include "cs_volume_zone.h"
#include "cs_cdo_connect.h"
Functions | |
cs_cdo_connect_t * | cs_cdo_connect_build (cs_mesh_t *mesh, cs_flag_t eb_scheme_flag, cs_flag_t fb_scheme_flag, cs_flag_t cb_scheme_flag, cs_flag_t vb_scheme_flag, cs_flag_t vcb_scheme_flag, cs_flag_t hho_scheme_flag) |
Allocate and define a new cs_cdo_connect_t structure Range sets and interface sets are allocated and defined according to the value of the different scheme flags. cs_range_set_t structure related to vertices is shared the cs_mesh_t structure (the global one) More... | |
cs_cdo_connect_t * | cs_cdo_connect_free (const cs_mesh_t *mesh, cs_cdo_connect_t *connect) |
Destroy a cs_cdo_connect_t structure. More... | |
void | cs_cdo_connect_log_summary (const cs_cdo_connect_t *connect, cs_flag_t eb_scheme_flag, cs_flag_t vb_scheme_flag, cs_flag_t vcb_scheme_flag) |
Summary of the connectivity information. More... | |
void | cs_cdo_connect_allocate_cw_buffer (const cs_cdo_connect_t *connect) |
Allocate and initialize the cell-wise buffer(s) More... | |
void | cs_cdo_connect_free_cw_buffer (void) |
Free the cell-wise buffer(s) More... | |
double * | cs_cdo_connect_get_cw_buffer (int thr_id) |
Retrieve the cell-wise buffer associated to the current thread. Use cs_get_thread_id when the thread id is not directly available. More... | |
long long | cs_cdo_connect_get_time_perfo (void) |
Retrieve the time elapsed to build the cs_cdo_connect_t structure. More... | |
void | cs_cdo_connect_assign_vtx_ifs_rs (const cs_mesh_t *mesh, int n_vtx_dofs, bool interlaced, cs_interface_set_t **p_ifs, cs_range_set_t **p_rs) |
Allocate and define a cs_range_set_t structure and a cs_interface_set_t structure for schemes with DoFs at vertices. More... | |
void | cs_cdo_connect_discrete_curl (const cs_cdo_connect_t *connect, const cs_real_t *edge_values, cs_real_t **p_curl_values) |
Compute the discrete curl operator across each primal faces. From an edge-based array (seen as circulations) compute a face-based array (seen as fluxes) More... | |
void | cs_cdo_connect_dump (const cs_cdo_connect_t *connect) |
Dump a cs_cdo_connect_t structure for debugging purpose. More... | |
Build additional connectivities (or adjacencies) useful for building CDO or HHO schemes.
Allocate and define a cs_adjacency_t structure related to the connectivity vertex to vertices through edges.
Adjacent vertices are accessed based on the vertex with lowest id. Another v2v connectivity through cells is possible. Please read the source code if interested
[in] | m | pointer to a cs_mesh_t structure |
void cs_cdo_connect_allocate_cw_buffer | ( | const cs_cdo_connect_t * | connect | ) |
Allocate and initialize the cell-wise buffer(s)
[in] | connect | pointer to additional connectivities |
void cs_cdo_connect_assign_vtx_ifs_rs | ( | const cs_mesh_t * | mesh, |
int | n_vtx_dofs, | ||
bool | interlaced, | ||
cs_interface_set_t ** | p_ifs, | ||
cs_range_set_t ** | p_rs | ||
) |
Allocate and define a cs_range_set_t structure and a cs_interface_set_t structure for schemes with DoFs at vertices.
[in] | mesh | pointer to a cs_mesh_t structure |
[in] | n_vtx_dofs | number of DoFs per vertex |
[in] | interlaced | false means a block viewpoint |
[in,out] | p_ifs | pointer of pointer to a cs_interface_set_t |
[in,out] | p_rs | pointer of pointer to a cs_range_set_t |
cs_cdo_connect_t* cs_cdo_connect_build | ( | cs_mesh_t * | mesh, |
cs_flag_t | eb_scheme_flag, | ||
cs_flag_t | fb_scheme_flag, | ||
cs_flag_t | cb_scheme_flag, | ||
cs_flag_t | vb_scheme_flag, | ||
cs_flag_t | vcb_scheme_flag, | ||
cs_flag_t | hho_scheme_flag | ||
) |
Allocate and define a new cs_cdo_connect_t structure Range sets and interface sets are allocated and defined according to the value of the different scheme flags. cs_range_set_t structure related to vertices is shared the cs_mesh_t structure (the global one)
DOXYGEN_SHOULD_SKIP_THIS
[in,out] | mesh | pointer to a cs_mesh_t structure |
[in] | eb_scheme_flag | metadata for Edge-based schemes |
[in] | fb_scheme_flag | metadata for Face-based schemes |
[in] | cb_scheme_flag | metadata for Cell-based schemes |
[in] | vb_scheme_flag | metadata for Vertex-based schemes |
[in] | vcb_scheme_flag | metadata for Vertex+Cell-based schemes |
[in] | hho_scheme_flag | metadata for HHO schemes |
void cs_cdo_connect_discrete_curl | ( | const cs_cdo_connect_t * | connect, |
const cs_real_t * | edge_values, | ||
cs_real_t ** | p_curl_values | ||
) |
Compute the discrete curl operator across each primal faces. From an edge-based array (seen as circulations) compute a face-based array (seen as fluxes)
[in] | connect | pointer to a cs_cdo_connect_t struct. |
[in] | edge_values | array of values at edges |
[in,out] | p_curl_values | array storing the curl across faces. This array is allocated if necessary. |
void cs_cdo_connect_dump | ( | const cs_cdo_connect_t * | connect | ) |
Dump a cs_cdo_connect_t structure for debugging purpose.
[in] | connect | pointer to cs_cdo_connect_t structure |
cs_cdo_connect_t* cs_cdo_connect_free | ( | const cs_mesh_t * | mesh, |
cs_cdo_connect_t * | connect | ||
) |
Destroy a cs_cdo_connect_t structure.
[in] | mesh | pointer to a mesh structure |
[in,out] | connect | pointer to additional CDO connectivities |
void cs_cdo_connect_free_cw_buffer | ( | void | ) |
Free the cell-wise buffer(s)
double* cs_cdo_connect_get_cw_buffer | ( | int | thr_id | ) |
Retrieve the cell-wise buffer associated to the current thread. Use cs_get_thread_id when the thread id is not directly available.
[in] | thr_id | thread_id (0 if no openMP) |
long long cs_cdo_connect_get_time_perfo | ( | void | ) |
Retrieve the time elapsed to build the cs_cdo_connect_t structure.
void cs_cdo_connect_log_summary | ( | const cs_cdo_connect_t * | connect, |
cs_flag_t | eb_scheme_flag, | ||
cs_flag_t | vb_scheme_flag, | ||
cs_flag_t | vcb_scheme_flag | ||
) |
Summary of the connectivity information.
[in] | connect | pointer to cs_cdo_connect_t structure |
[in] | eb_scheme_flag | metadata for Edge-based schemes |
[in] | vb_scheme_flag | metadata for Vertex-based schemes |
[in] | vcb_scheme_flag | metadata for Vertex+Cell-based schemes |