Skip to content

Reply To: Manipulating populations with postprocessors on GPU

Due to recent bot attacks we have changed the sign-up process. If you want to participate in our forum, first register on this website and then send a message via our contact form.

Forums OpenLB General Topics Manipulating populations with postprocessors on GPU Reply To: Manipulating populations with postprocessors on GPU

#10972
jmctighe
Participant

The data is set up as it should be in Paraview. I believe the issue with the post processor was that the surface normal vector was being initially computed as nan. I noticed that there is an if-statement in the turbulentWallModelPostProcessor to only execute the necessary computations if the magnitude of the surface normal vector is non-zero. The shear periodic BC works when I include the same if-statement, and now the code runs on the CPU. A minor success!

On the GPU, the code will begin to run but encounters the following error at the beginning of the time stepping loop: Thread 1 "hst3d" received signal CUDA_EXCEPTION_4, Warp Illegal Instruction. I assume the error is encountered while executing the post processor.

To answer one of your earlier questions, the overlap is kept at 3, as done in the setTurbulentWallModel function. The furthest possible neighbor cell would be in the opposite corner of the domain. Any given boundary cell needs to ‘see’ all of the cells in the flow on the other side of the domain. If I change the overlap to encompass the entire domain, the code runs into the same error. I am wondering if the error on the GPU is related to the range over which neighboring cell data needs to be retrieved.

How would I go about switching the processing context before execution of the post processor? At this point, I can send you the entire code if you think it would be helpful.