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::change_tree_state(), madness::compressed, madness::copy(), 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::nonlinear_vector_solver(), 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(), and madness::nonlinear_vector_solver().
|
inline |
create a symmetry-adapted basis from a single function
References apply_symmetry_operators(), NDIM, and madness::nonlinear_vector_solver().
|
inline |
References madness::charactertable::mullikan_, and table_.
Referenced by reduce().
|
inline |
get a mapping canonical to irrep-sorting
References m, madness::charactertable::mullikan_, madness::nonlinear_vector_solver(), 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(), and madness::TDHF::symmetrize().
|
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 madness::nonlinear_vector_solver().
|
inline |
|
private |
|
private |
References madness::nonlinear_vector_solver(), madness::pg_c2z(), madness::pg_identity(), and madness::charactertable::schoenflies_.
Referenced by get_table().
|
private |
References madness::nonlinear_vector_solver(), madness::pg_c2z(), madness::pg_identity(), madness::pg_inversion(), madness::pg_sigma_xy(), and madness::charactertable::schoenflies_.
Referenced by get_table().
|
private |
References madness::nonlinear_vector_solver(), madness::pg_c2z(), madness::pg_identity(), madness::pg_sigma_xz(), madness::pg_sigma_yz(), and madness::charactertable::schoenflies_.
Referenced by get_table().
|
private |
References madness::nonlinear_vector_solver(), madness::pg_identity(), madness::pg_inversion(), and madness::charactertable::schoenflies_.
Referenced by get_table().
|
private |
References madness::nonlinear_vector_solver(), madness::pg_identity(), madness::pg_sigma_xy(), and madness::charactertable::schoenflies_.
Referenced by get_table().
|
private |
References madness::nonlinear_vector_solver(), madness::pg_c2x(), madness::pg_c2y(), madness::pg_c2z(), madness::pg_identity(), and madness::charactertable::schoenflies_.
Referenced by get_table().
|
private |
|
inline |
projector on a given irrep
References madness::nonlinear_vector_solver(), and operator()().
Referenced by operator()().
|
inline |
projector on a given irrep
References apply_symmetry_operators(), NDIM, and madness::nonlinear_vector_solver().
|
inline |
projector on a given irrep
References apply_symmetry_operators(), and madness::nonlinear_vector_solver().
|
inline |
projector on a given irrep
References apply_symmetry_operators(), and madness::nonlinear_vector_solver().
|
inline |
projector on a given irrep
References apply_symmetry_operators(), NDIM, and madness::nonlinear_vector_solver().
|
inline |
print the character table
References madness::charactertable::irreps_, madness::charactertable::mullikan_, madness::nonlinear_vector_solver(), op(), madness::charactertable::operators_, madness::print(), madness::charactertable::schoenflies_, and table_.
Referenced by madness::Nemo::Nemo(), print_info(), and reduce().
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::nonlinear_vector_solver(), 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 madness::nonlinear_vector_solver(), and reduce().
|
inline |
reduce a product of three irreps
References madness::nonlinear_vector_solver(), and reduce().
|
inline |
reduce a product of four irreps
References madness::nonlinear_vector_solver(), and 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::nonlinear_vector_solver(), 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, and madness::nonlinear_vector_solver().
Referenced by sort_to_irreps().
|
inlinestatic |
given a mapping resort
References MADNESS_ASSERT, and madness::nonlinear_vector_solver().
|
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().
|
inline |
set the linear dependency threshold
References lindep_, and madness::nonlinear_vector_solver().
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, madness::nonlinear_vector_solver(), 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 madness::nonlinear_vector_solver(), and 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(), and madness::OEP::save_restartdata().
|
inlineprivate |
sort the functions according to their irreps
References get_canonical_to_irrep_map(), madness::nonlinear_vector_solver(), 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().
after projection: result functions being ordered according to irreps or ordering unchanged
Referenced by apply_symmetry_operators(), print_info(), and set_ordering().
linear dependency threshold for the orthogonalization
Referenced by apply_symmetry_operators(), print_info(), and set_lindep().
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().