| MADNESS 0.10.1
    | 
to be put in a separate file More...
#include <diamagneticpotentialfactor.h>

| Public Member Functions | |
| Diamagnetic_potential_factor (World &world, const Nemo_complex_Parameters ¶m, const std::vector< coord_3d > &coords) | |
| constructor takes a world and the parameters for the calculation | |
| std::vector< complex_function_3d > | apply_potential (const std::vector< complex_function_3d > &rhs) const | 
| apply the diamagnetic potential on rhs | |
| real_function_3d | bare_diamagnetic_potential () const | 
| compute the bare potential without confinement or factors | |
| complex_function_3d | compute_lz_commutator () const | 
| compute the commutator of the orbital-zeeman term with the diamagnetic factor | |
| std::vector< real_function_3d > | compute_nabla_R_div_R () const | 
| returns  | |
| real_function_3d | compute_R_times_T_commutator_scalar_term_numerically () const | 
| real_function_3d | compute_U2 () const | 
| real_function_3d | custom_factor (const coord_3d &B, const std::vector< coord_3d > &vv, const double extra_exponent=1.0) const | 
| return a custom factor for a given magnetic field | |
| double | estimate_wavefunction_radius (const double eps=1.e-8) const | 
| real_function_3d | factor () const | 
| return the diamagnetic factor | |
| real_function_3d | factor_square () const | 
| return the square of the diamagnetic factor | |
| complex_function_3d | factor_with_phase (const coord_3d &B, const std::vector< coord_3d > &vv) const | 
| return a custom factor for a given magnetic field | |
| std::vector< coord_3d > | get_coords () const | 
| coord_3d | get_explicit_B () const | 
| coord_3d | get_physical_B () const | 
| double | get_potential_radius () const | 
| compute the radius for the diamagnetic potential | |
| std::vector< coord_3d > | get_v () const | 
| std::vector< complex_function_3d > | make_fake_orbitals (const int n, const coord_3d &offset={0.0, 0.0, 0.0}) const | 
| make a set orbitals for testing (not orthonormalized!) | |
| void | print_info () const | 
| void | recompute_factors_and_potentials () | 
| recompute the factor and the potentials for given physical and explicit magnetic fields | |
| void | reset_explicit_B_and_v (const coord_3d &eB) | 
| bool | test_me (const int level) const | 
| run the tests | |
| Static Public Member Functions | |
| static bool | B_along_z (const coord_3d &B) | 
| make sure the magnetic field is oriented along the z axis | |
| static std::vector< coord_3d > | compute_v_vector (const coord_3d &B, const std::vector< coord_3d > &coords, bool use_v_vector) | 
| Private Member Functions | |
| bool | test_factor () const | 
| compute a factor for comparison in coordinate space | |
| bool | test_harmonic_potential () const | 
| test the harmonic potential | |
| bool | test_lz_commutator () const | 
| bool | test_scalar_potentials () const | 
| test analytical vs numerical computation of the potentials | |
| bool | test_vector_potentials () const | 
| test analytical vs numerical computation of the potentials | |
| Private Attributes | |
| std::vector< coord_3d > | coords | 
| the position of the nuclei in the coordinate space: | |
| real_function_3d | diamagnetic_factor_ | 
| the diamagnetic factor to cancel the diamagnetic potential | |
| real_function_3d | diamagnetic_factor_square | 
| std::vector< real_function_3d > | diamagnetic_U1 | 
| real_function_3d | diamagnetic_U2 | 
| the boxed diamagnetic potential (for a given B) | |
| coord_3d | explicit_B ={0,0,0} | 
| the magnetic field strength encoded in the diamagnetic factor | |
| coord_3d | physical_B ={0,0,0} | 
| the actual magnetic field strength | |
| double | potential_radius | 
| radius where the diamagnetic potential flattens out | |
| bool | use_v_vector =true | 
| std::vector< coord_3d > | v | 
| the position of the nuclei in the "A" space: v = 1/2 B cross R | |
| World & | world | 
| the world | |
to be put in a separate file
| 
 | inline | 
constructor takes a world and the parameters for the calculation
References compute_v_vector(), coords, diamagnetic_factor_, diamagnetic_factor_square, diamagnetic_U1, diamagnetic_U2, explicit_B, madness::Vector< T, N >::normf(), param, physical_B, potential_radius, print_info(), recompute_factors_and_potentials(), use_v_vector, v, and world.
| std::vector< complex_function_3d > madness::Diamagnetic_potential_factor::apply_potential | ( | const std::vector< complex_function_3d > & | rhs | ) | const | 
apply the diamagnetic potential on rhs
compute the diamagnetic local potential (B is in z direction -> dia = x^2 + y^2
References madness::apply(), diamagnetic_U1, diamagnetic_U2, explicit_B, madness::Vector< T, N >::normf(), physical_B, madness::World::size(), madness::truncate(), and world.
| 
 | inlinestatic | 
make sure the magnetic field is oriented along the z axis
Referenced by bare_diamagnetic_potential(), compute_nabla_R_div_R(), compute_R_times_T_commutator_scalar_term_numerically(), and compute_U2().
| 
 | inline | 
compute the bare potential without confinement or factors
References B_along_z(), madness::inner(), MADNESS_ASSERT, physical_B, and world.
| complex_function_3d madness::Diamagnetic_potential_factor::compute_lz_commutator | ( | ) | const | 
compute the commutator of the orbital-zeeman term with the diamagnetic factor
References diamagnetic_U1, madness::dot(), explicit_B, madness::scale(), and world.
Referenced by test_lz_commutator().
| std::vector< real_function_3d > madness::Diamagnetic_potential_factor::compute_nabla_R_div_R | ( | ) | const | 
returns 
References B_along_z(), madness::cross(), explicit_B, madness::FunctionDefaults< NDIM >::get_cell(), madness::inner(), MADNESS_ASSERT, madness::Tensor< T >::normf(), madness::Vector< T, N >::normf(), physical_B, madness::truncate(), v, and world.
Referenced by recompute_factors_and_potentials(), and test_vector_potentials().
| real_function_3d madness::Diamagnetic_potential_factor::compute_R_times_T_commutator_scalar_term_numerically | ( | ) | const | 
| real_function_3d madness::Diamagnetic_potential_factor::compute_U2 | ( | ) | const | 
| 
 | inlinestatic | 
References c, coords, madness::cross(), use_v_vector, and v.
Referenced by Diamagnetic_potential_factor(), and reset_explicit_B_and_v().
| 
 | inline | 
return a custom factor for a given magnetic field
References madness::arg(), madness::cross(), madness::inner(), v, and world.
Referenced by recompute_factors_and_potentials(), and test_factor().
| 
 | inline | 
given the explicit and the physical B, estimate the radius of the wave function
References get_explicit_B(), and get_physical_B().
| 
 | inline | 
return the diamagnetic factor
References diamagnetic_factor_.
Referenced by compute_R_times_T_commutator_scalar_term_numerically(), test_factor(), test_lz_commutator(), test_scalar_potentials(), and test_vector_potentials().
| 
 | inline | 
return the square of the diamagnetic factor
References diamagnetic_factor_square.
Referenced by test_factor(), and test_scalar_potentials().
| 
 | inline | 
return a custom factor for a given magnetic field
References madness::arg(), madness::cross(), madness::inner(), madness::Vector< T, N >::normf(), madness::phase(), v, and world.
| 
 | inline | 
References coords.
| 
 | inline | 
References explicit_B.
Referenced by estimate_wavefunction_radius().
| 
 | inline | 
References physical_B.
Referenced by estimate_wavefunction_radius().
| 
 | inline | 
compute the radius for the diamagnetic potential
References potential_radius.
Referenced by compute_R_times_T_commutator_scalar_term_numerically(), and compute_U2().
| std::vector< complex_function_3d > madness::Diamagnetic_potential_factor::make_fake_orbitals | ( | const int | n, | 
| const coord_3d & | offset = {0.0,0.0,0.0} | ||
| ) | const | 
make a set orbitals for testing (not orthonormalized!)
References madness::arg(), offset, madness::phase(), and world.
Referenced by test_scalar_potentials().
| void madness::Diamagnetic_potential_factor::print_info | ( | ) | const | 
References coords, explicit_B, physical_B, madness::print(), and v.
Referenced by Diamagnetic_potential_factor().
| void madness::Diamagnetic_potential_factor::recompute_factors_and_potentials | ( | ) | 
recompute the factor and the potentials for given physical and explicit magnetic fields
References compute_nabla_R_div_R(), compute_U2(), custom_factor(), diamagnetic_factor_, diamagnetic_factor_square, diamagnetic_U1, diamagnetic_U2, explicit_B, and v.
Referenced by Diamagnetic_potential_factor().
| 
 | inline | 
References compute_v_vector(), coords, explicit_B, use_v_vector, and v.
| 
 | private | 
compute a factor for comparison in coordinate space
References c, cc, coords, custom_factor(), madness::test_output::end(), explicit_B, factor(), factor_square(), madness::inner(), madness::test_output::logger, madness::norm2(), v, and world.
Referenced by test_me().
| 
 | private | 
test the harmonic potential
References std::abs(), madness::test_output::end(), madness::FunctionDefaults< NDIM >::get_thresh(), madness::test_output::logger, thresh, and world.
Referenced by test_me().
| 
 | private | 
| 
 | inline | 
run the tests
| [in] | level | 1: basic tests, .. , 3: all the tests | 
References madness::print(), test_factor(), test_harmonic_potential(), test_lz_commutator(), test_scalar_potentials(), and test_vector_potentials().
| 
 | private | 
test analytical vs numerical computation of the potentials
References std::abs(), compute_R_times_T_commutator_scalar_term_numerically(), compute_U2(), madness::test_output::end(), factor(), factor_square(), madness::FunctionDefaults< NDIM >::get_thresh(), madness::inner(), madness::test_output::logger, and make_fake_orbitals().
Referenced by test_me().
| 
 | private | 
test analytical vs numerical computation of the potentials
References compute_nabla_R_div_R(), madness::test_output::end(), madness::error(), factor(), madness::FunctionDefaults< NDIM >::get_thresh(), madness::grad(), madness::test_output::logger, norm(), madness::norm2(), and thresh.
Referenced by test_me().
| 
 | private | 
the position of the nuclei in the coordinate space:
Referenced by Diamagnetic_potential_factor(), compute_v_vector(), get_coords(), print_info(), reset_explicit_B_and_v(), and test_factor().
| 
 | private | 
the diamagnetic factor to cancel the diamagnetic potential
Referenced by Diamagnetic_potential_factor(), factor(), and recompute_factors_and_potentials().
| 
 | private | 
Referenced by Diamagnetic_potential_factor(), factor_square(), and recompute_factors_and_potentials().
| 
 | private | 
| 
 | private | 
the boxed diamagnetic potential (for a given B)
Referenced by Diamagnetic_potential_factor(), apply_potential(), and recompute_factors_and_potentials().
| 
 | private | 
the magnetic field strength encoded in the diamagnetic factor
Referenced by Diamagnetic_potential_factor(), apply_potential(), compute_lz_commutator(), compute_nabla_R_div_R(), compute_U2(), get_explicit_B(), print_info(), recompute_factors_and_potentials(), reset_explicit_B_and_v(), test_factor(), and test_lz_commutator().
| 
 | private | 
the actual magnetic field strength
Referenced by Diamagnetic_potential_factor(), apply_potential(), bare_diamagnetic_potential(), compute_nabla_R_div_R(), compute_R_times_T_commutator_scalar_term_numerically(), compute_U2(), get_physical_B(), and print_info().
| 
 | private | 
radius where the diamagnetic potential flattens out
Referenced by Diamagnetic_potential_factor(), and get_potential_radius().
| 
 | private | 
Referenced by Diamagnetic_potential_factor(), compute_v_vector(), and reset_explicit_B_and_v().
| 
 | private | 
the position of the nuclei in the "A" space: v = 1/2 B cross R
Referenced by Diamagnetic_potential_factor(), compute_nabla_R_div_R(), compute_U2(), compute_v_vector(), custom_factor(), factor_with_phase(), get_v(), print_info(), recompute_factors_and_potentials(), reset_explicit_B_and_v(), and test_factor().
| 
 | private | 
the world
Referenced by Diamagnetic_potential_factor(), apply_potential(), bare_diamagnetic_potential(), compute_lz_commutator(), compute_nabla_R_div_R(), compute_R_times_T_commutator_scalar_term_numerically(), compute_U2(), custom_factor(), factor_with_phase(), make_fake_orbitals(), test_factor(), test_harmonic_potential(), and test_lz_commutator().