Skip to content

Commit

Permalink
Tweaks
Browse files Browse the repository at this point in the history
  • Loading branch information
kbarros committed Jul 25, 2023
1 parent ef5ec92 commit 538f021
Show file tree
Hide file tree
Showing 7 changed files with 20 additions and 9 deletions.
4 changes: 2 additions & 2 deletions src/Symmetry/AllowedAnisotropy.jl
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ function suggest_frame_for_atom(cryst::Crystal, i::Int)
end

if isempty(axes_counts)
@warn "Could not find a symmetry axis."
@info "Could not find a symmetry axis."
return Mat3(I)
end

Expand Down Expand Up @@ -170,7 +170,7 @@ function suggest_frame_for_atom(cryst::Crystal, i::Int)
orthogonal_axes_counts = filter(x -> abs(x[1]z_dir) < 1e-12, axes_counts)

if isempty(orthogonal_axes_counts)
@warn "Could not find a symmetry axis orthogonal to $z_dir."
@info "Could not find a symmetry axis orthogonal to $z_dir."
x_dir = (z_dir Vec3(1,0,0)) ? Vec3(0,0,1) : Vec3(1,0,0)
x_dir = normalize(x_dir - (x_dirz_dir)*z_dir)
else
Expand Down
4 changes: 2 additions & 2 deletions src/Symmetry/Crystal.jl
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ end
function print_crystal_warnings(latvecs, positions)
det(latvecs) < 0 && @warn "Lattice vectors are not right-handed."
if length(positions) >= 100
@warn """This a very large crystallographic cell, which Sunny does not handle well.
@info """This a very large crystallographic cell, which Sunny does not handle well.
If the intention is to model chemical inhomogeneity, the recommended procedure is as
follows: First, create a small unit cell with an idealized structure. Next, create
a perfectly periodic `System` of the desired size. Finally, use `to_inhomogeneous`
Expand Down Expand Up @@ -492,7 +492,7 @@ function subcrystal(cryst::Crystal, classes::Vararg{Int, N}) where N
new_sitesyms = cryst.sitesyms[atoms]

if atoms != 1:maximum(atoms)
@warn "Atoms are being renumbered."
@info "Atoms have been renumbered in subcrystal."
end

ret = Crystal(cryst.latvecs, cryst.prim_latvecs, new_positions, new_types, new_classes, new_sitesyms,
Expand Down
4 changes: 2 additions & 2 deletions src/Symmetry/Parsing.jl
Original file line number Diff line number Diff line change
Expand Up @@ -108,14 +108,14 @@ function Crystal(filename::AbstractString; symprec=nothing)
end
(err, i) = findmax(errs)
if err < 1e-12
@warn """Precision parameter is unspecified, but all coordinates seem to be simple fractions.
@info """Precision parameter is unspecified, but all coordinates seem to be simple fractions.
Setting symprec=1e-12."""
symprec = 1e-12
elseif 1e-12 < err < 1e-4
symprec = 15err
err_str = @sprintf "%.1e" err
symprec_str = @sprintf "%.1e" symprec
@warn """Precision parameter is unspecified, but coordinate string '$s' seems to have error $err_str.
@info """Precision parameter is unspecified, but coordinate string '$s' seems to have error $err_str.
Setting symprec=$symprec_str."""
else
error("Cannot infer precision. Please provide an explicit `symprec` parameter to load '$filename'")
Expand Down
2 changes: 1 addition & 1 deletion src/Symmetry/Printing.jl
Original file line number Diff line number Diff line change
Expand Up @@ -282,7 +282,7 @@ function print_allowed_anisotropy(cryst::Crystal, i::Int; R::Mat3, atol, digits,
for b in reverse(collect(eachcol(B)))

if any(x -> 1e-12 < abs(x) < 1e-6, b)
@warn """Found a very small but nonzero expansion coefficient.
@info """Found a very small but nonzero expansion coefficient.
This may indicate a slightly misaligned reference frame."""
end

Expand Down
11 changes: 11 additions & 0 deletions src/System/Interactions.jl
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,17 @@ function empty_interactions(na, N)
end
end

# Warn up to `OverrideWarningMax` times about overriding a coupling
OverrideWarningCnt::Int = 0
OverrideWarningMax::Int = 5
function warn_coupling_override(str)
global OverrideWarningCnt, OverrideWarningMax
OverrideWarningCnt < OverrideWarningMax && @info str
OverrideWarningCnt += 1
OverrideWarningCnt == OverrideWarningMax && @info "Suppressing future override notifications."
end


# Creates a clone of the lists of exchange interactions, which can be mutably
# updated.
function clone_interactions(ints::Interactions)
Expand Down
2 changes: 1 addition & 1 deletion src/System/OnsiteCoupling.jl
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ function set_onsite_coupling!(sys::System{N}, op::Matrix{ComplexF64}, i::Int) wh
(1 <= i <= natoms(sys.crystal)) || error("Atom index $i is out of range.")

if !iszero(ints[i].onsite)
@info "Overriding anisotropy for atom $i."
warn_coupling_override("Overriding anisotropy for atom $i.")
end

onsite = OnsiteCoupling(sys, op, sys.Ns[1,1,1,i])
Expand Down
2 changes: 1 addition & 1 deletion src/System/PairExchange.jl
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ function set_exchange!(sys::System{N}, J, bond::Bond; biquad=0.) where N

# Print a warning if an interaction already exists for bond
if any(x -> x.bond == bond, ints[bond.i].pair)
@info "Overriding exchange for bond $bond."
warn_coupling_override("Overriding coupling for $bond.")
end

for i in 1:natoms(sys.crystal)
Expand Down

0 comments on commit 538f021

Please sign in to comment.