29 std::ostream& description)
37 std::unique_ptr<DistanceTable> dt;
39 o <<
" Distance table for dissimilar particles (A-B):" << std::endl;
40 o <<
" source: " <<
s.getName() <<
" target: " << t.
getName() << std::endl;
41 o <<
" Using structure-of-arrays (SoA) data layout and OpenMP offload" << std::endl;
45 if (
s.getLattice().DiagonalOnly)
47 o <<
" Distance computations use orthorhombic periodic cell in 3D." << std::endl;
48 dt = std::make_unique<SoaDistanceTableABOMPTarget<RealType, DIM, PPPO + SOA_OFFSET>>(
s, t);
52 if (
s.getLattice().WignerSeitzRadius >
s.getLattice().SimulationCellRadius)
54 o <<
" Distance computations use general periodic cell in 3D with corner image checks." << std::endl;
55 dt = std::make_unique<SoaDistanceTableABOMPTarget<RealType, DIM, PPPG + SOA_OFFSET>>(
s, t);
59 o <<
" Distance computations use general periodic cell in 3D without corner image checks." << std::endl;
60 dt = std::make_unique<SoaDistanceTableABOMPTarget<RealType, DIM, PPPS + SOA_OFFSET>>(
s, t);
66 if (
s.getLattice().DiagonalOnly)
68 o <<
" Distance computations use orthorhombic code for periodic cell in 2D." << std::endl;
69 dt = std::make_unique<SoaDistanceTableABOMPTarget<RealType, DIM, PPNO + SOA_OFFSET>>(
s, t);
73 if (
s.getLattice().WignerSeitzRadius >
s.getLattice().SimulationCellRadius)
75 o <<
" Distance computations use general periodic cell in 2D with corner image checks." << std::endl;
76 dt = std::make_unique<SoaDistanceTableABOMPTarget<RealType, DIM, PPNG + SOA_OFFSET>>(
s, t);
80 o <<
" Distance computations use general periodic cell in 2D without corner image checks." << std::endl;
81 dt = std::make_unique<SoaDistanceTableABOMPTarget<RealType, DIM, PPNS + SOA_OFFSET>>(
s, t);
87 o <<
" Distance computations use periodic cell in one dimension." << std::endl;
88 dt = std::make_unique<SoaDistanceTableABOMPTarget<RealType, DIM, SUPERCELL_WIRE + SOA_OFFSET>>(
s, t);
92 o <<
" Distance computations use open boundary conditions in 3D." << std::endl;
93 dt = std::make_unique<SoaDistanceTableABOMPTarget<RealType, DIM, SUPERCELL_OPEN + SOA_OFFSET>>(
s, t);
96 description << o.str() << std::endl;
const std::string & getName() const
return the name
helper functions for EinsplineSetBuilder
QTBase::RealType RealType
Specialized paritlce class for atomistic simulations.
std::unique_ptr< DistanceTable > createDistanceTableABOMPTarget(const ParticleSet &s, ParticleSet &t, std::ostream &description)
Adding AsymmetricDTD to the list, e.g., el-el distance table.
const auto & getLattice() const