Closed guillaumetousignant closed 3 years ago
Possibly related to #1
Is not caused by interpolation, tested by outputting phi directly.
This doesn't work with the wave equation and Burger's.
Works fine with the CPU implementation.
Removing rk3 and timestepping directly seems to fix it. I suspect it has something to do with the element intermediate_ array. Maybe I should zero it out, as it is now as soon as there is a nan it will break for subsequent iterations.
Storing stuff in intermediate_ doesn't work...?
This is caused by calling new in the element constructor. I think the memory overlaps at some points. Allocating all the memory using the cpu with cudamalloc and then passing the pointers as arguments works. The total runtime then becomes about 4 times slower, and I think it will make adaptivity harder.
It was a move issue, pointers suck, I didn't follow the rule of five (my bad), I should find out how to use vectors on the gpu.
N = 64 works fine, N = 128 is basically impossible to make work at any CFL, making weird curves appear.