1 # ------------------------------------------------------------- 2 # Bulk Configuration 3 # ------------------------------------------------------------- 4 5 bulk_configuration = nlread('Pd100_CO.nc', BulkConfiguration)[-1] 6 7 # Add tags 8 bulk_configuration.addTags('CO', [4, 5]) 9 bulk_configuration.addTags('Pd', [0, 1, 2, 3]) 10 bulk_configuration.addTags('Selection 0', [0, 1]) 11 12 # ------------------------------------------------------------- 13 # Calculator 14 # ------------------------------------------------------------- 15 16 # Get the calculator settings from non-BSSE calculation. 17 calculator = bulk_configuration.calculator() 18 basis_set = calculator.basisSet() 19 exchange_correlation = calculator.exchangeCorrelation() 20 numerical_accuracy_parameters = calculator.numericalAccuracyParameters() 21 poisson_solver = calculator.poissonSolver() 22 23 # Create BSSE calculator. 24 bsse_calculator = counterpoiseCorrected(LCAOCalculator, ["CO", "Pd"]) 25 calculator = bsse_calculator( 26 basis_set=basis_set, 27 exchange_correlation=exchange_correlation, 28 numerical_accuracy_parameters=numerical_accuracy_parameters, 29 poisson_solver=poisson_solver, 30 ) 31 32 bulk_configuration.setCalculator(calculator) 33 nlprint(bulk_configuration) 34 bulk_configuration.update() 35 nlsave('Pd100_CO_cp.nc', bulk_configuration) 36 37 # ------------------------------------------------------------- 38 # Optimize Geometry 39 # ------------------------------------------------------------- 40 constraints = [0, 1] 41 42 bulk_configuration = OptimizeGeometry( 43 bulk_configuration, 44 max_forces=0.05*eV/Ang, 45 max_steps=200, 46 max_step_length=0.2*Ang, 47 constraints=constraints, 48 trajectory_filename='Pd100_CO_cp.nc', 49 disable_stress=True, 50 optimizer_method=LBFGS(), 51 ) 52 nlsave('Pd100_CO_cp.nc', bulk_configuration) 53 nlprint(bulk_configuration) 54 55 # ------------------------------------------------------------- 56 # Total Energy 57 # ------------------------------------------------------------- 58 total_energy = TotalEnergy(bulk_configuration) 59 nlsave('Pd100_CO_cp.nc', total_energy) 60 nlprint(total_energy) ''