Skip to content

Commit

Permalink
Code revision 2024 (2)
Browse files Browse the repository at this point in the history
  • Loading branch information
OpenJAC committed May 13, 2024
1 parent 4069bb2 commit 98f2a88
Show file tree
Hide file tree
Showing 69 changed files with 2,774 additions and 3,093 deletions.
16 changes: 8 additions & 8 deletions CITATION.bib
Original file line number Diff line number Diff line change
Expand Up @@ -70,14 +70,14 @@ @Article{Fritzsche/GreenFunctions:2021


@article{Fritzsche/DRcoefficients:2021,
author = {{Fritzsche, S.}},
title = {Dielectronic recombination strengths and plasma rate coefficients of multiply charged ions},
DOI= "10.1051/0004-6361/202141673",
url= "https://doi.org/10.1051/0004-6361/202141673",
journal = {A\&A},
year = 2021,
volume = 656,
pages = "A163",
author = {{Fritzsche, S.}},
title = {Dielectronic recombination strengths and plasma rate coefficients of multiply charged ions},
DOI= "10.1051/0004-6361/202141673",
url= "https://doi.org/10.1051/0004-6361/202141673",
journal = {A\&A},
year = 2021,
volume = 656,
pages = "A163",
}


Expand Down
16 changes: 15 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -213,9 +213,23 @@ This example is discussed also in one of the [tutorials](tutorials/51-compute-Fe
[cloud](https://mybinder.org/v2/gh/openjac/JAC.jl/master?labpath=tutorials%2F51-compute-Fe-X-spectrum.ipynb).


## Further examples

For another (quick) start, you can make use of a large number of *examples* in the corresponding directory.
Call include("../examples/examples.jl") at REPL to see which computations and test cases have been considered in the
past years and how they can be used for some present task. Later, for instance, simply call
include("../examples/example-Da.jl") to invoke such test cases explicitly in some working directory.
Since this example directory was originally set-up for tests & development, you can either simply copy the code from
some *branch* or need to set the requested branch to *true*. Since these examples have been utilized for development,
unfortunately, they might not work (run through) immediately. However, they typically provide a good and useful
*starting point* in order to understand the required input and to prepare short scripts for dealing with different
applications of JAC. Because of the (very) large number of potential applications of this toolbox, it has been found
difficult (not to say, impossible) to keep all these *examples* up-do-date.


## Tutorials

The following IJulia/jupyter notebooks introduce the reader to JAC and demonstrate several features of this toolbox.
The following IJulia/jupyter notebooks introduce the reader to JAC and demonstrate several features of this toolbox. ---
They can be explored statically at GitHub or can be run locally after the software repository has been cloned and installed.
In order to modify the cell-output of the notebooks and to better print *wide tables*, you can create or modify the file
~/.jupyter/custom/custom.css in your home directory and add the line: div.output_area pre { font-size: 7pt;} .
Expand Down
2 changes: 1 addition & 1 deletion examples/example-Aa.jl
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@

println("Aa) Test of several radial e-e potentials.")
println("Aa) Apply & test several radial e-e potentials.")

if true
# Last successful: unknown ... need to be adapted
Expand Down
2 changes: 1 addition & 1 deletion examples/example-Ab.jl
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#
println("Ab) Tests towards a SCF field: B-spline primitives and one-particle spectra in a local potential.")
println("Ab) Apply & test the a SCF field: B-spline primitives and one-particle spectra in a local potential.")
#

if false
Expand Down
2 changes: 1 addition & 1 deletion examples/example-Ac.jl
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#
println("Ac) Test of the CI part for an internally generated neon multiplet without Breit interaction.")
println("Ac) Apply & test the CI part for an internally generated neon multiplet without Breit interaction.")

if true
# Last successful: unknown ... need to be adapted
Expand Down
2 changes: 1 addition & 1 deletion examples/example-Ad.jl
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#
println("Ad) Test of the frequency-independent Breit interaction for an internally generated chlorine-like multiplet.")
println("Ad) Apply & test for the frequency-independent Breit interaction for an internally generated neon multiplet.")

if true
# Last successful: unknown ... need to be adapted
Expand Down
2 changes: 1 addition & 1 deletion examples/example-Ae.jl
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#
println("Ae) Test of the QED model corrections to the level structure of atoms and ions.")
println("Ae) Apply & test for the QED model corrections to the level structure of atoms and ions.")

## NoneQed() QedPetersburg()
if true
Expand Down
2 changes: 1 addition & 1 deletion examples/example-Af.jl
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
using PyPlot: plot
## pyplot()

println("Af) Generate and normalize continuum orbitals in a local potential.")
println("Af) Generate, normalize & test for continuum orbitals in a local potential.")

grid = Radial.Grid(Radial.Grid(false), rnt = 4.0e-6, h = 5.0e-2, hp = 2.0e-2, rbox = 20.0)
nuclearZ = 2.0; noPoints = grid.NoPoints - 100
Expand Down
2 changes: 1 addition & 1 deletion examples/example-Ag.jl
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#
println("Ag) Test of the jj-LS transformation of levels from a given multiplet.")
println("Ag) Apply & test the jj-LS transformation of levels from a given multiplet.")

if true
# Last successful: unknown
Expand Down
2 changes: 1 addition & 1 deletion examples/example-Ah.jl
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#
println("Ah) Test of a mean-field basis, mean-field multiplet and configuration-interaction (CI) expansion.")
println("Ah) Apply & test a mean-field basis, mean-field multiplets as well as a configuration-interaction (CI) expansions.")

if true
# Last successful: unknown ...
Expand Down
2 changes: 1 addition & 1 deletion examples/example-Ai.jl
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#
println("Ai) Test of restricted-active-space (RAS) expansion.")
println("Ai) Apply & test for restricted-active-space (RAS) expansions.")

if true
# Last successful: unknown ...
Expand Down
2 changes: 1 addition & 1 deletion examples/example-Aj.jl
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@

#
println("Aj) Test of the Green(function) expansion.")
println("Aj) Apply & test for a Green (-function) expansion.")

if false
# Last successful: unknown ...
Expand Down
2 changes: 1 addition & 1 deletion examples/example-Ak.jl
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@

#
println("Ak) Test of spin-angular coefficients.")
println("Ak) Apply & test the computation of spin-angular coefficients.")

configs = [Configuration("1s^2 2s"), Configuration("1s^2 2p")]

Expand Down
2 changes: 1 addition & 1 deletion examples/example-Al.jl
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#
println("Al) Test of parallel computing in Julia.")
println("Al) Apply & test for parallel computating methods/techniques with Julia.")
using Distributed
@everywhere using LinearAlgebra

Expand Down
2 changes: 1 addition & 1 deletion examples/example-Ba.jl
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#
println("Ba) Tests of the dipole, em multipole and momentum-transfer amplitudes.")
println("Ba) Apply & test the dipole, em multipole and momentum-transfer amplitudes.")

if true
# Last successful: unknown ...
Expand Down
2 changes: 1 addition & 1 deletion examples/example-Bb.jl
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@

#
println("Bb) Tests of the parity non-conservation, Schiff moment and anapole moment amplitudes.")
println("Bb) Apply & test the parity non-conservation, Schiff moment and anapole moment amplitudes.")

if true
# Last successful: unknown ...
Expand Down
2 changes: 1 addition & 1 deletion examples/example-Ca.jl
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@

println("Ca) Test of the Einstein module with ASF from an internally generated multiplet.")
println("Ca) Apply & test the Einstein module with ASF from an internally generated multiplet.")

setDefaults("print summary: open", "zzz-Einstein.sum")
setDefaults("unit: energy", "Kayser")
Expand Down
2 changes: 1 addition & 1 deletion examples/example-Cb.jl
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@

println("Cb) Test of the Hfs module for HFS A,B parameters and hyperfine representation with ASF from an internally generated multiplet.")
println("Cb) Apply & test the Hfs module for HFS A,B parameters and hyperfine representation with ASF from an internally generated multiplet.")

setDefaults("unit: energy", "Hz")
setDefaults("print summary: open", "zzz-Hfs.sum")
Expand Down
2 changes: 1 addition & 1 deletion examples/example-Cc.jl
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@

println("Cc) Test of the IsotopeShift module with ASF from an internally generated multiplet.")
println("Cc) Apply & test the IsotopeShift module with ASF from an internally generated multiplet.")

if true
# Last successful: unknown ...
Expand Down
2 changes: 1 addition & 1 deletion examples/example-Cd.jl
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@

println("Cd) Test of the LandeZeeman module with ASF from an internally generated multiplet.")
println("Cd) Apply & test the LandeZeeman module with ASF from an internally generated multiplet.")

if true
# Last successful: unknown ...
Expand Down
2 changes: 1 addition & 1 deletion examples/example-Ce.jl
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@

println("Ce) Test of the FormFactor module with ASF from an internally generated multiplet.")
println("Ce) Apply & test the FormFactor module with ASF from an internally generated multiplet.")

if true
# Last successful: unknown ...
Expand Down
2 changes: 1 addition & 1 deletion examples/example-Cf.jl
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@

println("Cf) Test of the reduced 1- and 2-particle density matrices & natural orbitals.")
println("Cf) Apply & test the reduced 1- and 2-particle density matrices & natural orbitals.")

if true
# Last successful: unknown ...
Expand Down
2 changes: 1 addition & 1 deletion examples/example-Cg.jl
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@

println("Cg) Test of the PlasmaShift module with ASF from an internally generated multiplet.")
println("Cg) Apply & test the PlasmaShift module with ASF from an internally generated multiplet.")

if true
# Last successful: unknown ...
Expand Down
2 changes: 1 addition & 1 deletion examples/example-Ch.jl
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@

println("Ch) Test of the DecayYield module with ASF from an internally generated multiplet.")
println("Ch) Apply & test the RadiativeOpacity module with ASF from an internally generated multiplet.")

if true
# Last successful: unknown ...
Expand Down
2 changes: 1 addition & 1 deletion examples/example-Ci.jl
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@

println("Ci) Test of the AlphaVariation module with ASF from an internally generated multiplet.")
println("Ci) Apply & test the AlphaVariation module with ASF from an internally generated multiplet.")

if true
# Last successful: unknown ...
Expand Down
2 changes: 1 addition & 1 deletion examples/example-Cj.jl
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@

println("Cj) Test of the MultipolePolarizibility module with ASF from an internally generated multiplet.")
println("Cj) Apply & test the MultipolePolarizibility module with ASF from an internally generated multiplet.")

if true
# Last successful: unknown ...
Expand Down
2 changes: 1 addition & 1 deletion examples/example-Ck.jl
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@

println("Ck) Test of the DecayYield module with ASF from an internally generated multiplet.")
println("Ck) Apply & test the DecayYield module with ASF from an internally generated multiplet.")

setDefaults("print summary: open", "zzz-DecayYield.sum")

Expand Down
51 changes: 29 additions & 22 deletions examples/example-Da.jl
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
#
println("Da) Test of the PhotoEmission module with ASF from an internally generated initial- and final-state multiplet.")
println("Da) Apply & test the PhotoEmission module with ASF from an internally generated initial- and final-state multiplet.")

# setDefaults("unit: rate", "a.u.")
setDefaults("unit: energy", "Kayser")
setDefaults("unit: energy", "Kayser") ## setDefaults("unit: rate", "a.u.")
setDefaults("unit: rate", "1/s")
setDefaults("print summary: open", "zzz-radiative.sum")


if true
# Last successful: unknown ...
# Compute
if false
# Last successful: 12May2024
# Compute the photoemission transition probabilities for Cl-like Fe X
grid = Radial.Grid(true)
## grid = Radial.Grid(Radial.Grid(true), rnt = 2.0e-5, h = 1.0e-2, hp = 0., rbox = 5.0)
setDefaults("standard grid", grid)
Expand All @@ -25,45 +24,54 @@ if true
perform(comp)
#
elseif false
# Last successful: unknown ...
# Last successful: 12May2024
# Compute E1 transition probabilities among low-lying levels of neutral lithium
# LineSelection(true, indexPairs=[(5,0), (7,0), (10,0), (11,0), (12,0), (13,0), (14,0), (15,0), (16,0)])
pSettings = PhotoEmission.Settings(PhotoEmission.Settings(), gauges = [UseCoulomb,JAC.UseBabushkin], printBefore = true )
wa = Atomic.Computation(Atomic.Computation(), name="xx", grid=JAC.Radial.Grid(true), nuclearModel=Nuclear.Model(3.),
initialConfigs=[Configuration("1s^2 2s"), Configuration("1s^2 2p"), Configuration("1s^2 3s"),
Configuration("1s^2 3p"), Configuration("1s^2 3d"), Configuration("1s^2 4s"),
Configuration("1s^2 4p"), Configuration("1s^2 4d")],
finalConfigs =[Configuration("1s^2 2s"), Configuration("1s^2 2p"), Configuration("1s^2 3s"),
Configuration("1s^2 3p"), Configuration("1s^2 3d"), Configuration("1s^2 4s"),
Configuration("1s^2 4p"), Configuration("1s^2 4d")],
processSettings= PhotoEmission.Settings([E1], [UseCoulomb,JAC.UseBabushkin], false, true, LineSelection(), 0., 0., 10000. ) )
processSettings= pSettings )
wb = @time( perform(wa) )
#
elseif false
# Last successful: unknown ...
# Last successful: 12May2024
# Compute transition probabilities among low-lying levels of neutral lithium but for different multipoles
# LineSelection(true, indexPairs=[(5,0), (7,0), (10,0), (11,0), (12,0), (13,0), (14,0), (15,0), (16,0)])
pSettings = PhotoEmission.Settings(PhotoEmission.Settings(), multipoles = [E1,M1,E2,M2], gauges = [UseCoulomb,JAC.UseBabushkin],
printBefore = true )
wa = Atomic.Computation(Atomic.Computation(), name="xx", grid=JAC.Radial.Grid(true), nuclearModel=Nuclear.Model(90.),
initialConfigs=[Configuration("1s^2 2s 2p")],
finalConfigs =[Configuration("1s^2 2s^2")],
processSettings= PhotoEmission.Settings([E1,M1,E2,M2], [UseCoulomb,JAC.UseBabushkin], false, true, LineSelection(), 0., 0., 10000. ) )
processSettings= pSettings )
wb = @time( perform(wa) )
#
elseif false
# Last successful: unknown ...
# Last successful: 12May2024
# Compute transition probabilities among low-lying levels of He-like Si^12+ ions
# Test: Lifetimes of various helium- and lithium-like ions; cf. Figure 8.1 in section 8.1.a
grid = Radial.Grid(Radial.Grid(false), rnt = 4.0e-6, h = 5.0e-2, hp = 1.0e-2, rbox = 20.0)
grid = Radial.Grid(true)
pSettings = PhotoEmission.Settings([E1,M1], [UseCoulomb,JAC.UseBabushkin], false, true, CorePolarization(), LineSelection(), 0., 0., 10000. )
pSettings = PhotoEmission.Settings(PhotoEmission.Settings(), multipoles = [E1,M1], gauges = [UseCoulomb,JAC.UseBabushkin],
printBefore = true )
wa = Atomic.Computation(Atomic.Computation(), name="xx", grid=grid, nuclearModel=Nuclear.Model(14.),
initialConfigs=[Configuration("1s 2s"), Configuration("1s 2p")],
finalConfigs =[Configuration("1s^2")],
processSettings=pSettings)
initialConfigs = [Configuration("1s 2s"), Configuration("1s 2p")],
finalConfigs = [Configuration("1s^2")],
processSettings= pSettings)
wb = @time( perform(wa) )
#
elseif true
# Last successful: unknown ...
elseif false
# Last successful: 12May2024
# Compute transition probabilities among low-lying levels of Li-like Mg^9+ ions
# Test: Lifetimes for lithium-like ions; cf. Figure 8.1 in section 8.1.a
grid = Radial.Grid(Radial.Grid(false), rnt = 4.0e-6, h = 5.0e-2, hp = 1.0e-2, rbox = 20.0)
grid = Radial.Grid(true)
pSettings = PhotoEmission.Settings([E1,M1], [UseCoulomb,JAC.UseBabushkin], false, true, CorePolarization(), LineSelection(), 0., 0., 10000. )
pSettings = PhotoEmission.Settings(PhotoEmission.Settings(), multipoles = [E1,M1], gauges = [UseCoulomb,JAC.UseBabushkin],
printBefore = true )
wa = Atomic.Computation(Atomic.Computation(), name="Lifetimes for lithium-like ions",
grid=grid, nuclearModel=Nuclear.Model(12.),
initialConfigs = [Configuration("1s 2s 2p"), Configuration("1s 2p^2")],
Expand All @@ -72,15 +80,14 @@ elseif true
wb = @time( perform(wa) )
#
elseif true
# Last successful: unknown ...
# Last successful: 12May2024
# Test for Christophe Hoffmeister
defaultsSettings = PhotoEmission.Settings()
photoSettings = PhotoEmission.Settings(defaultsSettings, multipoles=[E1], gauges=[UseCoulomb, UseBabushkin], printBefore=true)
photoSettings = PhotoEmission.Settings(PhotoEmission.Settings(), multipoles=[E1], gauges=[UseCoulomb, UseBabushkin], printBefore=true)
wa = Atomic.Computation(Atomic.Computation(), name="Energies and Einstein coefficients for neon 2s^-1 3p --> 2p^6 ^1S_0",
grid=JAC.Radial.Grid(true), nuclearModel=Nuclear.Model(10.1),
initialConfigs = [Configuration("1s^2 2s 2p^6 3p")],
finalConfigs = [Configuration("1s^2 2s^2 2p^6")],
process = Radiative(), processSettings = photoSettings );
processSettings= photoSettings );
wb = @time( perform(wa) )
#
end
Expand Down
26 changes: 12 additions & 14 deletions examples/example-Db.jl
Original file line number Diff line number Diff line change
@@ -1,31 +1,29 @@

println("Db) Test of the PhotoExcitation module with ASF from an internally generated initial- and final-state multiplet.")
println("Db) Apply & test the PhotoExcitation module with ASF from an internally generated initial- and final-state multiplet.")

setDefaults("print summary: open", "zzz-PhotoExcitation.sum")

if true
# Last successful: unknown ...
# Compute
# Last successful: 12May2024
# Compute the photoexcitation cross sections for neutral lithium
pSettings = PhotoExcitation.Settings(PhotoExcitation.Settings(), multipoles=[E1, M1], gauges=[UseCoulomb, UseBabushkin], printBefore=true)
wa = Atomic.Computation(Atomic.Computation(), name="xx", grid=JAC.Radial.Grid(true), nuclearModel=Nuclear.Model(3.),
initialConfigs=[Configuration("1s^2 2s"), Configuration("1s^2 2p")],
finalConfigs =[Configuration("1s^2 2s"), Configuration("1s^2 2p")],
processSettings=PhotoExcitation.Settings([E1, M1], [UseCoulomb, UseBabushkin], true, true, true, true,
LineSelection(), 0., 0., 1.0e6, ExpStokes(0., 0., 0.) ) )
initialConfigs = [Configuration("1s^2 2s")],
finalConfigs = [Configuration("1s^2 2p")],
processSettings = pSettings )

wb = perform(wa)
setDefaults("print summary: close", "")
#
elseif true
# Last successful: unknown ...
# Last successful: 12May2024
# Test of absorption f-values for 1s^2 --> 1s2p ^1P_1 resonance in the helium isoelectronic sequence; cf. Table 8.1 in Section 8.1.a
grid = Radial.Grid(Radial.Grid(false), rnt = 4.0e-6, h = 5.0e-2, hp = 1.0e-2, rbox = 20.0)
grid = Radial.Grid(true)
pSettings = PhotoExcitation.Settings(PhotoExcitation.Settings(), multipoles=[E1, M1], gauges=[UseCoulomb, UseBabushkin], printBefore=true)
wa = Atomic.Computation(Atomic.Computation(), name="xx", grid=grid, nuclearModel=Nuclear.Model(20.),
initialConfigs=[Configuration("1s^2")],
finalConfigs =[Configuration("1s 2p")],
processSettings=PhotoExcitation.Settings([E1, M1], [UseCoulomb, UseBabushkin], true, true, true, true,
LineSelection(), 0., 0., 1.0e6, ExpStokes(0., 0., 0.) ) )

initialConfigs = [Configuration("1s^2")],
finalConfigs = [Configuration("1s 2p")],
processSettings = pSettings )
wb = perform(wa)
#
end
Expand Down
Loading

0 comments on commit 98f2a88

Please sign in to comment.