Crixus still supported?

I’m installing GPUSPH for the first time and I was able to get everything installed for CUDA + GPUSPH + Chrono. I’m now trying to install some of the pre and post processing tools, specifically Crixus. I ran into an error during the build process and I have no idea how to fix it. I went over to the host Github page and I see the developer is no longer active with the project. Therefore I’m not sure how to fix the issue (see error output below).

My first question…is Crixus still considered as a pre processing tool for GPUSPH? Are there actively supported alternatives to Crixus?

Lastly, if it is the standard pre processor, can anyone help me debug this error? I know it is something to do with compute capability (sm_20), but in the build process I don’t know how to fix this to match my system.

-- Build files have been written to: ~/install_crixus/build
[ 11%] Building NVCC (Device) object src/CMakeFiles/cuCore.dir/cuCore_generated_crixus_d.cu.o
nvcc fatal   : Value 'sm_20' is not defined for option 'gpu-architecture'
CMake Error at cuCore_generated_crixus_d.cu.o.Release.cmake:219 (message):
  Error generating
  ~/install_crixus/build/src/CMakeFiles/cuCore.dir//./cuCore_generated_crixus_d.cu.o


make[2]: *** [src/CMakeFiles/cuCore.dir/cuCore_generated_crixus_d.cu.o] Error 1
make[1]: *** [src/CMakeFiles/cuCore.dir/all] Error 2
make: *** [all] Error 2

Hello @GWAVE,

the situation with Crixus is a bit in a limbo presently. As a quick fix to your issue, you can edit CMakeLists.txt to edit the line that reads

set(CUDA_NVCC_FLAGS "-arch=sm_20")

replacing the 20 with the compute architecture of your device (e.g 61 for a 6.1 device such as the Titan Xp)

OK…I was able to compile. Thanks for your help!

Small note on your instructions…Using cmake, you are always suppose to isolate source from build directories. The file “CMakeLists.txt” (referenced in the solution) is found in the source directory where you downloaded/cloned the files from Github.

Why not add this simple instruction to the installation documents? Might be temporary fix, but the installation docs are broken without this patch.

On another note, you say “Crixus is in limbo”…what does the future hold? Just curious.

Hello @GWAVE, by “in limbo” I mean that there is currently no active maintainer (hence the lack of CMake and documentation update). We hope to resolve this soon, but I cannot provide an ETA.

@giuseppe.bilotta in case you didn’t see my latest post, I had noticed some issues with the initialization of the Wave Tank domain (Simulation does not converge with decreasing inter-particle spacing). Given the many research papers and examples utilizing GPUSPH, I’m wondering if “Crixus” is still the preferred method for building complex problems with abstract geometries? I’ve recently put some serious effort into learning this approach as it gives MUCH more freedom for applications. However, as you’ve indicated, the documentation is lacking…not only from “Crixus” but also from GPUSPH. Just to follow up with our previous discussion…am I wasting my time trying to learn how to use “Crixus”?

@GWAVE, Crixus is still necessary for use with the semi-analytical boundary model. For other boundary models, it is not necessary (and probably never will be), which is why most non-SA examples in GPUSPH don’t use it, and instead build the domain using the internal geometry library. The latter has a few quirks at the moment, but can be used to write (and fill) complex geometries as well. (We do have plans to redesign the internal geometry library in a less quirky way too, but, again, I cannot provide an ETA.)