Skip to content

Commit 9db874a

Browse files
committed
need to wrap everything
1 parent 0fc8405 commit 9db874a

File tree

7 files changed

+33
-28
lines changed

7 files changed

+33
-28
lines changed

src/DFTK.jl

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -231,13 +231,6 @@ include("workarounds/dummy_inplace_fft.jl")
231231
include("workarounds/forwarddiff_rules.jl")
232232
include("workarounds/gpu_arrays.jl")
233233

234-
function __init__()
235-
# We need to wait to have access to stdout.
236-
# But now local to the REPL…
237-
default_logger = DFTKLogger(; io=Base.stdout)
238-
global_logger(default_logger)
239-
end
240-
241234
# Precompilation block with a basic workflow
242235
@setup_workload begin
243236
# very artificial silicon ground state example

src/common/logging.jl

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,20 @@
11
using Logging
2-
3-
# Removing most of format for `@info` in default logger.
4-
function meta_formatter(level::LogLevel, args...)
5-
color = Logging.default_logcolor(level)
6-
Info == level && return color, "", ""
7-
Logging.default_metafmt(level, args...)
8-
end
2+
#using Preferences
93

104
# Bypasses everything to ConsoleLogger but Info which just shows message without any
115
# formatting.
126
Base.@kwdef struct DFTKLogger <: AbstractLogger
137
io::IO
148
min_level::LogLevel = Info
15-
fallback = ConsoleLogger(io, min_level; meta_formatter)
9+
fallback = ConsoleLogger(io, min_level)
1610
end
1711
function Logging.handle_message(logger::DFTKLogger, level, msg, args...; kwargs...)
1812
level == Info && return level < logger.min_level ? nothing : println(logger.io, msg)
1913
Logging.handle_message(logger.fallback, level, msg, args...; kwargs...)
2014
end
2115
Logging.min_enabled_level(logger::DFTKLogger) = logger.min_level
2216
Logging.shouldlog(::DFTKLogger, args...) = true
17+
18+
# Minimum log level is read from LocalPreferences.toml; defaults to Info.
19+
#min_level = @load_preference("min_log_level"; default="0")
20+
default_logger() = DFTKLogger(; io=stdout)

src/eigen/diag_lobpcg_hyper.jl

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@ function lobpcg_hyper(A, X0; maxiter=100, prec=nothing,
66
prec === nothing && (prec = I)
77

88
@assert !largest "Only seeking the smallest eigenpairs is implemented."
9-
result = LOBPCG(A, X0, I, prec, tol, maxiter; n_conv_check, kwargs...)
9+
result = with_logger(default_logger()) do
10+
LOBPCG(A, X0, I, prec, tol, maxiter; n_conv_check, kwargs...)
11+
end
1012

1113
n_conv_check === nothing && (n_conv_check = size(X0, 2))
1214
converged = maximum(result.residual_norms[1:n_conv_check]) < tol

src/scf/self_consistent_field.jl

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,9 @@ Overview of parameters:
199199

200200
converged = is_converged(info)
201201
converged = MPI.bcast(converged, 0, MPI.COMM_WORLD) # Ensure same converged
202-
callback(merge(info, (; converged)))
202+
with_logger(default_logger()) do
203+
callback(merge(info, (; converged)))
204+
end
203205

204206
ρin + T(damping) .* mix_density(mixing, basis, Δρ; info...)
205207
end
@@ -218,6 +220,8 @@ Overview of parameters:
218220
ρ=ρout, α=damping, eigenvalues, occupation, εF, info.n_bands_converge,
219221
n_iter, ψ, info.diagonalization, stage=:finalize, history_Δρ, history_Etot,
220222
runtime_ns=time_ns() - start_ns, algorithm="SCF")
221-
callback(info)
223+
with_logger(default_logger()) do
224+
callback(info)
225+
end
222226
info
223227
end

test/forwarddiff.jl

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using DFTK
44
using ForwardDiff
55
using LinearAlgebra
6+
using Logging
67
silicon = TestCases.silicon
78

89
function compute_force(ε1, ε2; metal=false, tol=1e-10)
@@ -17,7 +18,7 @@
1718
end
1819
basis = PlaneWaveBasis(model; Ecut=5, kgrid=[2, 2, 2], kshift=[0, 0, 0])
1920

20-
response = ResponseOptions(; verbose=true)
21+
response = ResponseOptions(; verbose=DFTK.default_logger().min_level Info)
2122
is_converged = DFTK.ScfConvergenceForce(tol)
2223
scfres = self_consistent_field(basis; is_converged, response)
2324
compute_forces_cart(scfres)
@@ -61,6 +62,7 @@ end
6162
using ForwardDiff
6263
using LinearAlgebra
6364
using ComponentArrays
65+
using Logging
6466
aluminium = TestCases.aluminium
6567

6668
function compute_band_energies::T) where {T}
@@ -76,9 +78,10 @@ end
7678
basis = PlaneWaveBasis(model; Ecut=5, kgrid=[2, 2, 2], kshift=[0, 0, 0])
7779

7880
is_converged = DFTK.ScfConvergenceDensity(1e-10)
81+
response = ResponseOptions(; verbose=DFTK.default_logger().min_level Info)
7982
scfres = self_consistent_field(basis; is_converged, mixing=KerkerMixing(),
8083
nbandsalg=FixedBands(; n_bands_converge=10),
81-
damping=0.6, response=ResponseOptions(; verbose=true))
84+
damping=0.6, response)
8285

8386
ComponentArray(
8487
eigenvalues=stack([ev[1:10] for ev in scfres.eigenvalues]),
@@ -103,6 +106,7 @@ end
103106
using LinearAlgebra
104107
using ComponentArrays
105108
using DftFunctionals
109+
using Logging
106110
silicon = TestCases.silicon
107111

108112
function compute_force(ε1::T) where {T}
@@ -115,8 +119,8 @@ end
115119
basis = PlaneWaveBasis(model; Ecut=5, kgrid=[2, 2, 2], kshift=[0, 0, 0])
116120

117121
is_converged = DFTK.ScfConvergenceDensity(1e-10)
118-
scfres = self_consistent_field(basis; is_converged,
119-
response=ResponseOptions(; verbose=true))
122+
response = ResponseOptions(; verbose=DFTK.default_logger().min_level Info)
123+
scfres = self_consistent_field(basis; is_converged, response)
120124
compute_forces_cart(scfres)
121125
end
122126

@@ -146,6 +150,7 @@ end
146150
using DFTK
147151
using ForwardDiff
148152
using LinearAlgebra
153+
using Logging
149154

150155
function compute_force::T) where {T}
151156
# solve the 1D Gross-Pitaevskii equation with ElementGaussian potential
@@ -160,8 +165,8 @@ end
160165
basis = PlaneWaveBasis(model; Ecut=500, kgrid=(1, 1, 1))
161166
ρ = zeros(Float64, basis.fft_size..., 1)
162167
is_converged = DFTK.ScfConvergenceDensity(1e-10)
163-
scfres = self_consistent_field(basis; ρ, is_converged,
164-
response=ResponseOptions(; verbose=true))
168+
response = ResponseOptions(; verbose=DFTK.default_logger().min_level Info)
169+
scfres = self_consistent_field(basis; ρ, is_converged, response)
165170
compute_forces_cart(scfres)
166171
end
167172
derivative_ε = let ε = 1e-5

test/printing.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
disable_electrostatics_check=true, modelargs...)
1414
basis = PlaneWaveBasis(model; basisargs...)
1515

16-
io = current_logger().min_level > Info ? devnull : stdout
16+
io = DFTK.default_logger().min_level > Info ? devnull : stdout
1717

1818
@info model
1919
show(io, "text/plain", model)
@@ -32,7 +32,7 @@
3232
scfres = self_consistent_field(basis; nbandsalg=FixedBands(; n_bands_converge=6),
3333
tol=1e-3)
3434

35-
io = current_logger().min_level > Info ? devnull : stdout
35+
io = DFTK.default_logger().min_level > Info ? devnull : stdout
3636

3737
@info scfres.energies
3838
show(io, "text/plain", scfres.energies)

test/runtests_runner.jl

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,11 @@ function dftk_testfilter(ti)
3131
end
3232

3333
using Logging
34+
using DFTK
3435

35-
# Don't print anything below or equal to warning level.
36-
with_logger(ConsoleLogger(stdout, LogLevel(1001))) do
36+
# Don't print anything below warning level.
37+
DFTK.default_logger() = DFTK.DFTKLogger(; io=stdout, min_level=Warn)
38+
#@set_preferences!("min_log_level" => "1001"; export_prefs=false)
39+
with_logger(DFTK.default_logger()) do
3740
@run_package_tests filter=dftk_testfilter verbose=true
3841
end

0 commit comments

Comments
 (0)