My Project
programmer's documentation
Functions
cs_gradient.c File Reference

Gradient reconstruction. More...

#include "cs_defs.h"
#include <assert.h>
#include <errno.h>
#include <stdio.h>
#include <stdarg.h>
#include <string.h>
#include <math.h>
#include <float.h>
#include "bft_error.h"
#include "bft_mem.h"
#include "bft_printf.h"
#include "cs_blas.h"
#include "cs_halo.h"
#include "cs_halo_perio.h"
#include "cs_internal_coupling.h"
#include "cs_log.h"
#include "cs_math.h"
#include "cs_mesh.h"
#include "cs_field.h"
#include "cs_field_pointer.h"
#include "cs_ext_neighborhood.h"
#include "cs_mesh_adjacencies.h"
#include "cs_mesh_quantities.h"
#include "cs_prototypes.h"
#include "cs_timer.h"
#include "cs_timer_stats.h"
#include "cs_bad_cells_regularisation.h"
#include "cs_gradient.h"
Include dependency graph for cs_gradient.c:

Functions

void CS_PROCF (grdpor, GRDPOR) const
 
void CS_PROCF (cgdcel, CGDCEL) const
 
void CS_PROCF (cgdvec, CGDVEC) const
 
void CS_PROCF (cgdts, CGDTS) const
 
void cs_gradient_initialize (void)
 Initialize gradient computation API. More...
 
void cs_gradient_finalize (void)
 Finalize gradient computation API. More...
 
void cs_gradient_scalar (const char *var_name, cs_gradient_type_t gradient_type, cs_halo_type_t halo_type, int inc, bool recompute_cocg, int n_r_sweeps, int tr_dim, int hyd_p_flag, int w_stride, int verbosity, int clip_mode, double epsilon, double extrap, double clip_coeff, cs_real_3_t f_ext[], const cs_real_t bc_coeff_a[], const cs_real_t bc_coeff_b[], cs_real_t *restrict var, cs_real_t *restrict c_weight, cs_internal_coupling_t *cpl, cs_real_3_t *restrict grad)
 Compute cell gradient of scalar field or component of vector or tensor field. More...
 
void cs_gradient_vector (const char *var_name, cs_gradient_type_t gradient_type, cs_halo_type_t halo_type, int inc, int n_r_sweeps, int verbosity, int clip_mode, double epsilon, double clip_coeff, const cs_real_3_t bc_coeff_a[], const cs_real_33_t bc_coeff_b[], cs_real_3_t *restrict var, cs_real_t *restrict c_weight, cs_internal_coupling_t *cpl, cs_real_33_t *restrict grad)
 Compute cell gradient of vector field. More...
 
void cs_gradient_tensor (const char *var_name, cs_gradient_type_t gradient_type, cs_halo_type_t halo_type, int inc, int n_r_sweeps, int verbosity, int clip_mode, double epsilon, double clip_coeff, const cs_real_6_t bc_coeff_a[], const cs_real_66_t bc_coeff_b[], cs_real_6_t *restrict var, cs_real_63_t *restrict grad)
 Compute cell gradient of tensor. More...
 
void cs_gradient_scalar_synced_input (const char *var_name, cs_gradient_type_t gradient_type, cs_halo_type_t halo_type, int inc, bool recompute_cocg, int n_r_sweeps, int tr_dim, int hyd_p_flag, int w_stride, int verbosity, int clip_mode, double epsilon, double extrap, double clip_coeff, cs_real_t f_ext[][3], const cs_real_t bc_coeff_a[], const cs_real_t bc_coeff_b[], const cs_real_t var[restrict], const cs_real_t c_weight[restrict], const cs_internal_coupling_t *cpl, cs_real_t grad[restrict][3])
 Compute cell gradient of scalar field or component of vector or tensor field. More...
 
void cs_gradient_vector_synced_input (const char *var_name, cs_gradient_type_t gradient_type, cs_halo_type_t halo_type, int inc, int n_r_sweeps, int verbosity, int clip_mode, double epsilon, double clip_coeff, const cs_real_t bc_coeff_a[][3], const cs_real_t bc_coeff_b[][3][3], const cs_real_t var[restrict][3], const cs_real_t c_weight[restrict], const cs_internal_coupling_t *cpl, cs_real_33_t *restrict grad)
 Compute cell gradient of vector field. More...
 
void cs_gradient_tensor_synced_input (const char *var_name, cs_gradient_type_t gradient_type, cs_halo_type_t halo_type, int inc, int n_r_sweeps, int verbosity, int clip_mode, double epsilon, double clip_coeff, const cs_real_t bc_coeff_a[][6], const cs_real_t bc_coeff_b[][6][6], const cs_real_t var[restrict][6], cs_real_63_t *restrict grad)
 Compute cell gradient of tensor. More...
 
void cs_gradient_type_by_imrgra (int imrgra, cs_gradient_type_t *gradient_type, cs_halo_type_t *halo_type)
 

Detailed Description

Gradient reconstruction.

Please refer to the gradient reconstruction section of the theory guide for more informations.

Function Documentation

◆ cs_gradient_finalize()

void cs_gradient_finalize ( void  )

Finalize gradient computation API.

◆ cs_gradient_initialize()

void cs_gradient_initialize ( void  )

Initialize gradient computation API.

◆ cs_gradient_scalar()

void cs_gradient_scalar ( const char *  var_name,
cs_gradient_type_t  gradient_type,
cs_halo_type_t  halo_type,
int  inc,
bool  recompute_cocg,
int  n_r_sweeps,
int  tr_dim,
int  hyd_p_flag,
int  w_stride,
int  verbosity,
int  clip_mode,
double  epsilon,
double  extrap,
double  clip_coeff,
cs_real_3_t  f_ext[],
const cs_real_t  bc_coeff_a[],
const cs_real_t  bc_coeff_b[],
cs_real_t *restrict  var,
cs_real_t *restrict  c_weight,
cs_internal_coupling_t cpl,
cs_real_3_t *restrict  grad 
)

Compute cell gradient of scalar field or component of vector or tensor field.

Parameters
[in]var_namevariable name
[in]gradient_typegradient type
[in]halo_typehalo type
[in]incif 0, solve on increment; 1 otherwise
[in]recompute_cocgshould COCG FV quantities be recomputed ?
[in]n_r_sweepsif > 1, number of reconstruction sweeps
[in]tr_dim2 for tensor with periodicity of rotation, 0 otherwise
[in]hyd_p_flagflag for hydrostatic pressure
[in]w_stridestride for weighting coefficient
[in]verbosityverbosity level
[in]clip_modeclipping mode
[in]epsilonprecision for iterative gradient calculation
[in]extrapboundary gradient extrapolation coefficient
[in]clip_coeffclipping coefficient
[in]f_extexterior force generating the hydrostatic pressure
[in]bc_coeff_aboundary condition term a
[in]bc_coeff_bboundary condition term b
[in,out]vargradient's base variable
[in,out]c_weightweighted gradient coefficient variable, or NULL
[in,out]cplstructure associated with internal coupling, or NULL
[out]gradgradient

◆ cs_gradient_scalar_synced_input()

void cs_gradient_scalar_synced_input ( const char *  var_name,
cs_gradient_type_t  gradient_type,
cs_halo_type_t  halo_type,
int  inc,
bool  recompute_cocg,
int  n_r_sweeps,
int  tr_dim,
int  hyd_p_flag,
int  w_stride,
int  verbosity,
int  clip_mode,
double  epsilon,
double  extrap,
double  clip_coeff,
cs_real_t  f_ext[][3],
const cs_real_t  bc_coeff_a[],
const cs_real_t  bc_coeff_b[],
const cs_real_t  var[restrict],
const cs_real_t  c_weight[restrict],
const cs_internal_coupling_t cpl,
cs_real_t  grad[restrict][3] 
)

Compute cell gradient of scalar field or component of vector or tensor field.

This variant of the cs_gradient_scalar function assumes ghost cell values for input arrays (var and optionally c_weight) have already been synchronized.

Parameters
[in]var_namevariable name
[in]gradient_typegradient type
[in]halo_typehalo type
[in]incif 0, solve on increment; 1 otherwise
[in]recompute_cocgshould COCG FV quantities be recomputed ?
[in]n_r_sweepsif > 1, number of reconstruction sweeps
[in]tr_dim2 for tensor with periodicity of rotation, 0 otherwise
[in]hyd_p_flagflag for hydrostatic pressure
[in]w_stridestride for weighting coefficient
[in]verbosityverbosity level
[in]clip_modeclipping mode
[in]epsilonprecision for iterative gradient calculation
[in]extrapboundary gradient extrapolation coefficient
[in]clip_coeffclipping coefficient
[in]f_extexterior force generating the hydrostatic pressure
[in]bc_coeff_aboundary condition term a
[in]bc_coeff_bboundary condition term b
[in]vargradient's base variable
[in]c_weightweighted gradient coefficient variable, or NULL
[in,out]cplstructure associated with internal coupling, or NULL
[out]gradgradient

◆ cs_gradient_tensor()

void cs_gradient_tensor ( const char *  var_name,
cs_gradient_type_t  gradient_type,
cs_halo_type_t  halo_type,
int  inc,
int  n_r_sweeps,
int  verbosity,
int  clip_mode,
double  epsilon,
double  clip_coeff,
const cs_real_6_t  bc_coeff_a[],
const cs_real_66_t  bc_coeff_b[],
cs_real_6_t *restrict  var,
cs_real_63_t *restrict  grad 
)

Compute cell gradient of tensor.

Parameters
[in]var_namevariable name
[in]gradient_typegradient type
[in]halo_typehalo type
[in]incif 0, solve on increment; 1 otherwise
[in]n_r_sweepsif > 1, number of reconstruction sweeps
[in]verbosityverbosity level
[in]clip_modeclipping mode
[in]epsilonprecision for iterative gradient calculation
[in]clip_coeffclipping coefficient
[in]bc_coeff_aboundary condition term a
[in]bc_coeff_bboundary condition term b
[in,out]vargradient's base variable
[out]gradgradient ( $ \der{u_i}{x_j} $ is grad[][i][j])

◆ cs_gradient_tensor_synced_input()

void cs_gradient_tensor_synced_input ( const char *  var_name,
cs_gradient_type_t  gradient_type,
cs_halo_type_t  halo_type,
int  inc,
int  n_r_sweeps,
int  verbosity,
int  clip_mode,
double  epsilon,
double  clip_coeff,
const cs_real_t  bc_coeff_a[][6],
const cs_real_t  bc_coeff_b[][6][6],
const cs_real_t  var[restrict][6],
cs_real_63_t *restrict  grad 
)

Compute cell gradient of tensor.

Parameters
[in]var_namevariable name
[in]gradient_typegradient type
[in]halo_typehalo type
[in]incif 0, solve on increment; 1 otherwise
[in]n_r_sweepsif > 1, number of reconstruction sweeps
[in]verbosityverbosity level
[in]clip_modeclipping mode
[in]epsilonprecision for iterative gradient calculation
[in]clip_coeffclipping coefficient
[in]bc_coeff_aboundary condition term a
[in]bc_coeff_bboundary condition term b
[in,out]vargradient's base variable
[out]gradgradient ( $ \der{t_ij}{x_k} $ is grad[][ij][k])

◆ cs_gradient_type_by_imrgra()

void cs_gradient_type_by_imrgra ( int  imrgra,
cs_gradient_type_t gradient_type,
cs_halo_type_t halo_type 
)

◆ cs_gradient_vector()

void cs_gradient_vector ( const char *  var_name,
cs_gradient_type_t  gradient_type,
cs_halo_type_t  halo_type,
int  inc,
int  n_r_sweeps,
int  verbosity,
int  clip_mode,
double  epsilon,
double  clip_coeff,
const cs_real_3_t  bc_coeff_a[],
const cs_real_33_t  bc_coeff_b[],
cs_real_3_t *restrict  var,
cs_real_t *restrict  c_weight,
cs_internal_coupling_t cpl,
cs_real_33_t *restrict  grad 
)

Compute cell gradient of vector field.

Parameters
[in]var_namevariable name
[in]gradient_typegradient type
[in]halo_typehalo type
[in]incif 0, solve on increment; 1 otherwise
[in]n_r_sweepsif > 1, number of reconstruction sweeps
[in]verbosityverbosity level
[in]clip_modeclipping mode
[in]epsilonprecision for iterative gradient calculation
[in]clip_coeffclipping coefficient
[in]bc_coeff_aboundary condition term a
[in]bc_coeff_bboundary condition term b
[in,out]vargradient's base variable
[in,out]c_weightweighted gradient coefficient variable, or NULL
[in,out]cplstructure associated with internal coupling, or NULL
[out]gradgradient ( $ \der{u_i}{x_j} $ is grad[][i][j])

◆ cs_gradient_vector_synced_input()

void cs_gradient_vector_synced_input ( const char *  var_name,
cs_gradient_type_t  gradient_type,
cs_halo_type_t  halo_type,
int  inc,
int  n_r_sweeps,
int  verbosity,
int  clip_mode,
double  epsilon,
double  clip_coeff,
const cs_real_t  bc_coeff_a[][3],
const cs_real_t  bc_coeff_b[][3][3],
const cs_real_t  var[restrict][3],
const cs_real_t  c_weight[restrict],
const cs_internal_coupling_t cpl,
cs_real_33_t *restrict  grad 
)

Compute cell gradient of vector field.

This variant of the cs_gradient_vector function assumes ghost cell values for input arrays (var and optionally c_weight) have already been synchronized.

Parameters
[in]var_namevariable name
[in]gradient_typegradient type
[in]halo_typehalo type
[in]incif 0, solve on increment; 1 otherwise
[in]n_r_sweepsif > 1, number of reconstruction sweeps
[in]verbosityverbosity level
[in]clip_modeclipping mode
[in]epsilonprecision for iterative gradient calculation
[in]clip_coeffclipping coefficient
[in]bc_coeff_aboundary condition term a
[in]bc_coeff_bboundary condition term b
[in,out]vargradient's base variable
[in,out]c_weightweighted gradient coefficient variable, or NULL
[in,out]cplstructure associated with internal coupling, or NULL
[out]gradgradient ( $ \der{u_i}{x_j} $ is grad[][i][j])

◆ CS_PROCF() [1/4]

void CS_PROCF ( cgdcel  ,
CGDCEL   
) const

◆ CS_PROCF() [2/4]

void CS_PROCF ( cgdts  ,
CGDTS   
) const

◆ CS_PROCF() [3/4]

void CS_PROCF ( cgdvec  ,
CGDVEC   
) const

◆ CS_PROCF() [4/4]

void CS_PROCF ( grdpor  ,
GRDPOR   
) const