Octopus
magnetic_constrain_oct_m Module Reference

This modules implements the routines for doing constrain DFT for noncollinear magnetism. More...

Detailed Description

This modules implements the routines for doing constrain DFT for noncollinear magnetism.

This closely follows the VASP implementation, as described in Ma and Dudarev, PRB 91, 054420 (2015).

Data Types

type  magnetic_constrain_t
 Datatype containing the magnetic constrain information. More...
 

Functions/Subroutines

subroutine, public magnetic_constrain_init (this, namespace, mesh, std, natoms, min_dist)
 Initilializes the magnetic_constrain_t object. More...
 
subroutine, public magnetic_constrain_end (this)
 Releases memory of the magnetic constrain. More...
 
subroutine, public magnetic_constrain_update (this, mesh, std, space, latt, pos, rho)
 Recomputes the magnetic contraining potential. More...
 

Variables

integer, parameter, public constrain_none = 0
 
integer, parameter, public constrain_dir = 1
 
integer, parameter, public constrain_full = 2
 
real(real64), parameter tol_mag_norm = 1.0e-6_real64
 

Function/Subroutine Documentation

◆ magnetic_constrain_init()

subroutine, public magnetic_constrain_oct_m::magnetic_constrain_init ( type(magnetic_constrain_t), intent(inout)  this,
type(namespace_t), intent(in)  namespace,
class(mesh_t), intent(in)  mesh,
type(states_elec_dim_t), intent(in)  std,
integer, intent(in)  natoms,
real(real64), intent(in)  min_dist 
)

Initilializes the magnetic_constrain_t object.

Definition at line 167 of file magnetic_constrain.F90.

◆ magnetic_constrain_end()

subroutine, public magnetic_constrain_oct_m::magnetic_constrain_end ( type(magnetic_constrain_t), intent(inout)  this)

Releases memory of the magnetic constrain.

Definition at line 272 of file magnetic_constrain.F90.

◆ magnetic_constrain_update()

subroutine, public magnetic_constrain_oct_m::magnetic_constrain_update ( type(magnetic_constrain_t), intent(inout)  this,
class(mesh_t), intent(in)  mesh,
type(states_elec_dim_t), intent(in)  std,
class(space_t), intent(in)  space,
type(lattice_vectors_t), intent(in)  latt,
real(real64), dimension(:,:), intent(in)  pos,
real(real64), dimension(:,:), intent(in)  rho 
)

Recomputes the magnetic contraining potential.

Definition at line 285 of file magnetic_constrain.F90.

Variable Documentation

◆ constrain_none

integer, parameter, public magnetic_constrain_oct_m::constrain_none = 0

Definition at line 142 of file magnetic_constrain.F90.

◆ constrain_dir

integer, parameter, public magnetic_constrain_oct_m::constrain_dir = 1

Definition at line 142 of file magnetic_constrain.F90.

◆ constrain_full

integer, parameter, public magnetic_constrain_oct_m::constrain_full = 2

Definition at line 142 of file magnetic_constrain.F90.

◆ tol_mag_norm

real(real64), parameter magnetic_constrain_oct_m::tol_mag_norm = 1.0e-6_real64
private

Definition at line 161 of file magnetic_constrain.F90.