nuclei

This module contains data relative to the nuclei (coordinates, charge, nuclear repulsion energy, etc). The coordinates are expressed in atomic units.

EZFIO parameters

nucl_num

Number of nuclei

nucl_label

Nuclear labels

nucl_charge

Nuclear charges

nucl_coord

Nuclear coordinates in the format (:, {x,y,z})

io_nuclear_repulsion

Read/Write Nuclear Repulsion from/to disk [ Write | Read | None ]

Default: None

nuclear_repulsion

Nuclear repulsion (Computed automaticaly or Read in the EZFIO)

is_periodic

If true, the calculation uses periodic boundary conditions

Default: false

n_pts_charge

Number of point charges to be added to the potential

Default: 0

pts_charge_z

Charge associated to each point charge

pts_charge_coord

Coordinate of each point charge.

point_charges

If true, point charges (see nuclei/write_pt_charges.py) are added to the one-electron potential

Default: False

Providers

center_of_mass

File : nuclei/nuclei.irp.f

double precision, allocatable   :: center_of_mass       (3)

Center of mass of the molecule

Needs:

  • element_name

  • nucl_charge

  • nucl_coord

  • nucl_num

Needed by:

  • inertia_tensor

element_mass

File : nuclei/nuclei.irp.f

character*(4), allocatable      :: element_name (0:127)
double precision, allocatable   :: element_mass (0:127)

Array of the name of element, sorted by nuclear charge (integer)

Needs:

  • mpi_master

Needed by:

  • center_of_mass

  • inertia_tensor

element_name

File : nuclei/nuclei.irp.f

character*(4), allocatable      :: element_name (0:127)
double precision, allocatable   :: element_mass (0:127)

Array of the name of element, sorted by nuclear charge (integer)

Needs:

  • mpi_master

Needed by:

  • center_of_mass

  • inertia_tensor

inertia_tensor

File : nuclei/inertia.irp.f

double precision, allocatable   :: inertia_tensor       (3,3)

Inertia tensor

Needs:

  • center_of_mass

  • element_name

  • nucl_charge

  • nucl_coord

  • nucl_num

Needed by:

  • inertia_tensor_eigenvectors

inertia_tensor_eigenvalues

File : nuclei/inertia.irp.f

double precision, allocatable   :: inertia_tensor_eigenvectors  (3,3)
double precision, allocatable   :: inertia_tensor_eigenvalues   (3)

Eigenvectors/eigenvalues of the inertia_tensor. Used to find normal orientation.

Needs:

  • inertia_tensor

inertia_tensor_eigenvectors

File : nuclei/inertia.irp.f

double precision, allocatable   :: inertia_tensor_eigenvectors  (3,3)
double precision, allocatable   :: inertia_tensor_eigenvalues   (3)

Eigenvectors/eigenvalues of the inertia_tensor. Used to find normal orientation.

Needs:

  • inertia_tensor

n_pts_charge

File : nuclei/point_charges.irp.f

integer :: n_pts_charge

Number of point charges to be added to the potential

Needs:

  • ezfio_filename

  • mpi_master

  • output_wall_time_0

Needed by:

  • ao_integrals_pt_chrg

  • pt_chrg_interaction

  • pt_chrg_nuclei_interaction

  • pts_charge_coord

  • pts_charge_z

nucl_coord

File : nuclei/nuclei.irp.f

double precision, allocatable   :: nucl_coord   (nucl_num,3)

Nuclear coordinates in the format (:, {x,y,z})

Needs:

  • ezfio_filename

  • mpi_master

  • nucl_charge

  • nucl_label

  • nucl_num

  • output_wall_time_0

Needed by:

  • ao_2e_cgtos_schwartz

  • ao_coef_norm_cgtos

  • ao_deriv2_cgtos_x

  • ao_deriv2_x

  • ao_deriv_1_x

  • ao_dipole_x

  • ao_integrals_n_e

  • ao_integrals_n_e_cgtos

  • ao_integrals_n_e_per_atom

  • ao_integrals_pt_chrg

  • ao_overlap

  • ao_overlap_abs

  • ao_overlap_cgtos

  • ao_pseudo_integrals_local

  • ao_pseudo_integrals_non_local

  • ao_spread_x

  • ao_two_e_integral_alpha

  • ao_two_e_integral_erf_schwartz

  • ao_two_e_integral_schwartz

  • ao_two_e_integrals_erf_in_map

  • ao_two_e_integrals_in_map

  • center_of_mass

  • cholesky_ao_num

  • inertia_tensor

  • multi_s_deriv_1

  • multi_s_dipole_moment

  • nucl_coord_transp

  • nucl_dist_2

  • nuclear_repulsion

  • pt_chrg_nuclei_interaction

  • z_dipole_moment

nucl_coord_transp

File : nuclei/nuclei.irp.f

double precision, allocatable   :: nucl_coord_transp    (3,nucl_num)

Transposed array of nucl_coord

Needs:

  • nucl_coord

  • nucl_num

nucl_dist

File : nuclei/nuclei.irp.f

double precision, allocatable   :: nucl_dist_2  (nucl_num,nucl_num)
double precision, allocatable   :: nucl_dist_vec_x      (nucl_num,nucl_num)
double precision, allocatable   :: nucl_dist_vec_y      (nucl_num,nucl_num)
double precision, allocatable   :: nucl_dist_vec_z      (nucl_num,nucl_num)
double precision, allocatable   :: nucl_dist    (nucl_num,nucl_num)

nucl_dist : Nucleus-nucleus distances nucl_dist_2 : Nucleus-nucleus distances squared nucl_dist_vec : Nucleus-nucleus distances vectors

Needs:

  • nucl_coord

  • nucl_num

Needed by:

  • nucl_dist_inv

nucl_dist_2

File : nuclei/nuclei.irp.f

double precision, allocatable   :: nucl_dist_2  (nucl_num,nucl_num)
double precision, allocatable   :: nucl_dist_vec_x      (nucl_num,nucl_num)
double precision, allocatable   :: nucl_dist_vec_y      (nucl_num,nucl_num)
double precision, allocatable   :: nucl_dist_vec_z      (nucl_num,nucl_num)
double precision, allocatable   :: nucl_dist    (nucl_num,nucl_num)

nucl_dist : Nucleus-nucleus distances nucl_dist_2 : Nucleus-nucleus distances squared nucl_dist_vec : Nucleus-nucleus distances vectors

Needs:

  • nucl_coord

  • nucl_num

Needed by:

  • nucl_dist_inv

nucl_dist_inv

File : nuclei/nuclei.irp.f

double precision, allocatable   :: nucl_dist_inv        (nucl_num,nucl_num)

Inverse of the distance between nucleus I and nucleus J

Needs:

  • nucl_dist_2

  • nucl_num

nucl_dist_vec_x

File : nuclei/nuclei.irp.f

double precision, allocatable   :: nucl_dist_2  (nucl_num,nucl_num)
double precision, allocatable   :: nucl_dist_vec_x      (nucl_num,nucl_num)
double precision, allocatable   :: nucl_dist_vec_y      (nucl_num,nucl_num)
double precision, allocatable   :: nucl_dist_vec_z      (nucl_num,nucl_num)
double precision, allocatable   :: nucl_dist    (nucl_num,nucl_num)

nucl_dist : Nucleus-nucleus distances nucl_dist_2 : Nucleus-nucleus distances squared nucl_dist_vec : Nucleus-nucleus distances vectors

Needs:

  • nucl_coord

  • nucl_num

Needed by:

  • nucl_dist_inv

nucl_dist_vec_y

File : nuclei/nuclei.irp.f

double precision, allocatable   :: nucl_dist_2  (nucl_num,nucl_num)
double precision, allocatable   :: nucl_dist_vec_x      (nucl_num,nucl_num)
double precision, allocatable   :: nucl_dist_vec_y      (nucl_num,nucl_num)
double precision, allocatable   :: nucl_dist_vec_z      (nucl_num,nucl_num)
double precision, allocatable   :: nucl_dist    (nucl_num,nucl_num)

nucl_dist : Nucleus-nucleus distances nucl_dist_2 : Nucleus-nucleus distances squared nucl_dist_vec : Nucleus-nucleus distances vectors

Needs:

  • nucl_coord

  • nucl_num

Needed by:

  • nucl_dist_inv

nucl_dist_vec_z

File : nuclei/nuclei.irp.f

double precision, allocatable   :: nucl_dist_2  (nucl_num,nucl_num)
double precision, allocatable   :: nucl_dist_vec_x      (nucl_num,nucl_num)
double precision, allocatable   :: nucl_dist_vec_y      (nucl_num,nucl_num)
double precision, allocatable   :: nucl_dist_vec_z      (nucl_num,nucl_num)
double precision, allocatable   :: nucl_dist    (nucl_num,nucl_num)

nucl_dist : Nucleus-nucleus distances nucl_dist_2 : Nucleus-nucleus distances squared nucl_dist_vec : Nucleus-nucleus distances vectors

Needs:

  • nucl_coord

  • nucl_num

Needed by:

  • nucl_dist_inv

nuclear_repulsion

File : nuclei/nuclei.irp.f

double precision        :: nuclear_repulsion

Nuclear repulsion energy

Needs:

  • io_nuclear_repulsion

  • mpi_master

  • nucl_charge

  • nucl_coord

  • nucl_num

  • output_wall_time_0

  • point_charges

  • pt_chrg_nuclei_interaction

Needed by:

  • ci_energy

  • ci_energy_no_diag

  • core_energy

  • core_energy_erf

  • etwo

  • hf_energy

  • psi_energy_with_nucl_rep

  • pt2_e0_denominator

  • scf_energy

pt_chrg_interaction

File : nuclei/point_charges.irp.f

double precision        :: pt_chrg_interaction

Interaction between the point charges

Needs:

  • n_pts_charge

  • pts_charge_coord

  • pts_charge_z

Needed by:

  • pt_chrg_nuclei_interaction

pt_chrg_nuclei_interaction

File : nuclei/point_charges.irp.f

double precision        :: pt_chrg_nuclei_interaction

repulsion between the point charges and the nuclei

Needs:

  • n_pts_charge

  • nucl_charge

  • nucl_coord

  • nucl_num

  • point_charges

  • pt_chrg_interaction

  • pts_charge_coord

  • pts_charge_z

Needed by:

  • nuclear_repulsion

pts_charge_coord

File : nuclei/point_charges.irp.f

double precision, allocatable   :: pts_charge_coord     (n_pts_charge,3)

Coordinates of each point charge.

Needs:

  • ezfio_filename

  • mpi_master

  • n_pts_charge

Needed by:

  • ao_integrals_pt_chrg

  • pt_chrg_interaction

  • pt_chrg_nuclei_interaction

pts_charge_z

File : nuclei/point_charges.irp.f

double precision, allocatable   :: pts_charge_z (n_pts_charge)

Charge associated to each point charge.

Needs:

  • ezfio_filename

  • mpi_master

  • n_pts_charge

Needed by:

  • ao_integrals_pt_chrg

  • pt_chrg_interaction

  • pt_chrg_nuclei_interaction

slater_bragg_radii

File : nuclei/atomic_radii.irp.f

double precision, allocatable   :: slater_bragg_radii   (0:100)

atomic radii in Angstrom defined in table I of JCP 41, 3199 (1964) Slater execpt for the Hydrogen atom where we took the value of Becke (1988, JCP)

Needed by:

  • slater_bragg_radii_per_atom

  • slater_bragg_radii_ua

slater_bragg_radii_per_atom

File : nuclei/atomic_radii.irp.f

double precision, allocatable   :: slater_bragg_radii_per_atom  (nucl_num)

Needs:

  • nucl_charge

  • nucl_num

  • slater_bragg_radii

Needed by:

  • slater_bragg_type_inter_distance

slater_bragg_radii_per_atom_ua

File : nuclei/atomic_radii.irp.f

double precision, allocatable   :: slater_bragg_radii_per_atom_ua       (nucl_num)

Needs:

  • nucl_charge

  • nucl_num

  • slater_bragg_radii_ua

Needed by:

  • slater_bragg_type_inter_distance_ua

slater_bragg_radii_ua

File : nuclei/atomic_radii.irp.f

double precision, allocatable   :: slater_bragg_radii_ua        (0:100)

Needs:

  • slater_bragg_radii

Needed by:

  • slater_bragg_radii_per_atom_ua

slater_bragg_type_inter_distance

File : nuclei/atomic_radii.irp.f

double precision, allocatable   :: slater_bragg_type_inter_distance     (nucl_num,nucl_num)

Needs:

  • nucl_num

  • slater_bragg_radii_per_atom

slater_bragg_type_inter_distance_ua

File : nuclei/atomic_radii.irp.f

double precision, allocatable   :: slater_bragg_type_inter_distance_ua  (nucl_num,nucl_num)

Needs:

  • nucl_num

  • slater_bragg_radii_per_atom_ua