20 const IFormFactor& meso_form_factor,
double position_variance)
22 , m_basis_form_factor(basis_form_factor.clone())
23 , m_meso_form_factor(meso_form_factor.clone())
24 , m_position_variance(position_variance)
51 std::vector<kvector_t> rec_vectors =
56 for (
const auto& rec : rec_vectors) {
62 result += dw_factor * basis_factor * meso_factor;
74 std::vector<kvector_t> rec_vectors =
78 Eigen::Matrix2cd result = Eigen::Matrix2cd::Zero();
79 for (
const auto& rec : rec_vectors) {
85 result += dw_factor * basis_factor * meso_factor;
104 auto q2 = q_i.
mag2();
std::complex< double > complex_t
Defines M_PI and some more mathematical constants.
BasicVector3D< double > kvector_t
BasicVector3D< complex_t > cvector_t
double mag2() const
Returns magnitude squared of the vector.
double mag() const
Returns magnitude of the vector.
BasicVector3D< complex_t > complex() const
Returns this, trivially converted to complex type.
BasicVector3D< double > real() const
Returns real parts.
void setName(const std::string &name)
Abstract base class for rotations.
A Bravais lattice, characterized by three basis vectors, and optionally an ISelectionRule.
double unitCellVolume() const
Returns the volume of the unit cell.
kvector_t getBasisVectorC() const
Returns basis vector c.
kvector_t getBasisVectorA() const
Returns basis vector a.
std::vector< kvector_t > reciprocalLatticeVectorsWithinRadius(const kvector_t q, double dq) const
Returns a list of reciprocal lattice vectors within distance dq of a vector q.
kvector_t getBasisVectorB() const
Returns basis vector b.
Holds all wavevector information relevant for calculating form factors.
double wavelength() const