Skip to content

Commit 25a918b

Browse files
committed
Pretty-printing
1 parent f8a723c commit 25a918b

File tree

1 file changed

+30
-2
lines changed

1 file changed

+30
-2
lines changed

src/channels.jl

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,17 @@ struct DipoleSourceTerm{Dipole<:Function,Field<:Union{ElectricFields.AbstractFie
2121
new{Dipole,FieldAmplitude}(d, Fv)
2222
end
2323

24+
Base.show(io::IO, d::DipoleSourceTerm) =
25+
write(io, "DipoleSourceTerm")
26+
27+
function Base.show(io::IO, mime::MIME"text/plain", d::DipoleSourceTerm)
28+
show(io, d)
29+
print(io, "\nDipole: ")
30+
show(io, mime, d.d)
31+
print(io, "\nField: ")
32+
show(io, d.F)
33+
end
34+
2435
dipole(F::Number, d::Number) = F*d
2536
dipole(F::SVector{3}, d::SVector{3}) = dot(F, d)
2637
dipole(F::Number, d::SVector{3}) = F*d[3]
@@ -54,11 +65,17 @@ IonizationChannel(E, args...) =
5465
Base.show(io::IO, ic::IonizationChannel) =
5566
write(io, "IonizationChannel: Iₚ = $(ic.E) Ha = $(27.211ic.E) eV")
5667

68+
function Base.show(io::IO, mime::MIME"text/plain", ic::IonizationChannel)
69+
show(io, ic)
70+
print(io, "\nSource term: ")
71+
show(io, mime, ic.st)
72+
end
73+
5774
# * Couplings
5875

5976
abstract type AbstractCanonicalMomentumConservation end
60-
struct CanonicalMomentumConservation <: AbstractCanonicalMomentumConservation end
61-
struct NoCanonicalMomentumConservation <: AbstractCanonicalMomentumConservation end
77+
struct CanonicalMomentumConservation <: AbstractCanonicalMomentumConservation end
78+
struct NoCanonicalMomentumConservation <: AbstractCanonicalMomentumConservation end
6279

6380
abstract type AbstractCoupling end
6481
Base.iszero(::AbstractCoupling) = false
@@ -69,6 +86,8 @@ struct NoCoupling <: AbstractCoupling end
6986
Base.iszero(::NoCoupling) = true
7087
Base.zero(::AbstractCoupling) = NoCoupling()
7188

89+
Base.show(io::IO, ::NoCoupling) = write(io, "0")
90+
7291
# ** Dipole couplings
7392

7493
struct DipoleCoupling{DipoleMoment<:Union{Number,SVector{3}},Field<:ElectricFields.AbstractField} <: AbstractCoupling
@@ -79,6 +98,8 @@ end
7998
canonical_momentum_conservation(::DipoleCoupling) = CanonicalMomentumConservation()
8099
canonical_momentum_conservation(::Type{<:DipoleCoupling}) = CanonicalMomentumConservation()
81100

101+
Base.show(io::IO, ::DipoleCoupling) = write(io, "𝐅⋅𝐫")
102+
82103
# ** Coulomb couplings
83104

84105
momentum_transfer(k::Number, p::Number) = k-p
@@ -90,3 +111,10 @@ struct CoulombCoupling{Coupling} <: AbstractCoupling
90111
end
91112

92113
(cc::CoulombCoupling)(𝐤, 𝐩, _) = cc.coupling(𝐤, 𝐩)
114+
115+
Base.show(io::IO, ::CoulombCoupling) = write(io, "")
116+
117+
function Base.show(io::IO, mime::MIME"text/plain", g::CoulombCoupling)
118+
write(io, "CoulombCoupling: ")
119+
show(io, mime, g.coupling)
120+
end

0 commit comments

Comments
 (0)