ls1-MarDyn
ls1-MarDyn molecular dynamics code
Midpoint.h
1/*
2 * CommunicationScheme.h
3 *
4 * Created on: 14.07.2017
5 * Author: sauermann
6 */
7
8#pragma once
9
10#include "Simulation.h"
11#include "ZonalMethod.h"
12
18class Midpoint: public ZonalMethod {
19public:
20 Midpoint() {
21 }
22 virtual ~~Midpoint() {
23 }
24
33 virtual std::vector<HaloRegion> getHaloImportForceExportRegions(HaloRegion& initialRegion, double cutoffRadius,
34 bool coversWholeDomain[3],
35 double cellLength[3]) override {
36 // the midpoint traversal is cell based, so the halo region has to be cellLength wide.
37 return getLeavingExportRegions(initialRegion, cellLength, coversWholeDomain);
38 }
39
48 virtual std::vector<HaloRegion> getHaloExportForceImportRegions(HaloRegion& initialRegion, double cutoffRadius,
49 bool coversWholeDomain[3],
50 double cellLength[3]) override {
51 const std::function<bool(const int[3])> condition = [](const int[3])->bool {
52 // no condition for leaving particles.
53 return true;
54 };
55 // the midpoint traversal is cell based, so the halo region has to be cellLength wide.
56 return getHaloRegionsConditionalInside(initialRegion, cellLength, coversWholeDomain, condition);
57 }
58};
59
Definition: Midpoint.h:18
virtual std::vector< HaloRegion > getHaloImportForceExportRegions(HaloRegion &initialRegion, double cutoffRadius, bool coversWholeDomain[3], double cellLength[3]) override
Definition: Midpoint.h:33
virtual std::vector< HaloRegion > getHaloExportForceImportRegions(HaloRegion &initialRegion, double cutoffRadius, bool coversWholeDomain[3], double cellLength[3]) override
Definition: Midpoint.h:48
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 > getLeavingExportRegions(HaloRegion &initialRegion, double cutoffRadius, bool coversWholeDomain[3])
Definition: ZonalMethod.cpp:24
Definition: HaloRegion.h:10