24 TEST_CASE(
"ParticleSet distance table management",
"[particle]")
33 const int ii_table_id = ions.
addTable(ions);
34 const int ie_table_id = ions.
addTable(elecs);
35 const int ei_table_id = elecs.
addTable(ions);
36 const int ee_table_id = elecs.
addTable(elecs);
44 const int ii_table_id2 = ions.
addTable(ions);
45 const int ie_table_id2 = ions.
addTable(elecs);
46 const int ei_table_id2 = elecs.
addTable(ions);
47 const int ee_table_id2 = elecs.
addTable(elecs);
64 TEST_CASE(
"symmetric_distance_table OpenBC",
"[particle]")
72 source.
R[0] = {0.0, 1.0, 2.0};
73 source.
R[1] = {1.1, 1.0, 3.2};
79 const int TableID = source.
addTable(source);
83 const auto& aa_displs = d_aa.getDisplacements();
85 CHECK(aa_dists[1][0] == Approx(1.62788206));
86 CHECK(aa_displs[1][0][0] == Approx(-1.1));
87 CHECK(aa_displs[1][0][1] == Approx(0.0));
88 CHECK(aa_displs[1][0][2] == Approx(-1.2));
91 TEST_CASE(
"symmetric_distance_table PBC",
"[particle]")
96 0.00000000, 3.37316115);
110 const int TableID = source.
addTable(source);
114 const auto& aa_displs = d_aa.getDisplacements();
116 CHECK(aa_dists[2][1] == Approx(2.9212432441));
117 CHECK(aa_displs[2][1][0] == Approx(-1.68658057));
118 CHECK(aa_displs[2][1][1] == Approx(-1.68658057));
119 CHECK(aa_displs[2][1][2] == Approx(1.68658057));
122 TEST_CASE(
"particle set lattice with vacuum",
"[particle]")
127 Lattice.
R = {1.0, 2.0, 3.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0};
a class that defines a supercell in D-dimensional Euclean space.
const auto & getLRBox() const
void setName(const std::string &aname)
int SuperCellEnum
supercell enumeration
void reset()
Evaluate the reciprocal vectors, volume and metric tensor.
helper functions for EinsplineSetBuilder
const DistanceTableAA & getDistTableAA(int table_ID) const
get a distance table by table_ID and dyanmic_cast to DistanceTableAA
ParticleLayout::Tensor_t Tensor_t
virtual const PosVectorSoa & getAllParticlePos() const =0
all particle position accessor
TEST_CASE("complex_helper", "[type_traits]")
T VacuumScale
The scale factor for adding vacuum.
void update(bool skipSK=false)
update the internal data
Declaration of CrystalLattice<T,D>
int addTable(const ParticleSet &psrc, DTModes modes=DTModes::ALL_OFF)
add a distance table
Specialized paritlce class for atomistic simulations.
TinyVector< int, D > BoxBConds
The boundary condition in each direction.
REQUIRE(std::filesystem::exists(filename))
auto & getDistTable(int table_ID) const
get a distance table by table_ID
void create(const std::vector< int > &agroup)
create grouped particles
const DynamicCoordinates & getCoordinates() const
const std::vector< DistRow > & getDistances() const
return full table distances
CHECK(log_values[0]==ComplexApprox(std::complex< double >{ 5.603777579195571, -6.1586603331188225 }))
void createSK()
create Structure Factor with PBCs
Tensor_t R
Real-space unit vectors. R(i,j) i=vector and j=x,y,z.