@@ -281,37 +281,40 @@ void KHARMA::FixParameters(ParameterInput *pin, bool is_parthenon_restart)
281281 pin->GetOrAddReal (" parthenon/mesh" , " x3max" , tmp_coords.stopx (3 ));
282282
283283 // Also set x1 refinements as a proportion of size
284- // TODO all regions!
285- if (pin->DoesBlockExist (" parthenon/static_refinement0" )) {
286- Real startx1 = pin->GetReal (" parthenon/mesh" , " x1min" );
287- Real stopx1 = pin->GetReal (" parthenon/mesh" , " x1max" );
288- Real lx1 = stopx1 - startx1;
289- Real startx1_prop = pin->GetReal (" parthenon/static_refinement0" , " x1min" );
290- Real stopx1_prop = pin->GetReal (" parthenon/static_refinement0" , " x1max" );
291- // std::cerr << "StartX1 " << startx1 << " lx1 " << lx1 << "Prop " << startx1_prop << " " << stopx1_prop << std::endl;
292- // std::cerr << "Adjust X1 " << startx1_prop*lx1 + startx1 << " to " << stopx1_prop*lx1 + startx1 << std::endl;
293- pin->SetReal (" parthenon/static_refinement0" , " x1min" , std::max (startx1_prop*lx1 + startx1, startx1));
294- pin->SetReal (" parthenon/static_refinement0" , " x1max" , std::min (stopx1_prop*lx1 + startx1, stopx1));
295-
296- if (pin->DoesParameterExist (" parthenon/static_refinement0" , " x2min" )) {
297- Real startx2 = pin->GetReal (" parthenon/mesh" , " x2min" );
298- Real stopx2 = pin->GetReal (" parthenon/mesh" , " x2max" );
299- Real lx2 = stopx2 - startx2;
300- Real startx2_prop = pin->GetReal (" parthenon/static_refinement0" , " x2min" );
301- Real stopx2_prop = pin->GetReal (" parthenon/static_refinement0" , " x2max" );
302- pin->SetReal (" parthenon/static_refinement0" , " x2min" , std::max (startx2_prop*lx2 + startx2, startx2));
303- pin->SetReal (" parthenon/static_refinement0" , " x2max" , std::min (stopx2_prop*lx2 + startx2, stopx2));
304- }
284+ InputBlock *pib = pin->pfirst_block ;
285+ while (pib != nullptr ) {
286+ if (pib->block_name .compare (0 , 27 , " parthenon/static_refinement" ) == 0 ) {
287+ Real startx1 = pin->GetReal (" parthenon/mesh" , " x1min" );
288+ Real stopx1 = pin->GetReal (" parthenon/mesh" , " x1max" );
289+ Real lx1 = stopx1 - startx1;
290+ Real startx1_prop = pin->GetReal (pib->block_name , " x1min" );
291+ Real stopx1_prop = pin->GetReal (pib->block_name , " x1max" );
292+ // std::cerr << "StartX1 " << startx1 << " lx1 " << lx1 << "Prop " << startx1_prop << " " << stopx1_prop << std::endl;
293+ // std::cerr << "Adjust X1 " << startx1_prop*lx1 + startx1 << " to " << stopx1_prop*lx1 + startx1 << std::endl;
294+ pin->SetReal (pib->block_name , " x1min" , std::max (startx1_prop*lx1 + startx1, startx1));
295+ pin->SetReal (pib->block_name , " x1max" , std::min (stopx1_prop*lx1 + startx1, stopx1));
296+
297+ if (pin->DoesParameterExist (pib->block_name , " x2min" )) {
298+ Real startx2 = pin->GetReal (" parthenon/mesh" , " x2min" );
299+ Real stopx2 = pin->GetReal (" parthenon/mesh" , " x2max" );
300+ Real lx2 = stopx2 - startx2;
301+ Real startx2_prop = pin->GetReal (pib->block_name , " x2min" );
302+ Real stopx2_prop = pin->GetReal (pib->block_name , " x2max" );
303+ pin->SetReal (pib->block_name , " x2min" , std::max (startx2_prop*lx2 + startx2, startx2));
304+ pin->SetReal (pib->block_name , " x2max" , std::min (stopx2_prop*lx2 + startx2, stopx2));
305+ }
305306
306- if (pin->DoesParameterExist (" parthenon/static_refinement0" , " x3min" )) {
307- Real startx3 = pin->GetReal (" parthenon/mesh" , " x3min" );
308- Real stopx3 = pin->GetReal (" parthenon/mesh" , " x3max" );
309- Real lx3 = stopx3 - startx3;
310- Real startx3_prop = pin->GetReal (" parthenon/static_refinement0" , " x3min" );
311- Real stopx3_prop = pin->GetReal (" parthenon/static_refinement0" , " x3max" );
312- pin->SetReal (" parthenon/static_refinement0" , " x3min" , std::max (startx3_prop*lx3 + startx3, startx3));
313- pin->SetReal (" parthenon/static_refinement0" , " x3max" , std::min (stopx3_prop*lx3 + startx3, stopx3));
307+ if (pin->DoesParameterExist (pib->block_name , " x3min" )) {
308+ Real startx3 = pin->GetReal (" parthenon/mesh" , " x3min" );
309+ Real stopx3 = pin->GetReal (" parthenon/mesh" , " x3max" );
310+ Real lx3 = stopx3 - startx3;
311+ Real startx3_prop = pin->GetReal (pib->block_name , " x3min" );
312+ Real stopx3_prop = pin->GetReal (pib->block_name , " x3max" );
313+ pin->SetReal (pib->block_name , " x3min" , std::max (startx3_prop*lx3 + startx3, startx3));
314+ pin->SetReal (pib->block_name , " x3max" , std::min (stopx3_prop*lx3 + startx3, stopx3));
315+ }
314316 }
317+ pib = pib->pnext ;
315318 }
316319
317320 EndFlag ();
0 commit comments