xcompact3d / x3d2

https://xcompact3d.github.io/x3d2
BSD 3-Clause "New" or "Revised" License
3 stars 4 forks source link

Backend structure #7

Closed semi-h closed 11 months ago

semi-h commented 1 year ago

~First commit to showcase the backend structure in the new framework. It's possible that this won't compile, but it demonstrates the main idea.~

Subsequent commits added a lot of functionality to the codebase and we can run the transport equation on the CUDA backend now.

semi-h commented 1 year ago

So as of now with the latest commit, the cuda backend that extends base backend also compiles (however extremely simplified and basically does nothing inside). Also, we have a time integrator that executes the algorithm within its subroutine called 'run'. All this is managed in the main file xcompact.f90, which is ultimately used for creating an executable.

The issue I noticed at this level is that our allocator is not advanced enough to deal with different nx, ny, nz. To fix this I need to introduce a simple functionality in the allocator using the 'bounds remapping' introduced in fortran 2003. I have already used this 'bounds remapping' technique with the nvidia compiler and gfortran and haven't got any issues.

semi-h commented 11 months ago

I fixed the issue I mentioned on Monday about kernels not being executed. Now the transport equation runs in the backend structure.

Next few days I'll work on separating a solver class from backend class and then the PR be ready to merge.