Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New feature: eigenfunction subset #75

Merged
merged 43 commits into from
Sep 7, 2021
Merged

Conversation

n-claes
Copy link
Owner

@n-claes n-claes commented Aug 13, 2021

PR description

This PR adds the possibility to select which eigenfunctions need to be saved to the datfile. Previously all eigenfunctions were automatically saved, including the ones from modes that were far from resolved. This is a needless waste of datfile storage since those eigenfunctions will never be used.

Here we add some flags to the savelist namelist, where one can now provide a point in the complex plane and draw a circle around it, and only the eigenvalues inside that circle will have their eigenfunctions saved.

This PR does a complete overhaul of how eigenfunctions are treated (both for the base eigenfunctions as derived quantities thereof). Base eigenfunctions and derived quantities are now split up into submodules, eigenfunction assembly has been simplified.

Note: this PR introduces use of the Fortran intrinsic findloc, which is available from gfortran v9.0 onwards. So unless we drop support for lower gfortran versions, we should implement a workaround findloc function by simply looping through the arrays.

TODO code

  • code cleaning: some things (especially the derived eigenfunction submodule) need to be cleaned, similar routines need to be merged together in appropriate procedures for easier maintenance.
  • refactoring: some routine names/function names need to be changed: "postprocessed" -> "derived_eigenfunctions"? confusion with directory "post_processing" already present... Also, these are derived quantities and calculated on-the-fly along with the regular eigenfunctions and not during postprocessing.

TODO tests

  • add regression test(s) for the derived quantities
  • add unit tests
  • add pylbo tests
  • make sure everything new that has been added is also covered

n-claes added 27 commits July 30, 2021 13:45
@n-claes n-claes added feature Implementation of a new feature legolas-backend Under-the-hood changes to Legolas refactor Refactoring existing code labels Aug 13, 2021
@n-claes n-claes added this to the v1.1 milestone Aug 13, 2021
@n-claes n-claes self-assigned this Aug 13, 2021
@codecov
Copy link

codecov bot commented Aug 13, 2021

Codecov Report

Merging #75 (f862e0b) into develop (d10a3a3) will increase coverage by 5.41%.
The diff coverage is 85.99%.

@@             Coverage Diff             @@
##           develop      #75      +/-   ##
===========================================
+ Coverage    81.46%   86.88%   +5.41%     
===========================================
  Files           99      102       +3     
  Lines         5876     5885       +9     
===========================================
+ Hits          4787     5113     +326     
+ Misses        1089      772     -317     
Flag Coverage Δ
legolas 88.74% <99.10%> (+7.42%) ⬆️
pylbo 83.14% <61.45%> (+1.37%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

@n-claes n-claes marked this pull request as ready for review August 17, 2021 08:35
@n-claes n-claes force-pushed the feature/eigenfunc_selection branch from 3f6bd9d to e227766 Compare August 17, 2021 08:38
@n-claes n-claes merged commit 9beff37 into develop Sep 7, 2021
@n-claes n-claes deleted the feature/eigenfunc_selection branch September 7, 2021 08:02
@n-claes n-claes mentioned this pull request Oct 7, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature Implementation of a new feature legolas-backend Under-the-hood changes to Legolas refactor Refactoring existing code
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant