22     : m_lattice(lattice), m_position_variance(0.0)
 
   47         P_basis_clone->rotate(*p_rotation);
 
   48     P_basis_clone->translate(translation);
 
   49     const std::unique_ptr<IFormFactor> P_basis_ff(P_basis_clone->createFormFactor());
 
   50     return new FormFactorCrystal(transformed_lattice, *P_basis_ff, meso_crystal_form_factor,
 
   56     std::vector<HomogeneousRegion> result;
 
   58     if (unit_cell_volume <= 0)
 
   62     for (
auto p_particle : particles) {
 
   63         auto sliced_particle = p_particle->createSlicedParticle(limits);
 
   64         result.insert(result.end(), sliced_particle.m_regions.begin(),
 
   65                       sliced_particle.m_regions.end());
 
   67     for (
auto& region : result)
 
   68         region.m_volume /= unit_cell_volume;
 
   86     : m_lattice(lattice), m_position_variance(0.0)
 
Defines class ParticleComposition.
 
Defines class SlicedParticle.
 
A crystal structure with a ParticleComposition as a basis.
 
Crystal * clone() const override final
Returns a clone of this ISample object.
 
IFormFactor * createTotalFormFactor(const IFormFactor &meso_crystal_form_factor, const IRotation *p_rotation, const kvector_t &translation) const override final
Creates a total form factor for the mesocrystal with a specific shape and content The bulk content of...
 
std::unique_ptr< IParticle > mp_lattice_basis
 
Crystal(const IParticle &lattice_basis, const Lattice &lattice)
 
std::vector< const INode * > getChildren() const override final
Returns a vector of children (const).
 
void setPositionVariance(double position_variance)
 
double m_position_variance
 
std::vector< HomogeneousRegion > homogeneousRegions() const override final
Creates region information with volumetric densities instead of absolute volume These densities need ...
 
Lattice transformedLattice(const IRotation *p_rotation=nullptr) const
 
void registerChild(INode *node)
 
void setName(const std::string &name)
 
Pure virtual base class for Particle, ParticleComposition, ParticleCoreShell, MesoCrystal.
 
IParticle * clone() const override=0
Returns a clone of this ISample object.
 
Pure virtual interface for rotations.
 
virtual Transform3D getTransform3D() const =0
Returns transformation.
 
A lattice with three basis vectors.
 
Lattice createTransformedLattice(const Transform3D &transform) const
Creates transformed lattice.
 
double volume() const
Returns the volume of the unit cell.
 
Class that contains upper and lower limits of the z-coordinate for the slicing of form factors.