Using mixed_dom_codim_1 branch on WSL

Hiya!

Following the suggestions made in a earlier thread, I have been looking into the mixed-dimensional functionality for FEniCSx (this one). I’d like to use this functionality in a conda environment on WSL (running Ubuntu 22.04.4 LTS), but I’m unable to find instructions online on how to go about this. Is it even possible to use side branches with conda, or do I need to use Docker instead? I’d rather not use Docker if possible, since it’s completely unfamiliar to me and I’ve heard it’s quite heavy on RAM usage. Any insight would be greatly appreciated!

Currently the mixed dimensional (codim 1) is only available from source (or maybe from a docker image if @jpdean has made one).

Many thanks for the swift reply. I tried to install the mixed_dim_forms branch of FFCx (as it’s required for mixed_codim_1), but it requires Basix version 0.9.0 or greater. It doesn’t seem version 0.9.0 has been released yet, so how do I deal with this dependency?
I also looked into installing mixed_codim_1 from source (using the DOLFINx installation guide), but as a Windows user completely inexperienced in CMake, it’s a tough read. How do I obtain the C dependencies listed in the guide (i.e. MPI, PETSc, spdlog, etc.)?

You need to install the whole toolchain (basix, ffcx, ufl and dolfinx) from source, as they are not on conda before a stable release.

Right, and how do I do that? I know how to install python projects from source, but I’ve never worked with CMake before. I’m particularly unsure on how to get all the DOLFINx dependencies like I mentioned before. Where can I get them, how do I install them, and where should I put them?

The easiest way of using the development version of dolfinx is by using the dev-env or test-env docker image, and install Basix, ufl, ffcx and dolfinx (checkout the relevant branches) in these, for instance by cloning the repos and following the instructions in:

Thanks for the instructions, I’ll look into it as soon as I have some time!