1
General Questions and Answers / Re: set different Hubbard U for same element in a model
« on: September 19, 2015, 15:18 »
Great thanks for your hard work! Looking forward to your good news.
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.
# -------------------------------------------------------------
# Bulk configuration
# -------------------------------------------------------------
# Set up lattice
lattice = Rhombohedral(5.06138065551*Angstrom, 33.5573097619*Degrees)
# Define elements
elements = [Cobalt, Cobalt, Oxygen, Oxygen]
# Define coordinates
fractional_coordinates = [[ 0.002, 0.002, -0.006],
[ 0.502, 0.502, 0.494],
[ 0.25 , 0.25 , 0.25 ],
[ 0.75 , 0.75 , 0.75 ]]
# Set up configuration
bulk_configuration = BulkConfiguration(
bravais_lattice=lattice,
elements=elements,
fractional_coordinates=fractional_coordinates
)
# Add tags
bulk_configuration.addTags('cobalt1', [1])
# -------------------------------------------------------------
# Calculator
# -------------------------------------------------------------
#----------------------------------------
# Basis Set
#----------------------------------------
cobalt_3d = ConfinedOrbital(
principal_quantum_number=3,
angular_momentum=2,
radial_cutoff_radius=4.07498342334*Bohr,
confinement_start_radius=3.25998673867*Bohr,
additional_charge=0,
confinement_strength=24.5399771266*Hartree,
confinement_power=1,
radial_step_size=0.001*Bohr,
)
cobalt_3d_split = AnalyticalSplit(cobalt_3d, split_norm=0.15)
cobalt_4s = ConfinedOrbital(
principal_quantum_number=4,
angular_momentum=0,
radial_cutoff_radius=6.93481368132*Bohr,
confinement_start_radius=5.54785094506*Bohr,
additional_charge=0,
confinement_strength=14.4199980844*Hartree,
confinement_power=1,
radial_step_size=0.001*Bohr,
)
cobalt_4s_polarization = PolarizationOrbital(cobalt_4s)
cobalt_4s_split = AnalyticalSplit(cobalt_4s, split_norm=0.15)
CobaltBasis = BasisSet(
element=PeriodicTable.Cobalt,
orbitals=[ cobalt_3d , cobalt_4s , cobalt_3d_split , cobalt_4s_split , cobalt_4s_polarization ],
occupations=[ 7.0 , 2.0 , 0.0 , 0.0 , 0.0],
hubbard_u=[ 4.1 , 0.0 , 4.1 , 0.0 , 0.0]*eV,
filling_method=SphericalSymmetric,
pseudopotential=NormConservingPseudoPotential("normconserving/CO.GGAPBE.zip"),
)
cobalt_tag1_3d = ConfinedOrbital(
principal_quantum_number=3,
angular_momentum=2,
radial_cutoff_radius=4.07498342334*Bohr,
confinement_start_radius=3.25998673867*Bohr,
additional_charge=0,
confinement_strength=24.5399771266*Hartree,
confinement_power=1,
radial_step_size=0.001*Bohr,
)
cobalt_tag1_3d_split = AnalyticalSplit(cobalt_tag1_3d, split_norm=0.15)
cobalt_tag1_4s = ConfinedOrbital(
principal_quantum_number=4,
angular_momentum=0,
radial_cutoff_radius=6.93481368132*Bohr,
confinement_start_radius=5.54785094506*Bohr,
additional_charge=0,
confinement_strength=14.4199980844*Hartree,
confinement_power=1,
radial_step_size=0.001*Bohr,
)
cobalt_tag1_4s_polarization = PolarizationOrbital(cobalt_tag1_4s)
cobalt_tag1_4s_split = AnalyticalSplit(cobalt_tag1_4s, split_norm=0.15)
Tag1_CobaltBasis = BasisSet(
element=PeriodicTable.Cobalt,
orbitals=[ cobalt_tag1_3d , cobalt_tag1_4s , cobalt_tag1_3d_split , cobalt_tag1_4s_split , cobalt_tag1_4s_polarization ],
occupations=[ 7.0 , 2.0 , 0.0 , 0.0 , 0.0],
hubbard_u=[ 3.1 , 0.0 , 3.1 , 0.0 , 0.0]*eV,
filling_method=SphericalSymmetric,
pseudopotential=NormConservingPseudoPotential("normconserving/CO.GGAPBE.zip"),
)
basis_set = [
GGABasis.Oxygen_DoubleZetaPolarized,
CobaltBasis,
('cobalt1', Tag1_CobaltBasis ),
]
#----------------------------------------
# Exchange-Correlation
#----------------------------------------
exchange_correlation = SGGAU.PBE
numerical_accuracy_parameters = NumericalAccuracyParameters(
k_point_sampling=(3, 3, 3),
density_mesh_cutoff=80.0*Hartree,
)
iteration_control_parameters = IterationControlParameters(
damping_factor=0.3,
max_steps=200,
tolerance=0.0002,
number_of_history_steps=22,
)
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)
nlprint(bulk_configuration)
bulk_configuration.update()
nlsave('differentu.nc', bulk_configuration)
# -------------------------------------------------------------
# Mulliken population
# -------------------------------------------------------------
mulliken_population = MullikenPopulation(bulk_configuration)
nlsave('differentu.nc', mulliken_population)
nlprint(mulliken_population)
# -------------------------------------------------------------
# Density of states
# -------------------------------------------------------------
density_of_states = DensityOfStates(
configuration=bulk_configuration,
kpoints=MonkhorstPackGrid(5,5,5),
energy_zero_parameter=FermiLevel,
bands_above_fermi_level=None,
)
nlsave('differentu.nc', density_of_states)
nlprint(density_of_states)
+----------------------------------------------------------+
| Bulk Bravais lattice |
+----------------------------------------------------------+
Type:
Rhombohedral
Lattice constants:
a = 5.061381 Ang
b = 5.061381 Ang
c = 5.061381 Ang
Lattice angles:
alpha = 33.557310 deg
beta = 33.557310 deg
gamma = 33.557310 deg
Primitive vectors:
u_1 = 4.132600 2.066300 2.066300 Ang
u_2 = 2.066300 4.132600 2.066300 Ang
u_3 = 2.066300 2.066300 4.132600 Ang
+----------------------------------------------------------+
| Bulk: Cartesian (Angstrom) / fractional |
+----------------------------------------------------------+
4
Bulk
Co -3.712308e-15 -3.712308e-15 -1.653040e-02 0.00200 0.00200 -0.00600
Co 4.132600e+00 4.132600e+00 4.116070e+00 0.50200 0.50200 0.49400
O 2.066300e+00 2.066300e+00 2.066300e+00 0.25000 0.25000 0.25000
O 6.198900e+00 6.198900e+00 6.198900e+00 0.75000 0.75000 0.75000
+------------------------------------------------------------------------------+
| |
| DFT Calculation [Started Thu Sep 17 20:44:47 2015] |
| |
+------------------------------------------------------------------------------+
|--------------------------------------------------|
Calculating Nonlocal Part : ==================================================
|--------------------------------------------------|
Calculating Kinetic Matrix : ==================================================
Traceback (most recent call last):
File ".\zipdir\NL\Calculators\BulkCalculatorInterface.py", line 233, in _update
File ".\zipdir\NL\Calculators\LCAOCalculator\LCAOCalculator.py", line 1121, in scfLoop
File ".\zipdir\NL\Calculators\LCAOCalculator\LCAOCalculator.py", line 654, in scfLoopHamiltonian
File ".\zipdir\NL\Calculators\LCAOCalculator\Builders\AbstractLCAOBuilder.py", line 280, in createHubbardTermCalculator
AttributeError: 'tuple' object has no attribute 'element'
To calculate the complex band structure of whole Fe/MgO(001)/Fe MTJ, you may convert the atomic structure into a bulk configuration.
For the MgO(001) case, you need to cleave the surface and make it without vacuum layer.
What you have in those two figures are k-space resolved transmission spectra. Would you say that conductance is related to the integral transmission in all of k-space, or do you expect conductance only in specific (k_A, k_B) points in k-space? If the former, it's hard to say from a quick look at the pictures which displays the highest conductance.
| 14 E = -52.5709 dE = 9.491318e-06 dH = 3.159575e-06 |
+------------------------------------------------------------------------------+
| Calculation Converged in 14 steps |
| |
| Fermi Level = -3.417684 eV |
+------------------------------------------------------------------------------+
+------------------------------------------------------------------------------+
| |
| DFT Calculation [Finished Wed Aug 26 17:31:31 2015] |
| |
+------------------------------------------------------------------------------+
+------------------------------------------------------------------------------+
| Phonon: Automatically detected repetitions = [5 3 5] |
+------------------------------------------------------------------------------+
|--------------------------------------------------|
Calculating Kinetic Matrix : ===================rank 1 in job 1 a130_36884 caused collective abort of all ranks
exit status of rank 1: killed by signal 9
+ /opt/intel/impi/4.0.1.007/intel64/bin/mpirun --rsh=ssh -env I_MPI_DEVICE rdma:OpenIB-cma -np 2 atkpython ./phonon.py
terminate called after throwing an instance of 'std::bad_alloc'
what(): St9bad_alloc