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

Refactor physics into dedicated functions #127

Merged
merged 22 commits into from
Mar 30, 2023
Merged

Refactor physics into dedicated functions #127

merged 22 commits into from
Mar 30, 2023

Conversation

n-claes
Copy link
Owner

@n-claes n-claes commented Mar 29, 2023

PR description

Similar to #126 this PR deprecates the global physics fields (rc_field, eta_field, kappa_field, grav_field, hall_field) in favour of dedicated functions.

Note that this PR breaks the Legolas API in the user submodule. The same advantages as mentioned in #126 apply. Additionally, this allows users to override a specific physics pointer and provide a custom function instead. Function signatures are the same as for the background: position-dependent and returning a real(dp) value.

For example, setting gravity:
before

real(dp) :: x
integer :: i 
do i = 1, size(grid_gauss)
  grav_field%grav(i) = 1.0d0 / x**2
end do

After this PR

call physics%set_gravity_funcs(g0)

real(dp) function g0(x)
  real(dp), intent(in) :: x 
  g0 = 1.0d0 / x**2
end function g0

New features

Legolas

  • A new physics object to govern the various physics functions.

@n-claes n-claes added legolas-backend Under-the-hood changes to Legolas performance Affects performance refactor Refactoring existing code legolas-api Changes to the Legolas user API labels Mar 29, 2023
@n-claes n-claes added this to the Legolas 2.0 milestone Mar 29, 2023
@n-claes n-claes merged commit 201b598 into develop Mar 30, 2023
@n-claes n-claes deleted the refactor/physics branch March 30, 2023 07:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
legolas-api Changes to the Legolas user API legolas-backend Under-the-hood changes to Legolas performance Affects performance refactor Refactoring existing code
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant