MADNESS
0.10.1
|
#include <pointgroupsymmetry.h>
Public Member Functions | |
projector_irrep ()=default | |
default ctor More... | |
projector_irrep (std::string pointgroup, std::string irrep="all") | |
ctor takes the point group and the optionally the irrep More... | |
template<typename T , std::size_t NDIM> | |
std::vector< Function< T, NDIM > > | create_symmetry_adapted_basis (const Function< T, NDIM > &rhs, const Function< typename Tensor< T >::scalar_type, NDIM > &metric, std::vector< std::string > &sirreps) |
create a symmetry-adapted basis from a single function More... | |
template<typename T , std::size_t NDIM> | |
std::vector< Function< T, NDIM > > | create_symmetry_adapted_basis (const Function< T, NDIM > &rhs, std::vector< std::string > &sirreps) |
create a symmetry-adapted basis from a single function More... | |
std::vector< std::string > | get_all_irreps () const |
std::vector< int > | get_canonical_to_irrep_map (std::vector< std::string > sirreps) const |
get a mapping canonical to irrep-sorting More... | |
bool | get_orthonormalize_irreps () const |
get the verbosity level More... | |
std::string | get_pointgroup () const |
get the point group name More... | |
charactertable | get_table () const |
return the character table More... | |
int | get_verbosity () const |
get the verbosity level More... | |
template<typename T , std::size_t NDIM> | |
std::vector< Function< T, NDIM > > | operator() (const Function< T, NDIM > &rhs) const |
projector on a given irrep More... | |
template<typename T , std::size_t NDIM> | |
std::vector< Function< T, NDIM > > | operator() (const std::vector< Function< T, NDIM > > &vrhs) const |
projector on a given irrep More... | |
template<typename T , std::size_t NDIM> | |
std::vector< Function< T, NDIM > > | operator() (const std::vector< Function< T, NDIM > > &vrhs, const Function< typename Tensor< T >::scalar_type, NDIM > &metric) const |
projector on a given irrep More... | |
template<typename T , std::size_t NDIM> | |
std::vector< Function< T, NDIM > > | operator() (const std::vector< Function< T, NDIM > > &vrhs, const Function< typename Tensor< T >::scalar_type, NDIM > &metric, std::vector< std::string > &sirreps) const |
projector on a given irrep More... | |
template<typename T , std::size_t NDIM> | |
std::vector< Function< T, NDIM > > | operator() (const std::vector< Function< T, NDIM > > &vrhs, std::vector< std::string > &sirreps) const |
projector on a given irrep More... | |
void | print_character_table () const |
print the character table More... | |
void | print_info (World &world) const |
print the parameters of this projector More... | |
template<typename T , std::size_t NDIM> | |
std::vector< Function< T, NDIM > > | project_on_irreps (const std::vector< Function< T, NDIM > > &vhrs, const std::vector< std::string > &irreps) const |
(re-)project the argument on the given irreps More... | |
std::vector< std::string > | reduce (const std::string irrep1, const std::string irrep2) const |
reduce a product of two irreps More... | |
std::vector< std::string > | reduce (const std::string irrep1, const std::string irrep2, const std::string irrep3) const |
reduce a product of three irreps More... | |
std::vector< std::string > | reduce (const std::string irrep1, const std::string irrep2, const std::string irrep3, const std::string irrep4) const |
reduce a product of four irreps More... | |
std::vector< std::string > | reduce (const std::vector< std::string > reps) const |
reduce a reducible representation More... | |
projector_irrep & | set_irrep (std::string irrep) |
set the irrep on which this projector projects More... | |
projector_irrep & | set_lindep (const double ld) |
set the linear dependency threshold More... | |
projector_irrep & | set_ordering (const std::string o) |
set the ordering after symmetrization: irreps or keep as is More... | |
projector_irrep & | set_orthonormalize_irreps (bool flag) |
get the verbosity level More... | |
projector_irrep & | set_verbosity (int v) |
set the verbosity level More... | |
Static Public Member Functions | |
template<typename R > | |
static std::vector< R > | resort (const std::vector< int > map, const std::vector< R > &vrhs) |
given a mapping resort More... | |
template<typename R > | |
static std::vector< R > | reverse_resort (const std::vector< int > map, const std::vector< R > &vrhs) |
given a mapping resort More... | |
Private Member Functions | |
template<typename T , std::size_t NDIM> | |
std::vector< Function< T, NDIM > > | apply_symmetry_operators (const std::vector< Function< T, NDIM > > &vrhs, Function< typename Tensor< T >::scalar_type, NDIM > metric, std::vector< std::string > &sirreps) const |
symmetrize a vector of functions More... | |
const charactertable | get_table (std::string pointgroup) |
return the character table according to the requested point group More... | |
charactertable | make_c1_table () const |
charactertable | make_c2_table () const |
charactertable | make_c2h_table () const |
charactertable | make_c2v_table () const |
charactertable | make_ci_table () const |
charactertable | make_cs_table () const |
charactertable | make_d2_table () const |
charactertable | make_d2h_table () const |
template<typename T , std::size_t NDIM> | |
std::vector< Function< T, NDIM > > | sort_to_irreps (std::vector< Function< T, NDIM > > &vrhs, std::vector< std::string > &sirreps) const |
sort the functions according to their irreps More... | |
Private Attributes | |
std::string | irrep_ ="all" |
choose one of the irreps or "all" More... | |
bool | keep_ordering_ =true |
after projection: result functions being ordered according to irreps or ordering unchanged More... | |
double | lindep_ =1.e-3 |
linear dependency threshold for the orthogonalization More... | |
bool | orthonormalize_irreps_ =true |
orthonormalize within the irreps or simply discard linear dependent vectors More... | |
charactertable | table_ |
int | verbosity_ =1 |
verbosity level More... | |
|
default |
default ctor
|
inline |
ctor takes the point group and the optionally the irrep
References get_table(), set_irrep(), table_, and transform().
|
private |
symmetrize a vector of functions
project a number of functions on a given number of irreps linear dependencies are removed, the functions are orthonormalized vanishing input functions are mapped onto vanishing output functions with irrep "null" the number of input and output function is expected to be the same!
[in] | vrhs | vector of functions to be projected on the irrep |
[in] | vbra | bra of vrhs if applicable (if bra /= ket), may be empty |
[out] | sirrep | vector with the irrep names corresponding to the result |
References madness::_(), madness::Tensor< T >::absmax(), madness::change_tree_state(), madness::compressed, madness::copy(), madness::BaseTensor::dim(), madness::WorldGopInterface::fence(), madness::gaxpy(), madness::World::gop, madness::imag(), madness::inner(), madness::inverse(), irrep_, madness::charactertable::irreps_, keep_ordering_, lindep_, MADNESS_ASSERT, MADNESS_CHECK, MADNESS_EXCEPTION, madness::matrix_inner(), madness::charactertable::mullikan_, madness::Tensor< T >::normf(), madness::charactertable::operators_, madness::charactertable::order_, orthonormalize_irreps_, madness::print(), madness::real(), madness::rr_cholesky(), madness::charactertable::schoenflies_, madness::World::size(), sort_to_irreps(), madness::Tensor< T >::sum(), madness::syev(), table_, madness::transform(), madness::truncate(), v, and verbosity_.
Referenced by create_symmetry_adapted_basis(), and operator()().
|
inline |
create a symmetry-adapted basis from a single function
References apply_symmetry_operators().
Referenced by test_orthogonalization().
|
inline |
create a symmetry-adapted basis from a single function
References apply_symmetry_operators(), and NDIM.
|
inline |
References madness::charactertable::mullikan_, and table_.
Referenced by main(), reduce(), and test_projector().
|
inline |
get a mapping canonical to irrep-sorting
References m, madness::charactertable::mullikan_, and table_.
Referenced by sort_to_irreps().
|
inline |
get the verbosity level
References orthonormalize_irreps_.
|
inline |
get the point group name
References madness::charactertable::schoenflies_, and table_.
Referenced by madness::Nemo::do_symmetry().
|
inline |
return the character table
References table_.
Referenced by projector_irrep(), madness::TDHF::check_consistency(), main(), madness::TDHF::symmetrize(), test_orthogonalization(), and test_projector().
|
inlineprivate |
return the character table according to the requested point group
References MADNESS_EXCEPTION, make_c1_table(), make_c2_table(), make_c2h_table(), make_c2v_table(), make_ci_table(), make_cs_table(), make_d2_table(), make_d2h_table(), and transform().
|
inline |
|
private |
|
private |
|
private |
References madness::charactertable::irreps_, madness::charactertable::mullikan_, madness::charactertable::operators_, madness::charactertable::order_, madness::pg_c2z(), madness::pg_identity(), madness::pg_inversion(), madness::pg_sigma_xy(), and madness::charactertable::schoenflies_.
Referenced by get_table().
|
private |
References madness::charactertable::irreps_, madness::charactertable::mullikan_, madness::charactertable::operators_, madness::charactertable::order_, madness::pg_c2z(), madness::pg_identity(), madness::pg_sigma_xz(), madness::pg_sigma_yz(), and madness::charactertable::schoenflies_.
Referenced by get_table().
|
private |
|
private |
|
private |
References madness::charactertable::irreps_, madness::charactertable::mullikan_, madness::charactertable::operators_, madness::charactertable::order_, madness::pg_c2x(), madness::pg_c2y(), madness::pg_c2z(), madness::pg_identity(), and madness::charactertable::schoenflies_.
Referenced by get_table().
|
private |
References madness::charactertable::irreps_, madness::charactertable::mullikan_, madness::charactertable::operators_, madness::charactertable::order_, madness::pg_c2x(), madness::pg_c2y(), madness::pg_c2z(), madness::pg_identity(), madness::pg_inversion(), madness::pg_sigma_xy(), madness::pg_sigma_xz(), madness::pg_sigma_yz(), and madness::charactertable::schoenflies_.
Referenced by get_table().
|
inline |
projector on a given irrep
|
inline |
projector on a given irrep
References apply_symmetry_operators(), and NDIM.
|
inline |
projector on a given irrep
References apply_symmetry_operators().
|
inline |
projector on a given irrep
References apply_symmetry_operators().
|
inline |
projector on a given irrep
References apply_symmetry_operators(), and NDIM.
|
inline |
print the character table
References madness::charactertable::irreps_, madness::charactertable::mullikan_, op(), madness::charactertable::operators_, madness::print(), madness::charactertable::schoenflies_, and table_.
Referenced by madness::Nemo::Nemo(), print_info(), and reduce().
|
inline |
print the parameters of this projector
References irrep_, keep_ordering_, lindep_, orthonormalize_irreps_, madness::print(), print_character_table(), madness::World::rank(), madness::charactertable::schoenflies_, table_, and verbosity_.
template std::vector< Function< double, 3 > > madness::projector_irrep::project_on_irreps | ( | const std::vector< Function< T, NDIM > > & | vhrs, |
const std::vector< std::string > & | irreps | ||
) | const |
(re-)project the argument on the given irreps
[in] | vrhs | the vector of functions to be projected on the irreps given by irreps |
[in] | irreps | the irreps in order of the functions |
References madness::compress(), madness::copy(), madness::WorldGopInterface::fence(), madness::World::gop, madness::charactertable::irreps_, madness::charactertable::operators_, madness::charactertable::order_, madness::charactertable::schoenflies_, madness::World::size(), table_, and madness::truncate().
Referenced by madness::TDHF::symmetrize().
|
inline |
reduce a product of two irreps
References reduce().
|
inline |
reduce a product of three irreps
References reduce().
|
inline |
reduce a product of four irreps
References reduce().
std::vector< std::string > madness::projector_irrep::reduce | ( | const std::vector< std::string > | reps | ) | const |
reduce a reducible representation
[in] | reps | vector or irrep or reduc. reps whose product will be reduced |
References get_all_irreps(), madness::charactertable::irreps_, MADNESS_ASSERT, MADNESS_EXCEPTION, madness::charactertable::order_, madness::print(), print_character_table(), and table_.
Referenced by madness::TDHF::make_guess_from_initial_diagonalization(), reduce(), and madness::TDHF::symmetrize().
|
inlinestatic |
given a mapping resort
References MADNESS_ASSERT.
|
inline |
set the irrep on which this projector projects
References irrep_, MADNESS_EXCEPTION, madness::charactertable::mullikan_, madness::print(), madness::charactertable::schoenflies_, table_, and transform().
Referenced by projector_irrep(), main(), and test_projector().
|
inline |
set the linear dependency threshold
References lindep_.
Referenced by madness::TDHF::initialize(), and madness::TDHF::make_guess_from_initial_diagonalization().
|
inline |
set the ordering after symmetrization: irreps or keep as is
References keep_ordering_, MADNESS_EXCEPTION, and madness::print().
Referenced by madness::Nemo::Nemo(), madness::OEP::iterate(), madness::OEP::load_restartdata(), and madness::OEP::save_restartdata().
|
inline |
get the verbosity level
References orthonormalize_irreps_.
Referenced by madness::Nemo::Nemo(), madness::TDHF::initialize(), madness::OEP::iterate(), madness::OEP::load_restartdata(), and madness::OEP::save_restartdata().
|
inline |
set the verbosity level
References v, and verbosity_.
Referenced by madness::Nemo::Nemo(), madness::TDHF::initialize(), madness::OEP::iterate(), madness::OEP::load_restartdata(), madness::TDHF::make_guess_from_initial_diagonalization(), madness::OEP::save_restartdata(), and test_orthogonalization().
|
inlineprivate |
sort the functions according to their irreps
References get_canonical_to_irrep_map(), and resort().
Referenced by apply_symmetry_operators().
|
private |
choose one of the irreps or "all"
Referenced by apply_symmetry_operators(), print_info(), and set_irrep().
|
private |
after projection: result functions being ordered according to irreps or ordering unchanged
Referenced by apply_symmetry_operators(), print_info(), and set_ordering().
|
private |
linear dependency threshold for the orthogonalization
Referenced by apply_symmetry_operators(), print_info(), and set_lindep().
|
private |
orthonormalize within the irreps or simply discard linear dependent vectors
Referenced by apply_symmetry_operators(), get_orthonormalize_irreps(), print_info(), and set_orthonormalize_irreps().
|
private |
|
private |
verbosity level
Referenced by apply_symmetry_operators(), get_verbosity(), print_info(), and set_verbosity().