Reference documentation for deal.II version 9.6.0
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Loading...
Searching...
No Matches
mpi_stub.h
Go to the documentation of this file.
1// ------------------------------------------------------------------------
2//
3// SPDX-License-Identifier: LGPL-2.1-or-later
4// Copyright (C) 2022 - 2023 by the deal.II authors
5//
6// This file is part of the deal.II library.
7//
8// Part of the source code is dual licensed under Apache-2.0 WITH
9// LLVM-exception OR LGPL-2.1-or-later. Detailed license information
10// governing the source code and code contributions can be found in
11// LICENSE.md and CONTRIBUTING.md at the top level directory of deal.II.
12//
13// ------------------------------------------------------------------------
14
15#ifndef dealii_mpi_stub_h
16#define dealii_mpi_stub_h
17
18#include <deal.II/base/config.h>
19
20// If we have mpi.h then include it. Otherwise, define some common MPI data
21// types and global constants for the no-MPI case. This way we can still use,
22// e.g., MPI_Comm in the API.
23
24#if defined(DEAL_II_WITH_MPI)
25# include <mpi.h>
26#else
27// without MPI, we would still like to use
28// some constructs with MPI data
29// types. Therefore, create some dummies
30using MPI_Comm = int;
31using MPI_Request = int;
32using MPI_Datatype = int;
33using MPI_Op = int;
34# ifndef MPI_COMM_WORLD
35# define MPI_COMM_WORLD 0
36# endif
37# ifndef MPI_COMM_SELF
38# define MPI_COMM_SELF 0
39# endif
40# ifndef MPI_COMM_NULL
41# define MPI_COMM_NULL 0
42# endif
43# ifndef MPI_REQUEST_NULL
44# define MPI_REQUEST_NULL 0
45# endif
46# ifndef MPI_MIN
47# define MPI_MIN 0
48# endif
49# ifndef MPI_MAX
50# define MPI_MAX 0
51# endif
52# ifndef MPI_SUM
53# define MPI_SUM 0
54# endif
55# ifndef MPI_LOR
56# define MPI_LOR 0
57# endif
58#endif
59
60#endif