forked from flexible-atomic-code/fac
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathChangeLog
490 lines (429 loc) · 19.9 KB
/
ChangeLog
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
Version 1.1.5, Unreleased
1. Python 3 support.
Version 1.1.4, 11/09/2016
1. output UTA stdev and shift for magnetic mutipole transitions as well.
Version 1.1.3, 11/10/2015
1. fix QED corrections for UTA energies.
2. fix UTA width and shift calculations for magnetic and even-order
electric mutipoles (patch by M. Krief & A. Feigel).
3. fix configure script for modern Darwin GCC compiler (based on LLVM).
Version 1.1.2, 07/07/2015
1. incorporate a few bug fixes from Evgeny, most notably
concerning the Zeemann splitting.
2. separate the source files into fac_util and fac_core, the
former contains third party uitlities that cannot be
distributed under GPL, while the latter contains the fac core
that are distrubted under GPL from this version on.
Version 1.1.1, 04/30/2006
1. change the argument of coulcc to have a small imaginary part for
DCOUL function. so that the results are ok for bound state energies.
2. make low and up indexes in TransitionTable and CETable
interchangable.
3. Add external magnetic and electric fields.
4. Incident angle dependent excitation for Stark-Zeeman levels.
5. Improve radial integrate involving continuum orbitals.
6. Improve the construction of Y^k(r) functions.
7. Use CPC routine for Coulomb multiple matrix elements for high
partial wave extrapolation.
8. add modifiers to the configuration specification.
9. add function to obtain expansion coefficients of G^k, useful for
transition rates from level to configurations.
10.add interpolation and maxwellian rate for CI and RR.
Version 1.1.0, 10/03/2005
1. reimplement the StructureMBPT function.
2. add interface to njsym, and use that for general recoupling.
3. add memory limits for the arrays used in radial.c
4. correct an error in the 1-body contribution to autoionization.
5. avoid overflow of 2j in UTA mode in the EN_DB file.
6. change the format of DB_RT file.
7. add output for the 4th NLTE workshop submission.
Version 1.0.9, 04/04/2005
1. modify dbase.c so that it is platform independent.
2. split the functionality of dbase.c so that it is isolated from
other files. It now only depends on dbase.h, and consts.h.
Version 1.0.8, 01/01/2005
1. implement configuration average radiative transitions. including
energy shift and width of the UTAs.
2. configuration average transitions for all other processes.
3. update CRM module for UTA model.
4. enable CI within the same non-relativisitc configuration for UTA.
5. fix a bug in GetNumElectrons introduced ealier in this version.
6. add JoinTable function.
7. it seems that g77 3.4 generate incorrect code for dlamch.f with
-O2, now disable optimization for dlamch.f always.
Version 1.0.7, 11/10/2004
1. add DR satellite energy to the DB_DR file.
2. add the RRMultipole function for bound-free multipole matrix
elements.
3. rewrite Angular coupling routines, much faster now.
4. DB_TR file now stores the multipole matrix elements, instead of gf
values. The ASCII mode text file also has an additional column
giving the matrix elements.
5. Binary output for rmatrix module.
Version 1.0.6, 09/05/2004
1. parallelize StructureMBPT
2. use subplx in RefineRadial.
3. using relativistic Bethe formula for extrapolation of excitation.
4. add an option for all plane-wave collision strength output.
5. save the slater Y potential.
6. improve RadialRydberg, use Dirac Coulomb for asymptotic.
7. add an option to printout partial-wave collision strength.
8. implement a Dirac R-matrix method.
Version 1.0.5, 05/30/2004
1. implement magnetic sublevel ionization
2. fix bugs in radial integration.
3. replace PS manual with PDF format.
4. implement a version of 2nd order MBPT for energy.
5. fix the problem in Uheling potential.
6. StructureMBPT, better implementation of MBPT
7. allow the number of grid points to be changed.
Version 1.0.4, 02/10/2004
1. make DRStrength a bit more efficient.
2. enable the LMn inner-shell Auger extrapolation.
3. make all atomic symbols capitalized.
4. ReinitConfig resets the closed shells to empty.
5. add MaxPower electron energy distribution, Maxwellian+Powerlaw.
6. reading file for inner-shell Auger extrapolation.
7. determine base level in structure.
8. reimplementation of MULTI array.
9. ensure that the wavefunction nodes are correct for high-n states.
10. implement photoionization asymmetry parameters.
Version 1.0.3, 12/01/2003
1. change contact information to my new address.
2. add --enable-cpic and --enable-fpic options to configure.
3. fix a bug in RateTable, where the optional list must be given.
4. fix FLIBS problem for Mac OS 10.2.
5. need to add -lcc_dynamic on Mac OS 10.3.
6. fix the method table bug in ppol.c
7. bug fix in IntegrateRadial function.
8. array out-of-bound bug fix in orbital.c.
Version 1.0.2, 08/15/2003
1. add iterative method in pfac.pol.
2. add an optional input file in PolarizationTable to specify
the transitions whose polarization to be calculated.
3. add Orientation function, which may include depolarization.
4. fix seg. fault bug related to AvgConfig.
5. add TRBranch and AIBranch in pfac.fac.
Version 1.0.1, 07/31/2003
1. autoionization and capture rates between magnetic sublevels
2. add autoionization in pfac.pol for DR satellites.
3. change the way electron energy and density are set in pfac.pol
4. allow calculations of DRS specifically from certain target level.
version 1.0.0, 07/15/2003
1. add pol module for constructing magnetic sublevel population
models with collisional excitation.
2. make -m and m magnetic sublevels the same in pol module.
version 0.9.9, 07/10/2003
1. add interpolating routine for CECross.
2. add plane-wave Born approximation for magnetic sublevel
excitation.
3. change the parameter born[1] to the energy where it is
calculated.
4. add the quadratic and linear interpolation feature in UVIP3P.
version 0.9.8, 06/18/2003
1. bug fix on CETableMSub.
version 0.9.7, 06/06/2003
1. move LevelInfor from crm to fac. remove MemENTable from crm.
2. do not write the data block header if the block is empty.
3. put small energy corrections for He-like ions in atom.py.
whith these corrections, the output would give He-lines and
edge to within 1mA. The Delta N=0 DR resonance energy
corrections for several L-shell ions are also put in atom.py.
4. allow a negative index in CorrectEnergy(), which means the
correction is a shift, instead of the energy value relative
to the reference level.
version 0.9.6, 05/23/2003
1. bug fix on partial-wave summation.
2. refactor dbase.c functions.
3. adjust the AI_CUT parameter in atom.py
version 0.9.5, 05/13/2003
1. fix a bug introduced in 0.9.4, caused seg. fault.
2. slightly relax the energy accuracy of the radial solver.
version 0.9.4, 04/29/2003
1. drop the assumption that calloced pointers and doubles will
have NULL and 0.0 initial values, which is not portable.
2. add various Set... routines for convenience.
version 0.9.3, 04/18/2003
1. remove DRTable function.
2. break up transition arrays for RR, AI, and CI, as for CE.
3. add function GetConfigNR().
4. improve efficiency on angular reduction.
version 0.9.2, 04/10/2003
1. add routines returning ionization thresholds in CRM.
2. correct a bug that causes incorrect M1 transition rates
sometimes. It usualy occurs when the upper and lower levels are
affected by configuration interaction significantly.
3. add reinitialization step in the end of every calculation
procedure, so that it is no longer necessary to call it
manually.
4. add EPhFit() for the ionization thresholds used in PhFit.
version 0.9.1, 03/27/2003
1. correct manual on GetPotential.
2. correct an error in Uehling potential.
3. add the ionization cross sections from aladdin database.
Version 0.9.0, 03/17/2003
1. RadialRyd match point needs to be further reduced for Intel
machines. the match point is now z*r=10^2.
2. number of points in half wavelength for high n states reduced
to 14 from the original 16. this is dense enough and allow a
slightly larger coverage of the radial grid.
3. add the function Y5N (i.e., the Wittaker function) to pfac.
Version 0.8.9, 03/11/2003
1. in RadialRyd, the matching point has to be reduced to avoid the
round off errors in COULCC.
2. improve the match of RR cross section at highest grid energy.
3. update the FAQ on the use of OptimizeRadial, and the demo
scripts accordingly.
4. avoid overflow in RRRate1E.
5. fix a bug in RRRate1E and PIRate1E for high energy cross
sections.
6. add TotalPICross and TotalCICross functions.
7. the scaling factor in BED CI cross sections is modified.
Version 0.8.8, 03/04/2003
1. add my new RR and DR rates to CRM.
2. improve FracAbund for very low temperatures.
3. use GNU autoconf to generate configure script,
the build process now uses configure.
4. some improvement in angular integration.
Version 0.8.7, 01/06/2003
1. replace mpfun with my own implementation.
2. add the prompt ">>> " to the interactive sfac interface.
3. add extrapolate for long range free-free radial integral.
4. determine the rmax from the number of mesh points.
5. use cfortran.h for c-fortran interfacing.
Version 0.8.6, 12/04/2002
1. implement DRBranch and DRStrength.
2. radial solver for Rydberg states has been improved.
3. implement TotalRRCross function.
4. Change the default AngZCut and MixCut to smaller values.
5. made the transition of RR and PI from low to high energy more
smooth.
6. add DRS and RE calculation in DRStrength.
7. add KLnl->Knl Auger damping.
8. adjust various n limits in atom.py
9. allow energy correction for non-RecStates levels.
Version 0.8.5, 11/07/2002
1. reinitializing GOS Array in the end of CETable call.
2. fix the bug in GeneralizedMoments.
3. fix a bug in RRRate1E and PIRate1E.
4. correct the spelling in table.write_row (was raw)
Version 0.8.4, 09/26/2002
1. the type of EN_RECORD.energy is changed to double,
to avoid cancellations. this makes the data file incompartible
with earlier version.
2. change the lib. name of lapack, blas, minpack, quadpack, ode,
mpfun, to avoid possible clash with system installations.
Version 0.8.3, 09/25/2002
1. implement Breit interaction in the 0 energy limit of the
exchanged photon.
2. Vacuum polarization using Fullerton & Rinker's formula.
3. Self-energy correction using Mohr and Mohr & Kim's table.
4. Normal and specific mass shift. The square of kinetic energy
terms is ignored.
5. fix a bug in ConfigEnergy.
Version 0.8.2, 09/20/2002
1. ConfigEnergy correction based on configurations.
2. add RefineRadial function, maybe usefule for neutrals.
3. fix a bug in RadialBound.
4. fix a bug for lsode.
Version 0.8.1, 09/03/2002
1. fix the unit bug for PhFit.
2. add PICrossH and RRCrossH functions.
3. add H approximation for very high n states, where the
wavefunction calculation is avoided completely. At present,
it only works for energy levels, E1 transitions and RR & PI
cross sections.
4. add the Mixing coefficients output to the BasisTable function.
Version 0.8.0, 08/30/2002
1. add the ionization and recombinaiton fitting formula from
Verner and Mazzotta.
Version 0.7.9, 08/27/2002
1. implement the generalized oscillator strength. and the first
Born approximaiton for excitation based on that. the
coefficients are output in the DB_CE file.
2. fix a bug on the initialization of wavefunc.
3. add the source rate blocks in the DB_RT file.
Version 0.7.8, 08/17/2002
1. change the block size of various arrays, which fixes the malloc
bomb on Mac OS X.
Version 0.7.7, 08/14/2002
1. fix a bug that causes the OptimizeRadial fails on neutral atoms.
2. rewrite ConfigEnergy so that the average energy of
configuration groups instead of configurations are used
for energy adjustments. It can now be called more than once
with the argument 0, and can have additional arguments, which
are lists of configuration groups. They are used for radial
optimization.
Version 0.7.6, 08/10/2002
1. add Makefiles to the demo dir.
2. add the NL values for the valence electron in the
structure output file.
3. in atom.py, use only the ground configuration for
the potential optimization for He-like ions.
4. fix a bug in config.c, so that space in the brackets for
the configuration specification is allowed.
Version 0.7.5, 08/02/2002
1. break down the long DATA statements in ionis.f
2. fix the beam energy distribution in spm.py
3. fix the High-Z element problem.
4. fix the magnetic sublevel collisional excitation problem.
5. rewrite the Dirac eq. solver for more robustness.
6. add a function for relativistic H energy in const.py
Version 0.7.4, 07/10/2002
1. write FAQ chapter of the manual.
2. fix a bug introduced in atom.py
3. improve CorrectEnergy.
4. renormalization of superblock density removed.
5. allow only AI and without DR.
Version 0.7.3, 05/15/2002
1. improving the manual
2. Use hydrogenic approximation for radiative transition rates
between n1 and n2 states when n1 and n2 >= n0, where n0 is
set by SetHydrogenicNL as for RR and PI.
Version 0.7.2, 05/08/2002
1. add hydrogenic TRRate routine.
2. update papers for submission to PRA.
3. the r_core for H-like ions changed to 0.75*MAX_POINTS.
4. update Makefile and setup.py for Mac OS X.
5. separate TABLE class into pfac.table module.
6. better initial estimate of binding energies for improved
convergence.
7. separate interpolation functions in pfac.util extension.
8. making the fitting formula of RR and CI simpler. Do not fit
RR at low energies any more, since that's not valid for near
neutral ions.
9. add 2-photon decay rates for 2s S_1/2 of H-like ions and
1s 2s S_0 of He-like ions in CRM.
10.wrote draft version of the manual. change some of the
internal structure of database files. the changes are not
compartible with earlier versions.
Version 0.7.1, 03/11/2002
1. add pfac.spm module for processing spectral data
2. LevelName function added
3. reimplement the output of spectra data to better distinguish
different type of transitions.
4. make the coulomb-born contribution to collisional excitation
more robust.
5. added Gaussian electron energy distribution to simulate EBIT
beam.
6. improve the integration routine for rate coefficients.
7. make the RateTable output more useful.
8. improve the convergence of radial optimizer for near neutral
ions. It should now work even for neutral atoms.
9. added TABLE class to spm module.
10.AI channels with 2s hole need to be included.
11.Update demo files for ConfigEnergy. and FeL dir.
12.add RRRateH function.
13.add RRC data in SpecTable
14.fix a bug for H-like ions which gave wrong results for n>=11.
15.put make macros in setup.py
16.fix a bug on RR at Ne != 1E10.
Version 0.7.0, 02/06/2002
1. add endian swapping in dbase.c and crm.c
2. implement extrapolation on recombined states.
3. using Seaton's method (MNRAS 119, 81) to extrapolate RR rates
4. adding the ionization balance calculation of Arnaud&Raymond.
5. fix a bug in the reinitialization of radial.c
6. implement ConfigEnergy() to adjust the level energies.
Version 0.6.9, 01/20/2002
1. improve the atom module.
2. updated demo scripts for the new version. added the FeL
demo scripts to calculate the FeL spectrum.
3. changed the default QkMode for excitation to EXACT.
4. added SetAbund routine to CRM.
Version 0.6.8, 01/14/2002
1. use setup.py script to install the python interface.
successfully built under Windows with Cygwin installed.
2. implement binary output, and its conversion to ASCII format.
3. changed the argument order of *Table routines, and the routine
Structure. The first argument of these routines are now always
the output file name. The routine "LevelTable" is removed.
The file name for the energy levels are now supplied to the
routine "Structure" as the first argument. Several "Structure"
calls may share the same output file.
4. implement ATOM class in "pfac.atom" module. wrote the function
"pfac.atom.atomic_data()" for systematic calculation of all
K-shell and L-shell processes.
5. fix a bug in RR, which produced nonsence for n > 10, when
hydrogenic approximation is used for them.
6. implement a collisional radiative model for the construction
of spectra. It is implemented in a separate python module
"pfac.crm", and the corresponding simple interface "scrm".
7. improved the fitting formula for collisonal excitation.
the original one fails in some cases. the current one seems
to be much better.
Version 0.6.7, 12/01/2001
1. fix the bug in RR, which causes seg. fault.
Version 0.6.6, 11/06/2001
1. Implement the non-python interface "sfac". Its input file
closely resembles the python scripts, without the flow
control constructs.
2. the module "config" is now depricated. "config.config()"
should be replaced with "fac.Config()". "config.closed()"
with "fac.Closed()", and "config.avgconfig()" with
"fac.AvgConfig()".
Version 0.6.5, 11/04/2001
1. Implement the Binary-Encouter-Dipole model for ionization.
2. Separate contributions from individual shells in the output
for photoionization and EII.
3. Calculate the Bethe limit for EIE and EII, ensuring the correct
asymptotic behavior at high energies.
Version 0.6.4, 10/25/2001
1. adding minpack routines. use an improved version of fitting
formula for PI cross sections.
2. Increased the default radial grid points from 420 to 500.
the original grid wasn't quite enough for RR onto high orbital
angular momentum states.
3. implement hydrogenic approximtion of RR and PI cross sections
for high-n and high-L states. By default, states with n >= 6
are calculated in hydrogenic approximation. this can be changed
by SetHydrogenicNL().
Version 0.6.3, 10/22/2001
1. allow the use of CBO approximation in the collisional
ionization calculation.
2. allow the specification of energy grid limits for automatic
construction via SetPEGridLimits(min, max) etc.
3. fitting of EIE collision strength is abandoned, in favor of
interpolation, which is more reliable.
Version 0.6.2, 10/19/2001
1. the fitting of RR cross sections doesn't work quite well,
changed back to interpolation.
2. added routine to prepare and load ionization Qk tables.
Version 0.6.1, 10/13/2001
1. change the default angz_cut t0 1E-3, which seem to be adequate
and makes the calculation much more efficient for large scale
problems. added SetAngZCut and SetMixCut routines.
2. allow multipole closed shells to be specified on one call to
config.closed().
3. add Makefile to python/
Version 0.6.0, 10/12/2001
1. fix a bug in the construction of central potential, which
caused the potential at very large distances incorrect, this
bug did not affected the results.
2. fix another occasional failur in the Dirac Solver.
3. implemented the paramatric fitting of collision strength,
RR cross sections and ionization cross sections.
Version 0.5.9, 10/05/2001
1. reimplemented the transition radial integrals to better
distinguish relativistic and non-relativistic approx.
2. the relativistic multipole integrals are now interpolated
from a range of transition energies, in stead of using the
average, which seems to be not enough for M1 transitions
Version 0.5.8, 10/04/2001
1. really fixed the occasionall failur of radial solver.
2. the output level names are simplified by
dropping the closed shells.
3. fix the M1 transition rates. which should almost always
use the relativistic expression.
Version 0.5.7, 10/03/2001
1. fix a bug in solving the radial orbital for the energy
initialization.
2. added the [s,p,d] notation in the configuration
specification. ie., 3[s,p] means a shell of either
3s or 3p, so is 3[0,1].
Version 0.5.6, 10/01/2001
1. fix the bug on the interpolation of PI and RR radial integrals
2. change the implementation of ionization, so that it is
possible to use precomputed tables.
Version 0.5.5, 9/24/2001,
1. Create the Package "pfac". Start Logging