@@ -69,6 +69,7 @@ double turb_db2;
6969double turb_correlation_length;
7070
7171int out_interval;
72+ int marder_interval;
7273
7374bool mirror_domain;
7475std::string turb_method;
@@ -136,6 +137,7 @@ void setupParameters(int argc, char** argv)
136137
137138 int n_writes = inputParams.getOrDefault <int >(" n_writes" , 100 );
138139 out_interval = psc_params.nmax / n_writes;
140+ marder_interval = inputParams.getOrDefault <int >(" marder_interval" , -1 );
139141
140142 mirror_domain = inputParams.getOrDefault <bool >(" mirror_domain" , false );
141143 turb_method =
@@ -335,7 +337,7 @@ void inject_b_from_potential(MfieldsState& mflds,
335337 auto field_patch = make_Fields3d<dim_xyz>(mflds[p]);
336338 auto vector_potential_patch = make_Fields3d<dim_xyz>(vector_potential[p]);
337339
338- grid.Foreach_3d (0 , 1 , [&](int jx, int jy, int jz) {
340+ grid.Foreach_3d (2 , 1 , [&](int jx, int jy, int jz) {
339341 field_patch (HX , jx, jy, jz) = vector_potential_patch (AZ , jx, jy + 1 , jz) -
340342 vector_potential_patch (AZ , jx, jy, jz) -
341343 vector_potential_patch (AY , jx, jy, jz + 1 ) +
@@ -566,7 +568,11 @@ void inject_turbulence_dense(MfieldsState& mflds)
566568 double kmax = ((Double3)Int3::max (-i3_min, i3_max) * dk_vec).mag ();
567569 int nk = kmax / dk + 1 ;
568570
569- LOG_INFO (" nk = %d, kmax = %f\n " , nk, kmax);
571+ int rank;
572+ MPI_Comm_rank (mflds.grid ().comm (), &rank);
573+ if (rank == 0 ) {
574+ LOG_INFO (" nk = %d, kmax = %f\n " , nk, kmax);
575+ }
570576
571577 auto k_mins = std::vector<double >(nk);
572578 for (int i = 0 ; i < nk; i++) {
@@ -638,13 +644,15 @@ void inject_turbulence_dense(MfieldsState& mflds)
638644
639645void initializeFields (MfieldsState& mflds)
640646{
641- if (turb_method == " alfven_dense" ) {
642- inject_turbulence_dense (mflds);
643- } else if (turb_method == " noise_gabor" ) {
644- GaborKernel kernel;
645- inject_turbulence_noise (mflds, kernel);
646- } else {
647- LOG_ERROR (" Unrecognized turbulence method: %s\n " , turb_method.c_str ());
647+ if (turb_db2 > 0.0 ) {
648+ if (turb_method == " alfven_dense" ) {
649+ inject_turbulence_dense (mflds);
650+ } else if (turb_method == " noise_gabor" ) {
651+ GaborKernel kernel;
652+ inject_turbulence_noise (mflds, kernel);
653+ } else {
654+ LOG_ERROR (" Unrecognized turbulence method: %s\n " , turb_method.c_str ());
655+ }
648656 }
649657
650658 add_background_fields (mflds);
@@ -697,7 +705,7 @@ static void run(int argc, char** argv)
697705 double marder_diffusion = 0.9 ;
698706 int marder_loop = 3 ;
699707 bool marder_dump = false ;
700- psc_params.marder_interval = - 1 ;
708+ psc_params.marder_interval = marder_interval ;
701709 Marder marder (grid, marder_diffusion, marder_loop, marder_dump);
702710
703711 // ----------------------------------------------------------------------
0 commit comments