ConstantDamping::ConstantDamping(const Inputs& sp, MPIdata& mpi, fftwPlans& fft) : dampFac(0.5), equations_name("ConstantDamping"), numMF_(1), numLin_(4), f_noise_(sp.f_noise), nu_(sp.nu), eta_(sp.eta), q_(sp.q), dont_drive_ky0_modes_(0),// If true, no driving ky=0 modes Model(sp.NZ, sp.NXY , sp.L), // Dimensions - stored in base mpi_(mpi), // MPI data fft_(fft) // FFT data { // Setup MPI mpi_.Split_NXY_Grid( Dimxy_full() ); // Work out MPI splitting // Assign K data K = new Kdata(this, &mpi_); // Stores all the K data // Fourier transform plans fft_.calculatePlans( N(2),NZ() ); // Random generator mt_ = boost::random::mt19937(1.0 + mpi_.my_n_v()); // Seed is 1.0, could change ndist_ = boost::random::normal_distribution<double>(0,f_noise_/sqrt(2)); // Normal distribution, standard deviation f_noise_ (factor 2 is since it's complex) noise_buff_ = dcmplxVec(num_Lin()*(NZ()-1));// NZ-1 since ky=kz=0 mode is not driven // Sizes of various arrays used for normalizing things totalN2_ = N(0)*N(1)*N(2); // Total number of grid points totalN2_ = totalN2_*totalN2_; // Squared mult_noise_fac_ = 1.0/(16*32*32); // Defined so that consistent with (16, 32, 32) results mult_noise_fac_ = mult_noise_fac_*mult_noise_fac_; // NZ^2 for normalizing mean field energy nz2_ = N(2)*N(2); // Temps for evaulation of main equations uy_ = dcmplxVec( NZ() ); by_ = dcmplxVec( NZ() ); //////////////////////////////////////////////////// // TEMPORARY ARRAYS // // These are used during evaluation of the various parts of the model // There should never be any need to keep their value over more than 1 time-step ////////////////////////////////////////////////// // These arrays are used for all sets of equations lapFtmp_ = doubVec( NZ() ); //For (time-dependent) k^2 ilapFtmp_ = doubVec( NZ() ); // Inverse lap2tmp_ = doubVec( NZ() ); // For ky^2+kz^2 - could be pre-assigned ilap2tmp_ = doubVec( NZ() ); // Inverse }
ConstantDamping::ConstantDamping(const Inputs& sp, MPIdata& mpi, fftwPlans& fft) : dampFac(1.0), equations_name("ConstantDamping"), numMF_(1), numLin_(1), f_noise_(sp.f_noise), nu_(sp.nu), eta_(sp.eta), Model(sp.NZ, sp.NXY , sp.L), // Dimensions - stored in base mpi_(mpi), // MPI data fft_(fft) // FFT data { // Assign K data K = new Kdata(this); // Stores all the K data // Setup MPI mpi_.Split_NXY_Grid( Dimxy_full() ); // Work out MPI splitting // Fourier transform plans fft_.calculatePlans( NZ() ); }