mirror of
https://github.com/cosmo-sims/MUSIC.git
synced 2024-09-19 17:03:46 +02:00
minor fixes
This commit is contained in:
parent
c48c73488a
commit
288749aea9
7 changed files with 30 additions and 32 deletions
2
Makefile
2
Makefile
|
@ -45,7 +45,7 @@ endif
|
|||
CFLAGS += $(OPT)
|
||||
TARGET = MUSIC
|
||||
OBJS = output.o transfer_function.o Numerics.o \
|
||||
convolution_kernel.o densities.o cosmology.o main.o \
|
||||
convolution_kernel.o densities.o cosmology.o poisson.o main.o \
|
||||
$(patsubst plugins/%.cc,plugins/%.o,$(wildcard plugins/*.cc))
|
||||
|
||||
##############################################################################
|
||||
|
|
15
densities.cc
15
densities.cc
|
@ -264,12 +264,8 @@ void GenerateDensityHierarchy( config_file& cf, transfer_function *ptf, tf_type
|
|||
#endif
|
||||
|
||||
convolution::parameters conv_param;
|
||||
//conv_param.boxlength = boxlength;
|
||||
conv_param.ptf = ptf;
|
||||
conv_param.pcf = &cf;
|
||||
//conv_param.cosmo = cosmo;
|
||||
|
||||
|
||||
|
||||
|
||||
//... compute absolute grid offsets
|
||||
|
@ -314,9 +310,6 @@ void GenerateDensityHierarchy( config_file& cf, transfer_function *ptf, tf_type
|
|||
//... if random numbers are not given for lower levels, obtain them by averaging
|
||||
if( lmingiven >= (int)levelmin )
|
||||
{
|
||||
//double x0[3] = { 0.0, 0.0, 0.0 };
|
||||
//double lx[3] = { 1.0, 1.0, 1.0 };
|
||||
|
||||
randc[lmingiven] = new random_numbers<real_t>( (unsigned)pow(2,lmingiven), 32, rngseeds[lmingiven], true );//, x0, lx );
|
||||
|
||||
for( int ilevel = lmingiven-1; ilevel >= (int)levelmin; --ilevel ){
|
||||
|
@ -332,8 +325,6 @@ void GenerateDensityHierarchy( config_file& cf, transfer_function *ptf, tf_type
|
|||
if( lmingiven < (int)levelmin )
|
||||
{
|
||||
throw std::runtime_error("You provided a seed for a level below levelmin, this is not supported yet.");
|
||||
//double x0[3] = { 0.0, 0.0, 0.0 };
|
||||
//double lx[3] = { 1.0, 1.0, 1.0 };
|
||||
|
||||
randc[lmingiven] = new random_numbers<real_t>( (unsigned)pow(2,lmingiven), 32, rngseeds[lmingiven], true );//, x0, lx );
|
||||
|
||||
|
@ -382,7 +373,7 @@ void GenerateDensityHierarchy( config_file& cf, transfer_function *ptf, tf_type
|
|||
random_numbers<real_t> *rc;
|
||||
|
||||
if( randc[levelmin] == NULL )
|
||||
rc = new random_numbers<real_t>( nbase, 32, rngseeds[levelmin], true );//, x0, lx );
|
||||
rc = new random_numbers<real_t>( nbase, 32, rngseeds[levelmin], true );
|
||||
else
|
||||
rc = randc[levelmin];
|
||||
|
||||
|
@ -760,7 +751,7 @@ void GenerateDensityHierarchy( config_file& cf, transfer_function *ptf, tf_type
|
|||
|
||||
double sum;
|
||||
|
||||
#if 0
|
||||
#if 1
|
||||
//... subtract the box mean.... this will otherwise add
|
||||
//... a constant curvature term to the potential
|
||||
sum = 0.0;
|
||||
|
@ -779,7 +770,7 @@ void GenerateDensityHierarchy( config_file& cf, transfer_function *ptf, tf_type
|
|||
sum /= (nx*ny*nz);
|
||||
}
|
||||
|
||||
std::cout << " - Top grid mean density is off by " << sum << ", correcting..." << std::endl;
|
||||
//std::cout << " - Top grid mean density is off by " << sum << ", correcting..." << std::endl;
|
||||
|
||||
for( unsigned i=levelmin; i<=levelmax; ++i )
|
||||
{
|
||||
|
|
16
main.cc
16
main.cc
|
@ -48,7 +48,7 @@
|
|||
#include "transfer_function.hh"
|
||||
|
||||
#define THE_CODE_NAME "music!"
|
||||
#define THE_CODE_VERSION "0.2a"
|
||||
#define THE_CODE_VERSION "0.3a"
|
||||
|
||||
|
||||
namespace music
|
||||
|
@ -86,15 +86,17 @@ void splash(void)
|
|||
|
||||
void modify_grid_for_TF( const refinement_hierarchy& rh_full, refinement_hierarchy& rh_TF, config_file& cf )
|
||||
{
|
||||
unsigned lbase, lbaseTF, lmax;
|
||||
unsigned lbase, lbaseTF, lmax, overlap;
|
||||
|
||||
lbase = cf.getValue<unsigned>( "setup", "levelmin" );
|
||||
lbaseTF = cf.getValueSafe<unsigned>( "setup", "levelminTF", lbase );
|
||||
lmax = cf.getValue<unsigned>( "setup", "levelmax" );
|
||||
// TODO: add documentation about setup/overlap to manual
|
||||
overlap = cf.getValueSafe<unsigned>( "setup", "overlap", 4 );
|
||||
|
||||
rh_TF = rh_full;
|
||||
|
||||
unsigned pad = 4;
|
||||
unsigned pad = overlap;
|
||||
|
||||
for( unsigned i=lbase+1; i<=lmax; ++i )
|
||||
{
|
||||
|
@ -287,6 +289,9 @@ int main (int argc, const char * argv[])
|
|||
cosmo.nspect = cf.getValue<double>( "cosmology", "nspec" );
|
||||
cosmo.WDMg_x = cf.getValueSafe<double>( "cosmology", "WDMg_x", 1.5 );
|
||||
cosmo.WDMmass = cf.getValueSafe<double>( "cosmology", "WDMmass", 0.0 );
|
||||
cosmo.dplus = 0.0;
|
||||
cosmo.pnorm = 0.0;
|
||||
cosmo.vfact = 0.0;
|
||||
|
||||
//cosmo.Gamma = cf.getValueSafe<double>( "cosmology", "Gamma", -1.0 );
|
||||
|
||||
|
@ -567,10 +572,11 @@ int main (int argc, const char * argv[])
|
|||
|
||||
}
|
||||
the_output_plugin->finalize();
|
||||
}catch(...)
|
||||
}catch(std::runtime_error& excp)
|
||||
{
|
||||
std::cerr << " - " << excp.what() << std::endl;
|
||||
std::cerr << " - A fatal error occured. We need to exit...\n";
|
||||
bfatal;
|
||||
bfatal = true;
|
||||
}
|
||||
|
||||
//... clean up
|
||||
|
|
24
mg_interp.hh
24
mg_interp.hh
|
@ -692,7 +692,7 @@ struct interp_O5_fluxcorr
|
|||
ustar[q+2] = interp4( (*utop)(ixtop+p-1,iytop-2,iztop+q), (*utop)(ixtop+p-1,iytop-1,iztop+q),
|
||||
(*utop)(ixtop+p-1,iytop,iztop+q), (*utop)(ixtop+p-1,iytop+1,iztop+q),
|
||||
(*utop)(ixtop+p-1,iytop+2,iztop+q), fac*((double)j-0.5) );
|
||||
uhat[p] = interp4( ustar, fac*((double)k-0.5)-1.5 );
|
||||
uhat[p] = interp4( ustar, fac*((double)k-0.5) );//-1.5 );
|
||||
}
|
||||
|
||||
(*u)(ix,iy+j,iz+k) = interp4left( uhat[0], uhat[1], (*u)(ix+1,iy+j,iz+k),
|
||||
|
@ -733,7 +733,7 @@ struct interp_O5_fluxcorr
|
|||
ustar[q+2] = interp4( (*utop)(ixtop+p,iytop-2,iztop+q), (*utop)(ixtop+p,iytop-1,iztop+q),
|
||||
(*utop)(ixtop+p,iytop,iztop+q), (*utop)(ixtop+p,iytop+1,iztop+q),
|
||||
(*utop)(ixtop+p,iytop+2,iztop+q), fac*((double)j-0.5) );
|
||||
uhat[p] = interp4( ustar, fac*((double)k-0.5)-1.5 );
|
||||
uhat[p] = interp4( ustar, fac*((double)k-0.5));//-1.5 );
|
||||
}
|
||||
|
||||
(*u)(ix,iy+j,iz+k) = interp4right( (*u)(ix-3,iy+j,iz+k), (*u)(ix-2,iy+j,iz+k),
|
||||
|
@ -773,7 +773,7 @@ struct interp_O5_fluxcorr
|
|||
ustar[q+2] = interp4( (*utop)(ixtop-2,iytop+p-1,iztop+q), (*utop)(ixtop-1,iytop+p-1,iztop+q),
|
||||
(*utop)(ixtop,iytop+p-1,iztop+q), (*utop)(ixtop+1,iytop+p-1,iztop+q),
|
||||
(*utop)(ixtop+2,iytop+p-1,iztop+q), fac*((double)j-0.5) );
|
||||
uhat[p] = interp4( ustar, fac*((double)k-0.5)-1.5 );
|
||||
uhat[p] = interp4( ustar, fac*((double)k-0.5));//-1.5 );
|
||||
}
|
||||
|
||||
(*u)(ix+j,iy,iz+k) = interp4left( uhat[0], uhat[1], (*u)(ix+j,iy+1,iz+k),
|
||||
|
@ -813,7 +813,7 @@ struct interp_O5_fluxcorr
|
|||
ustar[q+2] = interp4( (*utop)(ixtop-2,iytop+p,iztop+q), (*utop)(ixtop-1,iytop+p,iztop+q),
|
||||
(*utop)(ixtop,iytop+p,iztop+q), (*utop)(ixtop+1,iytop+p,iztop+q),
|
||||
(*utop)(ixtop+2,iytop+p,iztop+q), fac*((double)j-0.5) );
|
||||
uhat[p] = interp4( ustar, fac*((double)k-0.5)+1.5 );
|
||||
uhat[p] = interp4( ustar, fac*((double)k-0.5));//+1.5 );
|
||||
}
|
||||
|
||||
(*u)(ix+j,iy,iz+k) = interp4right( (*u)(ix+j,iy-3,iz+k), (*u)(ix+j,iy-2,iz+k),
|
||||
|
@ -854,7 +854,7 @@ struct interp_O5_fluxcorr
|
|||
ustar[q+2] = interp4( (*utop)(ixtop-2,iytop+q,iztop+p-1), (*utop)(ixtop-1,iytop+q,iztop+p-1),
|
||||
(*utop)(ixtop,iytop+q,iztop+p-1), (*utop)(ixtop+1,iytop+q,iztop+p-1),
|
||||
(*utop)(ixtop+2,iytop+q,iztop+p-1), fac*((double)j-0.5) );
|
||||
uhat[p] = interp4( ustar, fac*((double)k-0.5)-1.5 );
|
||||
uhat[p] = interp4( ustar, fac*((double)k-0.5));//-1.5 );
|
||||
}
|
||||
|
||||
(*u)(ix+j,iy+k,iz) = interp4left( uhat[0], uhat[1], (*u)(ix+j,iy+k,iz+1),
|
||||
|
@ -895,7 +895,7 @@ struct interp_O5_fluxcorr
|
|||
ustar[q+2] = interp4( (*utop)(ixtop-2,iytop+q,iztop+p), (*utop)(ixtop-1,iytop+q,iztop+p),
|
||||
(*utop)(ixtop,iytop+q,iztop+p), (*utop)(ixtop+1,iytop+q,iztop+p),
|
||||
(*utop)(ixtop+2,iytop+q,iztop+p), fac*((double)j-0.5) );
|
||||
uhat[p] = interp4( ustar, fac*((double)k-0.5)+1.5 );
|
||||
uhat[p] = interp4( ustar, fac*((double)k-0.5));//+1.5 );
|
||||
}
|
||||
|
||||
(*u)(ix+j,iy+k,iz) = interp4right( (*u)(ix+j,iy+k,iz-3), (*u)(ix+j,iy+k,iz-2),
|
||||
|
@ -1000,7 +1000,7 @@ struct interp_O7_fluxcorr
|
|||
(*utop)(ixtop+p-2,iytop-1,iztop+q), (*utop)(ixtop+p-2,iytop,iztop+q),
|
||||
(*utop)(ixtop+p-2,iytop+1,iztop+q), (*utop)(ixtop+p-2,iytop+2,iztop+q),
|
||||
(*utop)(ixtop+p-2,iytop+3,iztop+q), fac*((double)j-0.5) );
|
||||
uhat[p] = interp6( ustar, fac*((double)k-0.5)-1.5 );
|
||||
uhat[p] = interp6( ustar, fac*((double)k-0.5));//-1.5 );
|
||||
}
|
||||
|
||||
(*u)(ix,iy+j,iz+k) = interp6left( uhat[0], uhat[1], uhat[2], (*u)(ix+1,iy+j,iz+k),
|
||||
|
@ -1045,7 +1045,7 @@ struct interp_O7_fluxcorr
|
|||
(*utop)(ixtop+p,iytop-1,iztop+q), (*utop)(ixtop+p,iytop,iztop+q),
|
||||
(*utop)(ixtop+p,iytop+1,iztop+q), (*utop)(ixtop+p,iytop+2,iztop+q),
|
||||
(*utop)(ixtop+p,iytop+3,iztop+q), fac*((double)j-0.5) );
|
||||
uhat[p] = interp6( ustar, fac*((double)k-0.5)-1.5 );
|
||||
uhat[p] = interp6( ustar, fac*((double)k-0.5) );//-1.5 );
|
||||
}
|
||||
|
||||
(*u)(ix,iy+j,iz+k) = interp6right( (*u)(ix-4,iy+j,iz+k), (*u)(ix-3,iy+j,iz+k), (*u)(ix-2,iy+j,iz+k),
|
||||
|
@ -1091,7 +1091,7 @@ struct interp_O7_fluxcorr
|
|||
(*utop)(ixtop-1,iytop+p-2,iztop+q), (*utop)(ixtop,iytop+p-2,iztop+q),
|
||||
(*utop)(ixtop+1,iytop+p-2,iztop+q), (*utop)(ixtop+2,iytop+p-2,iztop+q),
|
||||
(*utop)(ixtop+3,iytop+p-2,iztop+q), fac*((double)j-0.5) );
|
||||
uhat[p] = interp6( ustar, fac*((double)k-0.5)-1.5 );
|
||||
uhat[p] = interp6( ustar, fac*((double)k-0.5));//-1.5 );
|
||||
}
|
||||
|
||||
(*u)(ix+j,iy,iz+k) = interp6left( uhat[0], uhat[1], uhat[2], (*u)(ix+j,iy+1,iz+k),
|
||||
|
@ -1136,7 +1136,7 @@ struct interp_O7_fluxcorr
|
|||
(*utop)(ixtop-1,iytop+p,iztop+q), (*utop)(ixtop,iytop+p,iztop+q),
|
||||
(*utop)(ixtop+1,iytop+p,iztop+q), (*utop)(ixtop+2,iytop+p,iztop+q),
|
||||
(*utop)(ixtop+3,iytop+p,iztop+q), fac*((double)j-0.5) );
|
||||
uhat[p] = interp6( ustar, fac*((double)k-0.5)+1.5 );
|
||||
uhat[p] = interp6( ustar, fac*((double)k-0.5));//+1.5 );
|
||||
}
|
||||
|
||||
(*u)(ix+j,iy,iz+k) = interp6right( (*u)(ix+j,iy-4,iz+k), (*u)(ix+j,iy-3,iz+k), (*u)(ix+j,iy-2,iz+k),
|
||||
|
@ -1182,7 +1182,7 @@ struct interp_O7_fluxcorr
|
|||
(*utop)(ixtop-1,iytop+q,iztop+p-2), (*utop)(ixtop,iytop+q,iztop+p-2),
|
||||
(*utop)(ixtop+1,iytop+q,iztop+p-2), (*utop)(ixtop+2,iytop+q,iztop+p-2),
|
||||
(*utop)(ixtop+3,iytop+q,iztop+p-2), fac*((double)j-0.5) );
|
||||
uhat[p] = interp6( ustar, fac*((double)k-0.5)-1.5 );
|
||||
uhat[p] = interp6( ustar, fac*((double)k-0.5));//-1.5 );
|
||||
}
|
||||
|
||||
(*u)(ix+j,iy+k,iz) = interp6left( uhat[0], uhat[1], uhat[2], (*u)(ix+j,iy+k,iz+1),
|
||||
|
@ -1227,7 +1227,7 @@ struct interp_O7_fluxcorr
|
|||
(*utop)(ixtop-1,iytop+q,iztop+p), (*utop)(ixtop,iytop+q,iztop+p),
|
||||
(*utop)(ixtop+1,iytop+q,iztop+p), (*utop)(ixtop+2,iytop+q,iztop+p),
|
||||
(*utop)(ixtop+3,iytop+q,iztop+p), fac*((double)j-0.5) );
|
||||
uhat[p] = interp6( ustar, fac*((double)k-0.5)+1.5 );
|
||||
uhat[p] = interp6( ustar, fac*((double)k-0.5));//+1.5 );
|
||||
}
|
||||
|
||||
(*u)(ix+j,iy+k,iz) = interp6right( (*u)(ix+j,iy+k,iz-4), (*u)(ix+j,iy+k,iz-3), (*u)(ix+j,iy+k,iz-2),
|
||||
|
|
|
@ -114,7 +114,7 @@ template< class S, class I, class O, typename T >
|
|||
solver<S,I,O,T>::solver( GridHierarchy<T>& f, //const MeshvarBnd<T>& ubnd,
|
||||
opt::smtype smoother, unsigned npresmooth, unsigned npostsmooth )
|
||||
: m_scheme(), m_gridop(), m_npresmooth( npresmooth ), m_npostsmooth( npostsmooth ),
|
||||
m_smoother( smoother ), m_ilevelmin( f.levelmin() ), m_pf( &f ), m_is_ini( true )
|
||||
m_smoother( smoother ), m_ilevelmin( f.levelmin() ), m_is_ini( true ), m_pf( &f )
|
||||
{
|
||||
m_is_ini = true;
|
||||
|
||||
|
|
|
@ -85,7 +85,7 @@ double multigrid_poisson_plugin::solve( grid_hierarchy& f, grid_hierarchy& u )
|
|||
ps_presmooth = cf_.getValueSafe<unsigned>("poisson","pre_smooth",3);
|
||||
ps_postsmooth = cf_.getValueSafe<unsigned>("poisson","post_smooth",3);
|
||||
ps_smoother_name = cf_.getValueSafe<std::string>("poisson","smoother","gs");
|
||||
order = cf_.getValueSafe<unsigned>( "setup", "laplace_order", 4 );
|
||||
order = cf_.getValueSafe<unsigned>( "poisson", "laplace_order", 4 );
|
||||
|
||||
multigrid::opt::smtype ps_smtype = multigrid::opt::sm_gauss_seidel;
|
||||
|
||||
|
|
|
@ -113,6 +113,7 @@ protected:
|
|||
{
|
||||
double solve_O2( grid_hierarchy& f, grid_hierarchy& u );
|
||||
double solve_O4( grid_hierarchy& f, grid_hierarchy& u );
|
||||
double solve_O6( grid_hierarchy& f, grid_hierarchy& u );
|
||||
void gradient_O2( int dir, grid_hierarchy& u, grid_hierarchy& Du );
|
||||
void gradient_O4( int dir, grid_hierarchy& u, grid_hierarchy& Du );
|
||||
void gradient_O6( int dir, grid_hierarchy& u, grid_hierarchy& Du );
|
||||
|
|
Loading…
Reference in a new issue