BornAgain  1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
RealSpace2DParacrystalUtils Namespace Reference

Functions

std::vector< std::vector< double > > Compute2DParacrystalLatticePositions (const InterferenceFunction2DParaCrystal *, double layer_size)
 

Function Documentation

◆ Compute2DParacrystalLatticePositions()

std::vector< std::vector< double > > RealSpace2DParacrystalUtils::Compute2DParacrystalLatticePositions ( const InterferenceFunction2DParaCrystal p_iff,
double  layer_size 
)

Definition at line 43 of file RealSpace2DParacrystalUtils.cpp.

45 {
46  auto& lattice = p_iff->lattice();
47  double l1 = lattice.length1();
48  double l2 = lattice.length2();
49  double alpha = lattice.latticeAngle();
50  double xi = lattice.rotationAngle();
51 
52  std::vector<std::vector<double>> lattice_positions;
53  ResizeLatticePositions(lattice_positions, l1, l2, layer_size);
54 
55  ComputePositionsAlongLatticeVectorAxes(lattice_positions, p_iff->pdf1(), l1, xi, 0);
56 
57  ComputePositionsAlongLatticeVectorAxes(lattice_positions, p_iff->pdf2(), l2, xi, alpha);
58 
59  ComputePositionsInsideLatticeQuadrants(lattice_positions, p_iff->pdf1(), p_iff->pdf2(), l1, l2,
60  xi, alpha);
61 
62  return lattice_positions;
63 }
virtual double length1() const =0

References InterferenceFunction2DParaCrystal::lattice(), Lattice2D::length1(), InterferenceFunction2DParaCrystal::pdf1(), and InterferenceFunction2DParaCrystal::pdf2().

Referenced by ParaCrystal2DPositionBuilder::generatePositionsImpl().

Here is the call graph for this function: