ls1-MarDyn
ls1-MarDyn molecular dynamics code
EighthShell.h
1/*
2 * CommunicationScheme.h
3 *
4 * Created on: 14.07.2017
5 * Author: sauermann
6 */
7
8#pragma once
9
10#include "ZonalMethod.h"
11
18class EighthShell: public ZonalMethod {
19public:
20 EighthShell() = default;
21 ~~EighthShell() override = default;
22
23 std::vector<HaloRegion> getHaloImportForceExportRegions(HaloRegion& initialRegion, double cutoffRadius,
24 bool coversWholeDomain[3], double cellLength[3]) override {
25 auto condition = [](const int d[3])->bool {
26 bool good = true;
27 for(unsigned short i = 0; i < 3; ++i){
28 good &= d[i] >= 0;
29 }
30 return good;
31 };
32 return getHaloRegionsConditional(initialRegion, cutoffRadius, coversWholeDomain, condition);
33 }
34
35 std::vector<HaloRegion> getHaloExportForceImportRegions(HaloRegion& initialRegion, double cutoffRadius,
36 bool coversWholeDomain[3], double cellLength[3]) override {
37 auto condition = [](const int d[3])->bool {
38 bool good = true;
39 for(unsigned short i = 0; i < 3; ++i){
40 good &= d[i] <= 0;
41 }
42 return good;
43 };
44 return getHaloRegionsConditionalInside(initialRegion, cutoffRadius, coversWholeDomain, condition);
45 }
46};
47
Definition: EighthShell.h:18
std::vector< HaloRegion > getHaloImportForceExportRegions(HaloRegion &initialRegion, double cutoffRadius, bool coversWholeDomain[3], double cellLength[3]) override
Definition: EighthShell.h:23
std::vector< HaloRegion > getHaloExportForceImportRegions(HaloRegion &initialRegion, double cutoffRadius, bool coversWholeDomain[3], double cellLength[3]) override
Definition: EighthShell.h:35
Definition: ZonalMethod.h:14
std::vector< HaloRegion > getHaloRegionsConditionalInside(HaloRegion &initialRegion, double cutoffRadius, bool coversWholeDomain[3], const std::function< bool(const int[3])> &condition)
Definition: ZonalMethod.cpp:132
std::vector< HaloRegion > getHaloRegionsConditional(HaloRegion &initialRegion, double cutoffRadius, bool coversWholeDomain[3], const std::function< bool(const int[3])> &condition)
Definition: ZonalMethod.cpp:76
Definition: HaloRegion.h:10