Dear all,
Im currently trying to run sunrise to get it to run,
but I am running into a problem with the Blitz library which it says as
follows:
sfrhist: sfrhist.cc:240: int main(int, char**): Assertion `blitz::isThreadsafe()' failed.
Aborted (core dumped)
So I recompiling the Blitz library just in case it had any errors.
Then I tried to recompile sunrise again but I found it does not compile. This is what I have done so far to try and fix it:
libpjutil:
interpolatort.h needed modifying - having to specify self reference this-> on returning some values.
sunrise:
original download had errors - missing header files, then found gcc-fixes branch which was better.
emission.h had issues compiling - volumetric_emission& was missing some ampersand signs so was causing reference errors.
needed to use -fpermissive with gcc to ignore some warnings.
needed to rebuild blitz++ library - default apt-get package does not include serialization/mpi option enabled.
But it still does not compile, this is the error when I try make (sorry its quite long but I don't understand the errors):
make[1]: Entering directory `/usr/local/src/sunrise/src'
[ -f hgstamp ] || touch hgstamp
echo | cmp -s hgstamp - || echo > hgstamp
g++ -DHAVE_CONFIG_H -I. -DMCRXVERSION="\"\"" -I/usr/include -I/usr/local/include -I/usr/local/include/libPJutil -I/usr/include/boost -I/usr/include/blitz -pthread -fpermissive -ggdb -O3 -I/usr/lib/openmpi/include -I/usr/lib/openmpi/include/openmpi -pthread -fpermissive -MT aux_grid_stage.o -MD -MP -MF .deps/aux_grid_stage.Tpo -c -o aux_grid_stage.o aux_grid_stage.cc
In file included from grid.h:57:0,
from emission.h:38,
from emergence.h:42,
from monitor.h:32,
from mcrx.h:36,
from grain_model.h:34,
from aux_grid_stage.cc:26:
grid_impl.h:43:16: warning: ‘mcrx::grid_cell<cell_data_type>’ is already a friend of ‘mcrx::octogrid< <template-parameter-1-1> >’ [enabled by default]
friend class grid_cell<T_data>;
^
In file included from shoot.h:36:0,
from mcrx-stage.h:43,
from aux_grid_stage.cc:29:
xfer.h:398:58: warning: declaration of ‘const T_emission& mcrx::xfer< <template-parameter-1-1>, <template-parameter-1-2> >::emission() const’ [-fpermissive]
const T_emission& emission() const { return emission_; };
^
In file included from emergence.h:42:0,
from monitor.h:32,
from mcrx.h:36,
from grain_model.h:34,
from aux_grid_stage.cc:26:
emission.h:106:13: warning: changes meaning of ‘emission’ from ‘class mcrx::emission<typename dust_model_type::T_chromatic_policy::T_base_policy, typename dust_model_type::T_rng_policy>’ [-fpermissive]
class mcrx::emission {
^
In file included from shoot.h:36:0,
from mcrx-stage.h:43,
from aux_grid_stage.cc:29:
xfer.h:426:57: warning: declaration of ‘mcrx::mpi_master<mcrx::xfer< <template-parameter-1-1>, <template-parameter-1-2> > >& mcrx::xfer< <template-parameter-1-1>, <template-parameter-1-2> >::mpi_master()’ [-fpermissive]
mpi_master<xfer>& mpi_master() { return *mpi_master_; };
^
In file included from xfer.h:39:0,
from shoot.h:36,
from mcrx-stage.h:43,
from aux_grid_stage.cc:29:
mpi_master.h:48:13: warning: changes meaning of ‘mpi_master’ from ‘class mcrx::mpi_master<mcrx::xfer< <template-parameter-1-1>, <template-parameter-1-2> > >’ [-fpermissive]
class mcrx::mpi_master {
^
In file included from grain_model_hack.h:34:0,
from mcrx-stage-impl.h:29,
from aux_grid_stage.cc:30:
molecule_grain_model.h: In member function ‘void mcrx::molecule_grain_model< <template-parameter-1-1>, <template-parameter-1-2> >::calculate_extinction_curve()’:
molecule_grain_model.h:162:5: error: ‘convert’ is not a member of ‘boost::units’
units::convert(grain_->units().get("length"),
^
molecule_grain_model.h:165:5: error: ‘convert’ is not a member of ‘boost::units’
units::convert(this->units().get("mass"),
^
make[1]: *** [aux_grid_stage.o] Error 1
make[1]: Leaving directory `/usr/local/src/sunrise/src'
make: *** [all] Error 2
Does anyone have any suggestions about how I should proceed about this, is it a problem with the boost libraries?
Also the initial problem due to the Blitz library not being built properly?
I have tried googling but it doesn't come up with anything for these problems.
Thanks in advanced,
Rhys