BornAgain  1.18.0
Simulate and fit neutron and x-ray scattering at grazing incidence
Lattice Class Reference

A lattice with three basis vectors. More...

+ Inheritance diagram for Lattice:

Public Member Functions

 Lattice (const kvector_t a1, const kvector_t a2, const kvector_t a3)
 
 Lattice (const Lattice &lattice)
 
void accept (INodeVisitor *visitor) const override
 Calls the INodeVisitor's visit method.
 
Lattice createTransformedLattice (const Transform3D &transform) const
 Creates transformed lattice.
 
void initialize () const
 Initializes cached data.
 
kvector_t getBasisVectorA () const
 Returns basis vector a.
 
kvector_t getBasisVectorB () const
 Returns basis vector b.
 
kvector_t getBasisVectorC () const
 Returns basis vector c.
 
void resetBasis (const kvector_t a1, const kvector_t a2, const kvector_t a3)
 Resets the basis vectors.
 
kvector_t getMillerDirection (double h, double k, double l) const
 Returns normalized direction corresponding to the given Miller indices.
 
double volume () const
 Returns the volume of the unit cell.
 
void getReciprocalLatticeBasis (kvector_t &b1, kvector_t &b2, kvector_t &b3) const
 Returns the reciprocal basis vectors.
 
ivector_t getNearestLatticeVectorCoordinates (const kvector_t vector_in) const
 Returns the nearest lattice point from a given vector.
 
ivector_t getNearestReciprocalLatticeVectorCoordinates (const kvector_t vector_in) const
 Returns the nearest reciprocal lattice point from a given vector.
 
std::vector< kvector_treciprocalLatticeVectorsWithinRadius (const kvector_t input_vector, double radius) const
 Computes a list of reciprocal lattice vectors within a specified distance of a given vector.
 
void setSelectionRule (const ISelectionRule &p_selection_rule)
 Sets a selection rule for the reciprocal vectors.
 
void onChange () override
 Action to be taken in inherited class when a parameter has changed.
 
- Public Member Functions inherited from INode
 INode (const NodeMeta &meta, const std::vector< double > &PValues)
 
virtual std::string treeToString () const
 Returns multiline string representing tree structure below the node.
 
void registerChild (INode *node)
 
virtual std::vector< const INode * > getChildren () const
 Returns a vector of children (const).
 
virtual void setParent (const INode *newParent)
 
const INodeparent () const
 
INodeparent ()
 
int copyNumber (const INode *node) const
 Returns copyNumber of child, which takes into account existence of children with same name.
 
std::string displayName () const
 Returns display name, composed from the name of node and it's copy number.
 
ParameterPoolcreateParameterTree () const
 Creates new parameter pool, with all local parameters and those of its children.
 
- Public Member Functions inherited from IParameterized
 IParameterized (const std::string &name="")
 
 IParameterized (const IParameterized &other)
 
IParameterizedoperator= (const IParameterized &other)=delete
 
ParameterPoolparameterPool () const
 Returns pointer to the parameter pool.
 
std::string parametersToString () const
 Returns multiline string representing available parameters.
 
RealParameterregisterParameter (const std::string &name, double *parpointer)
 
void registerVector (const std::string &base_name, kvector_t *p_vec, const std::string &units="nm")
 
void setParameterValue (const std::string &name, double value)
 
void setVectorValue (const std::string &base_name, kvector_t value)
 
RealParameterparameter (const std::string &name) const
 Returns parameter with given 'name'.
 
void removeParameter (const std::string &name)
 
void removeVector (const std::string &base_name)
 
void setName (const std::string &name)
 
const std::string & getName () const
 

Static Public Member Functions

static Lattice createCubicLattice (double a)
 Returns a primitive cubic (cP) lattice with edge length a.
 
static Lattice createFCCLattice (double a)
 Returns a face-centered cubic (cF) lattice with edge length a.
 
static Lattice createHexagonalLattice (double a, double c)
 Returns a primitive hexagonal (hP) lattice with hexagonal edge a and height c.
 
static Lattice createHCPLattice (double a, double c)
 TODO: Clarify how this is meant: HCP is not a Bravais lattice.
 
static Lattice createTetragonalLattice (double a, double c)
 Returns a primitive tetragonal (tP) lattice with square base edge a and height c.
 
static Lattice createBCTLattice (double a, double c)
 Returns a body-centered cubic (cI) lattice with edge length a. More...
 
- Static Public Member Functions inherited from IParameterized
static std::string XComponentName (const std::string &base_name)
 
static std::string YComponentName (const std::string &base_name)
 
static std::string ZComponentName (const std::string &base_name)
 

Additional Inherited Members

- Protected Attributes inherited from INode
const size_t m_NP
 
std::vector< double > m_P
 

Detailed Description

A lattice with three basis vectors.

Definition at line 27 of file Lattice.h.

Member Function Documentation

◆ createBCTLattice()

Lattice Lattice::createBCTLattice ( double  a,
double  c 
)
static

Returns a body-centered cubic (cI) lattice with edge length a.

TODO: Clarify meaning of c

Definition at line 177 of file Lattice.cpp.


The documentation for this class was generated from the following files: