It looks like I have found part of my confusion. I have now reinstalled firedrake with PETSC_DIR unset, so there is an old PETSc (i.e. 3.4.2) inside the firedrake directory. But if I run activate later it seems to use the value of PETSC_DIR at that time. This is my working explanation for why I get seg faults and why "gdb --args python3 MYSCRIPT.py" shows backtraces with the wrong PETSc (i.e. the 3.9 version I am using for other purposes). So it looks like I should do $ unset PETSC_DIR $ source firedrake/bin/activate every time I start firedrake? Is this the correct action if one has PETSC_DIR set? Ed -- Ed Bueler Dept of Math and Stat and Geophysical Institute University of Alaska Fairbanks Fairbanks, AK 99775-6660 301C Chapman
On 24 Apr 2018, at 22:00, Ed Bueler <elbueler@alaska.edu> wrote:
It looks like I have found part of my confusion.
I have now reinstalled firedrake with PETSC_DIR unset, so there is an old PETSc (i.e. 3.4.2) inside the firedrake directory. But if I run activate later it seems to use the value of PETSC_DIR at that time.
I'll reiterate that firedrake runs with (basically) petsc master. However, we had issues with changes not being made simultaneously in petsc and petsc4py. Hence we maintain a fork with known good branch pointers for both (and slepc and slepc4py). These are the "firedrake" branches you can see at github.com/firedrakeproject/petsc etc... firedrake-install clones and builds these packages. If you have PETSC_DIR set then it complains (or it should). You can run with your prebuilt petsc: run the install with --honour-petsc-dir. But we don't guarantee that you will get all the different bits matching.
This is my working explanation for why I get seg faults and why "gdb --args python3 MYSCRIPT.py" shows backtraces with the wrong PETSc (i.e. the 3.9 version I am using for other purposes).
So it looks like I should do
$ unset PETSC_DIR $ source firedrake/bin/activate
every time I start firedrake? Is this the correct action if one has PETSC_DIR set?
I think so yes. It's possible that this env variable interferes with the library that petsc4py loads, and if things have changed, maybe you get issues. Make sense? Cheers, Lawrence
participants (2)
- 
                
                Ed Bueler
- 
                
                Lawrence Mitchell