#include <array>
#include <tuple>
#include <type_traits>
#include <utility>
#include <vector>
#include "autopas/utils/ArrayMath.h"
#include "autopas/utils/ArrayUtils.h"
#include "autopas/utils/ExceptionHandler.h"
#include "autopas/utils/Math.h"
#include "autopas/utils/ThreeDimensionalMapping.h"
Go to the source code of this file.
Namespaces | |
namespace | autopas |
This is the main namespace of AutoPas. | |
namespace | autopas::LCC08CellHandlerUtility |
Helper function and type aliases for the C08 base step traversal. | |
namespace | autopas::LCC08CellHandlerUtility::internal |
Internal namespace of LCC08CellHandlerUtility containing private functions. | |
Typedefs | |
using | autopas::LCC08CellHandlerUtility::OffsetPairSorting = std::tuple< unsigned long, unsigned long, std::array< double, 3 > > |
Type Alias for the C08 base step containg cell offsets. | |
using | autopas::LCC08CellHandlerUtility::OffsetPair = std::pair< unsigned long, unsigned long > |
An offset is the distance from a base cell to another cell in one dimensional coordinates. | |
using | autopas::LCC08CellHandlerUtility::OffsetPairVector = std::vector< OffsetPair > |
A vector of OffsetPairs. | |
template<C08OffsetMode Mode> | |
using | autopas::LCC08CellHandlerUtility::OffsetPairType = std::vector< std::conditional_t< Mode==C08OffsetMode::c08CellPairsSorting, OffsetPairSorting, std::conditional_t< Mode==C08OffsetMode::c04CellPairs, OffsetPairVector, OffsetPair > > > |
Template Magic Parameter Alias which links the types OffsetPairSorting , OffsetPair and OffsetPairVector . | |
Enumerations | |
enum class | autopas::LCC08CellHandlerUtility::C08OffsetMode { autopas::LCC08CellHandlerUtility::c08CellPairs = 0 , autopas::LCC08CellHandlerUtility::c08CellPairsSorting = 1 , autopas::LCC08CellHandlerUtility::c04CellPairs = 2 } |
Compile Time Modes for the function autopas::LCC08CellHandlerUtility::computePairwiseCellOffsetsC08. More... | |
enum class | autopas::LCC08CellHandlerUtility::internal::C08CellDirection : int { autopas::LCC08CellHandlerUtility::internal::frontLeft , autopas::LCC08CellHandlerUtility::internal::backLeft , autopas::LCC08CellHandlerUtility::internal::frontRight , autopas::LCC08CellHandlerUtility::internal::backRight } |
Represents the interaction directions between cell pairs in the C08 base step. More... | |
Functions | |
constexpr std::pair< int, int > | autopas::LCC08CellHandlerUtility::internal::toMaskXY (const C08CellDirection &direction) |
Helper function for autopas::LCC08CellHandlerUtility::computePairwiseCellOffsetsC08. | |
constexpr bool | autopas::LCC08CellHandlerUtility::internal::includeCellPair (const C08CellDirection &direction, const std::array< int, 3 > &overlap, int x, int y, int z) |
Returns true if the cell-interaction in the given direction, with the given base cell coordinates (x, y, z) and overlap needs to be included into the pairwise cell offsets. | |
std::array< double, 3 > | autopas::LCC08CellHandlerUtility::internal::computeSortingDirection (const std::array< double, 3 > &offset1Vector, const std::array< double, 3 > &offset2Vector, const std::array< double, 3 > &cellLength) |
Computes the sorting direction between two cells from center of cell1 to center of cell2 using the 3D indices of the cells while incoperating the cellLength (required in case of less regular cuboid cells) | |
template<C08OffsetMode Mode> | |
OffsetPairType< Mode > | autopas::LCC08CellHandlerUtility::computePairwiseCellOffsetsC08 (const std::array< unsigned long, 3 > &cellsPerDimension, const std::array< double, 3 > &cellLength, double interactionLength) |
Computes the cell pair offsets for the C08 base step and the normalized vector between pair of cell-centers, which is later used for early stopping the evaluation of the pairwise cell interactions due to being out-of-reach. | |
Variables | |
constexpr std::array< C08CellDirection, 4 > | autopas::LCC08CellHandlerUtility::internal::ALL_DIRECTIONS |
Array containing all four enum values of C08CellDirection . | |
constexpr char | autopas::LCC08CellHandlerUtility::internal::ENUM_EXTENSION_EXCEPTION [] |
Error message thrown in case C08CellDirection was extended but the extension was not included in the switch-statement. | |