8.0
general documentation
cs_cdo_connect.h File Reference
#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"
+ Include dependency graph for cs_cdo_connect.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_tcs_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_tcs_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_tcs_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...
 

Macro Definition Documentation

◆ CS_TRIANGLE_CASE

#define CS_TRIANGLE_CASE   3 /* Number of vertices in a triangle */

Function Documentation

◆ cs_cdo_connect_assign_face_ifs_rs()

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.

Parameters
[in]meshpointer to a cs_mesh_t structure
[in]n_facesnumber of faces (interior + border)
[in]n_face_dofsnumber of DoFs per face
[in,out]p_ifspointer of pointer to a cs_interface_set_t
[in,out]p_rspointer of pointer to a cs_range_set_t

◆ cs_cdo_connect_assign_vtx_ifs_rs()

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.

Parameters
[in]meshpointer to a cs_mesh_t structure
[in]n_vtx_dofsnumber of DoFs per vertex
[in]interlacedfalse means a block viewpoint
[in,out]p_ifspointer of pointer to a cs_interface_set_t
[in,out]p_rspointer of pointer to a cs_range_set_t

◆ cs_cdo_connect_define_face_interface()

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.

Parameters
[in]meshpointer to a cs_mesh_t structure
Returns
a pointer to a new allocated cs_interface_set_t structure

◆ cs_cdo_connect_discrete_curl()

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)

Parameters
[in]connectpointer to a cs_cdo_connect_t struct.
[in]edge_valuesarray of values at edges
[in,out]p_curl_valuesarray storing the curl across faces. This array is allocated if necessary.

◆ cs_cdo_connect_dump()

void cs_cdo_connect_dump ( const cs_cdo_connect_t connect)

Dump a cs_cdo_connect_t structure.

Parameters
[in]connectpointer to cs_cdo_connect_t structure

◆ cs_cdo_connect_free()

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.

Parameters
[in]meshpointer to a mesh structure
[in,out]connectpointer to additional CDO connectivities
Returns
a NULL pointer

◆ cs_cdo_connect_get_time_perfo()

long long cs_cdo_connect_get_time_perfo ( void  )

Retrieve the time elapsed to build the cs_cdo_connect_t structure.

Returns
the value of the time elapsed in ns

DOXYGEN_SHOULD_SKIP_THIS

Returns
the value of the time elapsed in ns

◆ cs_cdo_connect_init()

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)

Parameters
[in,out]meshpointer to a cs_mesh_t structure
[in]eb_scheme_flagmetadata for Edge-based schemes
[in]fb_scheme_flagmetadata for Face-based schemes
[in]cb_scheme_flagmetadata for Cell-based schemes
[in]vb_scheme_flagmetadata for Vertex-based schemes
[in]vcb_scheme_flagmetadata for Vertex+Cell-based schemes
[in]hho_scheme_flagmetadata for HHO schemes
Returns
a pointer to a cs_cdo_connect_t structure

◆ cs_cdo_connect_summary()

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.

Parameters
[in]connectpointer to cs_cdo_connect_t structure
[in]eb_scheme_flagmetadata for Edge-based schemes
[in]vb_scheme_flagmetadata for Vertex-based schemes
[in]vcb_scheme_flagmetadata for Vertex+Cell-based schemes

◆ cs_connect_get_next_3_vertices()

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 
)
inlinestatic

Get the next three vertices in a row from a face to edge connectivity and a edge to vertex connectivity.

Parameters
[in]f2e_idsface-edge connectivity
[in]e2v_idsedge-vertex connectivity
[in]start_idxindex from which the current cell infos start
[in,out]v0id of the first vertex
[in,out]v1id of the second vertex
[in,out]v2id of the third vertex