30 SECTION(
"valid p p p input")
32 const char*
const particles = R
"( 34 <parameter name="lattice" units="bohr"> 35 3.80000000 0.00000000 0.00000000 36 0.00000000 3.80000000 0.00000000 37 0.00000000 0.00000000 3.80000000 39 <parameter name="bconds"> 42 <parameter name="LR_dim_cutoff">20</parameter> 54 REQUIRE_NOTHROW(lp.
put(root));
56 CHECK(uLattice.
R[0] == Approx(3.8));
59 CHECK(uLattice.LR_dim_cutoff == Approx(20));
62 SECTION(
"invalid n p p input")
64 const char*
const particles = R
"( 66 <parameter name="lattice" units="bohr"> 67 3.80000000 0.00000000 0.00000000 68 0.00000000 3.80000000 0.00000000 69 0.00000000 0.00000000 3.80000000 71 <parameter name="bconds"> 74 <parameter name="LR_dim_cutoff">20</parameter> 86 REQUIRE_THROWS_WITH(lp.
put(root),
87 "LatticeParser::put. In \"bconds\", non periodic directions must be placed after the periodic " 91 SECTION(
"invalid p n p input")
93 const char*
const particles = R
"( 95 <parameter name="lattice" units="bohr"> 96 3.80000000 0.00000000 0.00000000 97 0.00000000 3.80000000 0.00000000 98 0.00000000 0.00000000 3.80000000 100 <parameter name="bconds"> 103 <parameter name="LR_dim_cutoff">20</parameter> 115 REQUIRE_THROWS_WITH(lp.
put(root),
116 "LatticeParser::put. In \"bconds\", non periodic directions must be placed after the periodic " 121 TEST_CASE(
"read_lattice_xml_lrhandle",
"[particle_io][xml]")
123 SECTION(
"valid p p n input")
125 const char*
const particles = R
"( 127 <parameter name="lattice" units="bohr"> 128 3.80000000 0.00000000 0.00000000 129 0.00000000 3.80000000 0.00000000 130 0.00000000 0.00000000 10.00000000 132 <parameter name="bconds"> 135 <parameter name="LR_dim_cutoff">30</parameter> 136 <parameter name="LR_handler"> opt_breakup </parameter> 148 REQUIRE_NOTHROW(lp.
put(root));
150 CHECK(uLattice.
R[8] == Approx(10.0));
151 CHECK(uLattice.LR_dim_cutoff == Approx(30));
154 SECTION(
"valid p p n ewald_quasi2d input")
156 const char*
const particles = R
"( 158 <parameter name="lattice" units="bohr"> 159 3.80000000 0.00000000 0.00000000 160 0.00000000 3.80000000 0.00000000 161 0.00000000 0.00000000 10.00000000 163 <parameter name="bconds"> 166 <parameter name="LR_dim_cutoff">30</parameter> 167 <parameter name="LR_handler"> ewald_quasi2d </parameter> 179 REQUIRE_NOTHROW(lp.
put(root));
182 SECTION(
"invalid p p p ewald_quasi2d input")
184 const char*
const particles = R
"( 186 <parameter name="lattice" units="bohr"> 187 3.80000000 0.00000000 0.00000000 188 0.00000000 3.80000000 0.00000000 189 0.00000000 0.00000000 10.00000000 191 <parameter name="bconds"> 194 <parameter name="LR_dim_cutoff">30</parameter> 195 <parameter name="LR_handler"> ewald_quasi2d </parameter> 207 REQUIRE_THROWS_WITH(lp.
put(root),
208 "LatticeParser::put. Quasi 2D Ewald only works with boundary condition 'p p n'!");
a class that defines a supercell in D-dimensional Euclean space.
class that handles xmlDoc
helper functions for EinsplineSetBuilder
TEST_CASE("complex_helper", "[type_traits]")
Scalar_t Volume
Physical properties of a supercell.
REQUIRE(std::filesystem::exists(filename))
bool parseFromString(const std::string_view data)
CHECK(log_values[0]==ComplexApprox(std::complex< double >{ 5.603777579195571, -6.1586603331188225 }))
Tensor_t R
Real-space unit vectors. R(i,j) i=vector and j=x,y,z.