forked from deepmodeling/DeePTB
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathinstall_julia_packages.jl
More file actions
65 lines (55 loc) · 1.95 KB
/
Copy pathinstall_julia_packages.jl
File metadata and controls
65 lines (55 loc) · 1.95 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# Julia Package Dependencies for DeePTB Pardiso Backend
# This file lists all Julia packages required for the Pardiso backend.
# You can install them by running:
# julia install_julia_packages.jl
using Pkg
println("Installing DeePTB Pardiso backend dependencies...")
println("=" ^ 60)
# Core packages
packages = [
"JSON", # JSON parsing for structure.json
"HDF5", # HDF5 file I/O for Hamiltonian/Overlap matrices
"ArgParse", # Command-line argument parsing
"Pardiso", # Intel MKL Pardiso solver
"Arpack", # Eigenvalue solver (ARPACK)
"LinearMaps", # Linear map abstractions
"JLD", # Julia data serialization (for caching)
"SparseArrays", # Sparse matrix support
"LinearAlgebra", # Linear algebra operations
"Printf", # Formatted printing
"Dates", # Date/time utilities
"DelimitedFiles" # Text file I/O (for legacy .dat files)
]
# Install packages
failed_packages = String[]
for pkg in packages
println("\nInstalling $pkg...")
try
Pkg.add(pkg)
println("✓ $pkg installed successfully")
catch e
println("✗ Failed to install $pkg")
println(" Error: $e")
push!(failed_packages, pkg)
end
end
if !isempty(failed_packages)
error("Failed to install packages: $(join(failed_packages, ", "))")
end
println("\n" * "=" ^ 60)
println("Precompiling packages...")
Pkg.precompile()
println("\n" * "=" ^ 60)
println("Installation complete!")
println("\nVerifying Pardiso installation...")
try
using Pardiso
println("✓ Pardiso.jl loaded successfully")
println(" MKL Pardiso available: ", Pardiso.MKL_PARDISO_LOADED[])
catch e
println("✗ Pardiso verification failed")
println(" Error: $e")
println("\nNote: Pardiso requires Intel MKL to be installed.")
println("See: https://github.com/JuliaSparse/Pardiso.jl")
end
println("\nSetup complete! You can now use the Pardiso backend.")