add namespaces and cmakelists for sub-dirs
This commit is contained in:
34
src/motions/sixsitejump.cpp
Normal file
34
src/motions/sixsitejump.cpp
Normal file
@@ -0,0 +1,34 @@
|
||||
#include "sixsitejump.h"
|
||||
#include "coordinates.h"
|
||||
|
||||
namespace motions {
|
||||
SixSiteOctahedron::SixSiteOctahedron(const double delta, const double eta, std::mt19937_64& rng) :
|
||||
BaseMotion(std::string{"SixSiteOctahedral"}, delta, eta, rng) {}
|
||||
|
||||
SixSiteOctahedron::SixSiteOctahedron(std::mt19937_64& rng) : BaseMotion(std::string{"SixSiteOctahedral"}, rng) {}
|
||||
|
||||
void SixSiteOctahedron::initialize() {
|
||||
const auto pos = draw_position();
|
||||
m_corners[0] = omega_q(pos);
|
||||
m_corners[1] = omega_q(rotate(pos, M_PI, 0));
|
||||
|
||||
const double alpha = 2. * M_PI * m_uni_dist(m_rng);
|
||||
|
||||
for (int i = 2; i<6; i++) {
|
||||
auto corner_pos = coordinates::rotate(pos, M_PI_2, alpha + (i-2) * M_PI_2);
|
||||
m_corners[i] = omega_q(corner_pos);
|
||||
}
|
||||
m_initial_omega = SixSiteOctahedron::jump();
|
||||
}
|
||||
|
||||
double SixSiteOctahedron::jump() {
|
||||
m_corner_idx += m_chooser(m_rng);
|
||||
m_corner_idx %= 6;
|
||||
|
||||
return m_corners[m_corner_idx];
|
||||
}
|
||||
|
||||
std::string SixSiteOctahedron::toString() const {
|
||||
return {"SixSiteOctahedral"};
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user