mcpele
1.0.0
The Monte Carlo Python Energy Landscape Explorer
|
This is a partial c++ implementation of the tools needed to interact with systems of rigid bodies. This is not a complete reimplementation, only the parts that were too slow in python were implemented here.
References on round etc: http://www.cplusplus.com/reference/cmath/floor/ http://www.cplusplus.com/reference/cmath/ceil/ http://www.cplusplus.com/reference/cmath/round/ These classes and structs are used by the potentials to compute distances. They must have a member function get_rij() with signature
void get_rij(double * r_ij, double const * const r1, double const * const r2)
Where r1 and r2 are the position of the two atoms and r_ij is an array of size 3 which will be used to return the distance vector from r1 to r2.
References: Used here: general reference on template meta-programming and recursive template functions: http://www.itp.phys.ethz.ch/education/hs12/programming_techniques
typedef int pele::color_type |
typedef Edge* pele::edge_ptr |
typedef size_t pele::node_id |
typedef Node* pele::node_ptr |
pele::VecN< 4 > pele::aa_to_quaternion | ( | pele::VecN< 3 > const & | aa | ) |
Definition at line 119 of file rotations.cpp.
pele::MatrixNM< 3, 3 > pele::aa_to_rot_mat | ( | pele::VecN< 3 > const & | p | ) |
make a rotation matrix from an angle axis
Definition at line 10 of file rotations.cpp.
bool pele::compare_degree | ( | node_ptr | u, |
node_ptr | v | ||
) |
double pele::dot | ( | VecN< N > const & | v1, |
VecN< N > const & | v2 | ||
) | [inline] |
pele::VecN<N> pele::dot | ( | MatrixNM< N, M > const & | A, |
pele::VecN< M > const & | v | ||
) |
double pele::dot | ( | Array< double > const & | v1, |
Array< double > const & | v2 | ||
) | [inline] |
MatrixAdapter<dtype> pele::hacky_mat_mul | ( | MatrixAdapter< dtype > const & | A, |
MatrixAdapter< dtype > const & | B | ||
) |
pele::MatrixNM<N,N> pele::identity | ( | ) |
T pele::neg_half_int_pow | ( | const T | x | ) | [inline] |
pow(x, - N / 2) where N >= 0, integer usage: neg_half_int_pow<-N>(x)
Definition at line 74 of file meta_pow.h.
T pele::neg_int_pow | ( | const T | x | ) | [inline] |
pow(x, - N) where N >= 0, integer usage: neg_int_pow<-N>(x)
Definition at line 52 of file meta_pow.h.
double pele::norm | ( | VecN< N > const & | v | ) | [inline] |
double pele::norm | ( | Array< double > const & | v | ) | [inline] |
std::ostream& pele::operator<< | ( | std::ostream & | out, |
std::shared_ptr< Graph > | g | ||
) | [inline] |
std::ostream& pele::operator<< | ( | std::ostream & | out, |
const MatrixNM< N, M > & | a | ||
) | [inline] |
std::ostream& pele::operator<< | ( | std::ostream & | out, |
const VecN< N > & | a | ||
) | [inline] |
std::ostream& pele::operator<< | ( | std::ostream & | out, |
const Array< dtype > & | a | ||
) | [inline] |
T pele::pos_half_int_pow | ( | const T | x | ) | [inline] |
pow(x, N / 2) where N >= 0, integer usage: pos_half_int_pow<N>(x)
Definition at line 63 of file meta_pow.h.
T pele::pos_int_pow | ( | const T | x | ) | [inline] |
pow(x, N) where N >= 0, integer usage: pos_int_pow<N>(x)
Definition at line 41 of file meta_pow.h.
pele::VecN< 4 > pele::quaternion_multiply | ( | pele::VecN< 4 > const & | q0, |
pele::VecN< 4 > const & | q1 | ||
) |
Definition at line 145 of file rotations.cpp.
pele::VecN< 3 > pele::quaternion_to_aa | ( | pele::VecN< 4 > const & | qin | ) |
Definition at line 94 of file rotations.cpp.
void pele::rot_mat_derivatives | ( | pele::VecN< 3 > const & | p, |
MatrixNM< 3, 3 > & | rmat, | ||
MatrixNM< 3, 3 > & | drm1, | ||
MatrixNM< 3, 3 > & | drm2, | ||
MatrixNM< 3, 3 > & | drm3 | ||
) |
make a rotation matrix and it's derivatives from an angle axis
Definition at line 232 of file rotations.cpp.
void pele::rot_mat_derivatives_small_theta | ( | pele::VecN< 3 > const & | p, |
MatrixNM< 3, 3 > & | rmat, | ||
MatrixNM< 3, 3 > & | drm1, | ||
MatrixNM< 3, 3 > & | drm2, | ||
MatrixNM< 3, 3 > & | drm3, | ||
bool | with_grad | ||
) |
compute the rotation matrix and it's derivatives from an angle axis vector if the rotation angle is very small
Definition at line 159 of file rotations.cpp.
pele::VecN<3> pele::rot_mat_to_aa | ( | pele::MatrixNM< 3, 3 > const & | mx | ) | [inline] |
Definition at line 18 of file rotations.h.
pele::VecN< 4 > pele::rot_mat_to_quaternion | ( | pele::MatrixNM< 3, 3 > const & | mx | ) |
Definition at line 55 of file rotations.cpp.
pele::VecN<3> pele::rotate_aa | ( | pele::VecN< 3 > const & | p1, |
pele::VecN< 3 > const & | p2 | ||
) | [inline] |
change angle axis rotation p1 by the rotation p2
Definition at line 26 of file rotations.h.
pele::MatrixNM<M,N> pele::transpose | ( | MatrixNM< N, M > const & | A | ) |
void pele::zero_modes_translational | ( | std::vector< pele::Array< double > > & | zev, |
size_t | natoms, | ||
size_t | bdim | ||
) | [inline] |
Definition at line 13 of file lowest_eig_potential.h.