Field shift operator: dV = V(r, nuc2) - V(r, nuc1)
Computes the change in nuclear potential between two nuclei differing in size or shape. Also stores \(\delta\langle r^2\rangle\) and \(\delta\langle r^4\rangle\) (in fm^2 and fm^4).
|
|
| fieldshift (const Grid &rgrid, const Nuclear::Nucleus &nuc1, const Nuclear::Nucleus &nuc2, double scale=1.0) |
| |
| std::string | name () const override |
| | Returns "name" of operator (e.g., 'E1')
|
| |
| std::string | units () const override |
| | Returns units of operator as a string (usually au, may be MHz, etc.)
|
| |
| double | dr2 () const |
| | delta <r^2> (in fm^2)
|
| |
| double | dr4 () const |
| | delta <r^4> (in fm^4)
|
| |
| | ScalarOperator (Parity pi, double in_coef, const std::vector< double > &in_v={}, const std::array< int, 4 > &in_g={1, 0, 0, 1}, Realness rori=Realness::real) |
| | General scalar operator constructor. in_g = {C_ff, C_fg, C_gf, C_gg}.
|
| |
| | ScalarOperator (const std::vector< double > &in_v={}, double in_coef=1.0) |
| | Convenience constructor: even-parity, real, diagonal (C_ff=C_gg=1, C_fg=C_gf=0) scalar operator.
|
| |
| virtual double | angularF (const int ka, const int kb) const override |
| | Angular factor A_ab linking the radial integral to the RME.
|
| |
|
| TensorOperator (const TensorOperator &)=default |
| |
|
TensorOperator & | operator= (const TensorOperator &)=default |
| |
|
| TensorOperator (TensorOperator &&)=default |
| |
|
TensorOperator & | operator= (TensorOperator &&)=default |
| |
| bool | freqDependantQ () const |
| | Returns true if the operator is frequency-dependent (requires updateFrequency() calls).
|
| |
| bool | isZero (int ka, int kb) const |
| | Returns true if <a|h|b> = 0 by rank/parity selection rules.
|
| |
| bool | isZero (const DiracSpinor &Fa, const DiracSpinor &Fb) const |
| | Overload taking DiracSpinors; forwards to isZero(ka, kb).
|
| |
| bool | selectrion_rule (int twoJA, int piA, int twoJB, int piB) const |
| | Returns true if the matrix element is non-zero by angular momentum and parity selection rules (arguments are 2j and pi as integers).
|
| |
| virtual void | updateFrequency (const double) |
| | Updates the operator for a new frequency omega.
|
| |
| virtual void | updateRank (int) |
| |
| const std::vector< double > & | getv () const |
| | Returns a const ref to the stored vector v.
|
| |
| double | getc () const |
| | Returns the "overall" constant c.
|
| |
| bool | imaginaryQ () const |
| | returns true if operator is imaginary (has imag MEs)
|
| |
| int | rank () const |
| | Rank k of operator.
|
| |
| int | parity () const |
| | returns parity, as integer (+1 or -1)
|
| |
| int | symm_sign (const DiracSpinor &Fa, const DiracSpinor &Fb) const |
| | returns relative sign between <a||x||b> and <b||x||a>
|
| |
| double | angularCxy (uint8_t x, uint8_t y, int kappa_a, int kappa_b) const |
| | Dispatches to angularCff/fg/gf/gg based on component indices x, y.
|
| |
| virtual std::unique_ptr< TensorOperator > | clone () const |
| | Returns a polymorphic copy of the operator at its current state, or nullptr if cloning is not supported by the derived class.
|
| |
| virtual DiracSpinor | radial_rhs (const int kappa_a, const DiracSpinor &Fb) const |
| | Computes the right-hand spinor dF_b for the radial integral.
|
| |
| virtual double | radialIntegral (const DiracSpinor &Fa, const DiracSpinor &Fb) const |
| | Radial integral R_ab, defined by RME = angularF(a,b) * radialIntegral(a,b).
|
| |
| double | rme3js (int twoja, int twojb, int two_mb=1, int two_q=0) const |
| | 3j-symbol factor linking the full ME to the RME.
|
| |
| double | rme3js (const DiracSpinor &Fa, const DiracSpinor &Fb, int two_mb=1, int two_q=0) const |
| | Overload of rme3js taking DiracSpinors.
|
| |
| DiracSpinor | reduced_rhs (const int ka, const DiracSpinor &Fb) const |
| | Returns angularF(ka,kb) * radial_rhs(ka,Fb); spinor-valued RME action on Fb, used in perturbation theory/TDHF.
|
| |
| DiracSpinor | reduced_lhs (const int ka, const DiracSpinor &Fb) const |
| | As reduced_rhs but for the conjugate direction; Fb * reduced_lhs(ka, Fb) = <b||h||a>.
|
| |
| double | reducedME (const DiracSpinor &Fa, const DiracSpinor &Fb) const |
| | Returns the reduced matrix element <a||h||b> = A_ab * R_ab.
|
| |
| double | fullME (const DiracSpinor &Fa, const DiracSpinor &Fb, std::optional< int > two_ma=std::nullopt, std::optional< int > two_mb=std::nullopt, std::optional< int > two_q=std::nullopt) const |
| | Returns "full" matrix element, for optional (ma, mb, q) [taken as int 2*]. If not specified, returns z-component (q=0), with ma=mb=min(ja,jb)
|
| |
| double | matel_factor (MatrixElementType type, int twoJa, int twoJb) const |
| | Returns the factor to convert a reduced ME to a different form (Reduced, Stretched, or HFConstant); see MatrixElementType.
|
| |
| double | matel_factor (MatrixElementType type, const DiracSpinor &Fa, const DiracSpinor &Fb) const |
| | Overload of matel_factor taking DiracSpinors.
|
| |