amusecode / amuse

Astrophysical Multipurpose Software Environment. This is the main repository for AMUSE
http://www.amusecode.org
Apache License 2.0
152 stars 98 forks source link

install issue #1004

Closed cconroy20 closed 8 months ago

cconroy20 commented 8 months ago

Hi, I'm new to amuse and am struggling to get the programs installed. I am installing on a cluster, and have followed the instructions here: https://github.com/amusecode/amuse/blob/main/doc/install/howto-install-AMUSE.rst

Everything seems to install fine (no errors thrown).

this is the current error I'm getting:

Traceback (most recent call last): File "/n/holystore01/LABS/conroy_lab/Lab/cconroy/nbody/evolution_cluster.py", line 308, in t, x, y, z = evolution.evolution_of_the_cluster(star_cluster) File "/n/holystore01/LABS/conroy_lab/Lab/cconroy/nbody/evolution_cluster.py", line 233, in evolution_of_the_cluster gravity.parameters.timestep = self.dt_bridge/3. File "/n/home12/cconroy/amuse-env2/lib/python3.10/site-packages/amuse/datamodel/parameters.py", line 338, in setattr f"'{type(self._original()).name}' object" TypeError: 'ParametersWithDocs' object is not callable

any help would be most appreciated! thanks, Charlie

LourensVeen commented 8 months ago

Hi Charlie,

Clusters are always tricky, especially when they're HPC clusters :upside_down_face: . Just to check, I guess you followed the "Installation on HPC systems using modules (tested for Snellius)" instructions at the bottom of that page, right? And you're running an unmodified version of https://github.com/amusecode/amuse/blob/main/examples/examples_galaxia/evolution_cluster.py ?

I haven't seen this before, but I'm looking into it.

cconroy20 commented 8 months ago

I did modify the evol code, but I just pulled the unmodified version and now I get a different error (!) - the original code uses Huayno, whereas I had changed it to use Ph4.

Here are the amuse things I have installed: [cconroy@boslogin04 nbody]$ pip list | grep amuse amuse-framework 2023.10.0 amuse-galaxia 2023.10.0 amuse-hermite 2023.10.0 amuse-ph4 2023.10.0

My slurm script for submitting this job looks like this, for what it's worth:

!/bin/bash

SBATCH -J amuse_test

SBATCH -n 2 # Number of cores requested

SBATCH -N 1 # Ensure that all cores are on one machine

SBATCH -t 2:00:00 # Runtime

SBATCH -p conroy_priority # Partition to submit to

SBATCH --mem-per-cpu=4000 # Memory per cpu in MB (see also --mem)

SBATCH -o /dev/null # Standard out goes to this file

SBATCH -e /dev/null # Standard err goes to this file

module load gcc/12.2.0-fasrc01 python/3.10.9-fasrc01 openmpi/4.1.5-fasrc01 cmake/3.27.5-fasrc01 source /n/home12/cconroy/amuse-env2/bin/activate cd /n/holystore01/LABS/conroy_lab/Lab/cconroy/nbody mpirun -n 1 python evolution_cluster.py >& out

does anything jump out at being off? thanks!

rieder commented 8 months ago

Hi,

Yes that makes it clear where the error originated - ph4 doesn't have a timestep parameter that is settable, it calculates this by itself. If you remove that line it should be ok.

Steven

rieder commented 8 months ago

The error message could be clearer...

LourensVeen commented 8 months ago

There's a bug actually: while generating the error message to put into the exception it's going to throw at https://github.com/amusecode/amuse/blob/530e7f4bd3384272a80a595d254f98ec02fe2d2c/src/amuse/datamodel/parameters.py#L336 it tries to call self._original, which isn't callable. So that raises an exception, which is what Charlie posted above.

If that had worked properly, then there would have been a good error message, and the problem would have been obvious.

LourensVeen commented 8 months ago

This code was added in https://github.com/amusecode/amuse/pull/589. I'm not sure if it ever worked, and it seems that neither you nor Inti knew what the second part of the message was for.

It seems to me like it would make sense to print the name of the model here, so that (in the above case) you'd get something like Could not set unknown parameter 'timestep' on model of type 'ph4'. I'm not sure if we can get that information from where we are. There sure are many classes here, and dunders, and reflection...

cconroy20 commented 8 months ago

thanks for the help! things are working now...

cconroy20 commented 8 months ago

if I can hijack my own thread: can someone explain what the file binev.data is producing? Or point me to the relevant documentation? thanks!

rieder commented 8 months ago

This file relates to binary star evolution, and is created by the SeBa code.

cconroy20 commented 8 months ago

thanks. Does amuse label in some way which stars are in binaries (and who their companion is), or does this need to be identified in post-processing?