<commit_before>#ifndef BART_SRC_FRAMEWORK_FRAMEWORK_PARAMETERS_HPP_
#define BART_SRC_FRAMEWORK_FRAMEWORK_PARAMETERS_HPP_

#include "problem/parameter_types.h"
#include "data/cross_sections.h"
#include "utility/named_type.h"
#include "quadrature/quadrature_set_i.h"

#include <memory>
#include <optional>
#include <set>

namespace bart::framework {

struct FrameworkParameters {
  using AngularQuadratureOrder = quadrature::Order;
  using DomainSize = utility::NamedType<std::vector<double>, struct DomainSizeStruct>;
  using NumberOfCells = utility::NamedType<std::vector<int>, struct NumberOfCellsStruct>;
  using PolynomialDegree = utility::NamedType<int, struct PolynomialDegreeStruct>;
  using SpatialDimension = utility::NamedType<int, struct SpatialDimensionStruct>;

  std::string name{""};

  int                         neutron_energy_groups{1};
  problem::EquationType       equation_type{problem::EquationType::kDiffusion};
  std::set<problem::Boundary> reflective_boundaries{};

  // Solver structure
  std::optional<problem::EigenSolverType> eigen_solver_type{std::nullopt};
  problem::InGroupSolverType              group_solver_type{problem::InGroupSolverType::kSourceIteration};

  // Angular quadrature parameters
  problem::AngularQuadType angular_quadrature_type{ problem::AngularQuadType::kNone };
  std::optional<AngularQuadratureOrder> angular_quadrature_order{ std::nullopt };<commit_msg>Added output filename base to framework_parameters.<commit_after>#ifndef BART_SRC_FRAMEWORK_FRAMEWORK_PARAMETERS_HPP_
#define BART_SRC_FRAMEWORK_FRAMEWORK_PARAMETERS_HPP_

#include "problem/parameter_types.h"
#include "data/cross_sections.h"
#include "utility/named_type.h"
#include "quadrature/quadrature_set_i.h"

#include <memory>
#include <optional>
#include <set>

namespace bart::framework {

struct FrameworkParameters {
  using AngularQuadratureOrder = quadrature::Order;
  using DomainSize = utility::NamedType<std::vector<double>, struct DomainSizeStruct>;
  using NumberOfCells = utility::NamedType<std::vector<int>, struct NumberOfCellsStruct>;
  using PolynomialDegree = utility::NamedType<int, struct PolynomialDegreeStruct>;
  using SpatialDimension = utility::NamedType<int, struct SpatialDimensionStruct>;

  std::string name{""};
  std::string output_filename_base{""};

  int                         neutron_energy_groups{1};
  problem::EquationType       equation_type{problem::EquationType::kDiffusion};
  std::set<problem::Boundary> reflective_boundaries{};

  // Solver structure
  std::optional<problem::EigenSolverType> eigen_solver_type{std::nullopt};
  problem::InGroupSolverType              group_solver_type{problem::InGroupSolverType::kSourceIteration};

  // Angular quadrature parameters
  problem::AngularQuadType angular_quadrature_type{ problem::AngularQuadType::kNone };
  std::optional<AngularQuadratureOrder> angular_quadrature_order{ std::nullopt };
{'fraction_non_alphanumeric': 0.10482758620689656, 'fraction_numerical': 0.000689655172413793, 'mean_word_length': 7.218130311614731, 'pattern_counts': {'":': 0, '<': 27, '<?xml version=': 0, '>': 27, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2750514', 'n_tokens_mistral': 913, 'n_tokens_neox': 859, 'n_words': 143}