MAIA bb96820c
Multiphysics at AIA
Loading...
Searching...
No Matches
fvstructuredcomm.h
Go to the documentation of this file.
1// Copyright (C) 2024 The m-AIA AUTHORS
2//
3// This file is part of m-AIA (https://git.rwth-aachen.de/aia/m-AIA/m-AIA)
4//
5// SPDX-License-Identifier: LGPL-3.0-only
6
7#ifndef FVSTRUCTUREDCOMM
8#define FVSTRUCTUREDCOMM
9
10#include <memory>
11#include "COMM/mpioverride.h"
12#include "INCLUDE/maiatypes.h"
13#include "enums.h"
14
15// This class contains the information needed for the solver to communicate via MPI with other processes.
16// It also contains the send/receive buffers
17
18template <MInt nDim>
20 public:
21 StructuredComm(const MInt, MFloat* const* const, const MInt, const MInt, const StructuredCommType);
23
24 const MInt noVars;
25 MFloat* const* const variables;
29
35
36 std::unique_ptr<MFloat[]> cellBuffer{};
37 std::unique_ptr<MFloat[]> pointBuffer{};
38
39 /* MFloat* cellBuffer = nullptr; */
40 /* MFloat* pointBuffer= nullptr; */
41
42
43 MPI_Request mpi_request;
44 MPI_Status mpi_status;
45
46 std::array<MInt, nDim> startInfoCells{};
47 std::array<MInt, nDim> endInfoCells{};
48 std::array<MInt, nDim> startInfoPoints{};
49 std::array<MInt, nDim> endInfoPoints{};
50
51 std::array<MInt, nDim> orderInfo{};
52 std::array<MInt, nDim> stepInfo{};
53};
54
55
56#endif
std::array< MInt, nDim > endInfoCells
MPI_Request mpi_request
std::unique_ptr< MFloat[]> pointBuffer
MPI_Status mpi_status
std::array< MInt, nDim > endInfoPoints
std::unique_ptr< MFloat[]> cellBuffer
std::array< MInt, nDim > startInfoPoints
const StructuredCommType commType
const MInt noVars
std::array< MInt, nDim > stepInfo
std::array< MInt, nDim > startInfoCells
std::array< MInt, nDim > orderInfo
const MInt noCells
MFloat *const *const variables
const MInt noPoints
StructuredCommType
Definition: enums.h:343
int32_t MInt
Definition: maiatypes.h:62
double MFloat
Definition: maiatypes.h:52