48 use,
intrinsic :: iso_fortran_env
111 subroutine output_init(outp, namespace, space, st, gr, nst, ks)
112 type(output_t),
intent(out) :: outp
113 type(namespace_t),
intent(in) :: namespace
114 class(space_t),
intent(in) :: space
115 type(states_elec_t),
intent(in) :: st
116 type(grid_t),
intent(in) :: gr
117 integer,
intent(in) :: nst
118 type(v_ks_t),
intent(inout) :: ks
122 character(len=80) :: nst_string, default
129 if (outp%what(option__output__wfs_fourier))
then
131 message(1) =
"Wave functions in Fourier space not supported on GPUs."
138 if (outp%what(option__output__elf) .or. outp%what(option__output__elf_basins))
then
139 if (space%dim /= 2 .and. space%dim /= 3)
then
140 outp%what(option__output__elf) = .false.
141 outp%what(option__output__elf_basins) = .false.
142 write(
message(1),
'(a)')
'Cannot calculate ELF except in 2D and 3D.'
148 if (outp%what(option__output__mmb_wfs))
then
152 if (outp%what(option__output__xc_torque))
then
153 if (st%d%ispin /=
spinors)
then
154 write(
message(1),
'(a)')
'The output xc_torque can only be computed for spinors.'
157 if (space%dim /= 3)
then
158 write(
message(1),
'(a)')
'The output xc_torque can only be computed in the 3D case.'
162 if (outp%what(option__output__mmb_den))
then
171 if (outp%what(option__output__energy_density))
call messages_experimental(
"'Output = energy_density'", namespace=namespace)
172 if (outp%what(option__output__heat_current))
call messages_experimental(
"'Output = heat_current'", namespace=namespace)
174 if (outp%what(option__output__wfs) .or. outp%what(option__output__wfs_sqmod))
then
186 write(nst_string,
'(i6)') nst
187 write(default,
'(a,a)')
"1-", trim(adjustl(nst_string))
188 call parse_variable(namespace,
'OutputWfsNumber', default, outp%wfs_list)
191 if (
parse_block(namespace,
'CurrentThroughPlane', blk) == 0)
then
192 if (.not. outp%what(option__output__j_flow))
then
193 outp%what(option__output__j_flow) = .
true.
194 call parse_variable(namespace,
'OutputInterval', 50, outp%output_interval(option__output__j_flow))
245 select case (space%dim)
263 norm = norm2(outp%plane%u(1:3))
265 write(
message(1),
'(a)')
'u-vector for CurrentThroughPlane cannot have norm zero.'
268 outp%plane%u(1:3) = outp%plane%u(1:3) / norm
270 norm = norm2(outp%plane%v(1:3))
272 write(
message(1),
'(a)')
'v-vector for CurrentThroughPlane cannot have norm zero.'
275 outp%plane%v(1:3) = outp%plane%v(1:3) / norm
277 outp%plane%n(1:3) =
dcross_product(outp%plane%u(1:3), outp%plane%v(1:3))
289 norm = norm2(outp%line%u(1:2))
291 write(
message(1),
'(a)')
'u-vector for CurrentThroughPlane cannot have norm zero.'
294 outp%line%u(1:2) = outp%line%u(1:2) / norm
296 outp%line%n(1) = -outp%line%u(2)
297 outp%line%n(2) = outp%line%u(1)
311 if (outp%what(option__output__matrix_elements))
then
314 outp%me%what = .false.
317 if (outp%what(option__output__berkeleygw))
then
319 message(1) =
"BerkeleyGW is not compatible with GPUs."
326 if (outp%what(option__output__potential_gradient) .and. .not. outp%what(option__output__potential))
then
327 outp%what(option__output__potential) = .
true.
328 outp%output_interval(option__output__potential) = outp%output_interval(option__output__potential_gradient)
340 call parse_variable(namespace,
'OutputDuringSCF', .false., outp%duringscf)
343 write(
message(1),
'(a)')
'Input variable RestartWriteInterval is obsolete.'
344 write(
message(2),
'(a)')
'Restart files are now written in periods of the wallclock time'
345 write(
message(3),
'(a)')
'given by RestartWallTimePeriod, so you can simply delete this variable.'
360 call parse_variable(namespace,
'OutputIterDir',
"output_iter", outp%iter_dir)
361 if (any(outp%what) .and. any(outp%output_interval > 0))
then
362 call io_mkdir(outp%iter_dir, namespace)
375 if (outp%what(option__output__current_dia))
then
376 message(1) =
"The diamagnetic current will be calculated only if CalculateDiamagneticCurrent = yes."
384 subroutine output_all(outp, namespace, space, dir, gr, ions, iter, st, hm, ks)
387 class(
space_t),
intent(in) :: space
388 character(len=*),
intent(in) :: dir
389 type(
grid_t),
intent(in) :: gr
390 type(
ions_t),
intent(in) :: ions
391 integer,
intent(in) :: iter
394 type(
v_ks_t),
intent(inout) :: ks
396 integer :: idir, ierr, iunit
397 character(len=MAX_PATH_LEN) :: fname
402 if (any(outp%what))
then
403 message(1) =
"Info: Writing output to " // trim(dir)
408 if (outp%what_now(option__output__mesh_r, iter))
then
409 do idir = 1, space%dim
410 write(fname,
'(a,a)')
'mesh_r-',
index2axis(idir)
412 gr, gr%x_t(:,idir),
units_out%length, ierr, pos=ions%pos, atoms=ions%atom)
416 call output_states(outp, namespace, space, dir, st, gr, ions, hm, iter)
417 call output_hamiltonian(outp, namespace, space, dir, hm, st, gr%der, ions, gr, iter, st%st_kpt_mpi_grp)
420 if (outp%what_now(option__output__el_pressure, iter))
then
424 if (st%d%spin_channels > 1)
then
430 if (outp%what(option__output__kanamoriu) .and. hm%lda_u_level /=
dft_u_acbn0)
then
431 message(1) =
"kanamoriU output can only be computed for DFTULevel = dft_u_acbn0"
438 if (outp%what_now(option__output__j_flow, iter))
then
442 if (outp%what_now(option__output__geometry, iter))
then
443 if (
bitand(outp%how(option__output__geometry), option__outputformat__xcrysden) /= 0)
then
446 if (
bitand(outp%how(option__output__geometry), option__outputformat__xyz) /= 0)
then
447 call ions%write_xyz(trim(dir)//
'/geometry')
448 if (ions%space%is_periodic())
then
449 call ions%write_crystal(dir)
452 if (
bitand(outp%how(option__output__geometry), option__outputformat__vtk) /= 0)
then
453 call ions%write_vtk_geometry(trim(dir)//
'/geometry')
455 if (
bitand(outp%how(option__output__geometry), option__outputformat__poscar) /= 0)
then
456 call ions%write_poscar(trim(dir)//
'/POSCAR')
460 if (outp%what_now(option__output__forces, iter))
then
461 if (
bitand(outp%how(option__output__forces), option__outputformat__bild) /= 0)
then
462 call ions%write_bild_forces_file(dir,
"forces")
465 gr, namespace, total_forces = ions%tot_force)
469 if (outp%what_now(option__output__matrix_elements, iter))
then
470 call output_me(outp%me, namespace, space, dir, st, gr, ions, hm)
473 if (outp%what_now(option__output__berkeleygw, iter))
then
477 if (outp%what_now(option__output__energy_density, iter))
then
481 if (outp%what_now(option__output__stress, iter))
then
483 iunit =
io_open(trim(dir)//
'/stress', namespace, action=
'write')
484 call output_stress(iunit, space%periodic_dim, st%stress_tensors)
489 if (outp%what_now(option__output__occ_matrices, iter))&
492 if (outp%what_now(option__output__effectiveu, iter))&
495 if (outp%what_now(option__output__magnetization, iter))&
498 if (outp%what_now(option__output__local_orbitals, iter))&
499 call output_dftu_orbitals(outp, dir, namespace, space, hm%lda_u, st, gr, ions, hm%phase%is_allocated())
501 if (outp%what_now(option__output__kanamoriu, iter))&
504 if (ks%v_ks_photons%oep_full())
then
505 if (outp%what_now(option__output__photon_correlator, iter))
then
506 write(fname,
'(a)')
'photon_correlator'
507 call dio_function_output(outp%how(option__output__photon_correlator), dir, trim(fname), namespace, space, &
508 gr, ks%v_ks_photons%correlator(),
units_out%length, ierr, pos=ions%pos, atoms=ions%atom)
514 if (outp%what_now(option__output__xc_torque, iter))
then
516 write(
message(1),
'(a)')
'The output xc_torque can only be computed when there is a xc potential.'
532 class(
space_t),
intent(in) :: space
533 character(len=*),
intent(in) :: dir
536 type(
grid_t),
intent(in) :: gr
537 type(
ions_t),
intent(in) :: ions
538 integer,
intent(in) :: iter
540 real(real64),
allocatable :: f_loc(:,:)
541 character(len=MAX_PATH_LEN) :: fname
542 integer :: is, ierr, imax
547 mpi_grp = st%dom_st_kpt_mpi_grp
553 safe_allocate(f_loc(1:gr%np, 1:max(imax, st%d%nspin)))
556 if (outp%what_now(option__output__elf, iter) .or. outp%what_now(option__output__elf_basins, iter))
then
557 assert(space%dim /= 1)
559 call elf_calc(space, st, gr, hm%kpoints, f_loc(:, 1:imax))
562 if (outp%what_now(option__output__elf, iter))
then
563 write(fname,
'(a)')
'elf_rs'
564 call dio_function_output(outp%how(option__output__elf), dir, trim(fname), namespace, space, gr, &
565 f_loc(:,imax),
unit_one, ierr, pos=ions%pos, atoms=ions%atom, grp = mpi_grp)
570 write(fname,
'(a,i1)')
'elf_rs-sp', is
571 call dio_function_output(outp%how(option__output__elf), dir, trim(fname), namespace, space, gr, &
572 f_loc(:, is),
unit_one, ierr, pos=ions%pos, atoms=ions%atom, grp = mpi_grp)
578 if (outp%what_now(option__output__elf_basins, iter))
then
579 call out_basins(f_loc(:,imax),
"elf_rs_basins", outp%how(option__output__elf_basins))
584 if (outp%what_now(option__output__bader, iter))
then
585 do is = 1, st%d%nspin
590 call dio_function_output(outp%how(option__output__bader), dir, trim(fname), namespace, space, gr, &
591 f_loc(:,is),
units_out%length**(-2 - space%dim), ierr, &
592 pos=ions%pos, atoms=ions%atom, grp = mpi_grp)
595 call out_basins(f_loc(:, is), fname, outp%how(option__output__bader))
600 if (outp%what_now(option__output__el_pressure, iter))
then
602 call dio_function_output(outp%how(option__output__el_pressure), dir,
"el_pressure", namespace, space, gr, &
603 f_loc(:,1),
unit_one, ierr, pos=ions%pos, atoms=ions%atom, grp = mpi_grp)
607 safe_deallocate_a(f_loc)
613 subroutine out_basins(ff, filename, output_how)
614 real(real64),
contiguous,
intent(in) :: ff(:)
615 character(len=*),
intent(in) :: filename
616 integer(int64),
intent(in) :: output_how
618 character(len=MAX_PATH_LEN) :: fname
625 call basins_analyze(basins, namespace, gr, ff(:), st%rho(:, 1:st%d%spin_channels), 0.01_real64)
628 real(basins%map, real64) , unit_one, ierr, pos=ions%pos, atoms=ions%atom, grp = mpi_grp)
631 write(fname,
'(4a)') trim(dir),
'/', trim(filename),
'.info'
632 iunit =
io_open(trim(fname), namespace, action =
'write')
648 type(
grid_t),
intent(in) :: gr
649 real(real64),
contiguous,
intent(out) :: pressure(:)
651 real(real64),
allocatable :: rho(:,:), lrho(:), tau(:,:)
652 real(real64) :: p_tf, dens
657 safe_allocate( rho(1:gr%np_part, 1:st%d%nspin))
658 safe_allocate(lrho(1:gr%np))
659 safe_allocate( tau(1:gr%np, 1:st%d%nspin))
666 do is = 1, st%d%spin_channels
670 pressure(:) = pressure(:) + &
675 dens = sum(rho(ii,1:st%d%spin_channels))
682 pressure(ii) = pressure(ii) + (dens*hm%ks_pot%vxc(ii,1) - hm%energy%exchange - hm%energy%correlation)
684 pressure(ii) = pressure(ii)/p_tf
696 class(
space_t),
intent(in) :: space
697 character(len=*),
intent(in) :: dir
699 type(
v_ks_t),
intent(inout) :: ks
701 type(
ions_t),
intent(in) :: ions
702 type(
grid_t),
intent(in) :: gr
704 integer :: is, ierr, ip
705 character(len=MAX_PATH_LEN) :: fname
707 real(real64),
allocatable :: energy_density(:, :)
708 real(real64),
allocatable :: ex_density(:)
709 real(real64),
allocatable :: ec_density(:)
710 real(real64) :: xc_energy
715 safe_allocate(energy_density(1:gr%np, 1:st%d%nspin))
721 do is = 1, st%d%spin_channels
723 energy_density(ip, is) = energy_density(ip, is) + st%rho(ip, is)*hm%ep%vpsl(ip)
728 do is = 1, st%d%spin_channels
730 energy_density(ip, is) = energy_density(ip, is) +
m_half*st%rho(ip, is)*hm%ks_pot%vhartree(ip)
735 safe_allocate(ex_density(1:gr%np))
736 safe_allocate(ec_density(1:gr%np))
738 call xc_get_vxc(gr, ks%xc, st, hm%kpoints, hm%psolver, namespace, space, st%rho, st%d%ispin, &
739 hm%ions%latt%rcell_volume, ex_density = ex_density, ec_density = ec_density)
742 xc_energy = ex_density(ip) + ec_density(ip)
743 do is = 1, st%d%spin_channels
744 energy_density(ip, is) = energy_density(ip, is) + xc_energy
748 safe_deallocate_a(ex_density)
749 safe_deallocate_a(ec_density)
751 do is = 1, st%d%spin_channels
753 call dio_function_output(outp%how(option__output__energy_density), dir, trim(fname), namespace, space, gr, &
754 energy_density(:, is),
unit_one, ierr, pos=ions%pos, atoms=ions%atom, grp = st%dom_st_kpt_mpi_grp)
756 safe_deallocate_a(energy_density)
766 need_exx =(outp%what(option__output__berkeleygw) &
767 .or. outp%me%what(option__outputmatrixelements__two_body) &
768 .or. outp%me%what(option__outputmatrixelements__two_body_exc_k))
775 character(len=*),
intent(in) :: dir
777 class(
space_t),
intent(in) :: space
778 type(
lda_u_t),
intent(in) :: this
780 class(
mesh_t),
intent(in) :: mesh
781 type(
ions_t),
intent(in) :: ions
782 logical,
intent(in) :: has_phase
784 integer :: ios, im, ik, idim, ierr
785 complex(real64),
allocatable :: tmp(:)
786 real(real64),
allocatable :: dtmp(:)
789 character(len=MAX_PATH_LEN) :: fname
795 if (this%basis%use_submesh)
then
797 safe_allocate(dtmp(1:mesh%np))
799 safe_allocate(tmp(1:mesh%np))
803 do ios = 1, this%norbsets
804 os => this%orbsets(ios)
805 do ik = st%d%kpt%start, st%d%kpt%end
806 do im = 1, this%orbsets(ios)%norbs
807 do idim = 1, min(os%ndim, st%d%dim)
809 if (min(os%ndim, st%d%dim) > 1)
then
810 write(fname,
'(a,i1,a,i3.3,a,i8.8,a,i1)')
'orb', im,
'-os', ios,
'-k', ik,
'-sp', idim
812 write(fname,
'(a,i1,a,i3.3,a,i8.8)')
'orb', im,
'-os', ios,
'-k', ik
815 if (min(os%ndim, st%d%dim) > 1)
then
816 write(fname,
'(a,i1,a,i3.3,a,i1)')
'orb', im,
'-os', ios,
'-sp', idim
818 write(fname,
'(a,i1,a,i3.3)')
'orb', im,
'-os', ios
822 if (.not. this%basis%use_submesh)
then
823 call zio_function_output(outp%how(option__output__local_orbitals), dir, fname, namespace, space, &
824 mesh, os%eorb_mesh(1:mesh%np,im,idim,ik), fn_unit, ierr, pos=ions%pos, atoms=ions%atom)
828 call zio_function_output(outp%how(option__output__local_orbitals), dir, fname, namespace, space, &
829 mesh, tmp, fn_unit, ierr, pos=ions%pos, atoms=ions%atom)
832 if (.not. this%basis%use_submesh)
then
834 call dio_function_output(outp%how(option__output__local_orbitals), dir, fname, namespace, space, mesh, &
835 os%dorb(1:mesh%np,idim,im), fn_unit, ierr, pos=ions%pos, atoms=ions%atom)
837 call zio_function_output(outp%how(option__output__local_orbitals), dir, fname, namespace, space, mesh, &
838 os%zorb(1:mesh%np,idim,im), fn_unit, ierr, pos=ions%pos, atoms=ions%atom)
844 call dio_function_output(outp%how(option__output__local_orbitals), dir, fname, namespace, space, &
845 mesh, dtmp, fn_unit, ierr, pos=ions%pos, atoms=ions%atom)
849 call zio_function_output(outp%how(option__output__local_orbitals), dir, fname, namespace, space, &
850 mesh, tmp, fn_unit, ierr, pos=ions%pos, atoms=ions%atom)
859 safe_deallocate_a(tmp)
860 safe_deallocate_a(dtmp)
868 logical,
intent(in) :: states_are_real
872 if (outp%what(option__output__current) &
873 .or. outp%what(option__output__current_dia) &
874 .or. outp%what(option__output__heat_current) &
875 .or. outp%what(option__output__current_kpt))
then
876 if (.not. states_are_real)
then
879 message(1) =
'No current density output for real states since it is identically zero.'
887#include "output_states_inc.F90"
889#include "output_h_inc.F90"
892#include "complex.F90"
893#include "output_linear_response_inc.F90"
897#include "output_linear_response_inc.F90"
pure logical function, public accel_is_enabled()
subroutine, public basins_write(this, mesh, iunit)
subroutine, public basins_init(this, namespace, mesh)
subroutine, public basins_analyze(this, namespace, mesh, f, rho, threshold)
subroutine, public basins_end(this)
This module implements a calculator for the density and defines related functions.
subroutine, public density_calc(st, gr, density, istin)
Computes the density from the orbitals in st.
This module calculates the derivatives (gradients, Laplacians, etc.) of a function.
subroutine, public dderivatives_lapl(der, ff, op_ff, ghost_update, set_bc, factor)
apply the Laplacian to a mesh function
Module that handles computing and output of various density of states.
integer, parameter, public unpolarized
Parameters...
integer, parameter, public spinors
subroutine, public elf_calc(space, st, gr, kpoints, elf, de)
(time-dependent) electron localization function, (TD)ELF.
Fast Fourier Transform module. This module provides a single interface that works with different FFT ...
real(real64), parameter, public m_two
real(real64), parameter, public m_zero
real(real64), parameter, public m_four
real(real64), parameter, public m_pi
some mathematical constants
complex(real64), parameter, public m_z0
integer, parameter, public generalized_kohn_sham_dft
integer, parameter, public kohn_sham_dft
real(real64), parameter, public m_epsilon
real(real64), parameter, public m_half
real(real64), parameter, public m_one
real(real64), parameter, public m_three
real(real64), parameter, public m_five
This module implements the underlying real-space grid.
This module defines classes and functions for interaction partners.
subroutine, public zio_function_output(how, dir, fname, namespace, space, mesh, ff, unit, ierr, pos, atoms, grp, root)
Top-level IO routine for functions defined on the mesh.
subroutine, public io_function_read_what_how_when(namespace, space, what, how, output_interval, what_tag_in, how_tag_in, output_interval_tag_in, ignore_error)
subroutine, public dio_function_output(how, dir, fname, namespace, space, mesh, ff, unit, ierr, pos, atoms, grp, root)
Top-level IO routine for functions defined on the mesh.
subroutine, public write_xsf_geometry_file(dir, fname, space, latt, pos, atoms, mesh, namespace, total_forces)
subroutine, public io_close(iunit, grp)
subroutine, public io_mkdir(fname, namespace, parents)
integer function, public io_open(file, namespace, action, status, form, position, die, recl, grp)
A module to handle KS potential, without the external potential.
subroutine, public lda_u_write_occupation_matrices(dir, this, st, namespace)
Prints the occupation matrices at the end of the scf calculation.
subroutine, public lda_u_write_kanamoriu(dir, st, this, namespace)
subroutine, public lda_u_write_effectiveu(dir, this, st, namespace)
subroutine, public lda_u_write_magnetization(dir, this, ions, mesh, st, namespace)
integer, parameter, public dft_u_none
integer, parameter, public dft_u_acbn0
System information (time, memory, sysname)
This module is intended to contain "only mathematical" functions and procedures.
pure real(real64) function, dimension(1:3), public dcross_product(a, b)
This module defines various routines, operating on mesh functions.
This module defines the meshes, which are used in Octopus.
subroutine, public messages_not_implemented(feature, namespace)
subroutine, public messages_warning(no_lines, all_nodes, namespace)
character(len=256), dimension(max_lines), public message
to be output by fatal, warning
subroutine, public messages_fatal(no_lines, only_root_writes, namespace)
subroutine, public messages_experimental(name, namespace)
subroutine, public messages_info(no_lines, iunit, debug_only, stress, all_nodes, namespace)
subroutine, public output_berkeleygw(bgw, namespace, space, dir, st, gr, ks, hm, ions)
subroutine, public output_berkeleygw_init(nst, namespace, bgw, periodic_dim)
this module contains the low-level part of the output system
character(len=max_path_len) function, public get_filename_with_spin(output, nspin, spin_index)
Returns the filame as output, or output-spX is spin polarized.
subroutine, public output_me_init(this, namespace, space, st, gr, nst)
subroutine, public output_me(this, namespace, space, dir, st, gr, ions, hm)
this module contains the output system
subroutine calc_electronic_pressure(st, hm, gr, pressure)
subroutine, public output_states(outp, namespace, space, dir, st, gr, ions, hm, iter)
subroutine, public output_scalar_pot(outp, namespace, space, dir, mesh, ions, ext_partners, grp, time)
logical function, public output_needs_current(outp, states_are_real)
subroutine, public output_hamiltonian(outp, namespace, space, dir, hm, st, der, ions, gr, iter, grp)
subroutine, public output_all(outp, namespace, space, dir, gr, ions, iter, st, hm, ks)
logical function, public output_need_exchange(outp)
subroutine, public output_init(outp, namespace, space, st, gr, nst, ks)
subroutine output_xc_torque(outp, namespace, dir, mesh, hm, st, ions, space)
subroutine, public output_current_flow(outp, namespace, space, dir, gr, st, kpoints)
subroutine, public zoutput_lr(outp, namespace, space, dir, st, mesh, lr, idir, isigma, ions, pert_unit)
subroutine, public doutput_lr(outp, namespace, space, dir, st, mesh, lr, idir, isigma, ions, pert_unit)
subroutine output_energy_density(outp, namespace, space, dir, hm, ks, st, ions, gr)
subroutine output_dftu_orbitals(outp, dir, namespace, space, this, st, mesh, ions, has_phase)
subroutine output_localization_funct(outp, namespace, space, dir, st, hm, gr, ions, iter)
logical function, public parse_is_defined(namespace, name)
integer function, public parse_block(namespace, name, blk, check_varinfo_)
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.
pure logical function, public states_are_real(st)
This module defines routines to write information about states.
subroutine, public states_elec_calc_quantities(gr, st, kpoints, nlcc, kinetic_energy_density, paramagnetic_current, density_gradient, density_laplacian, gi_kinetic_energy_density, st_end)
calculated selected quantities
This module implements the calculation of the stress tensor.
subroutine, public output_stress(iunit, space_dim, stress_tensors, all_terms)
subroutine, public add_last_slash(str)
Adds a '/' in the end of the string, only if it missing. Useful for directories.
brief This module defines the class unit_t which is used by the unit_systems_oct_m module.
This module defines the unit system, used for input and output.
type(unit_system_t), public units_out
type(unit_system_t), public units_inp
the units systems for reading and writing
type(unit_t), public unit_one
some special units required for particular quantities
This module is intended to contain simple general-purpose utility functions and procedures.
character pure function, public index2axis(idir)
subroutine, public v_ks_calculate_current(this, calc_cur)
subroutine, public xc_get_vxc(gr, xcs, st, kpoints, psolver, namespace, space, rho, ispin, rcell_volume, vxc, ex, ec, deltaxc, vtau, ex_density, ec_density, stress_xc, force_orbitalfree, force_host)
subroutine out_basins(ff, filename, output_how)
Description of the grid, containing information on derivatives, stencil, and symmetries.
Class to describe DFT+U parameters.
Describes mesh distribution to nodes.
This is defined even when running serial.
Output information for BerkeleyGW.
The states_elec_t class contains all electronic wave functions.