Octopus
zora_oct_m::zora_t Interface Reference

This class is responsible for calculating and applying the ZORA. More...

Detailed Description

This class is responsible for calculating and applying the ZORA.

Definition at line 145 of file zora.F90.

Private Member Functions

procedure update => zora_update
 update the ZORA potentials More...
 
procedure dapply_batch => dzora_apply_batch
 apply the ZORA to a batch of states psib More...
 
procedure zapply_batch => zzora_apply_batch
 apply the ZORA to a batch of states psib More...
 
final zora_finalize
 

Private Attributes

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
 

Member Function/Subroutine Documentation

◆ 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]thisthe ZORA object
[in]derthe derivatives
[in]potentialdimensions (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]thisThe ZORA object
[in]meshmesh needs to be passed through
[in]derthe derivatives
[in]states_dimfor accessing the spin index from the batch
[in,out]psibinput states
[in,out]hpsiboutput 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]thisThe ZORA object
[in]meshmesh needs to be passed through
[in]derthe derivatives
[in]states_dimfor accessing the spin index from the batch
[in,out]psibinput states
[in,out]hpsiboutput states with ZORA applied

Definition at line 160 of file zora.F90.

◆ zora_finalize()

final zora_oct_m::zora_t::zora_finalize
finalprivate

Definition at line 161 of file zora.F90.

Member Data Documentation

◆ 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

Definition at line 152 of file zora.F90.

◆ mass

real(real64) zora_oct_m::zora_t::mass = M_ZERO
private

Definition at line 153 of file zora.F90.

◆ zora_level

integer zora_oct_m::zora_t::zora_level = ZORA_NONE
private

Definition at line 155 of file zora.F90.


The documentation for this interface was generated from the following file: