Program Listing for File application.h

↰ Return to documentation for file (include/immersx/vascularization/application.h)

// Copyright (C) 2026 by Luca Heltai
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
#ifndef immersx_vascularization_application_h
#define immersx_vascularization_application_h
#include <immersx/vascularization/generation.h>

namespace ImmersX::Vascularization
{
  struct ApplicationParameters : dealii::ParameterAcceptor
  {
    explicit ApplicationParameters(
      const std::string &section = "/Vascularization/");
    Parameters       generation;
    std::string      mode  = "generate", input_archive, output_directory;
    std::string      shape = "cube", refinement_focus = "none";
    dealii::Point<3> cube_origin;
    double           cube_side = 1.;
    dealii::Point<3> sphere_center{.5, .5, .5};
    double           sphere_radius       = .5;
    unsigned int     uniform_refinements = 2, edge_axis = 2;
    std::vector<unsigned int> edge_sides{0, 0};
    std::vector<double>       refinement_fractions{.5, .25, .125};
    bool                      evaluate_reference = true;
    double loaded_reference_flow = 0.;
    bool   save_archive = true, write_tables = true, write_meshes = true;
  };

  GenerationResult
  run(const ApplicationParameters &parameters, MPI_Comm communicator);
} // namespace ImmersX::Vascularization
#endif