#include "fvm_defs.h"
#include "cs_base.h"
#include "cs_flag.h"
#include "cs_param_types.h"
#include "cs_mesh.h"
#include "cs_mesh_adjacencies.h"
#include "cs_range_set.h"
Go to the source code of this file.
Data Structures | |
struct | cs_cdo_connect_t |
Macros | |
#define | CS_TRIANGLE_CASE 3 /* Number of vertices in a triangle */ |
Functions | |
static void | cs_connect_get_next_3_vertices (const cs_lnum_t *f2e_ids, const cs_lnum_t *e2v_ids, const cs_lnum_t start_idx, cs_lnum_t *v0, cs_lnum_t *v1, cs_lnum_t *v2) |
Get the next three vertices in a row from a face to edge connectivity and a edge to vertex connectivity. 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_assign_face_ifs_rs (const cs_mesh_t *mesh, cs_lnum_t n_faces, int n_face_dofs, 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 faces. More... | |
cs_interface_set_t * | cs_cdo_connect_define_face_interface (const cs_mesh_t *mesh) |
Create and define a new cs_interface_set_t structure on faces. More... | |
cs_cdo_connect_t * | cs_cdo_connect_init (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_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_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 connectivity information. More... | |
void | cs_cdo_connect_dump (const cs_cdo_connect_t *connect) |
Dump a cs_cdo_connect_t structure. More... | |
#define CS_TRIANGLE_CASE 3 /* Number of vertices in a triangle */ |
void cs_cdo_connect_assign_face_ifs_rs | ( | const cs_mesh_t * | mesh, |
cs_lnum_t | n_faces, | ||
int | n_face_dofs, | ||
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 faces.
[in] | mesh | pointer to a cs_mesh_t structure |
[in] | n_faces | number of faces (interior + border) |
[in] | n_face_dofs | number of DoFs per face |
[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 |
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_interface_set_t* cs_cdo_connect_define_face_interface | ( | const cs_mesh_t * | mesh | ) |
Create and define a new cs_interface_set_t structure on faces.
[in] | mesh | pointer to a cs_mesh_t structure |
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.
[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 |
long long cs_cdo_connect_get_time_perfo | ( | void | ) |
Retrieve the time elapsed to build the cs_cdo_connect_t structure.
DOXYGEN_SHOULD_SKIP_THIS
cs_cdo_connect_t* cs_cdo_connect_init | ( | 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)
[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_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 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 |
|
inlinestatic |
Get the next three vertices in a row from a face to edge connectivity and a edge to vertex connectivity.
[in] | f2e_ids | face-edge connectivity |
[in] | e2v_ids | edge-vertex connectivity |
[in] | start_idx | index from which the current cell infos start |
[in,out] | v0 | id of the first vertex |
[in,out] | v1 | id of the second vertex |
[in,out] | v2 | id of the third vertex |