MCPcopy Create free account
hub / github.com/AMReX-Astro/Castro / post_init

Method post_init

Source/driver/Castro.cpp:2386–2512  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2384}
2385
2386void
2387Castro::post_init (Real /*stop_time*/)
2388{
2389 BL_PROFILE("Castro::post_init()");
2390
2391 if (level > 0) {
2392 return;
2393 }
2394
2395 //
2396 // Average data down from finer levels
2397 // so that conserved data is consistent between levels.
2398 //
2399 int finest_level = parent->finestLevel();
2400 for (int k = finest_level-1; k>= 0; k--) {
2401 getLevel(k).avgDown();
2402 }
2403
2404#ifdef GRAVITY
2405
2406 if (do_grav) {
2407
2408 Real cur_time = state[State_Type].curTime();
2409
2410 if (gravity->get_gravity_type() == "PoissonGrav") {
2411
2412 // Update the maximum density, used in setting the solver tolerance.
2413
2414 gravity->update_max_rhs();
2415
2416 // Calculate offset before first multilevel solve.
2417 gravity->set_mass_offset(cur_time);
2418
2419 gravity->multilevel_solve_for_new_phi(level,finest_level);
2420 if (gravity->test_results_of_solves() == 1) {
2421 gravity->test_composite_phi(level);
2422 }
2423 }
2424
2425 // Make this call just to fill the initial state data.
2426 for (int k = 0; k <= parent->finestLevel(); k++)
2427 {
2428 BoxArray ba = getLevel(k).boxArray();
2429 MultiFab& grav_new = getLevel(k).get_new_data(Gravity_Type);
2430 gravity->get_new_grav_vector(k,grav_new,cur_time);
2431 }
2432 }
2433#endif
2434
2435
2436#ifdef RADIATION
2437 if (do_radiation) {
2438 // The option of whether to do a multilevel initialization is
2439 // controlled within the radiation class.
2440
2441 radiation->post_init(level);
2442
2443 for (int k = finest_level-1; k>= 0; k--) {

Callers 1

post_grown_restartMethod · 0.45

Calls 8

avgDownMethod · 0.80
get_gravity_typeMethod · 0.80
update_max_rhsMethod · 0.80
set_mass_offsetMethod · 0.80
test_composite_phiMethod · 0.80
get_new_grav_vectorMethod · 0.80

Tested by

no test coverage detected