.. _Operator_Functions_Input: ############### Input Functions ############### The high-level function mostly used is :ref:`add_operator(...)` that takes in an operator string and adds it to the :ref:`Operator`. While the function is capable of handling Hamiltonian terms and jump operators directly we have added the following wrapper to add a jump operator directly via :ref:`add_jump_operator(...)`. New local operators can be added with :ref:`define_operator(...)`. A diagonal shift is added with :ref:`add_diagonal(...)`. .. _Operator_Functions_add_operator: .. doxygenfunction:: danceq::internal::Operator::add_operator(const ScalarType coef, const std::vector sites_to_act, const std::vector operator_string, const OperatorType OT_term = Hamiltonian, const bool print_warning = true) :no-link: .. _Operator_Functions_add_jump_operator: .. doxygenfunction:: danceq::internal::Operator::add_jump_operator(const ScalarType coef, const std::vector sites_to_act, const std::vector operators_to_apply, const bool print_warning = true) :no-link: .. _Operator_Functions_define_operator: .. doxygenfunction:: danceq::internal::Operator::define_operator(std::string name, std::array< std::array, state_class::template_struct::template_Q> matrix) :no-link: .. _Operator_Functions_add_diagonal: .. doxygenfunction:: danceq::internal::Operator::add_diagonal(const ScalarType val) :no-link: .. _Operator_Functions_set_Ntensor_max: .. doxygenfunction:: danceq::internal::Operator::set_Ntensor_max(const uint64_t Ntensor_max_input) .. _Operator_Functions_merge_terms: .. doxygenfunction:: danceq::internal::Operator::merge_terms(const bool transpose = false) .. _Operator_Functions_add_default_operators: .. doxygenfunction:: danceq::internal::Operator::add_default_operators(void) .. _Operator_Functions_merge_given_terms: .. doxygenfunction:: danceq::internal::Operator::merge_given_terms(std::vector& cluster, std::vector>& list_of_terms, const bool transpose = false) .. _Operator_ResolvedAction: .. doxygenenum:: danceq::internal::ResolvedAction