1 #ifndef BASICSTRUCTURE_HH
2 #define BASICSTRUCTURE_HH
51 void read(std::istream &stream,
double tol =
TOL);
98 void set_title(std::string
const &_title);
128 void print_xyz(std::ostream &stream,
bool frac =
false)
const;
138 template <
typename ExternSymOp>
150 template <
typename ExternSymOp>
SymOp is the Coordinate representation of a symmetry operation it keeps fraction (FRAC) and Cartesian...
BasicStructure specifies the lattice and atomic basis of a crystal.
void set_lattice(const Lattice &lattice, COORD_TYPE mode)
BasicStructure & operator+=(const Coordinate &shift)
Translates all atoms in cell.
BasicStructure & operator-=(const Coordinate &shift)
Index max_possible_vacancies() const
Counts sites that allow vacancies.
std::map< DoFKey, DoFSet > const & global_dofs() const
static BasicStructure from_poscar_stream(std::istream &poscar_stream, double tol=TOL)
std::vector< Site > & set_basis()
const std::string & title() const
void main_print(std::ostream &stream, COORD_TYPE mode, bool version5, int option) const
std::string m_title
User-specified name of this Structure.
std::vector< Site > m_basis
Lattice vectors that specifies periodicity of the crystal.
void read(std::istream &stream, double tol=TOL)
void set_title(std::string const &_title)
Set the title of the structure.
void set_global_dofs(std::vector< DoFSet > const &new_dof_vec)
Manually set the global DoFs.
void print_xyz(std::ostream &stream, bool frac=false) const
Output other formats.
void within()
Translate all basis sites so that they are inside the unit cell.
const Lattice & lattice() const
void push_back(Site const &_site, COORD_TYPE mode=CART)
Manually set the basis sites.
DoFSet const & global_dof(std::string const &dof_type) const
std::map< DoFKey, DoFSet > m_global_dof_map
continuous global degrees of freedom
bool is_time_reversal_active() const
Returns true if structure has attributes affected by time reversal.
BasicStructure(const Lattice &init_lat)
void set_global_dofs(std::map< DoFKey, DoFSet > const &new_dof_map)
Manually set the global DoFs.
const std::vector< Site > & basis() const
BasicStructure & operator=(const BasicStructure &RHS)
Represents cartesian and fractional coordinates.
std::vector< DoFKey > all_local_dof_types(BasicStructure const &_struc)
std::vector< Molecule > struc_molecule(BasicStructure const &_struc)
Returns an Array of each possible Molecule in this Structure.
std::vector< DoFKey > all_dof_types(BasicStructure const &_struc)
std::vector< std::vector< std::string > > allowed_molecule_names(BasicStructure const &_struc)
Returns a vector with a list of allowed molecule names at each site.
bool has_strain_dof(BasicStructure const &structure)
std::vector< std::string > struc_species(BasicStructure const &_struc)
Returns an Array of each possible AtomSpecie in this Structure.
std::vector< std::vector< std::string > > allowed_molecule_unique_names(BasicStructure const &_struc)
Returns an Array of each possible Molecule in this Structure.
std::vector< DoFKey > continuous_local_dof_types(BasicStructure const &_struc)
std::vector< UnitCellCoord > symop_site_map(SymOp const &_op, BasicStructure const &_struc)
To which site a SymOp transforms each basis site.
DoFKey get_strain_dof_key(BasicStructure const &structure)
std::vector< std::string > struc_molecule_name(BasicStructure const &_struc)
Returns an Array of each possible Molecule in this Structure.
Index local_dof_dim(DoFKey const &_name, BasicStructure const &_struc)
std::map< DoFKey, Index > local_dof_dims(BasicStructure const &_struc)
std::vector< DoFKey > global_dof_types(BasicStructure const &_struc)
std::map< DoFKey, Index > global_dof_dims(BasicStructure const &_struc)
std::string get_strain_metric(DoFKey strain_dof_key)
ConfigIO::GenericConfigFormatter< jsonParser > structure()
std::map< std::string, DoFSetType > make_dofset_map(std::vector< DoFSetType > const &dofset_vec)
INDEX_TYPE Index
For long integer indexing: