My Project
programmer's documentation
Macros | Typedefs | Functions | Variables
cs_flag.h File Reference
#include "cs_defs.h"
Include dependency graph for cs_flag.h:

Go to the source code of this file.

Macros

#define CS_FLAG_COMP_PV   (1 << 0) /* 1: local info. for vertices */
 
#define CS_FLAG_COMP_PVQ   (1 << 1) /* 2: local quant. on vertices */
 
#define CS_FLAG_COMP_PE   (1 << 2) /* 4: local info. for edges */
 
#define CS_FLAG_COMP_PEQ   (1 << 3) /* 8: local quant. on edges */
 
#define CS_FLAG_COMP_DFQ   (1 << 4) /* 16: local quant. on dual faces */
 
#define CS_FLAG_COMP_PF   (1 << 5) /* 32: local info. for faces */
 
#define CS_FLAG_COMP_PFQ   (1 << 6) /* 64: local quant. on faces */
 
#define CS_FLAG_COMP_DEQ   (1 << 7) /* 128: local quant. on dual edges */
 
#define CS_FLAG_COMP_EV   (1 << 8) /* 256: local e2v connectivity */
 
#define CS_FLAG_COMP_FE   (1 << 9) /* 512: local f2e connectivity */
 
#define CS_FLAG_COMP_FEQ   (1 << 10) /* 1024: local f2e quantities */
 
#define CS_FLAG_COMP_FV   (1 << 11) /* 2048: local f2v connectivity */
 
#define CS_FLAG_COMP_EF   (1 << 12) /* 4096: local e2f connectivity */
 
#define CS_FLAG_COMP_EFQ   (1 << 13) /* 8192: local e2f quantities */
 
#define CS_FLAG_COMP_HFQ   (1 << 14) /* 16384: local quant. on face pyramids */
 
#define CS_FLAG_COMP_DIAM   (1 << 15) /* 32768: local diameters on faces/cell */
 
Flags specifying the type of cell
#define CS_FLAG_BOUNDARY_CELL_BY_FACE   (1 << 0)
 
#define CS_FLAG_BOUNDARY_CELL_BY_VERTEX   (1 << 1)
 
Flag related to the way a CDO system is built
#define CS_FLAG_SYS_MASS_MATRIX   (1 << 0)
 
#define CS_FLAG_SYS_SYM   (1 << 1)
 
#define CS_FLAG_SYS_TIME_DIAG   (1 << 2)
 
#define CS_FLAG_SYS_REAC_DIAG   (1 << 3)
 
#define CS_FLAG_SYS_SOURCES_HLOC   (1 << 4)
 
#define CS_FLAG_SYS_VECTOR   (1 << 5)
 
Flags use to identify the nature/status of an object

Apply this flag on a variable, a property or an advection field

#define CS_FLAG_STATE_UNIFORM   (1 << 0)
 
#define CS_FLAG_STATE_CELLWISE   (1 << 1)
 
#define CS_FLAG_STATE_FACEWISE   (1 << 2)
 
#define CS_FLAG_STATE_STEADY   (1 << 3)
 
#define CS_FLAG_STATE_POTENTIAL   (1 << 4)
 
#define CS_FLAG_STATE_CIRCULATION   (1 << 5)
 
#define CS_FLAG_STATE_FLUX   (1 << 6)
 
#define CS_FLAG_STATE_DENSITY   (1 << 7)
 
#define CS_FLAG_STATE_OWNER   (1 << 8)
 
Flags use to identify metadata for a quantity

where is located this quantity and how to access to its values

#define CS_FLAG_FULL_LOC   (1 << 0)
 
#define CS_FLAG_SCALAR   (1 << 1)
 
#define CS_FLAG_VECTOR   (1 << 2)
 
#define CS_FLAG_TENSOR   (1 << 3)
 
#define CS_FLAG_VERTEX   (1 << 4)
 
#define CS_FLAG_EDGE   (1 << 5)
 
#define CS_FLAG_FACE   (1 << 6)
 
#define CS_FLAG_CELL   (1 << 7)
 
#define CS_FLAG_PRIMAL   (1 << 8)
 
#define CS_FLAG_DUAL   (1 << 9)
 
#define CS_FLAG_BORDER   (1 << 10)
 
#define CS_FLAG_BY_CELL   (1 << 11)
 
#define CS_FLAG_BY_FACE   (1 << 12)
 
Flags use to identify the type of equations requested.

There exists one flag for each type of space discretization. If this flag is activated, then at least one equation or system of this kind is discretized with this space discretization scheme.

#define CS_FLAG_SCHEME_SCALAR   (1 << 0)
 
#define CS_FLAG_SCHEME_VECTOR   (1 << 1)
 
#define CS_FLAG_SCHEME_NAVSTO   (1 << 2)
 
#define CS_FLAG_SCHEME_POLY0   (1 << 3)
 
#define CS_FLAG_SCHEME_POLY1   (1 << 4)
 
#define CS_FLAG_SCHEME_POLY2   (1 << 5)
 

Typedefs

typedef unsigned char cs_mask_t
 

Functions

static bool cs_flag_test (cs_flag_t flag_to_check, cs_flag_t reference)
 Check if a two flag share the same pattern Return true if the flag to check has at least the pattern of the reference flag. More...
 
const char * cs_flag_str_location (cs_flag_t loc)
 Retrieve the label associated to a location flag. More...
 

Variables

const cs_flag_t cs_flag_primal_vtx
 
const cs_flag_t cs_flag_primal_face
 
const cs_flag_t cs_flag_primal_cell
 
const cs_flag_t cs_flag_dual_vtx
 
const cs_flag_t cs_flag_dual_face
 
const cs_flag_t cs_flag_dual_cell
 
const cs_flag_t cs_flag_dual_face_byc
 
const cs_flag_t cs_flag_dual_closure_byf
 

Macro Definition Documentation

◆ CS_FLAG_BORDER

#define CS_FLAG_BORDER   (1 << 10)

1024: located on the boundary

◆ CS_FLAG_BOUNDARY_CELL_BY_FACE

#define CS_FLAG_BOUNDARY_CELL_BY_FACE   (1 << 0)

1: boundary cell with at least one border face

◆ CS_FLAG_BOUNDARY_CELL_BY_VERTEX

#define CS_FLAG_BOUNDARY_CELL_BY_VERTEX   (1 << 1)

2: boundary cell with at least one border vertex

◆ CS_FLAG_BY_CELL

#define CS_FLAG_BY_CELL   (1 << 11)

2048: by cell (c2e, c2f, c2v)

◆ CS_FLAG_BY_FACE

#define CS_FLAG_BY_FACE   (1 << 12)

4096: by face (bf2v)

◆ CS_FLAG_CELL

#define CS_FLAG_CELL   (1 << 7)

128: on cells

◆ CS_FLAG_COMP_DEQ

#define CS_FLAG_COMP_DEQ   (1 << 7) /* 128: local quant. on dual edges */

◆ CS_FLAG_COMP_DFQ

#define CS_FLAG_COMP_DFQ   (1 << 4) /* 16: local quant. on dual faces */

◆ CS_FLAG_COMP_DIAM

#define CS_FLAG_COMP_DIAM   (1 << 15) /* 32768: local diameters on faces/cell */

◆ CS_FLAG_COMP_EF

#define CS_FLAG_COMP_EF   (1 << 12) /* 4096: local e2f connectivity */

◆ CS_FLAG_COMP_EFQ

#define CS_FLAG_COMP_EFQ   (1 << 13) /* 8192: local e2f quantities */

◆ CS_FLAG_COMP_EV

#define CS_FLAG_COMP_EV   (1 << 8) /* 256: local e2v connectivity */

◆ CS_FLAG_COMP_FE

#define CS_FLAG_COMP_FE   (1 << 9) /* 512: local f2e connectivity */

◆ CS_FLAG_COMP_FEQ

#define CS_FLAG_COMP_FEQ   (1 << 10) /* 1024: local f2e quantities */

◆ CS_FLAG_COMP_FV

#define CS_FLAG_COMP_FV   (1 << 11) /* 2048: local f2v connectivity */

◆ CS_FLAG_COMP_HFQ

#define CS_FLAG_COMP_HFQ   (1 << 14) /* 16384: local quant. on face pyramids */

◆ CS_FLAG_COMP_PE

#define CS_FLAG_COMP_PE   (1 << 2) /* 4: local info. for edges */

◆ CS_FLAG_COMP_PEQ

#define CS_FLAG_COMP_PEQ   (1 << 3) /* 8: local quant. on edges */

◆ CS_FLAG_COMP_PF

#define CS_FLAG_COMP_PF   (1 << 5) /* 32: local info. for faces */

◆ CS_FLAG_COMP_PFQ

#define CS_FLAG_COMP_PFQ   (1 << 6) /* 64: local quant. on faces */

◆ CS_FLAG_COMP_PV

#define CS_FLAG_COMP_PV   (1 << 0) /* 1: local info. for vertices */

◆ CS_FLAG_COMP_PVQ

#define CS_FLAG_COMP_PVQ   (1 << 1) /* 2: local quant. on vertices */

◆ CS_FLAG_DUAL

#define CS_FLAG_DUAL   (1 << 9)

512: on dual mesh

◆ CS_FLAG_EDGE

#define CS_FLAG_EDGE   (1 << 5)

32: on edges

◆ CS_FLAG_FACE

#define CS_FLAG_FACE   (1 << 6)

64: on faces

◆ CS_FLAG_FULL_LOC

#define CS_FLAG_FULL_LOC   (1 << 0)

1: defined on the whole location

◆ CS_FLAG_PRIMAL

#define CS_FLAG_PRIMAL   (1 << 8)

256: on primal mesh

◆ CS_FLAG_SCALAR

#define CS_FLAG_SCALAR   (1 << 1)

2: scalar-valued (stride = 1)

◆ CS_FLAG_SCHEME_NAVSTO

#define CS_FLAG_SCHEME_NAVSTO   (1 << 2)

4: Navier-Stokes system

◆ CS_FLAG_SCHEME_POLY0

#define CS_FLAG_SCHEME_POLY0   (1 << 3)

8: lowest-order scheme

◆ CS_FLAG_SCHEME_POLY1

#define CS_FLAG_SCHEME_POLY1   (1 << 4)

16: Linear gradient approx.

◆ CS_FLAG_SCHEME_POLY2

#define CS_FLAG_SCHEME_POLY2   (1 << 5)

32: Quadratic gradient approx.

◆ CS_FLAG_SCHEME_SCALAR

#define CS_FLAG_SCHEME_SCALAR   (1 << 0)

1: scheme for scalar eq.

◆ CS_FLAG_SCHEME_VECTOR

#define CS_FLAG_SCHEME_VECTOR   (1 << 1)

2: scheme for a vector eq.

◆ CS_FLAG_STATE_CELLWISE

#define CS_FLAG_STATE_CELLWISE   (1 << 1)

2: cellwise uniform

◆ CS_FLAG_STATE_CIRCULATION

#define CS_FLAG_STATE_CIRCULATION   (1 << 5)

32: circulation

◆ CS_FLAG_STATE_DENSITY

#define CS_FLAG_STATE_DENSITY   (1 << 7)

128: density

◆ CS_FLAG_STATE_FACEWISE

#define CS_FLAG_STATE_FACEWISE   (1 << 2)

4: uniform on each face

◆ CS_FLAG_STATE_FLUX

#define CS_FLAG_STATE_FLUX   (1 << 6)

64: flux

◆ CS_FLAG_STATE_OWNER

#define CS_FLAG_STATE_OWNER   (1 << 8)

256: owner

◆ CS_FLAG_STATE_POTENTIAL

#define CS_FLAG_STATE_POTENTIAL   (1 << 4)

16: potential

◆ CS_FLAG_STATE_STEADY

#define CS_FLAG_STATE_STEADY   (1 << 3)

8: steady

◆ CS_FLAG_STATE_UNIFORM

#define CS_FLAG_STATE_UNIFORM   (1 << 0)

1: uniform (in space)

◆ CS_FLAG_SYS_MASS_MATRIX

#define CS_FLAG_SYS_MASS_MATRIX   (1 << 0)

1: build a mass matrix

◆ CS_FLAG_SYS_REAC_DIAG

#define CS_FLAG_SYS_REAC_DIAG   (1 << 3)

8: lump the reaction term

◆ CS_FLAG_SYS_SOURCES_HLOC

#define CS_FLAG_SYS_SOURCES_HLOC   (1 << 4)

16: Hodge op. for source terms

◆ CS_FLAG_SYS_SYM

#define CS_FLAG_SYS_SYM   (1 << 1)

2: system matrix is symmetric

◆ CS_FLAG_SYS_TIME_DIAG

#define CS_FLAG_SYS_TIME_DIAG   (1 << 2)

4: lump the time term

◆ CS_FLAG_SYS_VECTOR

#define CS_FLAG_SYS_VECTOR   (1 << 5)

32: vector-valued variable

◆ CS_FLAG_TENSOR

#define CS_FLAG_TENSOR   (1 << 3)

8: tensor-valued (stride = 9)

◆ CS_FLAG_VECTOR

#define CS_FLAG_VECTOR   (1 << 2)

4: vector-valued (stride = 3)

◆ CS_FLAG_VERTEX

#define CS_FLAG_VERTEX   (1 << 4)

16: on vertices

Typedef Documentation

◆ cs_mask_t

typedef unsigned char cs_mask_t

Function Documentation

◆ cs_flag_str_location()

const char* cs_flag_str_location ( cs_flag_t  loc)

Retrieve the label associated to a location flag.

Returns
a string

◆ cs_flag_test()

static bool cs_flag_test ( cs_flag_t  flag_to_check,
cs_flag_t  reference 
)
inlinestatic

Check if a two flag share the same pattern Return true if the flag to check has at least the pattern of the reference flag.

Parameters
[in]flag_to_checkflag corresponding to the location to check
[in]referenceflag corresponding to the referenced support
Returns
true or false

Variable Documentation

◆ cs_flag_dual_cell

const cs_flag_t cs_flag_dual_cell

◆ cs_flag_dual_closure_byf

const cs_flag_t cs_flag_dual_closure_byf

◆ cs_flag_dual_face

const cs_flag_t cs_flag_dual_face

◆ cs_flag_dual_face_byc

const cs_flag_t cs_flag_dual_face_byc

◆ cs_flag_dual_vtx

const cs_flag_t cs_flag_dual_vtx

◆ cs_flag_primal_cell

const cs_flag_t cs_flag_primal_cell

◆ cs_flag_primal_face

const cs_flag_t cs_flag_primal_face

◆ cs_flag_primal_vtx

const cs_flag_t cs_flag_primal_vtx