#include "cs_config.h"
#include <mpi.h>
#include <omp.h>
#include <stddef.h>
#include <stdint.h>
#include <sys/types.h>
#include <stdbool.h>
Go to the source code of this file.
Data Structures | |
struct | cs_double_int_t |
struct | cs_nvec3_t |
Macros | |
#define | _LIBINTL_H |
#define | _(String) (String) |
#define | N_(String) String |
#define | textdomain(String) (String) |
#define | gettext(String) (String) |
#define | dgettext(Domain, String) (String) |
#define | dcgettext(Domain, String, Type) (String) |
#define | bindtextdomain(Domain, Directory) (Domain) |
#define | MPI_VERSION 1 |
#define | MPI_Info int |
#define | MPI_INFO_NULL 0 |
#define | __STDC_VERSION__ 1989 |
#define | inline |
#define | restrict |
#define | CS_MPI_REAL MPI_DOUBLE /* If cs_real_t is a double */ |
#define | CS_MPI_GNUM MPI_UNSIGNED_LONG |
#define | CS_MPI_LNUM MPI_INT |
#define | CS_MPI_EFLAG MPI_UNSIGNED /* MPI type for cs_mflag_t type */ |
#define | CS_MPI_FLAG MPI_UNSIGNED_SHORT /* MPI type for cs_flag_t type */ |
#define | CS_MPI_COORD MPI_DOUBLE /* MPI type for cs_coord_t type */ |
#define | CS_GNUM_TYPE CS_UINT64 |
#define | CS_LNUM_TYPE CS_INT32 |
#define | CS_INT_TYPE CS_INT32 |
#define | CS_UINT_TYPE CS_UINT32 |
#define | CS_FLAG_TYPE CS_UINT16 |
#define | CS_EFLAG_TYPE CS_UINT_TYPE |
#define | CS_REAL_TYPE CS_DOUBLE |
#define | CS_COORD_TYPE CS_DOUBLE |
#define | CS_THR_MIN 128 |
#define | CS_CL_SIZE 64 |
#define | CS_ABS(a) ((a) < 0 ? -(a) : (a)) |
#define | CS_MIN(a, b) ((a) < (b) ? (a) : (b)) |
#define | CS_MAX(a, b) ((a) > (b) ? (a) : (b)) |
#define | CS_UNUSED(x) (void)(x) |
#define | CS_NO_WARN_IF_UNUSED(x) (void)(x) |
#define | BEGIN_C_DECLS |
#define | END_C_DECLS |
#define | CS_PROCF(x, y) x##_ |
#define | CS_ARGF_SUPP_CHAINE , ... |
Typedefs | |
typedef unsigned long | cs_gnum_t |
global mesh entity number More... | |
typedef int | cs_lnum_t |
local mesh entity id More... | |
typedef double | cs_coord_t |
typedef double | cs_real_t |
Floating-point value. More... | |
typedef char | cs_byte_t |
typedef unsigned short int | cs_flag_t |
typedef cs_lnum_t | cs_lnum_2_t[2] |
vector of 2 local mesh-entity ids More... | |
typedef cs_lnum_t | cs_lnum_3_t[3] |
typedef cs_coord_t | 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_9_t[9] |
typedef cs_real_t | cs_real_10_t[10] |
typedef cs_real_t | cs_real_33_t[3][3] |
3x3 matrix of floating-point values More... | |
typedef cs_real_t | cs_real_66_t[6][6] |
6x6 matrix of floating-point values More... | |
typedef cs_real_t | cs_real_99_t[9][9] |
typedef cs_real_t | cs_real_333_t[3][3][3] |
typedef cs_real_t | cs_real_34_t[3][4] |
typedef cs_real_t | cs_real_63_t[6][3] |
typedef cs_real_t | cs_real_69_t[6][9] |
typedef cs_real_33_t | cs_real_332_t[2] |
vector of 2 3x3 matrices of floating-point values More... | |
typedef cs_real_66_t | cs_real_662_t[2] |
Enumerations | |
enum | cs_datatype_t { CS_DATATYPE_NULL, CS_CHAR, CS_FLOAT, CS_DOUBLE, CS_UINT16, CS_INT32, CS_INT64, CS_UINT32, CS_UINT64 } |
enum | cs_interlace_t { CS_INTERLACE, CS_NO_INTERLACE } |
Functions | |
static cs_lnum_t | cs_align (cs_lnum_t i, cs_lnum_t m) |
Given a base index i, return the next index aligned with a size m. More... | |
Variables | |
const char | cs_empty_string [] |
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 |
int | cs_glob_node_rank_id |
int | cs_glob_node_n_ranks |
MPI_Comm | cs_glob_mpi_comm |
Base macro and typedef definitions for system portability.
#define _ | ( | String | ) | (String) |
#define __STDC_VERSION__ 1989 |
#define _LIBINTL_H |
#define BEGIN_C_DECLS |
#define bindtextdomain | ( | Domain, | |
Directory | |||
) | (Domain) |
#define CS_ABS | ( | a | ) | ((a) < 0 ? -(a) : (a)) |
Absolute value of a
#define CS_ARGF_SUPP_CHAINE , ... |
#define CS_CL_SIZE 64 |
#define CS_COORD_TYPE CS_DOUBLE |
#define CS_EFLAG_TYPE CS_UINT_TYPE |
#define CS_FLAG_TYPE CS_UINT16 |
#define CS_GNUM_TYPE CS_UINT64 |
#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_EFLAG MPI_UNSIGNED /* MPI type for cs_mflag_t type */ |
#define CS_MPI_FLAG MPI_UNSIGNED_SHORT /* MPI type for cs_flag_t type */ |
#define CS_MPI_GNUM MPI_UNSIGNED_LONG |
#define CS_MPI_LNUM MPI_INT |
#define CS_MPI_REAL MPI_DOUBLE /* If cs_real_t is a double */ |
#define CS_NO_WARN_IF_UNUSED | ( | x | ) | (void)(x) |
#define CS_PROCF | ( | x, | |
y | |||
) | x##_ |
#define CS_REAL_TYPE CS_DOUBLE |
#define CS_THR_MIN 128 |
#define CS_UINT_TYPE CS_UINT32 |
#define CS_UNUSED | ( | x | ) | (void)(x) |
#define dcgettext | ( | Domain, | |
String, | |||
Type | |||
) | (String) |
#define dgettext | ( | Domain, | |
String | |||
) | (String) |
#define END_C_DECLS |
#define gettext | ( | String | ) | (String) |
#define inline |
#define MPI_Info int |
#define MPI_INFO_NULL 0 |
#define MPI_VERSION 1 |
#define N_ | ( | String | ) | String |
#define restrict |
#define textdomain | ( | String | ) | (String) |
typedef char cs_byte_t |
typedef cs_coord_t cs_coord_3_t[3] |
typedef double cs_coord_t |
typedef unsigned short int cs_flag_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_lnum_2_t |
vector of 2 local mesh-entity ids
typedef cs_lnum_t cs_lnum_3_t[3] |
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.
typedef cs_real_t cs_real_10_t[10] |
cs_real_2_t |
vector of 2 floating-point values
cs_real_332_t |
vector of 2 3x3 matrices of floating-point values
typedef cs_real_t cs_real_333_t[3][3][3] |
cs_real_33_t |
3x3 matrix of floating-point values
typedef cs_real_t cs_real_34_t[3][4] |
cs_real_3_t |
vector of 3 floating-point values
cs_real_4_t |
vector of 4 floating-point values
typedef cs_real_t cs_real_63_t[6][3] |
typedef cs_real_66_t cs_real_662_t[2] |
cs_real_66_t |
6x6 matrix of floating-point values
typedef cs_real_t cs_real_69_t[6][9] |
cs_real_6_t |
vector of 6 floating-point values
typedef cs_real_t cs_real_99_t[9][9] |
typedef cs_real_t cs_real_9_t[9] |
Floating-point value.
enum cs_datatype_t |
enum cs_interlace_t |
Given a base index i, return the next index aligned with a size m.
[in] | i | base index |
[in] | m | block size to align with |
This index is computed as follows:
if i > 0: ((i - 1) / m + 1) * m if i = 0: 0
[in] | i | base index |
[in] | m | block size to align with |
const char* cs_datatype_name[] |
const size_t cs_datatype_size[] |
MPI_Datatype cs_datatype_to_mpi[] |
const char cs_empty_string[] |
MPI_Comm cs_glob_mpi_comm |
int cs_glob_n_ranks |
Number of processes in communicator
int cs_glob_n_threads |
int cs_glob_node_n_ranks |
Number of ranks on node of main MPI communicator
int cs_glob_node_rank_id |
Rank on node in main MPI communicator
int cs_glob_rank_id |
Rank of process in communicator