Releases: SixTrack/SixTrack
Releases · SixTrack/SixTrack
Version 5.5.0
Changes
Bugfixes
- Fixed bug in electron lens kick: removed gamma_electrons. PR #1097 (P. Hermes)
- Fixed a bug in aperture check for transition markers. PR #1096 (B. Lindström)
- Correcting the racetrack aperture check. PR #1094 (B. Lindström)
- Fix building with FLUKA and CR enabled. PR #1089 (J. Molson)
- Fixed call to file position variable in mod_fluka. PR #1088 (M. D'Andrea)
- Fix issue with the circular aperture check not working. PR #1086 (J. Molson)
- Added missing initialization for particles lost while channeled by a crystal collimator. PR #1081 (M. D'Andrea)
- Fix the time coordinate with geant4 collimation. PR #1078 (J. Molson)
- Fix a problem with the circular aperture check not working as expected (J. Molson)
- Fix an incorrect file header in mod_dist. (J. Molson)
- Fix the time coordinate when using geant4 based collimation. PR #1078 (J. Molson)
- Fix 2 regressions in the K2 collimation cross section calculations from version 4 to 5. PR #1077 (J. Molson)
- Fix building with gcc >= 10. PR #1076 (J. Molson)
- Fix a crash with miss-matched format strings when writing the aperture losses file with geant4 enabled (and not FLUKA). PR #1062 (J. Molson)
- Fix a mass miss-match with geant4 when entering non-ground state ions into geant4. PR #1062 (J. Molson)
- Fix building with geant4 collimation with geant4 releases >= 10.06. PR #1060 (J. Molson)
- Enable single sided collimators with geant4 collimation. PR #1060 (J. Molson)
- Do not perform the pair mapping when geant4 collimation is enabled. PR #1059 (J. Molson)
- When collimator settings are required to match those read from an old format CollDB, a separate subroutine reconstructs the family settings based on the most frequent setting in each family. PR #1053 (M. D'Andrea)
- Increased number of digits for particle ID in FirstImpacts.dat and in collimator length in coll_summary.dat (to properly display crystal collimators which are usually a few mm long). First impacts on crystal collimators are now correctly flagged and a missing check on the
dowrite_impact
flag when writing Coll_Scatter.dat has been added. PR #1053 (M. D'Andrea) - Do not update the pair mapping for non-primary particles. PR #1050 (A. Mereghetti)
- Fix pencil beam type 3 - the optics function at the entrance of the collimator were always used for beam sampling, even when those at the exit should have been used (e.g. because the beam is divergent on the cleaning plane). PR #1046 (A. Mereghetti).
- More robust detection of lxplus at compilation. PR #1045 (J. Molson).
- Fix the root build. PR #1040 (J. Molson)
User Side Changes
- Add support for dealing with neutral particles in G4/FLUKA. PR #1090 (J. Molson)
- New treatment of crystal miscut angle. PR #1069 (M. D'Andrea)
- Only disable generating fma instructions with gcc if CRLIBM is enabled.
- Foxified lenses with Chebyshev maps - PR #849 (A. Mereghetti). In addition:
- Chebyshev maps are actually used on a squared domain;
- the check against R1 and R2 takes into account rounding issues;
- max order of cheby polynomials is a parameter in the module header;
- derivatives of Chebyshev polynomials, used to compute the kick, no longer go through a dangerous division by 1-u^2;
- update chebyshev tests;
- tabular method for inputting/outputting coefficients;
- some house-keeping.
- In the HION block the PDG ID can now be set as the 5th value. PR #1062 (J. Molson)
- Collimator material names are now case insensitive in geant4. PR #1062 (J. Molson)
- If a particle interacts with a crystal collimator after having previously interacted with another or the same crystal collimator, the process ID of the previous interaction is stored in cry_interaction.dat. PR #1058 (M. D'Andrea)
- If no collimator are found for a given family, the aperture of that family is set to zero. PR #1053 (M. D'Andrea)
- When sending particles to geant4, if the particle mass is within a tolerance of the geant4 value, update the mass to this value and re-scale the particle energy. PR #1055 (J. Molson).
- Increased flexibility of e-lens module - PR #841 and #1056 (A. Mereghetti):
- elens module fully dynamic allocatable;
- give possibility to express R_1 and R_2 in sigma;
- add any ion species to be defined as possible lens beam;
- degenerate WIRE type of e-beam distribution is correctly handled;
- other changes, including:
- relativistic gamma of lens beam added to calculation of theta_R2;
- removed remaining signs of chebyshev polynomials in elens module;
- empty lines allowed in file describing the radial profile;
- fixed bug in geometric normalisation factor of GAUSSIAN and RADIAL prpofiles;
Documentation changed accordingly (user and physics manual).
- Electron lenses have been inserted into FOX - PR #839 and #1056 (A. Mereghetti).
- When specifying
XP
andYP
in theFORMAT
statement of theDIST
block, the units are parsed. Accepted values are [1], [1000], [MRAD], [RAD]. PR #1054 (A. Mereghetti)
Test Suite
- Updated tests to be in line with elens physics correction. PR #1098 (F. Van der Veken)
Code Improvements and Changes
- Scatter module cleanup and Pythia update. PR #1093 (V. Olsen)
- Collimation CR. PR #1091 (J. Molson)
- Initial C/R setup for collimation. PR#1087 (M. D'Andrea)
- Move the nucleon/energy logging in k2 collimation to after the single sided collimator check. PR #1084 (J. Molson)
- Assorted updates. PR #1083 (J. Molson)
- Add the ability to use the dump module with root output. (J. Molson)
- Always output the collimator energy loss file fort.208 in all collimation modes. (J. Molson)
- Updated some physical constants to use their now fixed values. PR #1077 (J. Molson)
- Start to enable the ability to use collimation with thick lens lattices. PR #1062 (J. Molson)
- Use global id/parent/weight variables in the FLUKA coupling. PR #1062 (J. Molson)
- Always enable the EMD physics process in geant4. PR #1062 (J. Molson)
- Allow setting particle statistical weights in geant4 PR #1062 (J. Molson)
- Add particle ID and parent ID tracking with geant4. PR #1062 (J. Molson)
- Add Si as a possible collimator material for G4. PR #1059 (J. Molson)
- Update FLUKAIO reference. PR #1057 (J. Molson)
- Print error codes from the fluka coupling. PR #1055 (J. Molson)
- Removed the un-used fluka_init_brhono function. PR #1055 (J. Molson).
- Removed updating napxo variable in the context of the Fluka-SixTrack coupling. This allows not to screw-up pair mapping in the context of DA studies. PR #1052 (A. Mereghetti)
Full Changelog: v5.4.3...v5.5.0
Version 5.4.3
Changes
Bugfixes
- Fixed parsing of the
DIFF
block where only the first element name was parsed. The remaining elements were ignored. PR #1031 (F. Schmidt, V.K. Berglyd Olsen, J. Molson) - Added a missing else statement in the DA code that was unintentionally removed when the exact drift code was added in 2014. PR #1028 (J. Molson, V.K. Berglyd Olsen)
- Fixed the conversion of zeta to sigma in
DIST
and the user manual. It was previously assuming the inverse definition ofrvv
used by SixTrackLib. PR #1027 (R. De Maria, V.K. Berglyd Olsen) - Fixed a type definition inconsistency introduced by #878 that affected the ROOT interface. PR #1026 (J. Molson)
- Fixed the
CERNLIB
build system to support 64-bit. PR #1025 (F. Schmidt, J. Molson) - Fixed a faulty loop in the FFT routine in post-processing. PR #1025 (J. Molson, F. Schmidt)
- Fixed a difference in sign in the thin combined function code. PR #1005 (T. Persson)
User Side Changes
- Minor changes to the formatting of
fort.18
to ensure correct column width. PR #1029 (J. Molson, F. Schmidt) - Added better error reporting for the FLUKA interface. PR #1028 (J. Molson)
- Particles that pass through a collimator, but don't interact with it, no longer have their coordinates changed. Previously, these particles were shifted to the closed orbit, and had their units changed, for then to be changed back after the collimator. This added unnecessary numerical noise. PR #1023 (V.K. Berglyd Olsen)
- The scatter module has been rewritten, and the PYTHIA integration updated to work with PYTHIA 8.243. This version allows for sending tracked particles, in terms of their momentum vector, as well as a sampled colliding particle, to the event generator, This means we no longer have to project a PYTHIA event onto the SixTrack particle, but can instead send the tracked particles back and forth between the codes. The Scatter and Pythia modules have been extended to allow for this. In addition, more density profile options have been added: collision with a reference particle at a given probability density, or a model of Beam 2 given by a set of Twiss parameters. The latter can also be set up to mirror Beam 1 using the internal optic parameters calculated by SixTrack. PRs #1017 and #1038 (V.K. Berglyd Olsen)
Test Suite
- Added a number of SixDA test to increase coverage of the Differential Algebra version of SixTrack. PRs #1030, #1032 (F. Schmidt, V.K. Berglyd Olsen)
BOINC Interface
- Extended the BOINC interface code to produce a new validation file for BOINC jobs. The new file supports a wider range of job types, especially jobs that do not produce a
fort.10
file. PR #878 (V.K. Berglyd Olsen, A. Mereghetti)
Code Improvements and Changes
- Cleaned up a number of unused variables throughout the SixTrack source code. PR #1037 (J. Molson)
Version 5.4.2
Changes
Bugfixes
- Fixed a missing use statement in collimation under the
ROOT
compiler flag. Root support should now build again. PR #1015 (V.K. Berglyd Olsen, J. Molson) - Removed one sigma cuts on all normal random distributions in the crystal module. These were ported over from the old version of the crystal collimation code, but never worked properly there due to a datatype bug. There should not be any such cuts in the physics in the first place, so they have now been removed. PR #1016 (M. D'Andrea, V.K. Berglyd Olsen)
- Fixed an inconsistency in the splitting tool for
singletrackfile.dat
where the header was not padded with zeroes when files were split up into particle pair files. The padding was always in the post-processing code, but not in the read90 tool which the splitting tool was derived from. Since the test suite relies on the read90 tool, the split files still passed, but user analysis codes failed. The splitting tool is now consistent with SixTrack post-processing. PR #1013 (V.K. Berglyd Olsen)
User Side Changes
- The turn number in the particle state files is now the smallest of current turn and number of particle tracked turns. Previously, the default value was always the total number of turns, and only adjusted if a particle was lost before the end of tracking. This was misleading users to think that the
initial_state.dat
file wasn't really written before tracking, as the turn number was non-zero. PR #1013 (V.K. Berglyd Olsen) - The main crystal interaction file is now written only if the
WRITE_CRYCOORD
flag is enabled in collimation. The entrance and exit files are, in addition, only written when the globalDEBUG
flag is enabled in theSETTINGS
block. PR #1019 (V.K. Berglyd Olsen, M. D'Andrea, A. Mereghetti) - Added a command line flag
--notrack
that disables tracking in SixTrack. This allows for the checking of input files and simulation initialisation without running the full job. PR #1020 (V.K. Berglyd Olsen)
Documentation
Version 5.4.1
Changes
Bugfixes
- Fixed an issue when opening
fort.208
when building with both FLUKA and G4COLLIMATION compiler flags at the same time. PR #1008 (V.K. Berglyd Olsen, J. Molson) - Fixed a bug in the efficiency calculation where the vertical sigma was not correctly calculated when filling the histograms due to a missing set of parentheses. PR #987 (V.K. Berglyd Olsen)
User Side Changes
- The collimation module now supports crystal collimation. The crystal collimation code that was written based on an older version of SixTrack has now been updated and added to SixTrack 5. Using crystal collimators requires the use of the new collimator database format. PR #1004 (M. D'Andrea, V.K. Berglyd Olsen)
- The collimation code is no longer hardcoded to assume LHC element naming convention. The collimator names are still processed assuming LHC convention when using the old input block and database format, but the new format does not rely on any naming convention. A collimator is a collimator if it's defined in the collimator database file. PR #970 (V.K. Berglyd Olsen)
- Since the collimators are no longer dependent on naming convention, the collimator stage (primary, secondary, tertiary, etc) has to be specified in the database if an on-line analysis based on these are intended. This has been added as an optional parameter in the collimator family definition. PR #986 (V.K. Berglyd Olsen)
- Collimator efficiency studies (histograps on normalised amplitudes) are now disabled by default, and need to be explicitly requested. A flag has been added to both the old and the new input block for this. The feature is by default disabled as it requires substantial amounts of memory relative to the total memory usage of SixTrack. PR #987 (V.K. Berglyd Olsen)
- Aperture tilt in the input is now specified in degrees, not radians. PR #1003 (T. Persson)
Code Improvements and Changes
- This release includes a major clean-up of the collimation code. The old collimation module has been split up into separate modules. The K2 physics routines have been split out into their own module, and connected to the crystal collimation module. The funlux code has also been moved to a new module. A lot of statistics calculations and other sections of code have been extracted and put into separate routines to make the code both more readable and to avoid duplication of code. Many unused or unneeded variables have been removed, and collimator materials have been split out into a separate module; so has a lot of shared collimator variables. A test for the
tracks2.dat
file has been added. PRs #975, #987, #997, #998 and #1002 (V.K. Berglyd Olsen, A. Mereghetti) - Exact drifts are now computed without first converting the coordinates to m and rad and then back to mm and mrad for each drift. This adds numerical noise and unnecessary CPU cost. PR #999 (V.K. Berglyd Olsen)
- Cavities and phase trombone elements now uses the general routine for updating particle energy arrays, ensuring consistency between elements. PR #1001 (V.K. Berglyd Olsen)
Version 5.4
Changes
Bug Fixes
- A series of long standing issues caused by uninitialised variables have been resolved. PRs #983 and #988 (V.K. Berglyd Olsen).
The following modules and settings were affected:- Beam--beam simulations with the
ibeco
flag set to 0. This causedNaN
particle coordinates on some systems. - In the differential algebra version of SixTrack, the longitudinal part of the normalisation matrix was uninitialised when running in 4D, but the values still used in some calculations, causing
NaN
values on some systems. - When running SixTrack with the
ntwin
parameter set to 1, post-processing would still compute the amplitude for the second particle from values not being initialised. Now, ifntwin
is not set to 2, these values are set to zero and the extra calculations skipped. - A number of variables were uninitialised in parts of the initialisation code when running 6D simulations (in subroutine
umlauda
), these have been cleared up, but are not known to have caused any issues.
- Beam--beam simulations with the
- Fixed a bug in collimation where the collimator families were not generated when using the old database file format with the new
COLL
block format. PR #984 (V.K. Berglyd Olsen, M. D'Andrea) - Fixed a bug in
aperture_losses.dat
where the header was missing the#
char so that it can be identified as a comment line for analysis code. PR #995 (A. Mereghetti, V.K. Berglyd Olsen) - Fixed an issue with writing the header of
singletrackfile.dat
where SixTrack would skip to after tracking if it failed to write to file. PR #996 (V.K. Berglyd Olsen, A. Mereghetti) - Added a check of
iostat
when closing file units in the internal file units handler module. Any error is reported to stderr and to log file. PR #996 (V.K. Berglyd Olsen, E. Mcintosh)
User Side Changes
- The STF build flag has been removed. That means SixTrack now always produces a single track file
singletrackfile.dat
instead of the optional pair track filesfort.59
-fort.90
. A tool for converting the full track file to a pair track file has been added. See the user manual for further details. PRs #967 and 989 (V.K. Berglyd Olsen, K.N. Sjobak) - A random numbers module has been added, which introduces the
RAND
block in the input file. The block gives more control over how the internal random number generators are initialised and also provides a better framework for the internal management of the various random number sequences used by different modules of the code. It is also designed to be easier to manage when using checkpoint/restart. Many modules still use their own seed, so this will be implemented gradually. Currently, the new random numbers module is only used by theDIST
block. PR #978 (V.K Berglyd Olsen) - The main debug file
dynksets.dat
inDYNK
is no longer written by default. Previously, this file could be disabled with theNOFILE
flag infort.3
. Instead, it now has to be explicitly requested with theDYNKSETS
flag. PRs #992 and #993, solving issue #982 (V.K. Berglyd Olsen) - The
TILT
build flag has been removed. The feature is now always enabled. PR #985 (V.K. Berglyd Olsen)
Version 5.3.4
Changes
Bug Fixes
- Fixing an error in the integration of the electron lens radial profiles from files. The error was twofold: (1) it had the wrong unit conversion from A/cm2 to A/mm2, and (2) integration was not deploying the rule of the trapezoid on the radius, but the lower square. PR #968 (A. Mereghetti)
- Minor fix where the collimation exit routine was not called if SixTrack was run in thin 4D mode. This only prevented some final summary files to be written, and had no effect on the simulation itself. PR #976 (V.K. Berglyd Olsen, M. D'Andrea)
User Side Changes
- Onesided collimators can now be set in the new collimation database. The LHC hard coded naming convention restrictions have been removed for the new database format, but are still in place for the old format. PRs #958 and #966 (V.K. Berglyd Olsen, A. Mereghetti)
- The option to slice the collimator jaw and apply a deformation has been added to the new collimator database format. The previous restrictions on LHC naming convention have been removed, and the slicing can now be applied to any collimator, with different fit models as needed. PR #969 (V.K Berglyd Olsen, A. Mereghetti)
- The number of beam--beam elements now scale dynamically with user input. It was previously restricted to 500 elements. PR #974 (V.K. Berglyd Olsen)
Test Suite
- A series of tests of the collimator jaw profiling has been added to ensure the code is stable through development stages. An additional output file for the jaw was added as well. PR #961 (A. Mereghetti)
Code Improvements and Changes
- The collimation jaw fit code has been cleaned up, improved for speed, and moved to a separate module. PRs #933 and #966 (V.K. Berglyd Olsen)
- The separate tracking initialisation routines for thick and thin tracking have now been merged into one routine in a dedicated tracking module. PR #977 (V.K. Berglyd Olsen)
Version 5.3.3
Changes
Bug Fixes
- Fixed bug in the
DIST
module with conversion of longitudinal emittance from eVs to µm. The conversion was off by a factor1e6
due to the energy variable being inMeV
noteV
. PR #950 (V.K. Berglyd Olsen) - Fixed bug in the
DIST
module where emittance was sent toDISTLIB
as normalised emittance, whileDISTLIB
expected geometric emittance. PR #952 (V.K. Berglyd Olsen) - Fixed a bug in binary particle state files where the internal normalisation matrix was written to file instead of the ones which have all elements scaled to the same unit. PR #952 (V.K. Berglyd Olsen)
Documentation
- Minor changes to the documentation (LaTeX manual and markdown files) to correct outdated information. PR #948 (V.K. Berglyd Olsen)
- Updated the README to add a paper that can be cited by studies using SixTrack 5. PR #949 (V.K. Berglyd Olsen, R. De Maria)
Code Improvements and Changes
- The way SixTrack keeps track of particle pairs for DA studies has changed. Earlier, the pairing was preserved by a reverse map from original particle index to the current index. The index of a particle changes when it is lost in an aperture, collimator or interaction point. The reverse map was effectively a record of the particle ID. However, since the new
DIST
module makes it possible to set the particle ID to any value, the reverse map has now been replaced by a map containing a particle pairID as well as whether it is particle 1 or 2 of the pair. This map is not under the user's control, and therefore preserves the pair structure through tracking. Rewriting the code to use this map eliminates a potential memory access violation due to a corner case when particles are lost and initiated with a non-incremental particle ID. The rewrite is otherwise identical to old functionality, and shouldn't alter any results. The main benefit is cleaner code, and the particle ID now being entirely passthrough as far as SixTrack is concerned, making it easier to interface with external codes that inject new particles into SixTrack. PR #938 (V.K. Berglyd Olsen, A. Mereghetti) - Added a check in the parsing of multi-column
STRUCT
input blocks that ensures that the element position of a given lattice element has a position larger or equal to the previous element. This prevents the accidental initialisation of negative length elements. PR #955 (V.K. Berglyd Olsen) - Moved a number of subroutines related to initialisation of beam--beam elements and elements in general out of the main
sixtrack
source file and to more appropriate files. PRs #957 and #960 (V.K. Berglyd Olsen)
Version 5.3.2
Changes
Bug Fixes
- Fixed a bug with
DUMP
format 101 when using HDF5 output. The memory map used was mixed up with the map for format 3. PR #937 (V.K. Berglyd Olsen) - Fixed a bug in the
DIST
block module where reading less than all particles of a file would fail. PR #939 (V.K. Berglyd Olsen) - Fixed an issue where calculating PDGID would overflow due to intermediate integer variables being 16 bit. PR #940 (J. Molson)
- Fixed a bug with saving int16 ion variables to HDF5 files. PR #942 (V.K. Berglyd Olsen)
Documentation
- Added full documentation of the new and improved
DIST
block. PR #941 (V.K. Berglyd Olsen)
Code Improvements and Changes
- General particle transport for FLUKA and changing FLUKAIO to a submodule pulled from the GitLab repository (requires CERN Kerberos access). PR #919 (J. Molson)
- The submodule for libArchive, and its interface and wrapper code, has been removed. PR #920 (V.K. Berglyd Olsen)
- Clean-up of the formatting of the header in a number of output files in the aperture module. PR #923 (J. Molson)
- The arrays for the per-element normalisation matrix is now no longer sparse, but instead using a compact array of structs. This reduces the memory usage of SixTrack by up to about 35%. PRs #934 and #935 (V.K. Berglyd Olsen)
- The linear optics subroutines have been moved the a new module together with the parsing of the
LINEAR OPTICS
input block. PR #936 (V.K. Berglyd Olsen)
Test Suite
- Removed unused and incomplete test
thick6dsingles
and duplicate testthick4in_da
as well as a lot of comments in the code used as "version control". PR #944 (V.K. Berglyd Olsen)
Version 5.3.1
Changes
Bug Fixes
- Fixed and issue when using the collimation module with a thin 4D simulation. In this setup, the module would not be properly initialised due to an erroneous if-condition for the initialisation call. PR #931 (V.K. Berglyd Olsen)
- Fixed a minor issue with the formatting of the tracking progress printout. PR #925 (V.K. Berglyd Olsen)
- Fixed and issue with missing labels in aperture losses file. PR #928, issue #926 (A. Gorzawski, A. Mereghetti)
Documentation
- Some inconsistencies and out-of-date information has been corrected in the user manual. PRs #921, #922 and #927 (V.K. Berglyd Olsen, R. De Maria)
Code Improvements and Changes
- The
DIST
block has been rewritten and a number of new parsing options added for integrating with a new external library for generating beam distributions. The library is not yet completed, so the new block format is not finalised or documented. However, theDIST
block is backwards compatible with the old options, and should be working as before. PRs #905 and #930 (V.K. Berglyd Olsen, T. Persson) - Particle spin arrays have been added to SixTrack intended for future code, but not yet in use. The arrays have been added nonetheless so they can be included in the new
DIST
block. PR #916 (J. Molson)
Version 5.3
Changes
Bug Fixes
- The Fortran
.eqv.
operator has a lower precedence than.eq.
. This was not accounted for in theSETTINGS
block when the particle summary output after tracking is requested. PR #902 (V.K. Berglyd Olsen, A. Mereghetti) - Fixed an issue where the wrong index value was written to the
fort.208
file used in the FLUKA coupling, making the file useless. PR #911 (A. Gorzawski, A. Mereghetti)
User Side Changes
- A new Collimation Database file format is now supported by the Collimation module. The new format is column-wise as opposed to the old single column file. The old database is converted for the user to the new format and written to a file with the same name as the old database but
.new
added to it. The new format is in preparation for adding new collimator types to the database. PR #903 (V.K. Berglyd Olsen, A. Mereghetti) - A Geant4 block
GNT4
has been added in order to use Geant4 with the collimation module. The features are enabled by building with theG4COLLIMATION
flag. PR #713 (J. Molson, A. Mereghetti, K. Sjobak) - SixTrack can now track any particle with a charge. The charge setting that exists in the
SIMU
block, and has been added to theHION
block, now properly separates the particle charge from the ion Z value. PR #713 (J. Molson, A. Mereghetti, K. Sjobak)
Build System
- Fixes to ARM and OSX builds. PR #901 (J. Molson)
- Removed the .exe in the middle of the file name when building on Windows. PR #900 (V.K. Berglyd Olsen)
- The
ZLIB
flag is now on by default, meaning theZIPF
block also works by default. PR #899 (V.K. Berglyd Olsen) - The NAFFlib submodule is updated by default during build if the user has git installed. PR #899 (V.K. Berglyd Olsen)
- Some minor tweaks to the build system were made to support AVX-512. Seems to work best when building with Intel's Fortran compiler. PR #898 (V.K. Berglyd Olsen)
Code Improvements and Changes
- The
FAST
compiler flag and code has been removed. PR #914 (R. De Maria) - The collimation beam distribution generator has been moved to a separate module named
coll_dist
and undergone a significant cleanup. A number of now redundant particle arrays have been removed in the process. PR #885 (V.K. Berglyd Olsen)