# ------------------------------------------------------------- # Bulk Configuration # ------------------------------------------------------------- # Set up lattice lattice = FaceCenteredCubic(5.6574*Angstrom) # Define elements elements = [Germanium, Germanium] # Define coordinates fractional_coordinates = [[ 0. , 0. , 0. ], [ 0.25, 0.25, 0.25]] # Set up configuration bulk_configuration = BulkConfiguration( bravais_lattice=lattice, elements=elements, fractional_coordinates=fractional_coordinates ) # ------------------------------------------------------------- # Calculator # ------------------------------------------------------------- #---------------------------------------- # Basis Set #---------------------------------------- basis_set = FHIaimsBasisSet() species_bases = [ FHIaimsBasisSetSpecies(Germanium, Light, 1), ] basis_set.setAndCheckSpeciesBasis(species_bases) #---------------------------------------- # Exchange-Correlation #---------------------------------------- exchange_correlation = FHIaims_Hybrid_HSE06 exchange_correlation._setShortName("FHIaims_Hybrid_HSE06") numerical_accuracy_parameters = NumericalAccuracyParameters( k_point_sampling=(9, 9, 9), ) iteration_control_parameters = IterationControlParameters( damping_factor=0.6, ) #---------------------------------------- # FHI-aims Parameters #---------------------------------------- fhiaims_parameters = FHIaimsParameters() fhiaims_parameters.addControlKeywordValuePair("sc_accuracy_eev","0.001") fhiaims_parameters.addControlKeywordValuePair("charge","0") fhiaims_parameters.addControlKeywordValuePair("sc_accuracy_etot","1e-06") fhiaims_parameters.addControlKeywordValuePair("sc_accuracy_rho","1e-05") fhiaims_parameters.addControlKeywordValuePair("occupation_type","gaussian 0.000001") #---------------------------------------- # Working Directory #---------------------------------------- working_directory = '.' #---------------------------------------- # FHI-aims calculator #---------------------------------------- calculator = FHIaimsCalculator( basis_set=basis_set, exchange_correlation=exchange_correlation, numerical_accuracy_parameters=numerical_accuracy_parameters, iteration_control_parameters=iteration_control_parameters, fhiaims_parameters=fhiaims_parameters, working_directory=working_directory, ) bulk_configuration.setCalculator(calculator) nlprint(bulk_configuration) bulk_configuration.update() nlsave('germanium.nc', bulk_configuration) # ------------------------------------------------------------- # Bandstructure # ------------------------------------------------------------- bandstructure = Bandstructure( configuration=bulk_configuration, route=['X', 'G', 'L'], points_per_segment=51, bands_above_fermi_level=All ) nlsave('germanium.nc', bandstructure)