1 #ifndef OCCUPANTFUNCTION_HH
2 #define OCCUPANTFUNCTION_HH
13 class FunctionOperation;
15 class OccupantFunction;
43 return "OccupantFunction";
78 void scale(
double scale_factor);
double cache_eval() const
Function * _apply_sym(const SymOp &op)
void from_json(ClexDescription &desc, const jsonParser &json)
double leading_coefficient() const
Type-safe ID object for communicating and accessing Symmetry representation info. ...
void make_formula() const
bool compare(const OccupantFunction *RHS) const
jsonParser & to_json(const ClexDescription &desc, jsonParser &json)
void scale(double scale_factor)
double cache_deval(const DoF::RemoteHandle &dvar) const
OccupantFunction(const DiscreteDoF &init_var, const Eigen::VectorXd &init_eval, int _occ_func_ind, int _basis_ind, SymGroupRepID _sym_rep_ID)
double eval(const Array< Index > &dof_IDs, const Array< Index > &var_states) const
SymGroupRepID m_sym_rep_ID
OccupantFunction(const OccupantFunction &RHS)
void from_json(const jsonParser &json)
SymOp is the Coordinate representation of a symmetry operation it keeps fraction (FRAC) and Cartesian...
bool compare(Function const *LHS, Function const *RHS) const
EigenIndex Index
For long integer indexing:
bool _accept(const FunctionVisitor &visitor, BasisSet const *home_basis_ptr=NULL)
void set_basis_ind(int new_ind)
Eigen::VectorXd const * get_eigen_coeffs() const
void small_to_zero(double tol=TOL)
const Eigen::VectorXd & eval_table() const
double remote_eval() const
int register_remotes(const std::string &dof_name, const Array< DoF::RemoteHandle > &remote_handles)
Index occ_func_ind() const
Eigen::VectorXd m_eval_table
bool _update_dof_IDs(const Array< Index > &before_IDs, const Array< Index > &after_IDs)
double remote_deval(const DoF::RemoteHandle &dvar) const
Basic std::vector like container (deprecated)
jsonParser & to_json(jsonParser &json) const
const DiscreteDoF & dof() const
static void fill_dispatch_table()
double get_coefficient(Index i) const
std::string type_name() const