12 template<
typename DataObject>
24 std::unique_ptr<Norm>
clone()
const {
25 return std::unique_ptr<Norm>(this->
_clone());
31 return new Norm(*
this);
45 std::unique_ptr<NormPerUnitCell>
clone()
const {
46 return notstd::make_unique<NormPerUnitCell>(*this);
66 std::unique_ptr<NormPerSpecies>
clone()
const {
67 return notstd::make_unique<NormPerSpecies>(*this);
std::unique_ptr< Norm > clone() const
double operator()(const Configuration &config) const override
Return number of non-Va species in configuration per unitcell.
virtual double operator()(const DataObject &obj) const
Default normalization is 1.0.
NormPerUnitCell * _clone() const override
double n_species(const Configuration &config)
Returns the total number species per unit cell.
Index volume() const
Return number of primitive cells that fit inside of *this.
double operator()(const Configuration &config) const override
Return configuration supercell size.
std::unique_ptr< NormPerUnitCell > clone() const
Clone.
NormPerSpecies * _clone() const override
std::unique_ptr< NormPerSpecies > clone() const
Clone.
Supercell & get_supercell() const
Get the Supercell for this Configuration.
virtual Norm * _clone() const
A Configuration represents the values of all degrees of freedom in a Supercell.