Hi Fatemeh,
In addition to Konrad's correct notes, I want to addresd the build issues:
"At first, I was getting a mismatch error (Assertion ndim==nbr_points.get_ndim()), which suggests an incompatibility between Spritz’s bundled Kadath and the external version of FUKA/Kadath I used to generate the initial data.
To fix this, I tried to build Spritz against my own external Kadath installation (~/fuka/lib/libkadath.a) instead of the one bundled in the Einstein Toolkit. I did this by disabling these thorns in my thornlist: Fuka/kadath_pizza, Fuka/KadathImporter and Fuka/KadathThorn. I also added the following lines to my ET_2024_05/Cactus/simfactory/mdb/optionlists/<machine>.cfg
KADATH_DIR = $(HOME)/fuka
KADATH_INC_DIRS = $(KADATH_DIR)/include
KADATH_LIB_DIRS = $(KADATH_DIR)/lib"
You are likely correct if there is a pre compiled version of Fuka with spritz. If the data was generated with the latest release (since June 25), there is a discrepancy with how the numerical domains are constructed and stored as noted in the Readme. Linking against the latest library should resolve the ndim error.
Regarding your cfg, I believe you have to use brackets, not parentheses, e.g. ${HOME_KADATH}, for the etk config parser to recognize environment variables.
All the best,
Samuel
Volunteer Physicist
Sep 5, 2025 08:04:51 Konrad Topolski <topolski@itp.uni-frankfurt.de>:
Hi Fatemeh,
The thorns you've disabled in the thornlist are responsible for the import of the data in the ADMBase / Hydrobase variables and interact directly with the FUKA exporters (in the bundled/separate FUKA installation). As such, they are necessary to import FUKA ID and simultaneously independent of the thorns you use for subsequent evolution.
The kadathimport thorn provides the headers for the import functions for specific initial data, whose implementation is then linked from libkadath.a.
I would recommend that you uncomment the thorns in the thornlist, recompile (kadath library linking is still governed by the .cfg file, which shouldn't change) and re-enable the thorns in the parameter file so that they're active and the ETK can schedule the import routines in the appropriate bins.
I was actually unaware that bnsanalysis and related analysis thorns depend on the kadath importer thorns. Is this a custom extension or is it possible that some other thorn lists them as depencencies?
In any case, doing the above should help.
Best regards
Konrad
W dniu: Czwartek, Wrzesień 04, 2025 17:02 CEST, Fatemeh Hossein Nouri <f.h.noori@gmail.com> napisał(a):
Hi all,
I’ve been trying to run Spritz using initial data generated by the latest version of FUKA for a BNS simulation, but I’ve run into issues related to the Kadath libraries.
At first, I was getting a mismatch error (
Assertion ndim==nbr_points.get_ndim()), which suggests an incompatibility between Spritz’s bundled Kadath and the external version of FUKA/Kadath I used to generate the initial data.To fix this, I tried to build Spritz against my own external Kadath installation (
~/fuka/lib/libkadath.a) instead of the one bundled in the Einstein Toolkit. I did this by disabling these thorns in my thornlist: Fuka/kadath_pizza, Fuka/KadathImporter and Fuka/KadathThorn. I also added the following lines to my ET_2024_05/Cactus/simfactory/mdb/optionlists/<machine>.cfgKADATH_DIR = $(HOME)/fuka
KADATH_INC_DIRS = $(KADATH_DIR)/include
KADATH_LIB_DIRS = $(KADATH_DIR)/lib
One question so far: Did I do things correctly?
Then I removed the old Kadath:
rm -rf configs/Spritz_LORENE/build/Kadath
The code compiles fine, but when I try to run the executable with my parameter file, using the '-S' option, I get:
Error: Thorn kadathimporter not found Error: Thorn kadaththorn not found Activation failed - 2 errors in activation sequenceThe confusing part is that my
ActiveThornsline in the.parfile does not explicitly listKadathThornorKadathImporter:ActiveThorns = "volomnia bnstrackergen bnsanalysis pizzanumutils"Yet Spritz fails because those thorns are missing. From what I understand, some of the thorns I’m using (like
volomnia,bnstrackergen, orbnsanalysis) depend onKadathThornandKadathImporter, so they are indirectly required.The core problem:
- I need to keep
KadathThornandKadathImporteractive, since my parameter file requires them through dependencies.- But I also need them to link against my external Kadath (
~/fuka/lib/libkadath.a) so that the FUKA initial data is compatible.Would you have suggestions on the cleanest way to make the ET
KadathThornandKadathImporteruse my external Kadath library? Is there a recommended workflow for this?Thanks in advance for your help!
Bests,
Fatemeh Nouri