flexiblesusy is hosted by Hepforge, IPPP Durham
FlexibleSUSY
lattice_compound_constraint.hpp
Go to the documentation of this file.
1#ifndef lattice_compound_constraint_hpp
2#define lattice_compound_constraint_hpp
3
4
7
8namespace flexiblesusy {
9
10class Lattice;
11
12
13template<>
14class CompoundConstraint<Lattice> : public Constraint<Lattice> {
15public:
17 components(cs)
18 {}
19 virtual void init(RGFlow<Lattice> *flow, size_t theory, size_t site) {
20 Constraint<Lattice>::init(flow, theory, site);
21 for (auto c: components) c->init(flow, theory, site);
22 }
23 virtual void deactivate()
24 { for (auto c: components) c->deactivate(); }
25 virtual void alloc_rows()
26 { for (auto c: components) c->alloc_rows(); }
27 virtual void free_rows()
28 { for (auto c: components) c->free_rows(); }
29 virtual void operator()() { for (auto c: components) (*c)(); }
30 virtual void relocate(const std::vector<size_t>& site_map)
31 { for (auto c: components) c->relocate(site_map); }
32 using Constraint<Lattice>::init;
33 using Constraint<Lattice>::relocate;
34protected:
35 virtual void activate() {}
36 std::vector<Constraint<Lattice>*> components;
37};
38
39template<>
40class CompoundMatching<Lattice> : public Matching<Lattice> {
41public:
43 components(ms)
44 {}
45 virtual void init(RGFlow<Lattice> *flow, size_t lower_theory) {
46 Matching<Lattice>::init(flow, lower_theory);
47 for (auto c: components) c->init(flow, lower_theory);
48 }
49 virtual void deactivate()
50 { for (auto c: components) c->deactivate(); }
51 virtual void alloc_rows()
52 { for (auto c: components) c->alloc_rows(); }
53 virtual void free_rows()
54 { for (auto c: components) c->free_rows(); }
55 virtual void operator()() { for (auto c: components) (*c)(); }
56 using Matching<Lattice>::init;
57protected:
58 virtual void activate() {}
59 std::vector<Matching<Lattice>*> components;
60};
61
62} // namespace flexiblesusy
63
64#endif // lattice_compound_constraint_hpp
CompoundConstraint(std::vector< Constraint< Lattice > * > cs)
std::vector< Constraint< Lattice > * > components
virtual void relocate(const std::vector< size_t > &site_map)
virtual void init(RGFlow< Lattice > *flow, size_t theory, size_t site)
CompoundMatching(std::vector< Matching< Lattice > * > ms)
std::vector< Matching< Lattice > * > components
virtual void init(RGFlow< Lattice > *flow, size_t lower_theory)
const double ms
Definition: consts.hpp:106