# Crixus still supported?

**URL:** <https://gpusph.discourse.group/t/crixus-still-supported/53>\
**Category:** Development\
**Created:** [September 17, 2019, 9:42am UTC](https://gpusph.discourse.group/t/crixus-still-supported/53 "2019-09-17T09:42:11Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![GWAVE](https://avatars.discourse-cdn.com/v4/letter/g/4af34b/32.png) [@GWAVE](https://gpusph.discourse.group/u/GWAVE)\
**Post date:** [September 17, 2019, 9:42am UTC](https://gpusph.discourse.group/t/crixus-still-supported/53/1 "2019-09-17T09:42:11Z")

</div>

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
```

---

<div class="post-metadata">

**Author:** ![giuseppe.bilotta](https://yyz2.discourse-cdn.com/free1/user_avatar/gpusph.discourse.group/giuseppe.bilotta/32/72_2.png) [@giuseppe.bilotta](https://gpusph.discourse.group/u/giuseppe.bilotta)\
**Post date:** [September 17, 2019, 8:02pm UTC](https://gpusph.discourse.group/t/crixus-still-supported/53/2 "2019-09-17T20:02:35Z")

</div>

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)

---

<div class="post-metadata">

**Author:** ![GWAVE](https://avatars.discourse-cdn.com/v4/letter/g/4af34b/32.png) [@GWAVE](https://gpusph.discourse.group/u/GWAVE)\
**Post date:** [September 18, 2019, 1:34am UTC](https://gpusph.discourse.group/t/crixus-still-supported/53/3 "2019-09-18T01:34:39Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![giuseppe.bilotta](https://yyz2.discourse-cdn.com/free1/user_avatar/gpusph.discourse.group/giuseppe.bilotta/32/72_2.png) [@giuseppe.bilotta](https://gpusph.discourse.group/u/giuseppe.bilotta)\
**Post date:** [September 27, 2019, 2:36pm UTC](https://gpusph.discourse.group/t/crixus-still-supported/53/4 "2019-09-27T14:36:14Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![GWAVE](https://avatars.discourse-cdn.com/v4/letter/g/4af34b/32.png) [@GWAVE](https://gpusph.discourse.group/u/GWAVE)\
**Post date:** [December 4, 2019, 12:56am UTC](https://gpusph.discourse.group/t/crixus-still-supported/53/5 "2019-12-04T00:56:53Z")

</div>

@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](https://gpusph.discourse.group/t/simulation-does-not-converge-with-decreasing-inter-particle-spacing/97)). 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”?

---

<div class="post-metadata">

**Author:** ![giuseppe.bilotta](https://yyz2.discourse-cdn.com/free1/user_avatar/gpusph.discourse.group/giuseppe.bilotta/32/72_2.png) [@giuseppe.bilotta](https://gpusph.discourse.group/u/giuseppe.bilotta)\
**Post date:** [December 4, 2019, 10:21am UTC](https://gpusph.discourse.group/t/crixus-still-supported/53/6 "2019-12-04T10:21:25Z")

</div>

@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.)
