diff --git a/src/vt-tv/utility/parse_render.cc b/src/vt-tv/utility/parse_render.cc index c27022948e..0fa6a40aae 100644 --- a/src/vt-tv/utility/parse_render.cc +++ b/src/vt-tv/utility/parse_render.cc @@ -109,52 +109,62 @@ void ParseRender::parseAndRender(PhaseType phase_id, std::unique_ptr info) } std::array qoi_request = { - config["viz"]["rank_qoi"].as(), + config["viz"]["rank_qoi"].as("load"), "", - config["viz"]["object_qoi"].as() + config["viz"]["object_qoi"].as("load") }; - bool save_meshes = config["viz"]["save_meshes"].as(); - bool save_pngs = config["viz"]["save_pngs"].as(); - bool continuous_object_qoi = config["viz"]["force_continuous_object_qoi"].as(); + bool save_meshes = config["viz"]["save_meshes"].as(true); + bool save_pngs = config["viz"]["save_pngs"].as(true); + bool continuous_object_qoi = config["viz"]["force_continuous_object_qoi"].as(true); std::array grid_size = { config["viz"]["x_ranks"].as(), config["viz"]["y_ranks"].as(), - config["viz"]["z_ranks"].as() + config["viz"]["z_ranks"].as(1) }; - double object_jitter = config["viz"]["object_jitter"].as(); + double object_jitter = config["viz"]["object_jitter"].as(0.5); - std::string output_dir = config["output"]["directory"].as(); - std::filesystem::path output_path(output_dir); + std::string output_dir; + std::filesystem::path output_path; + std::string output_file_stem; + uint64_t win_size = 2000; + // Use automatic font size if not defined by user + // 0.025 is the factor of the window size determined to be ideal for the font size + uint64_t font_size = 0.025 * win_size; - // If it's a relative path, prepend the SRC_DIR - if (output_path.is_relative()) { - output_path = std::filesystem::path(SRC_DIR) / output_path; - } - output_dir = output_path.string(); + if (save_meshes || save_pngs) { + output_dir = config["output"]["directory"].as("output"); + output_path = output_dir; - // append / to avoid problems with file stems - if (!output_dir.empty() && output_dir.back() != '/') { - output_dir += '/'; - } + // If it's a relative path, prepend the SRC_DIR + if (output_path.is_relative()) { + output_path = std::filesystem::path(SRC_DIR) / output_path; + } + output_dir = output_path.string(); - std::string output_file_stem = config["output"]["file_stem"].as(); + // append / to avoid problems with file stems + if (!output_dir.empty() && output_dir.back() != '/') { + output_dir += '/'; + } + output_file_stem = config["output"]["file_stem"].as("vttv"); - fmt::print("Num ranks={}\n", info->getNumRanks()); + fmt::print("Num ranks={}\n", info->getNumRanks()); - uint64_t win_size = 2000; - if (config["output"]["window_size"]) { - win_size = config["output"]["window_size"].as(); - } + if (config["output"]["window_size"]) { + win_size = config["output"]["window_size"].as(2000); + // Update font_size with new win_size + font_size = 0.025 * win_size; + } - // Use automatic font size if not defined by user - // 0.025 is the factor of the window size determined to be ideal for the font size - uint64_t font_size = 0.025 * win_size; - if (config["output"]["font_size"]) { - font_size = config["output"]["font_size"].as(); + if (config["output"]["font_size"]) { + font_size = config["output"]["font_size"].as(); + } + } else { + fmt::print("Warning: save_pngs and save_meshes are both False " + "(no visualization will be generated).\n"); } // Instantiate render @@ -162,7 +172,10 @@ void ParseRender::parseAndRender(PhaseType phase_id, std::unique_ptr info) qoi_request, continuous_object_qoi, *std::move(info), grid_size, object_jitter, output_dir, output_file_stem, 1.0, save_meshes, save_pngs, phase_id ); - r.generate(font_size, win_size); + + if (save_meshes || save_pngs) { + r.generate(font_size, win_size); + } } catch (std::exception const& e) { std::cout << "Error reading the configuration file: " << e.what() << std::endl;