This class is responsible for calculating and applying the ZORA.
More...
This class is responsible for calculating and applying the ZORA.
Definition at line 145 of file zora.F90.
|
real(real64), dimension(:,:), allocatable | pot |
| ZORA mass renormalization term, \( \frac{c^2}{2c^2 - V} \). More...
|
|
real(real64), dimension(:,:,:), allocatable | grad_pot |
| gradient of ZORA mass renormalization term, \( \nabla ( \frac{c^2}{2c^2 - V} ) \) More...
|
|
real(real64), dimension(:,:,:), allocatable | soc |
| ZORA spin-orbit term, \( {\rm zora\%pref} * (\sigma \times {\nabla V}) \cdot p \). More...
|
|
real(real64) | so_strength = M_ZERO |
|
real(real64) | mass = M_ZERO |
|
integer | zora_level = ZORA_NONE |
|
◆ update()
procedure zora_oct_m::zora_t::update |
|
private |
update the ZORA potentials
This routine performs calculations, which do not require the wave functions but only depend on the potential.
It calculates:
- \( {\rm zora\%pot}({\bf r}) = \frac{c^2}{2c^2 - V({\bf r})} \)
- \( {\rm zora\%grad_pot}({\bf r}) = \nabla \frac{c^2}{2c^2 - V({\bf r})} \)
and for the fully relativistic case
- \( {\rm zora\%soc}({\bf r}) = {\rm prefactor}({\bf r}) \, \sigma \cdot ( \nabla V({\bf r}) \times {\bf p} )\) = \( {\rm prefactor}({\bf r}) * (\sigma \times ( \nabla V)({\bf r})) \cdot {\bf p} \)
where \( {\rm prefactor}({\bf r}) = {\rm so\_strength} * 2 c^2 / (2 m c^2 - {\rm V({\bf r})^2} ) \)
These are used in dzora_apply_batch() and zzora_apply_batch().
- Parameters
-
[in,out] | this | the ZORA object |
[in] | der | the derivatives |
[in] | potential | dimensions (1:np, 1:thisspin_channels) |
Definition at line 158 of file zora.F90.
◆ dapply_batch()
procedure zora_oct_m::zora_t::dapply_batch |
|
private |
apply the ZORA to a batch of states psib
- Note
- This routine assumes
- that hpsib already contains \( (\boldsymbol{p}^2 \Phi^\mathrm{ZORA}) \)
- that zora_oct_m::zora_update() had been called before.
The routine makes use of the relation:
\[ \boldsymbol{p} \frac{c^2}{2c^2 - V} \boldsymbol{p} \Phi^\mathrm{ZORA}
= (\boldsymbol{p} \frac{c^2}{2c^2 - V})(\boldsymbol{p} \Phi^\mathrm{ZORA})
+ \frac{c^2}{2c^2 - V} (\boldsymbol{p}^2 \Phi^\mathrm{ZORA}) \]
- Parameters
-
[in] | this | The ZORA object |
[in] | mesh | mesh needs to be passed through |
[in] | der | the derivatives |
[in] | states_dim | for accessing the spin index from the batch |
[in,out] | psib | input states |
[in,out] | hpsib | output states with ZORA applied |
Definition at line 159 of file zora.F90.
◆ zapply_batch()
procedure zora_oct_m::zora_t::zapply_batch |
|
private |
apply the ZORA to a batch of states psib
- Note
- This routine assumes
- that hpsib already contains \( (\boldsymbol{p}^2 \Phi^\mathrm{ZORA}) \)
- that zora_oct_m::zora_update() had been called before.
The routine makes use of the relation:
\[ \boldsymbol{p} \frac{c^2}{2c^2 - V} \boldsymbol{p} \Phi^\mathrm{ZORA}
= (\boldsymbol{p} \frac{c^2}{2c^2 - V})(\boldsymbol{p} \Phi^\mathrm{ZORA})
+ \frac{c^2}{2c^2 - V} (\boldsymbol{p}^2 \Phi^\mathrm{ZORA}) \]
- Parameters
-
[in] | this | The ZORA object |
[in] | mesh | mesh needs to be passed through |
[in] | der | the derivatives |
[in] | states_dim | for accessing the spin index from the batch |
[in,out] | psib | input states |
[in,out] | hpsib | output states with ZORA applied |
Definition at line 160 of file zora.F90.
◆ zora_finalize()
final zora_oct_m::zora_t::zora_finalize |
|
finalprivate |
◆ pot
real(real64), dimension(:,:), allocatable zora_oct_m::zora_t::pot |
|
private |
ZORA mass renormalization term, \( \frac{c^2}{2c^2 - V} \).
Definition at line 148 of file zora.F90.
◆ grad_pot
real(real64), dimension(:,:,:), allocatable zora_oct_m::zora_t::grad_pot |
|
private |
gradient of ZORA mass renormalization term, \( \nabla ( \frac{c^2}{2c^2 - V} ) \)
Definition at line 149 of file zora.F90.
◆ soc
real(real64), dimension(:,:,:), allocatable zora_oct_m::zora_t::soc |
|
private |
ZORA spin-orbit term, \( {\rm zora\%pref} * (\sigma \times {\nabla V}) \cdot p \).
Definition at line 150 of file zora.F90.
◆ so_strength
real(real64) zora_oct_m::zora_t::so_strength = M_ZERO |
|
private |
◆ mass
real(real64) zora_oct_m::zora_t::mass = M_ZERO |
|
private |
◆ zora_level
integer zora_oct_m::zora_t::zora_level = ZORA_NONE |
|
private |
The documentation for this interface was generated from the following file: