#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. | |
| 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) | |
| 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. | |
| 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. | |
| void | cs_cdo_connect_allocate_cw_buffer (const cs_cdo_connect_t *connect) |
| Allocate and initialize the cell-wise buffer(s) | |
| 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. | |
| 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_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. | |
| 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. | |
| 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. | |
| 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) | |
| void | cs_cdo_connect_dump (const cs_cdo_connect_t *connect) |
| Dump a cs_cdo_connect_t structure for debugging purpose. | |
| #define CS_TRIANGLE_CASE 3 /* Number of vertices in a triangle */ |
| 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_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_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)
| [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 |
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 |
| 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 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 |
|
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 |