Program Listing for File parameter_set.hpp¶
↰ Return to documentation for file (src_qcm/parameter_set.hpp)
#ifndef parameter_h
#define parameter_h
#include <string>
#include <set>
#include <map>
#include <vector>
#include <memory>
#include <tuple>
struct lattice_model;
struct lattice_model_instance;
using namespace std;
enum class print_format {names, values};
struct parameter{
string name;
double value;
size_t label;
double multiplier;
shared_ptr<parameter> ref;
set<shared_ptr<parameter>> deref;
const static char separator = '_';
parameter(const string& _name, int _label, double v=0.0);
void check_name(const string &str);
};
struct parameter_set{
shared_ptr<lattice_model> model;
map<string,shared_ptr<parameter>> param;
vector<vector<string>> CDMFT_variational;
parameter_set();
parameter_set(shared_ptr<lattice_model> _model, vector<pair<string, double>> values, vector<tuple<string, double, string>> equiv);
map<string,double> value_map();
void set_value(shared_ptr<parameter> P, const double &v);
void set_value(const string& name, const double &v);
void set_multiplier(const string& name, const double &v);
void check_existence(string& S);
void copy_to(vector<double> &x);
void copy_from(const vector<double> &x);
void print(ostream& out);
bool is_dependent(const string &S);
void CDMFT_variational_set(const vector<vector<string>>& vars);
static bool parameter_set_defined;
};
#endif /* parameter_h */