QuaLiKiz issueshttps://gitlab.com/qualikiz-group/QuaLiKiz/-/issues2023-02-24T12:57:34Zhttps://gitlab.com/qualikiz-group/QuaLiKiz/-/issues/84Tips for compiling QuaLiKiz from source on macOS2023-02-24T12:57:34ZGarud SnoepTips for compiling QuaLiKiz from source on macOSA manual for compiling QuaLiKiz from source on macOS.
Install the following:
1. Install Apple Xcode command line developer tools with `xcode-select --install` in Terminal.
2. Install [MacPorts](https://ports.macports.org) and type `port...A manual for compiling QuaLiKiz from source on macOS.
Install the following:
1. Install Apple Xcode command line developer tools with `xcode-select --install` in Terminal.
2. Install [MacPorts](https://ports.macports.org) and type `port install` the following ports [update versions if required in the future]:
- gcc12,
- openmpi,
- netcdf-fortran.
3. Download and compile the latest version of [make](https://ftp.gnu.org/gnu/make/) [macOS comes with 3.81 which is insufficient] or use MacPorts to update it.
Then in the main QuaLiKiz folder (assuming you already cloned the repo somewhere, `cd` there in Terminal, did `git submodule init` and `git submodule update`) create a file called _usercfg.make_ containing the following:
```
ifeq ($(TUBS_CONFIG_PHASE),1)
TOOLCHAIN=gcc
BUILD=debug
else
ifeq ($(TOOLCHAIN), gcc)
FC=mpif90-openmpi-mp
AR=ar rcu
QLK_EXTRA_FFLAGS=
endif
ifeq ($(TOOLCHAIN), intel)
FC=mpiifort
endif
endif
QLK_HAVE_NAG=0
VERBOSE=1
LINK=$(FC)
```
Then modify the following lines in _gcc_common.make_ in _QuaLiKiz/tubs/variants/_
```
LNKGRPBEG ?= -Wl,-\(
LNKGRPEND ?= -Wl,-\)
```
to
```
LNKGRPBEG ?= -W
LNKGRPEND ?= -W
```
In Terminal `cd` to the main QuaLiKiz folder and type `make TOOLCHAIN=gcc` (although TOOLCHAIN=gcc is optional as it should be the default already as specified in _usercfg.make_).
Assuming the compilation ends without errors QuaLiKiz is now compiled and ready for use on macOS (check if the QuaLiKiz executable appeared in _QuaLiKiz/bin/_). Hurray!https://gitlab.com/qualikiz-group/QuaLiKiz/-/issues/83Binary incompatibily and Weird NaNs on gateway2022-03-22T13:43:20ZKarel van de PlasscheBinary incompatibily and Weird NaNs on gatewayFound while implementing CI for EU gateway. See Weird Failure of CI both with Docker (https://gitlab.eufus.psnc.pl/qualikiz-group/QuaLiKiz/-/jobs/3197) and running on bare metal (https://gitlab.eufus.psnc.pl/qualikiz-group/QuaLiKiz/-/job...Found while implementing CI for EU gateway. See Weird Failure of CI both with Docker (https://gitlab.eufus.psnc.pl/qualikiz-group/QuaLiKiz/-/jobs/3197) and running on bare metal (https://gitlab.eufus.psnc.pl/qualikiz-group/QuaLiKiz/-/jobs/2771) Seems unrelated to both rotation and collisions, so we can use `jcitrin_TEM_base_case_nocoll` as our base testcase.
TODO:
- [ ] Check if related to https://gitlab.com/qualikiz-group/QuaLiKiz/-/issues/48Jonathan CitrinKarel van de PlasscheJonathan Citrinhttps://gitlab.com/qualikiz-group/QuaLiKiz/-/issues/80Remove function redundancies and simplify function naming2020-10-12T15:10:53ZJonathan CitrinRemove function redundancies and simplify function namingcalltrapints.f90 and callpassints.f90 have a lot of redundancies in the functions, then can be reduced (e.g. unify ion and electron function calls, and differentiate with fdata(2)).
Also, function names are a bit confusing. All function...calltrapints.f90 and callpassints.f90 have a lot of redundancies in the functions, then can be reduced (e.g. unify ion and electron function calls, and differentiate with fdata(2)).
Also, function names are a bit confusing. All function names are with "QL", even though they are called both in the dispersion relation solver and for the QL fluxeshttps://gitlab.com/qualikiz-group/QuaLiKiz/-/issues/78Improve hcub code quality and debuggability2020-09-09T11:40:06ZKarel van de PlasscheImprove hcub code quality and debuggabilityWe should make it safer memory-wise (e.g. array bounds) and message/debuggability-wise (e.g. _why_ and _where_ does the routine fail).We should make it safer memory-wise (e.g. array bounds) and message/debuggability-wise (e.g. _why_ and _where_ does the routine fail).Cole StephensCole Stephenshttps://gitlab.com/qualikiz-group/QuaLiKiz/-/issues/77Fix dependencies of diskio2020-09-08T08:53:32ZKarel van de PlasscheFix dependencies of diskioThe following discussion from !77 should be addressed:
- [ ] @Karel-van-de-Plassche started a [discussion](https://gitlab.com/qualikiz-group/QuaLiKiz/-/merge_requests/77#note_399236473):
> Looks like this blurb does not set the de...The following discussion from !77 should be addressed:
- [ ] @Karel-van-de-Plassche started a [discussion](https://gitlab.com/qualikiz-group/QuaLiKiz/-/merge_requests/77#note_399236473):
> Looks like this blurb does not set the dependencies correctly (e.g. it does not end up in `FORT_MOD_DEPEND_/home/karel/working/QuaLiKiz/src/diskio.f90`), seen this before @billeter? How do you handle these 'generated file' dependencies in TCI @parstrand?Pär StrandPär Strandhttps://gitlab.com/qualikiz-group/QuaLiKiz/-/issues/74QuaLiKiz does not handle partial build dependencies correctly2020-12-09T20:33:30ZKarel van de PlasscheQuaLiKiz does not handle partial build dependencies correctlyOpening here for visibility, but this seems to be a TUBS issue (https://gitlab.com/tci-dev/tubs)
QuaLiKiz does not handle partial builds (builds without `make clean`) anymore. I think this is a TUBS issue. Will see if I can fix this eas...Opening here for visibility, but this seems to be a TUBS issue (https://gitlab.com/tci-dev/tubs)
QuaLiKiz does not handle partial builds (builds without `make clean`) anymore. I think this is a TUBS issue. Will see if I can fix this easily, or otherwise escalate to TUBS dev team (ps. the TUBS-proto in `tci/defs` has this problem too!). You can easily test this by doing a clean build first (`git checkout master; git pull; git submodule update --init; make clean; make`)
Rebuilding (`make`) just triggers a rebuild of `qlk_tci_module.f90` and dependencies (forced by me for historic reasons, so expected). Touch something that other modules depend on. For example, `touch src/calcroutines.f90`, should trigger rebuild of `src/qualikiz.[m]o[d]`, as `$(call LOCAL_mod_dep, src/qualikiz.f90, mod_make_io.mod calcroutines.mod mod_saturation.mod )`. This only rebuilds `calcroutines.f90`, not `qualikiz.f90`.
I've had users running into trouble (myself, @aaronkho, @cdstephens, @jon.citrin) already, so this needs to be fixed quickly.
Should also impact ETS (@parstrand) and JETTO (@francis.casson)
TODO:
- See if it's just a `*.mod` and `*.o` rule messing up. Thanks @daanvanvugtKarel van de PlasscheKarel van de Plasschehttps://gitlab.com/qualikiz-group/QuaLiKiz/-/issues/73Ion D+V consistency with total ion flux breaks with rotation2020-08-25T15:24:07ZJonathan CitrinIon D+V consistency with total ion flux breaks with rotationMight be a bug with rot_flag > 0 . With both NAG and HCUB, cki is consistently high (order 50%) with rotation, even at lower relacc.
Thankfully ambipolarity is fine, and gets better with lower relacc.
This points to a potential issue...Might be a bug with rot_flag > 0 . With both NAG and HCUB, cki is consistently high (order 50%) with rotation, even at lower relacc.
Thankfully ambipolarity is fine, and gets better with lower relacc.
This points to a potential issue with either dfi, vci, vti calculations with rotation.
Does not impact current integrated modelling results, which uses total ion particle flux (which is ambipolar). But it does impact D and V datasets for NN regression.
Thank you @aaronkho for exposing and reporting thisJonathan CitrinJonathan Citrinhttps://gitlab.com/qualikiz-group/QuaLiKiz/-/issues/70Saturation Rule Documentation2020-04-23T12:43:56ZHarry DuddingSaturation Rule DocumentationIn the wiki's documentation on the saturation rule (https://gitlab.com/qualikiz-group/QuaLiKiz-documents/-/blob/master/reports/saturation_rule.pdf) the length scale used in equation (9) and onwards is the minor radius *a*, however with r...In the wiki's documentation on the saturation rule (https://gitlab.com/qualikiz-group/QuaLiKiz-documents/-/blob/master/reports/saturation_rule.pdf) the length scale used in equation (9) and onwards is the minor radius *a*, however with reference to lines 440, 441, 445 and 446 of mod_saturation.f90 in the source code it seems that in QuaLiKiz *R_0* is used (see also equation (4.13) in https://gitlab.com/qualikiz-group/QuaLiKiz-documents/-/blob/master/reports/HDR_bourdelle_jan2015_final_more_details.pdf).
The use of *a* in the gyrobohm normalisations (equations (27), (28) and (29) of the sat. rule documentation) seems to still be correct.
Additionally, there is a typo in equation (23), with both cases using '>'.Jonathan CitrinJonathan Citrinhttps://gitlab.com/qualikiz-group/QuaLiKiz/-/issues/68Random partial missing output files in rare cases on Marconi2020-03-26T12:24:43ZKarel van de PlasscheRandom partial missing output files in rare cases on MarconiIn a large-scale run by @aaronkho, it was found that sometimes a part of an output file was missing. On re-run, the file was generated as normal. Unknown if this is related to the Marconi disk system, as in @Karel-van-de-Plassche's large...In a large-scale run by @aaronkho, it was found that sometimes a part of an output file was missing. On re-run, the file was generated as normal. Unknown if this is related to the Marconi disk system, as in @Karel-van-de-Plassche's large run on Edison NERSC, this was never found, nor in standalone runs elsewhere. Seems to happen randomly for a tiny amount of cases (XX out of XX runs). Won't fix (for now), as it is sufficiently rare that a manual re-run is cheap. https://gitlab.com/qualikiz-group/QuaLiKiz/-/issues/64Check contour fix for Te/Ti >> 12019-08-30T15:01:38ZJonathan CitrinCheck contour fix for Te/Ti >> 1Following 01f5bf70, the all contour boundaries now properly scale with Te. However, for Te/Ti>>1 cases (possible at low density and significant electron heating), for ITG modes it may be better to scale the contours with Ti, at least on...Following 01f5bf70, the all contour boundaries now properly scale with Te. However, for Te/Ti>>1 cases (possible at low density and significant electron heating), for ITG modes it may be better to scale the contours with Ti, at least on the ion side of the complex plane. This should be investigated, starting with a Ti/Te scan of ITG and at least see if modes are robustly found as Ti/Te decreases a lot (as they should be)https://gitlab.com/qualikiz-group/QuaLiKiz/-/issues/63Coordinate COnvetionS (COCOS) for QuaLiKiz2019-08-28T15:30:11ZKarel van de PlasscheCoordinate COnvetionS (COCOS) for QuaLiKizWould be beneficial to choose a self-consistent coordinate system for QuaLiKiz (or to figure out if it already is). For TCI integration and GKDB coupling. See here for more information + paper describing the different systems: https://cr...Would be beneficial to choose a self-consistent coordinate system for QuaLiKiz (or to figure out if it already is). For TCI integration and GKDB coupling. See here for more information + paper describing the different systems: https://crppwww.epfl.ch/~sauter/cocos/
@parstrandJonathan CitrinJonathan Citrinhttps://gitlab.com/qualikiz-group/QuaLiKiz/-/issues/62Segmentation fault when all ions have Ti/Te > 52019-09-02T07:24:51ZAaronSegmentation fault when all ions have Ti/Te > 5commit: 647f3c123bd6da42f02c2303f68a654d02528eaf
problem introduced in: 06f0967db21b7cb7dda1db6632282bf3ad2325cc
Code removes all ions with Ti/Te > 5 from the fluid solution step. This causes a segmentation fault if all ions fulfill th...commit: 647f3c123bd6da42f02c2303f68a654d02528eaf
problem introduced in: 06f0967db21b7cb7dda1db6632282bf3ad2325cc
Code removes all ions with Ti/Te > 5 from the fluid solution step. This causes a segmentation fault if all ions fulfill this condition. Input parameter file and output log are attached.
It also seems to be generating a new ion species (ion=4) in this case. Is this desired behaviour? As this scenario is unlikely to occur in practice, a more descriptive error message would be a sufficient fix.
For longer term, would it make more sense for this piece of automation to be on the interface level? I am unfamiliar with the exact fast ion implementation in QuaLiKiz, but I would have thought the `typei` variable was meant to handle these situation.
[parameters.json](/uploads/f04c12bcb75c260ff4a5bbbde2c76d22/parameters.json)
[error_log.txt](/uploads/abd8b0c7a8e03623cc32515e421601ab/error_log.txt)Jonathan CitrinJonathan Citrinhttps://gitlab.com/qualikiz-group/QuaLiKiz/-/issues/61Set up procedure to couple with ASTRA2020-07-03T09:38:34ZKarel van de PlasscheSet up procedure to couple with ASTRATriggered by https://gitlab.com/qualikiz-group/QuaLiKiz-pythontools/issues/6. How is QLK coupled to ASTRA now, and can we improve here?Triggered by https://gitlab.com/qualikiz-group/QuaLiKiz-pythontools/issues/6. How is QLK coupled to ASTRA now, and can we improve here?https://gitlab.com/qualikiz-group/QuaLiKiz/-/issues/58Real part of flux integrals2019-05-28T09:24:26ZCamille GillotReal part of flux integralsHello,
For my PhD work, I need to compare phase relationships between GYSELA and Qualikiz outputs.
To do that, both real and imaginary parts of the flux integral are required.
I already have a (dirty) local branch reintroducing the com...Hello,
For my PhD work, I need to compare phase relationships between GYSELA and Qualikiz outputs.
To do that, both real and imaginary parts of the flux integral are required.
I already have a (dirty) local branch reintroducing the computation of the real parts of all the flux integrals.
This issue is intended as a reminder to leave a practical way to reactivate those computations
when refactoring the code.https://gitlab.com/qualikiz-group/QuaLiKiz/-/issues/57Increase consistency between Ro and R0 throughout code.2022-12-15T11:47:04ZJonathan CitrinIncrease consistency between Ro and R0 throughout code.Consider removing R0 entirely. Linked also with assumptions made in input file (the reference length for Ati, Ate, Ane).
In addition, consider changing from R0 to Rmin in the fi factor in the saturation rule. Arbitrary choice, but may i...Consider removing R0 entirely. Linked also with assumptions made in input file (the reference length for Ati, Ate, Ane).
In addition, consider changing from R0 to Rmin in the fi factor in the saturation rule. Arbitrary choice, but may impact aspect ratio scalingshttps://gitlab.com/qualikiz-group/QuaLiKiz/-/issues/56Use global namespaces sparingly2019-05-20T16:07:15ZFrancis CassonUse global namespaces sparinglyThis issue applies to QLK, QLKNN, (and TCI generally @parstrand, @Karel-van-de-Plassche, @jon.citrin ).
When QLKNN was added to TCI (https://git.ccfe.ac.uk/jintrac/jetto-sanco/merge_requests/135), it took some work to get it working f...This issue applies to QLK, QLKNN, (and TCI generally @parstrand, @Karel-van-de-Plassche, @jon.citrin ).
When QLKNN was added to TCI (https://git.ccfe.ac.uk/jintrac/jetto-sanco/merge_requests/135), it took some work to get it working for the gfortran build (after the PGI build was already working). This was due to rather liberal important of namespaces from one module to another, ending up clashing in TCI_link.
TCI now imports more and more code from different places, so it needs to get more careful about separating its namespaces.
I fixed the QLKNN in TCI gfortran build, without touching the QLKNN submodule, by making TCI import a lot less from the global namespaces of the models (which is a good thing for TCI generally). You can see in https://git.ccfe.ac.uk/jintrac/jetto-sanco/merge_requests/135 that this took a few commits (because it then broke the PGI build!).
This exercise generated some additional suggestions / rule to follow in the QLK and QLKNN and TCI programming:
1. Avoid use statements at the top module level unless absolutely necessary.
2. Avoid general use statements (without the "only" directive). Allow limited exceptions for modules with well defined out namespaces, e.g. `use mpi`, `use TCI_base`
3. If you need a module you can import generally, e.g. QLKNN_types, then prefix everything with its own namespace, like `mpi_` does ("qe" or "sp" may a bad idea for a module level variable name in a module like QLKNN_types or TCI_kinds).
Rules like these were the most important rules we had in GKW: the bigger a code gets, the more important they become. If you show a Fortran code like this to an object orientated programmer they will be horrified - applying these rules mitigates against the worst problems of global namespace pollution (ETS / Kepler / FC2K solves this problem, but only at the level above TCI!).https://gitlab.com/qualikiz-group/QuaLiKiz/-/issues/55dataslicer nicer2019-04-11T15:28:11Zbourdelledataslicer nicerThe idea would be to have a page for:
- dataslicer vs NN fit as it exists now, allowing to look at fluxes etc
- dataslider with only QLK runs and plotting gammas and omegas vs x=R/Ln and y=R/LTi while choosing k_theta, R_LTe/R/LTi and al...The idea would be to have a page for:
- dataslicer vs NN fit as it exists now, allowing to look at fluxes etc
- dataslider with only QLK runs and plotting gammas and omegas vs x=R/Ln and y=R/LTi while choosing k_theta, R_LTe/R/LTi and all the rest. The figures I have in mind are frontiers btw stable and unstable and ion drifting domain and electron drifting domain, as this figure from Casati PoP2009
![image](/uploads/8360386cd4e3646e0880157c42943a8f/image.png)Karel van de PlasscheKarel van de Plasschehttps://gitlab.com/qualikiz-group/QuaLiKiz/-/issues/54Electromagnetic QuaLiKiz!2019-04-11T20:46:09ZJonathan CitrinElectromagnetic QuaLiKiz!Small enhancement, no problem ;)
Can look at Falchetto PhD for some ideas, as well as standard derivationsSmall enhancement, no problem ;)
Can look at Falchetto PhD for some ideas, as well as standard derivationshttps://gitlab.com/qualikiz-group/QuaLiKiz/-/issues/53Add impact of elongation (\kappa) to QuaLiKiz2019-04-11T20:46:31ZJonathan CitrinAdd impact of elongation (\kappa) to QuaLiKizTest shortcut by modification of gradB drift, vs linear-GENE runs with Miller geometryTest shortcut by modification of gradB drift, vs linear-GENE runs with Miller geometryhttps://gitlab.com/qualikiz-group/QuaLiKiz/-/issues/50Investigate deeper rotodiffusion and CF effects, and traceW assumption2019-04-11T10:29:23ZJonathan CitrinInvestigate deeper rotodiffusion and CF effects, and traceW assumptionRotodiffusion output can be erratic. Need proper validation exercise against higher-fidelity GK and to investigate deeper the formulation within QuaLiKiz. Can be important for impurities
Also, CF effects are not really usable, due to la...Rotodiffusion output can be erratic. Need proper validation exercise against higher-fidelity GK and to investigate deeper the formulation within QuaLiKiz. Can be important for impurities
Also, CF effects are not really usable, due to lack of consistent consistency between full fluxes and D/V split integration. Likely this will improve in more robust NAGless version. To be investigated.
And check to what level of W concentration the assumption fails that the LFS W concentration has no direct impact