MADNESS 0.10.1
|
#include <pointgroupsymmetry.h>
Public Member Functions | |
projector_irrep ()=default | |
default ctor | |
projector_irrep (std::string pointgroup, std::string irrep="all") | |
ctor takes the point group and the optionally the irrep | |
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 | |
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 | |
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 | |
bool | get_orthonormalize_irreps () const |
get the verbosity level | |
std::string | get_pointgroup () const |
get the point group name | |
charactertable | get_table () const |
return the character table | |
int | get_verbosity () const |
get the verbosity level | |
template<typename T , std::size_t NDIM> | |
std::vector< Function< T, NDIM > > | operator() (const Function< T, NDIM > &rhs) const |
projector on a given irrep | |
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 | |
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 | |
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 | |
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 | |
void | print_character_table () const |
print the character table | |
void | print_info (World &world) const |
print the parameters of this projector | |
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 | |
std::vector< std::string > | reduce (const std::string irrep1, const std::string irrep2) const |
reduce a product of two irreps | |
std::vector< std::string > | reduce (const std::string irrep1, const std::string irrep2, const std::string irrep3) const |
reduce a product of three irreps | |
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 | |
std::vector< std::string > | reduce (const std::vector< std::string > reps) const |
reduce a reducible representation | |
projector_irrep & | set_irrep (std::string irrep) |
set the irrep on which this projector projects | |
projector_irrep & | set_lindep (const double ld) |
set the linear dependency threshold | |
projector_irrep & | set_ordering (const std::string o) |
set the ordering after symmetrization: irreps or keep as is | |
projector_irrep & | set_orthonormalize_irreps (bool flag) |
get the verbosity level | |
projector_irrep & | set_verbosity (int v) |
set the verbosity level | |
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 | |
template<typename R > | |
static std::vector< R > | reverse_resort (const std::vector< int > map, const std::vector< R > &vrhs) |
given a mapping resort | |
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 | |
const charactertable | get_table (std::string pointgroup) |
return the character table according to the requested point group | |
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 | |
Private Attributes | |
std::string | irrep_ ="all" |
choose one of the irreps or "all" | |
bool | keep_ordering_ =true |
after projection: result functions being ordered according to irreps or ordering unchanged | |
double | lindep_ =1.e-3 |
linear dependency threshold for the orthogonalization | |
bool | orthonormalize_irreps_ =true |
orthonormalize within the irreps or simply discard linear dependent vectors | |
charactertable | table_ |
int | verbosity_ =1 |
verbosity level | |
|
default |
default ctor
|
inline |
ctor takes the point group and the optionally the irrep
References get_table(), set_irrep(), and table_.
|
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(), create_symmetry_adapted_basis(), operator()(), operator()(), operator()(), 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(), and make_d2h_table().
|
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
References operator()().
Referenced by operator()().
|
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(), reduce(), 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_, and table_.
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().