Octopus
magnetic_oct_m Module Reference

Functions/Subroutines

subroutine, public magnetic_density (mesh, std, rho, md)
 
subroutine, public magnetic_moment (mesh, st, rho, mm)
 
subroutine, public compute_and_write_magnetic_moments (gr, st, phase, ep, ions, lmm_r, calc_orb_moments, iunit, namespace)
 Computes and prints the global and local magnetic moments. More...
 
subroutine, public magnetic_local_moments (mesh, st, ions, boundaries, rho, rr, lmm)
 
subroutine magnetic_orbital_moments (gr, st, phase, ep, ions, rho, rr, lom)
 @bief Computes orbital moments around the atoms in the GIPAW gauge More...
 
subroutine, public magnetic_total_magnetization (mesh, st, qq, trans_mag)
 
subroutine, public magnetic_induced (namespace, gr, st, psolver, kpoints, a_ind, b_ind)
 This subroutine receives as input a current, and produces as an output the vector potential that it induces. More...
 
subroutine, public write_total_xc_torque (iunit, mesh, vxc, st)
 
subroutine, public calc_xc_torque (mesh, vxc, st, torque)
 

Function/Subroutine Documentation

◆ magnetic_density()

subroutine, public magnetic_oct_m::magnetic_density ( class(mesh_t), intent(in)  mesh,
type(states_elec_dim_t), intent(in)  std,
real(real64), dimension(:,:), intent(in)  rho,
real(real64), dimension(:,:), intent(out)  md 
)
Parameters
[in]rho(np, stdnspin)
[out]md(np, 3)

Definition at line 163 of file magnetic.F90.

◆ magnetic_moment()

subroutine, public magnetic_oct_m::magnetic_moment ( class(mesh_t), intent(in)  mesh,
type(states_elec_t), intent(in)  st,
real(real64), dimension(:,:), intent(in)  rho,
real(real64), dimension(3), intent(out)  mm 
)

Definition at line 190 of file magnetic.F90.

◆ compute_and_write_magnetic_moments()

subroutine, public magnetic_oct_m::compute_and_write_magnetic_moments ( type(grid_t), intent(in)  gr,
type(states_elec_t), intent(in)  st,
type(phase_t), intent(in)  phase,
type(epot_t), intent(in)  ep,
type(ions_t), intent(in)  ions,
real(real64), intent(in)  lmm_r,
logical, intent(in), optional  calc_orb_moments,
integer, intent(in), optional  iunit,
type(namespace_t), intent(in), optional  namespace 
)

Computes and prints the global and local magnetic moments.

Definition at line 213 of file magnetic.F90.

◆ magnetic_local_moments()

subroutine, public magnetic_oct_m::magnetic_local_moments ( class(mesh_t), intent(in)  mesh,
type(states_elec_t), intent(in)  st,
type(ions_t), intent(in)  ions,
type(boundaries_t), intent(in)  boundaries,
real(real64), dimension(:,:), intent(in)  rho,
real(real64), intent(in)  rr,
real(real64), dimension(max(mesh%box%dim, 3), ions%natoms), intent(out)  lmm 
)

Definition at line 288 of file magnetic.F90.

◆ magnetic_orbital_moments()

subroutine magnetic_oct_m::magnetic_orbital_moments ( type(grid_t), intent(in)  gr,
type(states_elec_t), intent(in)  st,
type(phase_t), intent(in)  phase,
type(epot_t), intent(in)  ep,
type(ions_t), intent(in)  ions,
real(real64), dimension(:,:), intent(in)  rho,
real(real64), intent(in)  rr,
real(real64), dimension(3, ions%natoms), intent(out)  lom 
)
private

@bief Computes orbital moments around the atoms in the GIPAW gauge

This is the R-centered orbital angular momentum as defined in Pickard and Mauri

[ \hat{\mathbf{L}_i} = (\mathbf{r} - R_i) \times \mathbf{p}

  • \mathbf{R}_{i} \times \left[ V_{i}^{\mathrm{nl}}, \mathbf{r} \right]. ]

See Pickard and Mauri, PRL 91, 196401 (2003).

Definition at line 365 of file magnetic.F90.

◆ magnetic_total_magnetization()

subroutine, public magnetic_oct_m::magnetic_total_magnetization ( class(mesh_t), intent(in)  mesh,
type(states_elec_t), intent(in)  st,
real(real64), dimension(:), intent(in)  qq,
complex(real64), dimension(6), intent(out)  trans_mag 
)

Definition at line 473 of file magnetic.F90.

◆ magnetic_induced()

subroutine, public magnetic_oct_m::magnetic_induced ( type(namespace_t), intent(in)  namespace,
type(grid_t), intent(in)  gr,
type(states_elec_t), intent(inout)  st,
type(poisson_t), intent(in)  psolver,
type(kpoints_t), intent(in)  kpoints,
real(real64), dimension(:, :), intent(out), contiguous  a_ind,
real(real64), dimension(:, :), intent(out), contiguous  b_ind 
)

This subroutine receives as input a current, and produces as an output the vector potential that it induces.

Warning
There is probably a problem for 2D. For 1D none of this makes sense?
Parameters
[out]a_inda_ind(dermeshnp_part, derdim)
[out]b_indif derdim=3, b_ind(dermeshnp_part, derdim) if derdim=2, b_ind(dermeshnp_part, 1)

Definition at line 516 of file magnetic.F90.

◆ write_total_xc_torque()

subroutine, public magnetic_oct_m::write_total_xc_torque ( integer, intent(in)  iunit,
class(mesh_t), intent(in)  mesh,
real(real64), dimension(:,:), intent(in)  vxc,
type(states_elec_t), intent(in)  st 
)

Definition at line 566 of file magnetic.F90.

◆ calc_xc_torque()

subroutine, public magnetic_oct_m::calc_xc_torque ( class(mesh_t), intent(in)  mesh,
real(real64), dimension(:,:), intent(in)  vxc,
type(states_elec_t), intent(in)  st,
real(real64), dimension(:,:), intent(inout)  torque 
)

Definition at line 594 of file magnetic.F90.