57    type(mesh_t),    
pointer :: mesh => null()
 
   58    type(space_t),   
pointer :: space => null()
 
   62    type(distributed_t), 
pointer, 
public :: atoms_dist => null()
 
   63    type(atom_t), 
pointer, 
public :: atom(:) => null()
 
   64    real(real64), 
pointer, 
public :: pos(:,:) => null()
 
   65    type(lattice_vectors_t), 
pointer :: latt => null()
 
   83    class(interaction_partner_t), 
target, 
intent(inout) :: partner
 
   84    class(nlcc_t),               
pointer       :: this
 
   92    this%partner => partner
 
   99    class(nlcc_t),         
intent(inout) :: this
 
  100    class(mesh_t),    
target, 
intent(in) :: mesh
 
  101    type(ions_t),     
target, 
intent(in) :: ions
 
  108    safe_allocate(this%density(1:mesh%np,1))
 
  110    this%atoms_dist => ions%atoms_dist
 
  111    this%atom => ions%atom
 
  112    this%space => ions%space
 
  114    this%latt => ions%latt
 
  121    class(nlcc_t),             
intent(inout) :: this
 
  129    this%density(:,:) = 
m_zero 
  131    do ia = this%atoms_dist%start, this%atoms_dist%end
 
  132      if (this%atom(ia)%species%is_ps_with_nlcc()) 
then 
  133        call species_get_nlcc(this%atom(ia)%species, this%space, this%latt, this%pos(:, ia), this%mesh, &
 
  134          this%density(:,1), accumulate=.
true.)
 
  139    if (this%atoms_dist%parallel) 
then 
  154    safe_deallocate_a(this%density)
 
  176    class(
nlcc_t),             
intent(inout) :: this
 
real(real64), parameter, public m_zero
 
This module defines the abstract interaction_t class, and some auxiliary classes for interactions.
 
subroutine, public interaction_end(this)
 
This module defines classes and functions for interaction partners.
 
This module defines the meshes, which are used in Octopus.
 
subroutine nlcc_end(this)
 
subroutine nlcc_calculate(this)
 
subroutine nlcc_finalize(this)
 
subroutine nlcc_init(this, mesh, ions)
 
class(nlcc_t) function, pointer nlcc_constructor(partner)
 
subroutine nlcc_calculate_energy(this)
 
subroutine, public profiling_out(label)
Increment out counter and sum up difference between entry and exit time.
 
subroutine, public profiling_in(label, exclude)
Increment in counter and save entry time.
 
This module defines the quantity_t class and the IDs for quantities, which can be exposed by a system...
 
subroutine, public species_get_nlcc(species, space, latt, pos, mesh, rho_core, accumulate)