22 Site(
const Coordinate &init_pos, std::initializer_list<Molecule> site_occ);
49 bool compare(
const Site &test_site,
double compare_tol =
TOL)
const;
56 bool contains(
const std::string &name)
const;
57 bool contains(
const std::string &name,
int &index)
const;
86 void read(std::istream &stream,
bool SD_is_on =
false);
87 void read(std::istream &stream, std::string &elem,
bool SD_is_on);
89 void print(std::ostream &stream)
const;
90 void print_occ(std::ostream &stream)
const;
91 void print_mol(std::ostream &stream,
int spaces,
char delim,
bool SD_is_on =
false)
const;
103 return m_type_prototypes;
130 std::ostream &
operator<< (std::ostream &stream,
const Site &site);
std::string occ_name() const
Name of current occupant (name of molecule, but for single atom, molecule name is species name) ...
void read(std::istream &stream, bool SD_is_on=false)
void set_current_state(const T &new_state)
void set_value(int new_state) override
void from_json(ClexDescription &desc, const jsonParser &json)
jsonParser & to_json(jsonParser &json) const
bool almost_equal(const Site &test_site, double tol) const
jsonParser & to_json(const ClexDescription &desc, jsonParser &json)
const MoleculeOccupant & site_occupant() const
void from_json(const jsonParser &json)
void set_lattice(const Lattice &new_lat, COORD_TYPE mode)
bool _compare_type_no_ID(const Site &test_site) const
Array< std::string > allowed_occupants() const
GenericCluster< CoordType > operator+(const GenericCluster< CoordType > &LHS, const Coordinate &RHS)
create translated cluster
bool compare(const Coordinate &test_coord, double compare_tol=TOL) const
const Molecule & occ() const
void set_basis_ind(Index)
set basis_ind of site and its occupant functions
const Array< ContinuousDoF > & displacement() const
Site & operator+=(const Coordinate &translation)
void print(std::ostream &stream) const
std::ostream & operator<<(std::ostream &_stream, const FormattedPrintable &_formatted)
SymOp is the Coordinate representation of a symmetry operation it keeps fraction (FRAC) and Cartesian...
static Array< Site > & _type_prototypes()
BasisSet operator*(const SymOp &LHS, const BasisSet &RHS)
void set_occ(const Molecule &new_occ)
Represents cartesian and fractional coordinates.
Index nlist_ind() const
access m_nlist_ind
MoleculeOccupant m_site_occupant
EigenIndex Index
For long integer indexing:
bool compare_type(const Site &test_site) const
bool is_vacant() const
Checks if current occupant is a vacancy.
void print_occ(std::ostream &stream) const
Array< ContinuousDoF > m_displacement
void set_nlist_ind(Index)
set m_nlist_ind of Site and its DoFs
Site & apply_sym_no_trans(const SymOp &op)
bool operator==(const Site &test_site) const
Site(const Lattice &init_home)
bool contains(const std::string &name) const
void print_mol(std::ostream &stream, int spaces, char delim, bool SD_is_on=false) const
void set_site_occupant(const MoleculeOccupant &new_dof)
void set_occ_value(int new_val)
Site & apply_sym(const SymOp &op)
void update_data_members(const Site &_ref_site)
Basic std::vector like container (deprecated)
Site & operator-=(const Coordinate &translation)