MRMD
0.4.0
Multi Resolution Molecular Dynamics
Loading...
Searching...
No Matches
GhostExchange.hpp
Go to the documentation of this file.
1
// Copyright 2024 Sebastian Eibl
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
6
//
7
// https://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
// See the License for the specific language governing permissions and
13
// limitations under the License.
14
15
#pragma once
16
17
#include "
data/Atoms.hpp
"
18
#include "
data/Subdomain.hpp
"
19
#include "
datatypes.hpp
"
20
#include "
util/Kokkos_grow.hpp
"
21
22
namespace
mrmd
23
{
24
namespace
communication
25
{
26
namespace
impl
27
{
28
class
GhostExchange
29
{
30
private
:
34
Kokkos::View<idx_t* [2]> atomsToCommunicateAll_;
35
37
Kokkos::View<idx_t[2]> numberOfAtomsToCommunicate_;
38
40
IndexView
correspondingRealAtom_;
41
42
public
:
43
IndexView
createGhostAtoms
(
data::Atoms
& atoms,
44
const
data::Subdomain
& subdomain,
45
const
AXIS
& axis);
46
47
IndexView
createGhostAtomsXYZ
(
data::Atoms
& atoms,
const
data::Subdomain
& subdomain);
48
49
void
resetCorrespondingRealAtoms
(
data::Atoms
& atoms);
50
51
GhostExchange
(
const
idx_t
& initialSize = 100);
52
};
53
54
}
// namespace impl
55
}
// namespace communication
56
}
// namespace mrmd
Atoms.hpp
Kokkos_grow.hpp
Subdomain.hpp
mrmd::communication::impl::GhostExchange
Definition
GhostExchange.hpp:29
mrmd::communication::impl::GhostExchange::createGhostAtomsXYZ
IndexView createGhostAtomsXYZ(data::Atoms &atoms, const data::Subdomain &subdomain)
Definition
GhostExchange.cpp:171
mrmd::communication::impl::GhostExchange::resetCorrespondingRealAtoms
void resetCorrespondingRealAtoms(data::Atoms &atoms)
Definition
GhostExchange.cpp:183
mrmd::communication::impl::GhostExchange::createGhostAtoms
IndexView createGhostAtoms(data::Atoms &atoms, const data::Subdomain &subdomain, const AXIS &axis)
Definition
GhostExchange.cpp:59
mrmd::data::impl::GeneralAtoms
Data structure for storing information about atoms on the host and the device.
Definition
Atoms.hpp:35
datatypes.hpp
mrmd
Definition
BerendsenBarostat.cpp:18
mrmd::AXIS
AXIS
Definition
datatypes.hpp:141
mrmd::idx_t
int64_t idx_t
Definition
datatypes.hpp:91
mrmd::IndexView
Kokkos::View< idx_t * > IndexView
Definition
datatypes.hpp:153
mrmd::data::Subdomain
|X|O|OOOOOOOOOO |X|O|OOOOOOOOOO |X|O+-------— <– minInnerCorner |X|OOOOOOOOOOOO |X+---------— <– minC...
Definition
Subdomain.hpp:38
mrmd
communication
GhostExchange.hpp
Generated by
1.9.8