ls1-MarDyn
ls1-MarDyn molecular dynamics code
Public Member Functions | List of all members
HalfShell Class Reference

#include <HalfShell.h>

Inheritance diagram for HalfShell:
ZonalMethod

Public Member Functions

std::vector< HaloRegiongetHaloImportForceExportRegions (HaloRegion &initialRegion, double cutoffRadius, bool coversWholeDomain[3], double cellLength[3]) override
 
std::vector< HaloRegiongetHaloExportForceImportRegions (HaloRegion &initialRegion, double cutoffRadius, bool coversWholeDomain[3], double cellLength[3]) override
 
- Public Member Functions inherited from ZonalMethod
virtual std::vector< HaloRegiongetLeavingExportRegions (HaloRegion &initialRegion, double cutoffRadius, bool coversWholeDomain[3])
 
virtual std::vector< HaloRegiongetLeavingExportRegions (HaloRegion &initialRegion, double cutoffRadius[3], bool coversWholeDomain[3])
 

Additional Inherited Members

- Protected Member Functions inherited from ZonalMethod
std::vector< HaloRegiongetHaloRegionsConditional (HaloRegion &initialRegion, double cutoffRadius, bool coversWholeDomain[3], const std::function< bool(const int[3])> &condition)
 
std::vector< HaloRegiongetHaloRegionsConditional (HaloRegion &initialRegion, const double cutoffRadius[3], bool coversWholeDomain[3], const std::function< bool(const int[3])> &condition)
 
std::vector< HaloRegiongetHaloRegionsConditionalInside (HaloRegion &initialRegion, double cutoffRadius, bool coversWholeDomain[3], const std::function< bool(const int[3])> &condition)
 
std::vector< HaloRegiongetHaloRegionsConditionalInside (HaloRegion &initialRegion, const double cutoffRadius[3], bool coversWholeDomain[3], const std::function< bool(const int[3])> &condition)
 

Detailed Description

This class implements the HalfShell Method. Halo is only imported, if it lies within the half shell. The half shell is defined using the same traversal scheme as the VectorizedCellProcessor uses for determining, whether or whether not to calculate the macroscopic values, i.e: cellIndex1 < cellIndex2. As LinkedCells defines the cellIndex using z as the major array index (then y, then x), we will do the same here: if z<z_domain, we don't import the region. if z>z_domain we import it. if z within z_domain: y determines the procedure. The HalfShell method requires forces to be exchanged.

Member Function Documentation

◆ getHaloExportForceImportRegions()

std::vector<HaloRegion> HalfShell::getHaloExportForceImportRegions ( HaloRegion initialRegion,
double  cutoffRadius,
bool  coversWholeDomain[3],
double  cellLength[3] 
)
inlineoverridevirtual

Returns the export halo Regions of the process. These regions are also the ForceImport Regions of a process, if it is a force-importer. This indicates, where the processes lie that require halo copies from the current process.

Parameters
initialRegionboundary of the current process
cutoffRadius
coversWholeDomain
cellLength
Returns
vector of regions

Implements ZonalMethod.

◆ getHaloImportForceExportRegions()

std::vector<HaloRegion> HalfShell::getHaloImportForceExportRegions ( HaloRegion initialRegion,
double  cutoffRadius,
bool  coversWholeDomain[3],
double  cellLength[3] 
)
inlineoverridevirtual

Returns the import halo Regions of the process. These regions are also the ForceExport Regions of a process, if it is a force-exporter. This indicates, where the processes lie that require halo copies from the current process.

Parameters
initialRegionboundary of the current process
cutoffRadius
coversWholeDomain
cellLength
Returns
vector of regions

Implements ZonalMethod.


The documentation for this class was generated from the following file: