Skip to content

Commit 0b32d3b

Browse files
author
Ben Prather
committed
Finally translate all static refinements so they can use KHARMA convention
1 parent bde7e46 commit 0b32d3b

1 file changed

Lines changed: 32 additions & 29 deletions

File tree

kharma/kharma.cpp

Lines changed: 32 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)