ls1-MarDyn
ls1-MarDyn molecular dynamics code
ZonalMethod.h
1/*
2 * ZonalMethod.hpp
3 *
4 * Created on: Feb 28, 2017
5 * Author: seckler
6 */
7
8#pragma once
9
10#include <functional>
11#include <vector>
12#include "parallel/HaloRegion.h"
13
15public:
17
18 virtual ~~ZonalMethod();
19
30 virtual std::vector<HaloRegion> getHaloImportForceExportRegions(HaloRegion& initialRegion, double cutoffRadius,
31 bool coversWholeDomain[3],
32 double cellLength[3]) = 0;
33
44 virtual std::vector<HaloRegion> getHaloExportForceImportRegions(HaloRegion& initialRegion, double cutoffRadius,
45 bool coversWholeDomain[3],
46 double cellLength[3]) = 0;
47
55 virtual std::vector<HaloRegion> getLeavingExportRegions(HaloRegion& initialRegion, double cutoffRadius,
56 bool coversWholeDomain[3]);
57
58 virtual std::vector<HaloRegion> getLeavingExportRegions(HaloRegion& initialRegion, double cutoffRadius[3],
59 bool coversWholeDomain[3]);
60
61protected:
73 std::vector<HaloRegion> getHaloRegionsConditional(HaloRegion& initialRegion, double cutoffRadius,
74 bool coversWholeDomain[3],
75 const std::function<bool(const int[3])>& condition);
76
77 std::vector<HaloRegion> getHaloRegionsConditional(HaloRegion& initialRegion, const double cutoffRadius[3],
78 bool coversWholeDomain[3],
79 const std::function<bool(const int[3])>& condition);
80
92 std::vector<HaloRegion> getHaloRegionsConditionalInside(HaloRegion& initialRegion, double cutoffRadius,
93 bool coversWholeDomain[3],
94 const std::function<bool(const int[3])>& condition);
95
96 std::vector<HaloRegion> getHaloRegionsConditionalInside(HaloRegion& initialRegion, const double cutoffRadius[3],
97 bool coversWholeDomain[3],
98 const std::function<bool(const int[3])>& condition);
99};
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
virtual std::vector< HaloRegion > getHaloImportForceExportRegions(HaloRegion &initialRegion, double cutoffRadius, bool coversWholeDomain[3], double cellLength[3])=0
virtual std::vector< HaloRegion > getHaloExportForceImportRegions(HaloRegion &initialRegion, double cutoffRadius, bool coversWholeDomain[3], double cellLength[3])=0
virtual std::vector< HaloRegion > getLeavingExportRegions(HaloRegion &initialRegion, double cutoffRadius, bool coversWholeDomain[3])
Definition: ZonalMethod.cpp:24
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