src/base/cs_defs.h File Reference

| programmer's documentation

- Main Page
- Related Pages
- Modules
- Data Structures
- Files

- File List
- Globals

All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Typedefs | Enumerations | Variables
cs_defs.h File Reference
`#include "cs_config.h"`
`#include <libintl.h>`
`#include <mpi.h>`
`#include <stddef.h>`
`#include <stdint.h>`
`#include <sys/types.h>`
`#include <stdbool.h>`
Include dependency graph for cs_defs.h:

Go to the source code of this file.

## Macros
#define | _(String) dgettext(PACKAGE, String)
#define | N_(String) String
#define | MPI_VERSION 1
#define | MPI_Info int
#define | MPI_INFO_NULL 0
#define | __STDC_VERSION__ 1989
#define | inline
#define | restrict
#define | CS_MPI_INT MPI_INT /* If cs_int_t is an int */
#define | CS_MPI_REAL MPI_DOUBLE /* If cs_real_t is a double */
#define | CS_MPI_GNUM MPI_UNSIGNED
#define | CS_MPI_LNUM MPI_INT /* MPI type for cs_lnum_t type */
#define | CS_MPI_COORD MPI_DOUBLE /* MPI type for cs_coord_t type */
#define | CS_GNUM_TYPE CS_UINT32
#define | CS_LNUM_TYPE CS_INT32
#define | CS_INT_TYPE CS_INT32
#define | CS_REAL_TYPE CS_DOUBLE
#define | CS_COORD_TYPE CS_DOUBLE
#define | CS_ABS(a) ((a) < 0 ? -(a) : (a)) /* Absolute value of a */
#define | CS_MIN(a, b) ((a) < (b) ? (a) : (b)) /* Minimum of a et b */
#define | CS_MAX(a, b) ((a) > (b) ? (a) : (b)) /* Maximum of a et b */
#define | BEGIN_C_DECLS
#define | END_C_DECLS
#define | CS_PROCF(x, y) x##_
#define | CS_ARGF_SUPP_CHAINE , ...

## Typedefs
typedef unsigned | cs_gnum_t
| global mesh entity number More...
typedef int | cs_lnum_t
| local mesh entity id More...
typedef double | cs_coord_t
typedef int | cs_int_t
| Fortran-compatible integer. More...
typedef double | cs_real_t
typedef char | cs_byte_t
typedef cs_lnum_t | cs_lnum_2_t [2]
| vector of 2 local mesh-entity ids More...
typedef double | cs_coord_3_t [3]
typedef cs_real_t | cs_real_2_t [2]
| vector of 2 floating-point values More...
typedef cs_real_t | cs_real_3_t [3]
| vector of 3 floating-point values More...
typedef cs_real_t | cs_real_4_t [4]
| vector of 4 floating-point values More...
typedef cs_real_t | cs_real_6_t [6]
| vector of 6 floating-point values More...
typedef cs_real_t | cs_real_33_t [3][3]
| 3x3 matrix of floating-point values More...

## Enumerations
enum | cs_datatype_t { CS_DATATYPE_NULL, CS_CHAR, CS_FLOAT, CS_DOUBLE, CS_INT32, CS_INT64, CS_UINT32, CS_UINT64 }
enum | cs_interlace_t { CS_INTERLACE, CS_NO_INTERLACE }

## Variables
const size_t | cs_datatype_size []
const char * | cs_datatype_name []
MPI_Datatype | cs_datatype_to_mpi []
int | cs_glob_n_threads
int | cs_glob_rank_id
int | cs_glob_n_ranks
MPI_Comm | cs_glob_mpi_comm

## Macro Definition Documentation

#define _ | ( |  | String | ) | dgettext(PACKAGE, String)

#define __STDC_VERSION__ 1989

#define BEGIN_C_DECLS

#define CS_ABS | ( |  | a | ) | ((a) < 0 ? -(a) : (a)) /* Absolute value of a */

#define CS_ARGF_SUPP_CHAINE , ...

#define CS_COORD_TYPE CS_DOUBLE

#define CS_GNUM_TYPE CS_UINT32

#define CS_INT_TYPE CS_INT32

#define CS_LNUM_TYPE CS_INT32

#define CS_MAX | ( |  | a,
|  |  | b
| ) |  | ((a) > (b) ? (a) : (b)) /* Maximum of a et b */

#define CS_MIN | ( |  | a,
|  |  | b
| ) |  | ((a) < (b) ? (a) : (b)) /* Minimum of a et b */

#define CS_MPI_COORD MPI_DOUBLE /* MPI type for cs_coord_t type */

#define CS_MPI_GNUM MPI_UNSIGNED

#define CS_MPI_INT MPI_INT /* If cs_int_t is an int */

#define CS_MPI_LNUM MPI_INT /* MPI type for cs_lnum_t type */

#define CS_MPI_REAL MPI_DOUBLE /* If cs_real_t is a double */

#define CS_PROCF | ( |  | x,
|  |  | y
| ) |  | x##_

#define CS_REAL_TYPE CS_DOUBLE

#define END_C_DECLS

#define inline

#define MPI_Info int

#define MPI_INFO_NULL 0

#define MPI_VERSION 1

#define N_ | ( |  | String | ) | String

#define restrict

## Typedef Documentation

typedef char cs_byte_t

typedef double cs_coord_3_t[3]

typedef double cs_coord_t

cs_gnum_t

global mesh entity number

Global mesh-entity numbers are strictly positive (1 to n based) integers, so they are declared as a form of unsigned integer. Such a number is unique across MPI ranks; 2 mesh elements on different ranks share the same number if and only if they are local instances of the same global element (such as shared faces or vertices on rank boundaries). A value of 0 is commonly used to mark undefined (or not yet defined) element ids in various pre or post-processing stages.

cs_int_t

Fortran-compatible integer.

Deprecated:
  Currently, this integer type is necessarily of the same type as cs_lnum_t, but it should only be used in Fortran wrapper function definitions. Moving to ISO_C_BINDINGS, and converting more code to C, this type should eventually disappear.

cs_lnum_2_t

vector of 2 local mesh-entity ids

cs_lnum_t

local mesh entity id

Local mesh-entity ids are signed integers, and be either 0 to n-1 or 1 to n based. When 0-based, the id prefix or postfix is preferred for associated variable names, while num is preferred when 1-based. In C code, using this type is recommended over using simple `int` integers, as 64-bit variants could be used in the future for shared-memory machines with large memory. This type should not be used to declare identifiers which are not mesh entities, such as groups, fields, or any other entity whose count does not depend on mesh size, so as not to pollute the readability and comprehensibility of the code.

cs_real_2_t

vector of 2 floating-point values

cs_real_33_t

3x3 matrix of floating-point values

cs_real_3_t

vector of 3 floating-point values

cs_real_4_t

vector of 4 floating-point values

cs_real_6_t

vector of 6 floating-point values

typedef double cs_real_t

## Enumeration Type Documentation

enum cs_datatype_t

Enumerator
CS_DATATYPE_NULL |
CS_CHAR |
CS_FLOAT |
CS_DOUBLE |
CS_INT32 |
CS_INT64 |
CS_UINT32 |
CS_UINT64 |

enum cs_interlace_t

Enumerator
CS_INTERLACE |
CS_NO_INTERLACE |

## Variable Documentation

const char* cs_datatype_name[]

const size_t cs_datatype_size[]

MPI_Datatype cs_datatype_to_mpi[]

MPI_Comm cs_glob_mpi_comm

int cs_glob_n_ranks

int cs_glob_n_threads

int cs_glob_rank_id