template<typename F, typename G>
requires (
is_gf_v<G> && (ScalarGfSymmetry<F, G> || TensorGfSymmetry<F, G>))
class triqs::gfs::sym_grp< F, G >
Symmetry group of a Green's function.
A sym_grp deduces the symmetry classes of the data of a Green's function from a list of symmetries (each modeling ScalarGfSymmetry or TensorGfSymmetry) and exposes methods to reduce the function to its representative data, reconstruct it, initialize it from an init function and symmetrize it. Internally it delegates to an nda::sym_grp operating on the underlying data array.
- Template Parameters
-
Definition at line 147 of file gf_sym_grp.hpp.
|
|
| sym_grp ()=default |
| | Default constructor.
|
| | sym_grp (G const &g, std::vector< F > const &sym_list, long const max_length=0) |
| | Construct the symmetry group of a Green's function from a list of symmetries.
|
| nda::sym_grp< data_sym_func_t, data_t > const & | get_data_sym_grp () const |
| | Accessor for the symmetry group of the data array.
|
| std::vector< value_t > | get_representative_data (G const &g) const |
| | Reduce a Green's function to its representative data using the symmetries.
|
template<typename H>
requires (ScalarGfInitFunc<H, G> || TensorGfInitFunc<H, G>) |
| void | init (G &g, H const &h, bool parallel=false) const |
| | Initialize a Green's function using an init function.
|
| template<typename V> |
| void | init_from_representative_data (G &g, V const &vec) const |
| | Initialize a Green's function from its representative data using the symmetries.
|
| long | num_classes () const |
| | Accessor for the number of symmetry classes.
|
| std::tuple< double, mesh_index_t, target_index_t > | symmetrize (G &g) const |
| | Symmetrize a Green's function in place.
|
template<typename F, typename G>
template<typename H>
requires (ScalarGfInitFunc<H, G> || TensorGfInitFunc<H, G>)
Initialize a Green's function using an init function.
Iterates over all symmetry classes and propagates the result of evaluating the init function on each representative element.
- Template Parameters
-
- Parameters
-
| g | The Green's function to fill in place. |
| h | The init function to be used. |
| parallel | If true, evaluate the init function with OpenMP in parallel (default false). |
Definition at line 317 of file gf_sym_grp.hpp.
template<typename F, typename G>
| std::tuple< double, mesh_index_t, target_index_t > triqs::gfs::sym_grp< F, G >::symmetrize |
( |
G & | g | ) |
const |
|
inline |
Symmetrize a Green's function in place.
Enforces the symmetries on g and reports the maximum symmetry violation encountered and the mesh and target index at which it occurs.
- Parameters
-
| g | The Green's function to symmetrize in place. |
- Returns
- A tuple of the maximum symmetry violation and the corresponding mesh and target index.
Definition at line 332 of file gf_sym_grp.hpp.