programmer's documentation
Macros | Functions
cs_reco.c File Reference
#include "cs_defs.h"
#include <assert.h>
#include <math.h>
#include <bft_mem.h>
#include "cs_math.h"
#include "cs_cdo_scheme_geometry.h"
#include "cs_reco.h"
Include dependency graph for cs_reco.c:

Macros

#define _dp3   cs_math_3_dot_product
 

Functions

void cs_reco_conf_vtx_dofs (const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant, const double *dof, double *p_crec[], double *p_frec[])
 Reconstruct at cell centers and face centers a vertex-based field Linear interpolation. If p_crec and/or p_frec are not allocated, this done in this subroutine. More...
 
void cs_reco_cost_edge_dof (cs_lnum_t cid, cs_lnum_t e1_id, const cs_connect_index_t *c2e, const cs_cdo_quantities_t *quant, const double *dof, double reco[])
 Reconstruct by a constant vector a field of edge-based DoFs in a volume surrounding an edge. More...
 
void cs_reco_pv_at_cell_centers (const cs_connect_index_t *c2v, const cs_cdo_quantities_t *quant, const double *array, cs_real_t *val_xc)
 Reconstruct the value at all cell centers from an array of values defined on primal vertices. More...
 
void cs_reco_pv_at_cell_center (cs_lnum_t c_id, const cs_connect_index_t *c2v, const cs_cdo_quantities_t *quant, const double *array, cs_real_t *val_xc)
 Reconstruct the value at the cell center from an array of values defined on primal vertices. More...
 
void cs_reco_pf_from_pv (cs_lnum_t f_id, const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant, const double *pdi, cs_real_t *pdi_f)
 Reconstruct the value at the face center from an array of values defined on primal vertices. More...
 
void cs_reco_dfbyc_at_cell_center (cs_lnum_t c_id, const cs_connect_index_t *c2e, const cs_cdo_quantities_t *quant, const double *array, cs_real_3_t val_xc)
 Reconstruct a constant vector at the cell center from an array of values defined on dual faces lying inside each cell. This array is scanned thanks to the c2e connectivity. More...
 
void cs_reco_dfbyc_in_cell (const cs_cell_mesh_t *cm, const cs_real_t *array, cs_real_3_t val_c)
 Reconstruct a constant vector inside the cell c. array is scanned thanks to the c2e connectivity. Pointer is already located at the beginning of the cell sequence. Reconstruction used is based on DGA (stabilization = 1/d where d is the space dimension) More...
 
void cs_reco_dfbyc_in_pec (const cs_cell_mesh_t *cm, short int e, const cs_real_t *array, cs_real_3_t val_pec)
 Reconstruct a constant vector inside pec which is a volume surrounding the edge e inside the cell c. array is scanned thanks to the c2e connectivity. Pointer is already located at the beginning of the cell sequence. Reconstruction used is based on DGA (stabilization = 1/d where d is the space dimension) More...
 
cs_real_t cs_reco_pv_inside_cell (const cs_cell_mesh_t *cm, const cs_real_t pdi[], const cs_real_t length_xcxp, const cs_real_t unitv_xcxp[], cs_real_t wbuf[])
 Reconstruct the value of a scalar potential at a gpoint inside a cell The scalar potential has DoFs located at primal vertices. More...
 
void cs_reco_grd_cell_from_pv (cs_lnum_t c_id, const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant, const double *pdi, cs_real_t val_xc[])
 Reconstruct the value at the cell center of the gradient of a field defined on primal vertices. More...
 
void cs_reco_ccen_edge_dof (cs_lnum_t cid, const cs_connect_index_t *c2e, const cs_cdo_quantities_t *quant, const double *dof, double reco[])
 Reconstruct at the cell center a field of edge-based DoFs. More...
 
void cs_reco_ccen_edge_dofs (const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant, const double *dof, double *p_ccrec[])
 Reconstruct at each cell center a field of edge-based DoFs. More...
 

Macro Definition Documentation

◆ _dp3

#define _dp3   cs_math_3_dot_product

Function Documentation

◆ cs_reco_ccen_edge_dof()

void cs_reco_ccen_edge_dof ( cs_lnum_t  cid,
const cs_connect_index_t c2e,
const cs_cdo_quantities_t quant,
const double *  dof,
double  reco[] 
)

Reconstruct at the cell center a field of edge-based DoFs.

Parameters
[in]cidcell id
[in]c2ecell -> edges connectivity
[in]quantpointer to the additional quantities struct.
[in]dofpointer to the field of edge-based DoFs
[in,out]recovalue of the reconstructed field at cell center

◆ cs_reco_ccen_edge_dofs()

void cs_reco_ccen_edge_dofs ( const cs_cdo_connect_t connect,
const cs_cdo_quantities_t quant,
const double *  dof,
double *  p_ccrec[] 
)

Reconstruct at each cell center a field of edge-based DoFs.

Parameters
[in]connectpointer to the connectivity struct.
[in]quantpointer to the additional quantities struct.
[in]dofpointer to the field of edge-based DoFs
[in,out]p_ccrecpointer to the reconstructed values

◆ cs_reco_conf_vtx_dofs()

void cs_reco_conf_vtx_dofs ( const cs_cdo_connect_t connect,
const cs_cdo_quantities_t quant,
const double *  dof,
double *  p_crec[],
double *  p_frec[] 
)

Reconstruct at cell centers and face centers a vertex-based field Linear interpolation. If p_crec and/or p_frec are not allocated, this done in this subroutine.

Parameters
[in]connectpointer to the connectivity struct.
[in]quantpointer to the additional quantities struct.
[in]dofpointer to the field of vtx-based DoFs
[in,out]p_crecreconstructed values at cell centers
[in,out]p_frecreconstructed values at face centers

◆ cs_reco_cost_edge_dof()

void cs_reco_cost_edge_dof ( cs_lnum_t  cid,
cs_lnum_t  e1_id,
const cs_connect_index_t c2e,
const cs_cdo_quantities_t quant,
const double *  dof,
double  reco[] 
)

Reconstruct by a constant vector a field of edge-based DoFs in a volume surrounding an edge.

Parameters
[in]cidcell id
[in]e1_idsub-volume related to this edge id
[in]c2ecell -> edges connectivity
[in]quantpointer to the additional quantities struct.
[in]dofpointer to the field of edge-based DoFs
[in,out]recovalue of the reconstructed field in this sub-volume

◆ cs_reco_dfbyc_at_cell_center()

void cs_reco_dfbyc_at_cell_center ( cs_lnum_t  c_id,
const cs_connect_index_t c2e,
const cs_cdo_quantities_t quant,
const double *  array,
cs_real_3_t  val_xc 
)

Reconstruct a constant vector at the cell center from an array of values defined on dual faces lying inside each cell. This array is scanned thanks to the c2e connectivity.

Parameters
[in]c_idcell id
[in]c2ecell -> edges connectivity
[in]quantpointer to the additional quantities struct.
[in]arraypointer to the array of values
[in,out]val_xcvalue of the reconstruction at the cell center

◆ cs_reco_dfbyc_in_cell()

void cs_reco_dfbyc_in_cell ( const cs_cell_mesh_t cm,
const cs_real_t array,
cs_real_3_t  val_c 
)

Reconstruct a constant vector inside the cell c. array is scanned thanks to the c2e connectivity. Pointer is already located at the beginning of the cell sequence. Reconstruction used is based on DGA (stabilization = 1/d where d is the space dimension)

Parameters
[in]cmpointer to a cs_cell_mesh_t structure
[in]arraylocal pointer to the array of values
[in,out]val_cvalue of the reconstructed vector in the cell

◆ cs_reco_dfbyc_in_pec()

void cs_reco_dfbyc_in_pec ( const cs_cell_mesh_t cm,
short int  e,
const cs_real_t array,
cs_real_3_t  val_pec 
)

Reconstruct a constant vector inside pec which is a volume surrounding the edge e inside the cell c. array is scanned thanks to the c2e connectivity. Pointer is already located at the beginning of the cell sequence. Reconstruction used is based on DGA (stabilization = 1/d where d is the space dimension)

Parameters
[in]cmpointer to a cs_cell_mesh_t structure
[in]elocal edge id
[in]arraylocal pointer to the array of values
[in,out]val_pecvalue of the reconstruction in pec

◆ cs_reco_grd_cell_from_pv()

void cs_reco_grd_cell_from_pv ( cs_lnum_t  c_id,
const cs_cdo_connect_t connect,
const cs_cdo_quantities_t quant,
const double *  pdi,
cs_real_t  val_xc[] 
)

Reconstruct the value at the cell center of the gradient of a field defined on primal vertices.

Parameters
[in]c_idcell id
[in]connectpointer to a cs_cdo_connect_t structure
[in]quantpointer to the additional quantities struct.
[in]pdipointer to the array of values
[in,out]val_xcvalue of the reconstructed gradient at cell center

◆ cs_reco_pf_from_pv()

void cs_reco_pf_from_pv ( cs_lnum_t  f_id,
const cs_cdo_connect_t connect,
const cs_cdo_quantities_t quant,
const double *  pdi,
cs_real_t pdi_f 
)

Reconstruct the value at the face center from an array of values defined on primal vertices.

Parameters
[in]f_idface id (interior and border faces)
[in]connectpointer to a cs_cdo_connect_t structure
[in]quantpointer to the additional quantities struct.
[in]pdipointer to the array of values
[in,out]pdi_fvalue of the reconstruction at the face center

◆ cs_reco_pv_at_cell_center()

void cs_reco_pv_at_cell_center ( cs_lnum_t  c_id,
const cs_connect_index_t c2v,
const cs_cdo_quantities_t quant,
const double *  array,
cs_real_t val_xc 
)

Reconstruct the value at the cell center from an array of values defined on primal vertices.

Parameters
[in]c_idcell id
[in]c2vcell -> vertices connectivity
[in]quantpointer to the additional quantities struct.
[in]arraypointer to the array of values
[in,out]val_xcvalue of the reconstruction at the cell center

◆ cs_reco_pv_at_cell_centers()

void cs_reco_pv_at_cell_centers ( const cs_connect_index_t c2v,
const cs_cdo_quantities_t quant,
const double *  array,
cs_real_t val_xc 
)

Reconstruct the value at all cell centers from an array of values defined on primal vertices.

Parameters
[in]c2vcell -> vertices connectivity
[in]quantpointer to the additional quantities struct.
[in]arraypointer to the array of values
[in,out]val_xcvalues of the reconstruction at the cell center

◆ cs_reco_pv_inside_cell()

cs_real_t cs_reco_pv_inside_cell ( const cs_cell_mesh_t cm,
const cs_real_t  pdi[],
const cs_real_t  length_xcxp,
const cs_real_t  unitv_xcxp[],
cs_real_t  wbuf[] 
)

Reconstruct the value of a scalar potential at a gpoint inside a cell The scalar potential has DoFs located at primal vertices.

Reconstruct the value of a scalar potential at a point inside a cell The scalar potential has DoFs located at primal vertices.

Parameters
[in]cmpointer to a cs_cell_mesh_t structure
[in]pdiarray of DoF values at vertices
[in]length_xcxplenght of the segment [x_c, x_p]
[in]unitv_xcxpunitary vector pointed from x_c to x_p
[in,out]wbufpointer to a temporary buffer
Returns
the value of the reconstructed potential at the evaluation point