Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - pk364

Pages: [1]
2
Hello QATK staff,
I am trying to run a dynamical matrix calculation for a simple crystal (La2CuO4 primitive) with 7 atoms. It's LCAO calculation converges and produces the expected band structure with the bands crossing the Fermi level at the correct crystal directions. However, when I use the converged calculation to compute the Dynamical Matrix, the calculation doesn't go forward and gets stuck at step 1/25. The Job Manager also shows strangely that the job is "finished" but the hdf5 file doesn't contain any Dynamical Matrix. It seems like people in this forum have encountered long calculation times for the Dynamical Matrix but in my case, the calculation itself just stops and doesn't move forward. The codes are as follows:

Part1 - LCAO calculation and bandstructure (success)
Code
# -*- coding: utf-8 -*-
# -------------------------------------------------------------
# Bulk Configuration
# -------------------------------------------------------------

# Set up lattice
lattice = BodyCenteredTetragonal(3.813804*Angstrom, 13.224902*Angstrom)

# Define elements
elements = [Lanthanum, Lanthanum, Copper, Oxygen, Oxygen, Oxygen, Oxygen]

# Define coordinates
fractional_coordinates = [[ 0.360893,  0.360893,  0.      ],
                          [ 0.639107,  0.639107,  0.      ],
                          [ 0.      ,  0.      ,  0.      ],
                          [ 0.5     ,  0.      ,  0.5     ],
                          [-0.      ,  0.5     ,  0.5     ],
                          [ 0.186226,  0.186226,  0.      ],
                          [ 0.813774,  0.813774,  0.      ]]

# Set up configuration
bulk_configuration = BulkConfiguration(
    bravais_lattice=lattice,
    elements=elements,
    fractional_coordinates=fractional_coordinates
    )

# -------------------------------------------------------------
# Calculator
# -------------------------------------------------------------
#----------------------------------------
# Basis Set
#----------------------------------------
basis_set = [
    BasisGGAPseudoDojo.Oxygen_High,
    BasisGGAPseudoDojo.Copper_High,
    BasisGGAPseudoDojo.Lanthanum_High,
    ]

k_point_sampling = KpointDensity(
    density_a=7.0*Angstrom,
    )
numerical_accuracy_parameters = NumericalAccuracyParameters(
    density_mesh_cutoff=150.0*Hartree,
    k_point_sampling=k_point_sampling,
    )

iteration_control_parameters = IterationControlParameters(
    tolerance=0.000001,
    )

calculator = LCAOCalculator(
    basis_set=basis_set,
    numerical_accuracy_parameters=numerical_accuracy_parameters,
    iteration_control_parameters=iteration_control_parameters,
    )

bulk_configuration.setCalculator(calculator)
nlprint(bulk_configuration)
bulk_configuration.update()
nlsave('La2CuO4_ReducedTetragonal_I4mm Calc2.hdf5', bulk_configuration)

# -------------------------------------------------------------
# Bandstructure
# -------------------------------------------------------------
bandstructure = Bandstructure(
    configuration=bulk_configuration,
    route=['G', 'X', 'M', 'G', 'N', 'P', 'H', 'G'],
    points_per_segment=20,
    bands_above_fermi_level=All,
    method=Full,
    )
nlsave('La2CuO4_ReducedTetragonal_I4mm Calc2.hdf5', bandstructure)

# -------------------------------------------------------------
# Density Of States
# -------------------------------------------------------------
kpoint_grid = MonkhorstPackGrid(
    na=13,
    nb=13,
    nc=17,
    )

density_of_states = DensityOfStates(
    configuration=bulk_configuration,
    kpoints=kpoint_grid,
    energy_zero_parameter=FermiLevel,
    bands_above_fermi_level=All,
    method=Full,
    )

nlsave('La2CuO4_ReducedTetragonal_I4mm Calc2.hdf5', density_of_states)
nlprint(density_of_states)


Part 2 - Dynamical Matrix calculation using the converged calculation from Part 1 (unsuccessful, doesn't run, code stops):
Code
# -*- coding: utf-8 -*-
# -------------------------------------------------------------
# Analysis from File
# -------------------------------------------------------------
path = 'E:/Praful/La2CuO4/20240627/La2CuO4_ReducedTetragonal_I4mm Calc2.hdf5'
configuration = nlread(path, object_id='BulkConfiguration_1')[0]

# -------------------------------------------------------------
# Dynamical Matrix
# -------------------------------------------------------------
dynamical_matrix = DynamicalMatrix(
    configuration,
    filename='La2CuO4_ReducedTetragonal_I4mm Calc2.hdf5',
    object_id='dynamical_matrix',
    repetitions=Automatic,
    atomic_displacement=0.01*Angstrom,
    acoustic_sum_rule=True,
    finite_difference_method=Central,
    force_tolerance=1e-08*Hartree/Bohr**2,
    processes_per_displacement=None,
    log_filename_prefix='forces_displacement_',
    use_wigner_seitz_scheme=False,
    )
dynamical_matrix.update()

# -------------------------------------------------------------
# Phonon Bandstructure
# -------------------------------------------------------------
phonon_bandstructure = PhononBandstructure(
    configuration=configuration,
    dynamical_matrix=dynamical_matrix,
    route=['G', 'X', 'M', 'G', 'N', 'P', 'H', 'G'],
    points_per_segment=20,
    number_of_bands=All
    )
nlsave('La2CuO4_ReducedTetragonal_I4mm Calc2.hdf5', phonon_bandstructure)

# -------------------------------------------------------------
# Phonon Density Of States
# -------------------------------------------------------------
qpoint_grid = MonkhorstPackGrid(
    na=13,
    nb=13,
    nc=17,
    )

phonon_density_of_states = PhononDensityOfStates(
    configuration=configuration,
    dynamical_matrix=dynamical_matrix,
    qpoints=qpoint_grid,
    number_of_bands=None,
    )
nlsave('La2CuO4_ReducedTetragonal_I4mm Calc2.hdf5', phonon_density_of_states)
nlprint(phonon_density_of_states)

# -------------------------------------------------------------
# Vibrational Mode
# -------------------------------------------------------------
vibrational_mode = VibrationalMode(
    configuration=configuration,
    dynamical_matrix=dynamical_matrix,
    kpoint_fractional=[0, 0, 0],
    mode_indices=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20],
    )
nlsave('La2CuO4_ReducedTetragonal_I4mm Calc2.hdf5', vibrational_mode)

# -------------------------------------------------------------
# Susceptibility Derivatives
# -------------------------------------------------------------
susceptibility_derivatives = SusceptibilityDerivatives(
    configuration,
    filename='La2CuO4_ReducedTetragonal_I4mm Calc2.hdf5',
    object_id='susceptibility_derivatives',
    atomic_displacement=0.01*Angstrom,
    finite_difference_method=Central,
    broadening=0.1*eV,
    bands_below_fermi_level=15,
    bands_above_fermi_level=15,
    processes_per_displacement=1,
    log_filename_prefix='susceptibility_displacement_',
)
susceptibility_derivatives.update()


Here is the log file of part 2:
Code
+------------------------------------------------------------------------------+
|                                                                              |
| QuantumATK R-2020.09[Build 0e538b3896]                                       |
|                                                                              |
+------------------------------------------------------------------------------+
+------------------------------------------------------------------------------+
| Automatically detected repetitions = [7 7 3]                                 |
+------------------------------------------------------------------------------+

                            |--------------------------------------------------|
Calculating Kinetic Matrix : ==================================================

                            |--------------------------------------------------|
Calculating Nonlocal Part  : ==================================================
+------------------------------------------------------------------------------+
| Dynamical Matrix Study                                                       |
+------------------------------------------------------------------------------+
| 25 task(s) will be executed.                                                 |
|                                                                              |
| * Force calculation                                                          |
|   Atom index: 8                                                              |
|   Displacement direction: -z                                                 |
| * Force calculation                                                          |
|   Atom index: 8                                                              |
|   Displacement direction: +z                                                 |
| * Force calculation                                                          |
|   Atom index: 8                                                              |
|   Displacement direction: -y                                                 |
| * Force calculation                                                          |
|   Atom index: 8                                                              |
|   Displacement direction: +y                                                 |
| * Force calculation                                                          |
|   Atom index: 8                                                              |
|   Displacement direction: -x                                                 |
| * Force calculation                                                          |
|   Atom index: 8                                                              |
|   Displacement direction: +x                                                 |
| * Force calculation                                                          |
|   Atom index: 6                                                              |
|   Displacement direction: -z                                                 |
| * Force calculation                                                          |
|   Atom index: 6                                                              |
|   Displacement direction: +z                                                 |
| * Force calculation                                                          |
|   Atom index: 6                                                              |
|   Displacement direction: -y                                                 |
| * Force calculation                                                          |
|   Atom index: 6                                                              |
|   Displacement direction: +y                                                 |
| * Force calculation                                                          |
|   Atom index: 6                                                              |
|   Displacement direction: -x                                                 |
| * Force calculation                                                          |
|   Atom index: 6                                                              |
|   Displacement direction: +x                                                 |
| * Force calculation                                                          |
|   Atom index: 4                                                              |
|   Displacement direction: -z                                                 |
| * Force calculation                                                          |
|   Atom index: 4                                                              |
|   Displacement direction: +z                                                 |
| * Force calculation                                                          |
|   Atom index: 4                                                              |
|   Displacement direction: -y                                                 |
| * Force calculation                                                          |
|   Atom index: 4                                                              |
|   Displacement direction: +y                                                 |
| * Force calculation                                                          |
|   Atom index: 4                                                              |
|   Displacement direction: -x                                                 |
| * Force calculation                                                          |
|   Atom index: 4                                                              |
|   Displacement direction: +x                                                 |
| * Force calculation                                                          |
|   Atom index: 0                                                              |
|   Displacement direction: -z                                                 |
| * Force calculation                                                          |
|   Atom index: 0                                                              |
|   Displacement direction: +z                                                 |
| * Force calculation                                                          |
|   Atom index: 0                                                              |
|   Displacement direction: -y                                                 |
| * Force calculation                                                          |
|   Atom index: 0                                                              |
|   Displacement direction: +y                                                 |
| * Force calculation                                                          |
|   Atom index: 0                                                              |
|   Displacement direction: -x                                                 |
| * Force calculation                                                          |
|   Atom index: 0                                                              |
|   Displacement direction: +x                                                 |
| * Generate dynamical matrix from displaced forces                            |
+------------------------------------------------------------------------------+
+------------------------------------------------------------------------------+
| Executing task 1 / 25:                                                       |
|   Force calculation                                                          |
|   Atom index: 8                                                              |
|   Displacement direction: -z                                                 |
|   Log to: forces_displacement_8_minus_z.log                                  |
+------------------------------------------------------------------------------+
After this the Job Manager says "finished"! But clearly, it is not.


Please have a look if there are any issues with my settings or if anything is problematic. Any help/comment would be much appreciated.

Kind regards,
Praful

3
Hello!

Since a while, I've been trying to simulate the bandgap of the much celebrated VO2 monoclinic phase (single crystal) using the LCAO calculator with SGGA+U (Hubbard), with PBES functionals and PseudoDojo (ultra) pseudopotentials. I hope to open its bandgap to ~0.6 eV (experimental value), which maybe quite challenging. I have chosen an antiferromagnetic initial configuration with the antiparallel spins on the Vanadium atoms.

However, I am unable to converge the calculations and they seem to be oscillating. The density matrix report is as follows:
Code
0 E = -265.535 dE =  1.841101e+02 dH =  1.067618e+00
1 E = -278.785 dE =  1.325025e+01 dH =  5.624259e-01
2 E = -193.078 dE =  8.570705e+01 dH =  1.724710e+02
3 E = -122.926 dE =  7.015169e+01 dH =  3.727634e+01
4 E = -268.054 dE =  1.451278e+02 dH =  3.569472e+01
5 E = -274.404 dE =  6.349619e+00 dH =  6.521554e+01
6 E = -320.104 dE =  4.569986e+01 dH =  3.719561e+01
7 E = -391.865 dE =  7.176161e+01 dH =  3.002920e+01
8 E = -394.076 dE =  2.210358e+00 dH =  3.168863e+01
9 E = -394.507 dE =  4.318557e-01 dH =  2.987522e+01
10 E = -387.011 dE =  7.496348e+00 dH =  2.968226e+01
11 E = -389.401 dE =  2.390098e+00 dH =  3.002361e+01
This goes on forever... until it is artificially stopped by the maximum no. of iterations!

As of now, I have tried to increase the density mesh cut-off and decrease history steps, but they yield no difference. Any suggestions to make this converge would be highly appreciated.

The full script is attached for reference:
Code
# -*- coding: utf-8 -*-
# -------------------------------------------------------------
# Bulk Configuration
# -------------------------------------------------------------

# Set up lattice
lattice = SimpleMonoclinic(5.1836*Angstrom, 5.0504022144*Angstrom, 9.0187*Angstrom, 90.58*Degrees)

# Define elements
elements = [Vanadium, Vanadium, Vanadium, Vanadium, Vanadium, Vanadium,
            Vanadium, Vanadium, Oxygen, Oxygen, Oxygen, Oxygen, Oxygen, Oxygen,
            Oxygen, Oxygen, Oxygen, Oxygen, Oxygen, Oxygen, Oxygen, Oxygen,
            Oxygen, Oxygen]

# Define coordinates
fractional_coordinates = [[ 0.110304,  0.631185,  0.869553],
                          [ 0.110304,  0.868815,  0.369553],
                          [ 0.889696,  0.131185,  0.630447],
                          [ 0.889696,  0.368815,  0.130447],
                          [ 0.402394,  0.142849,  0.873272],
                          [ 0.402394,  0.357151,  0.373272],
                          [ 0.597606,  0.642849,  0.626728],
                          [ 0.597606,  0.857151,  0.126728],
                          [ 0.150305,  0.171076,  0.484713],
                          [ 0.150305,  0.328924,  0.984713],
                          [ 0.849695,  0.671076,  0.015287],
                          [ 0.849695,  0.828924,  0.515287],
                          [ 0.35536 ,  0.686591,  0.495905],
                          [ 0.35536 ,  0.813409,  0.995905],
                          [ 0.64464 ,  0.186591,  0.004095],
                          [ 0.64464 ,  0.313409,  0.504095],
                          [ 0.112774,  0.545407,  0.27475 ],
                          [ 0.112774,  0.954593,  0.77475 ],
                          [ 0.887226,  0.045407,  0.22525 ],
                          [ 0.887226,  0.454593,  0.72525 ],
                          [ 0.388671,  0.038549,  0.269627],
                          [ 0.388671,  0.461451,  0.769627],
                          [ 0.611329,  0.538549,  0.230373],
                          [ 0.611329,  0.961451,  0.730373]]

# Set up configuration
bulk_configuration = BulkConfiguration(
    bravais_lattice=lattice,
    elements=elements,
    fractional_coordinates=fractional_coordinates
    )

# -------------------------------------------------------------
# Calculator
# -------------------------------------------------------------
#----------------------------------------
# Basis Set
#----------------------------------------
oxygen_1s = HydrogenOrbital(
    principal_quantum_number=1,
    angular_momentum=0,
    radial_cutoff_radius=3.89375*Angstrom,
    confinement_start_radius=3.115*Angstrom,
    charge=0.75,
    confinement_strength=12.5*Hartree,
    confinement_power=2,
    radial_step_size=0.001*Bohr,
    )

oxygen_2p = ConfinedOrbital(
    principal_quantum_number=2,
    angular_momentum=1,
    radial_cutoff_radius=4.1953125*Angstrom,
    confinement_start_radius=3.35625*Angstrom,
    additional_charge=0,
    confinement_strength=12.5*Hartree,
    confinement_power=2,
    radial_step_size=0.001*Bohr,
    )

oxygen_2p_0 = HydrogenOrbital(
    principal_quantum_number=2,
    angular_momentum=1,
    radial_cutoff_radius=4.1205078125*Angstrom,
    confinement_start_radius=3.29640625*Angstrom,
    charge=1.8,
    confinement_strength=12.5*Hartree,
    confinement_power=2,
    radial_step_size=0.001*Bohr,
    )

oxygen_2s = ConfinedOrbital(
    principal_quantum_number=2,
    angular_momentum=0,
    radial_cutoff_radius=3.1171875*Angstrom,
    confinement_start_radius=2.49375*Angstrom,
    additional_charge=0,
    confinement_strength=12.5*Hartree,
    confinement_power=2,
    radial_step_size=0.001*Bohr,
    )

oxygen_3d = HydrogenOrbital(
    principal_quantum_number=3,
    angular_momentum=2,
    radial_cutoff_radius=2.8125*Angstrom,
    confinement_start_radius=2.25*Angstrom,
    charge=7.6,
    confinement_strength=12.5*Hartree,
    confinement_power=2,
    radial_step_size=0.001*Bohr,
    )

oxygen_3d_0 = HydrogenOrbital(
    principal_quantum_number=3,
    angular_momentum=2,
    radial_cutoff_radius=3.287109375*Angstrom,
    confinement_start_radius=2.6296875*Angstrom,
    charge=5.6,
    confinement_strength=12.5*Hartree,
    confinement_power=2,
    radial_step_size=0.001*Bohr,
    )

oxygen_3p = HydrogenOrbital(
    principal_quantum_number=3,
    angular_momentum=1,
    radial_cutoff_radius=3.071875*Angstrom,
    confinement_start_radius=2.4575*Angstrom,
    charge=6.2,
    confinement_strength=12.5*Hartree,
    confinement_power=2,
    radial_step_size=0.001*Bohr,
    )

oxygen_3s = HydrogenOrbital(
    principal_quantum_number=3,
    angular_momentum=0,
    radial_cutoff_radius=3.55625*Angstrom,
    confinement_start_radius=2.845*Angstrom,
    charge=6.4,
    confinement_strength=12.5*Hartree,
    confinement_power=2,
    radial_step_size=0.001*Bohr,
    )

oxygen_4f = HydrogenOrbital(
    principal_quantum_number=4,
    angular_momentum=3,
    radial_cutoff_radius=2.78125*Angstrom,
    confinement_start_radius=2.225*Angstrom,
    charge=11.6,
    confinement_strength=12.5*Hartree,
    confinement_power=2,
    radial_step_size=0.001*Bohr,
    )

oxygen_5g = HydrogenOrbital(
    principal_quantum_number=5,
    angular_momentum=4,
    radial_cutoff_radius=2.57421875*Angstrom,
    confinement_start_radius=2.059375*Angstrom,
    charge=17.6,
    confinement_strength=12.5*Hartree,
    confinement_power=2,
    radial_step_size=0.001*Bohr,
    )

OxygenBasis = BasisSet(
    element=PeriodicTable.Oxygen,
    orbitals=[oxygen_2s, oxygen_2p, oxygen_2p_0, oxygen_3d, oxygen_3s, oxygen_4f, oxygen_3p, oxygen_3d_0, oxygen_5g, oxygen_1s],
    occupations=[3.5, 3.5, 2.0, -0.5, -0.5, -2.0, 0.0, 0.0, 0.0, 0.0],
    hubbard_u=[0.0, 0.95, 0.95, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]*eV,
    dft_half_parameters=Automatic,
    filling_method=SphericalSymmetric,
    onsite_spin_orbit_split=[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]*eV,
    pseudopotential=NormConservingPseudoPotential("normconserving/pseudodojo/gga/stringent/08_O.upf", local_potential_cutoff_threshold=1e-06*Hartree, local_potential_cutoff_radius=6.0*Bohr),
    )

vanadium_1s = HydrogenOrbital(
    principal_quantum_number=1,
    angular_momentum=0,
    radial_cutoff_radius=3.653125*Angstrom,
    confinement_start_radius=2.9225*Angstrom,
    charge=0.6,
    confinement_strength=12.5*Hartree,
    confinement_power=2,
    radial_step_size=0.001*Bohr,
    )

vanadium_3d = ConfinedOrbital(
    principal_quantum_number=3,
    angular_momentum=2,
    radial_cutoff_radius=3.46875*Angstrom,
    confinement_start_radius=2.775*Angstrom,
    additional_charge=0,
    confinement_strength=12.5*Hartree,
    confinement_power=2,
    radial_step_size=0.001*Bohr,
    )

vanadium_3d_0 = HydrogenOrbital(
    principal_quantum_number=3,
    angular_momentum=2,
    radial_cutoff_radius=4.348828125*Angstrom,
    confinement_start_radius=3.4790625*Angstrom,
    charge=3,
    confinement_strength=12.5*Hartree,
    confinement_power=2,
    radial_step_size=0.001*Bohr,
    )

vanadium_3d_1 = HydrogenOrbital(
    principal_quantum_number=3,
    angular_momentum=2,
    radial_cutoff_radius=2.94140625*Angstrom,
    confinement_start_radius=2.353125*Angstrom,
    charge=5.4,
    confinement_strength=12.5*Hartree,
    confinement_power=2,
    radial_step_size=0.001*Bohr,
    )

vanadium_3p = ConfinedOrbital(
    principal_quantum_number=3,
    angular_momentum=1,
    radial_cutoff_radius=2.8359375*Angstrom,
    confinement_start_radius=2.26875*Angstrom,
    additional_charge=0,
    confinement_strength=12.5*Hartree,
    confinement_power=2,
    radial_step_size=0.001*Bohr,
    )

vanadium_3s = ConfinedOrbital(
    principal_quantum_number=3,
    angular_momentum=0,
    radial_cutoff_radius=2.6171875*Angstrom,
    confinement_start_radius=2.09375*Angstrom,
    additional_charge=0,
    confinement_strength=12.5*Hartree,
    confinement_power=2,
    radial_step_size=0.001*Bohr,
    )

vanadium_4d = HydrogenOrbital(
    principal_quantum_number=4,
    angular_momentum=2,
    radial_cutoff_radius=4.412109375*Angstrom,
    confinement_start_radius=3.5296875*Angstrom,
    charge=7,
    confinement_strength=12.5*Hartree,
    confinement_power=2,
    radial_step_size=0.001*Bohr,
    )

vanadium_4f = HydrogenOrbital(
    principal_quantum_number=4,
    angular_momentum=3,
    radial_cutoff_radius=3.8875*Angstrom,
    confinement_start_radius=3.11*Angstrom,
    charge=9,
    confinement_strength=12.5*Hartree,
    confinement_power=2,
    radial_step_size=0.001*Bohr,
    )

vanadium_4f_0 = HydrogenOrbital(
    principal_quantum_number=4,
    angular_momentum=3,
    radial_cutoff_radius=2.3515625*Angstrom,
    confinement_start_radius=1.88125*Angstrom,
    charge=11.2,
    confinement_strength=12.5*Hartree,
    confinement_power=2,
    radial_step_size=0.001*Bohr,
    )

vanadium_4p = ConfinedOrbital(
    principal_quantum_number=4,
    angular_momentum=1,
    radial_cutoff_radius=2.545703125*Angstrom,
    confinement_start_radius=2.0365625*Angstrom,
    additional_charge=2,
    confinement_strength=12.5*Hartree,
    confinement_power=2,
    radial_step_size=0.001*Bohr,
    )

vanadium_4p_0 = HydrogenOrbital(
    principal_quantum_number=4,
    angular_momentum=1,
    radial_cutoff_radius=4.79296875*Angstrom,
    confinement_start_radius=3.834375*Angstrom,
    charge=5.6,
    confinement_strength=12.5*Hartree,
    confinement_power=2,
    radial_step_size=0.001*Bohr,
    )

vanadium_4s = ConfinedOrbital(
    principal_quantum_number=4,
    angular_momentum=0,
    radial_cutoff_radius=3.615625*Angstrom,
    confinement_start_radius=2.8925*Angstrom,
    additional_charge=0,
    confinement_strength=12.5*Hartree,
    confinement_power=2,
    radial_step_size=0.001*Bohr,
    )

vanadium_4s_0 = ConfinedOrbital(
    principal_quantum_number=4,
    angular_momentum=0,
    radial_cutoff_radius=2.305078125*Angstrom,
    confinement_start_radius=1.8440625*Angstrom,
    additional_charge=2,
    confinement_strength=12.5*Hartree,
    confinement_power=2,
    radial_step_size=0.001*Bohr,
    )

vanadium_5f = HydrogenOrbital(
    principal_quantum_number=5,
    angular_momentum=3,
    radial_cutoff_radius=3.48046875*Angstrom,
    confinement_start_radius=2.784375*Angstrom,
    charge=11.2,
    confinement_strength=12.5*Hartree,
    confinement_power=2,
    radial_step_size=0.001*Bohr,
    )

vanadium_5g = HydrogenOrbital(
    principal_quantum_number=5,
    angular_momentum=4,
    radial_cutoff_radius=2.73828125*Angstrom,
    confinement_start_radius=2.190625*Angstrom,
    charge=12.8,
    confinement_strength=12.5*Hartree,
    confinement_power=2,
    radial_step_size=0.001*Bohr,
    )

vanadium_5g_0 = HydrogenOrbital(
    principal_quantum_number=5,
    angular_momentum=4,
    radial_cutoff_radius=2.70703125*Angstrom,
    confinement_start_radius=2.165625*Angstrom,
    charge=14,
    confinement_strength=12.5*Hartree,
    confinement_power=2,
    radial_step_size=0.001*Bohr,
    )

VanadiumBasis = BasisSet(
    element=PeriodicTable.Vanadium,
    orbitals=[vanadium_3s, vanadium_3p, vanadium_4s, vanadium_3d, vanadium_4f, vanadium_3d_0, vanadium_4p, vanadium_5g, vanadium_4s_0, vanadium_3d_1, vanadium_5f, vanadium_4d, vanadium_4f_0, vanadium_4p_0, vanadium_5g_0, vanadium_1s],
    occupations=[2.0, 5.5, 5.0, 4.0, -3.5, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
    hubbard_u=[0.0, 0.0, 0.0, 5.2, 0.0, 5.2, 0.0, 0.0, 0.0, 5.2, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]*eV,
    dft_half_parameters=Automatic,
    filling_method=SphericalSymmetric,
    onsite_spin_orbit_split=[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]*eV,
    pseudopotential=NormConservingPseudoPotential("normconserving/pseudodojo/gga/standard/23_V.upf", local_potential_cutoff_threshold=1e-06*Hartree, local_potential_cutoff_radius=6.0*Bohr),
    )

basis_set = [
    OxygenBasis,
    VanadiumBasis,
    ]

#----------------------------------------
# Exchange-Correlation
#----------------------------------------
exchange_correlation = SGGAU.PBES

k_point_sampling = KpointDensity(
    density_a=4.0*Angstrom,
    )
numerical_accuracy_parameters = NumericalAccuracyParameters(
    density_mesh_cutoff=200.0*Hartree,
    k_point_sampling=k_point_sampling,
    )

iteration_control_parameters = IterationControlParameters(
    number_of_history_steps=15,
    )

calculator = LCAOCalculator(
    basis_set=basis_set,
    exchange_correlation=exchange_correlation,
    numerical_accuracy_parameters=numerical_accuracy_parameters,
    iteration_control_parameters=iteration_control_parameters,
    )

bulk_configuration.setCalculator(calculator)

# -------------------------------------------------------------
# Initial State
# -------------------------------------------------------------
scaled_spins = [
    1.0,
    1.0,
    1.0,
    1.0,
    -1.0,
    -1.0,
    -1.0,
    -1.0,
    0.0,
    0.0,
    0.0,
    0.0,
    0.0,
    0.0,
    0.0,
    0.0,
    0.0,
    0.0,
    0.0,
    0.0,
    0.0,
    0.0,
    0.0,
    0.0,
]
initial_spin = InitialSpin(scaled_spins=scaled_spins)

bulk_configuration.setCalculator(
    calculator,
    initial_spin=initial_spin,
)
bulk_configuration.update()
nlsave('E:/Praful/20240503/VO2 Monoclinic script LCAO test.hdf5', bulk_configuration)
nlprint(bulk_configuration)

# -------------------------------------------------------------
# Bandstructure
# -------------------------------------------------------------
bandstructure = Bandstructure(
    configuration=bulk_configuration,
    route=['G', 'Y', 'C', 'Z', 'E', 'A', 'G', 'B', 'D', 'Z', 'G'],
    points_per_segment=20,
    bands_above_fermi_level=30,
    method=Full,
    )
nlsave('E:/Praful/20240503/VO2 Monoclinic script LCAO test.hdf5', bandstructure)


Kind regards,
Praful


Pages: [1]