diff --git a/include/ConfigParser/config_parser.h b/include/ConfigParser/config_parser.h index 60c18f89..ba0ab853 100644 --- a/include/ConfigParser/config_parser.h +++ b/include/ConfigParser/config_parser.h @@ -10,6 +10,7 @@ #include "../../include/PolarGrid/polargrid.h" #include "../../include/GMGPolar/test_cases.h" #include "../../include/GMGPolar/igmgpolar.h" +#include "../../include/GMGPolar/gmgpolar.h" #include "test_selection.h" class ConfigParser @@ -26,11 +27,12 @@ class ConfigParser // Test Case const DomainGeometryVariant& domainGeometry() const; const DensityProfileCoefficientsVariant& densityProfileCoefficients() const; - const BoundaryConditionsVariant& boundaryConditions() const; - const SourceTerm& sourceTerm() const; const ExactSolution& exactSolution() const; std::unique_ptr solver() const; + template + void solve(GMGPolar& solver) const; + // Control Parameters int verbose() const; bool paraview() const; @@ -72,9 +74,14 @@ class ConfigParser // Input Functions std::unique_ptr domain_geometry_; std::unique_ptr density_profile_coefficients_; - std::unique_ptr boundary_conditions_; - std::unique_ptr source_term_; std::unique_ptr exact_solution_; + GeometryType geometry_type_; + ProblemType problem_type_; + AlphaCoeff alpha_type_; + BetaCoeff beta_type_; + double Rmax_; + double kappa_eps_; + double delta_e_; // General solver output and visualization settings int verbose_; bool paraview_; diff --git a/include/ConfigParser/test_selection.h b/include/ConfigParser/test_selection.h index 2949ac09..30d95cf5 100644 --- a/include/ConfigParser/test_selection.h +++ b/include/ConfigParser/test_selection.h @@ -3,30 +3,9 @@ #include #include "../../include/GMGPolar/test_cases.h" -#include "../../include/InputFunctions/BoundaryConditions/cartesianR2_Boundary_CircularGeometry.h" -#include "../../include/InputFunctions/BoundaryConditions/cartesianR6_Boundary_CzarnyGeometry.h" -#include "../../include/InputFunctions/BoundaryConditions/polarR6_Boundary_CzarnyGeometry.h" -#include "../../include/InputFunctions/BoundaryConditions/refined_Boundary_CzarnyGeometry.h" -#include "../../include/InputFunctions/BoundaryConditions/cartesianR2_Boundary_CzarnyGeometry.h" -#include "../../include/InputFunctions/BoundaryConditions/cartesianR6_Boundary_ShafranovGeometry.h" -#include "../../include/InputFunctions/BoundaryConditions/polarR6_Boundary_ShafranovGeometry.h" -#include "../../include/InputFunctions/BoundaryConditions/refined_Boundary_ShafranovGeometry.h" -#include "../../include/InputFunctions/BoundaryConditions/cartesianR2_Boundary_ShafranovGeometry.h" -#include "../../include/InputFunctions/BoundaryConditions/polarR6_Boundary_CircularGeometry.h" -#include "../../include/InputFunctions/BoundaryConditions/refined_Boundary_CircularGeometry.h" -#include "../../include/InputFunctions/BoundaryConditions/cartesianR6_Boundary_CircularGeometry.h" -#include "../../include/InputFunctions/BoundaryConditions/polarR6_Boundary_CulhamGeometry.h" -#include "../../include/InputFunctions/BoundaryConditions/refined_Boundary_CulhamGeometry.h" using DomainGeometryVariant = std::variant; using DensityProfileCoefficientsVariant = std::variant; - -using BoundaryConditionsVariant = std::variant< - CartesianR2_Boundary_CircularGeometry, CartesianR6_Boundary_CzarnyGeometry, PolarR6_Boundary_CzarnyGeometry, - Refined_Boundary_CzarnyGeometry, CartesianR2_Boundary_CzarnyGeometry, CartesianR6_Boundary_ShafranovGeometry, - PolarR6_Boundary_ShafranovGeometry, Refined_Boundary_ShafranovGeometry, CartesianR2_Boundary_ShafranovGeometry, - PolarR6_Boundary_CircularGeometry, Refined_Boundary_CircularGeometry, CartesianR6_Boundary_CircularGeometry, - PolarR6_Boundary_CulhamGeometry, Refined_Boundary_CulhamGeometry>; diff --git a/include/GMGPolar/gmgpolar.h b/include/GMGPolar/gmgpolar.h index e874028b..7fa02b76 100644 --- a/include/GMGPolar/gmgpolar.h +++ b/include/GMGPolar/gmgpolar.h @@ -7,6 +7,7 @@ #include "../InputFunctions/densityProfileCoefficients.h" #include "../InputFunctions/domainGeometry.h" +#include "../InputFunctions/sourceTerm.h" #include "../Level/level.h" #include "igmgpolar.h" @@ -51,7 +52,7 @@ class GMGPolar : public IGMGPolar // Solve system with given boundary conditions and source term. // Multiple solves with different inputs are supported. - template + template void solve(const BoundaryConditions& boundary_conditions, const SourceTerm& source_term); /* ---------------------------------------------------------------------- */ @@ -139,7 +140,7 @@ class GMGPolar : public IGMGPolar /* --------------- */ /* Setup Functions */ int chooseNumberOfLevels(const PolarGrid& finest_grid); - template + template void build_rhs_f(const Level& level, Vector rhs_f, const BoundaryConditions& boundary_conditions, const SourceTerm& source_term); void discretize_rhs_f(const Level& level, Vector rhs_f); diff --git a/include/GMGPolar/setup.h b/include/GMGPolar/setup.h index 3fd729c7..89b58037 100644 --- a/include/GMGPolar/setup.h +++ b/include/GMGPolar/setup.h @@ -327,7 +327,7 @@ void GMGPolar::discretize_rhs_f( } template -template +template void GMGPolar::build_rhs_f( const Level& level, Vector rhs_f, const BoundaryConditions& boundary_conditions, const SourceTerm& source_term) diff --git a/include/GMGPolar/solver.h b/include/GMGPolar/solver.h index d5bd3eb1..2db270ad 100644 --- a/include/GMGPolar/solver.h +++ b/include/GMGPolar/solver.h @@ -2,7 +2,7 @@ // Main Solver Routine // ============================================================================= template -template +template void GMGPolar::solve(const BoundaryConditions& boundary_conditions, const SourceTerm& source_term) { diff --git a/include/InputFunctions/SourceTerms/cartesianR2_Poisson_CircularGeometry.h b/include/InputFunctions/SourceTerms/cartesianR2_Poisson_CircularGeometry.h index 92cc7500..0a3b49c6 100644 --- a/include/InputFunctions/SourceTerms/cartesianR2_Poisson_CircularGeometry.h +++ b/include/InputFunctions/SourceTerms/cartesianR2_Poisson_CircularGeometry.h @@ -6,13 +6,12 @@ #include "../../PolarGrid/polargrid.h" -class CartesianR2_Poisson_CircularGeometry : public SourceTerm +class CartesianR2_Poisson_CircularGeometry { public: explicit CartesianR2_Poisson_CircularGeometry(PolarGrid const& grid, double Rmax); - virtual ~CartesianR2_Poisson_CircularGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/cartesianR2_Poisson_CzarnyGeometry.h b/include/InputFunctions/SourceTerms/cartesianR2_Poisson_CzarnyGeometry.h index 4ceafc86..05cef6f8 100644 --- a/include/InputFunctions/SourceTerms/cartesianR2_Poisson_CzarnyGeometry.h +++ b/include/InputFunctions/SourceTerms/cartesianR2_Poisson_CzarnyGeometry.h @@ -6,14 +6,13 @@ #include "../../PolarGrid/polargrid.h" -class CartesianR2_Poisson_CzarnyGeometry : public SourceTerm +class CartesianR2_Poisson_CzarnyGeometry { public: explicit CartesianR2_Poisson_CzarnyGeometry(PolarGrid const& grid, double Rmax, double inverse_aspect_ratio_epsilon, double ellipticity_e); - virtual ~CartesianR2_Poisson_CzarnyGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/cartesianR2_Poisson_ShafranovGeometry.h b/include/InputFunctions/SourceTerms/cartesianR2_Poisson_ShafranovGeometry.h index c9c829fb..4e004c91 100644 --- a/include/InputFunctions/SourceTerms/cartesianR2_Poisson_ShafranovGeometry.h +++ b/include/InputFunctions/SourceTerms/cartesianR2_Poisson_ShafranovGeometry.h @@ -6,14 +6,13 @@ #include "../../PolarGrid/polargrid.h" -class CartesianR2_Poisson_ShafranovGeometry : public SourceTerm +class CartesianR2_Poisson_ShafranovGeometry { public: explicit CartesianR2_Poisson_ShafranovGeometry(PolarGrid const& grid, double Rmax, double elongation_kappa, double shift_delta); - virtual ~CartesianR2_Poisson_ShafranovGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/cartesianR2_SonnendruckerGyro_CircularGeometry.h b/include/InputFunctions/SourceTerms/cartesianR2_SonnendruckerGyro_CircularGeometry.h index a6dd8ba4..284e8332 100644 --- a/include/InputFunctions/SourceTerms/cartesianR2_SonnendruckerGyro_CircularGeometry.h +++ b/include/InputFunctions/SourceTerms/cartesianR2_SonnendruckerGyro_CircularGeometry.h @@ -6,13 +6,12 @@ #include "../../PolarGrid/polargrid.h" -class CartesianR2_SonnendruckerGyro_CircularGeometry : public SourceTerm +class CartesianR2_SonnendruckerGyro_CircularGeometry { public: explicit CartesianR2_SonnendruckerGyro_CircularGeometry(PolarGrid const& grid, double Rmax); - virtual ~CartesianR2_SonnendruckerGyro_CircularGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/cartesianR2_SonnendruckerGyro_CzarnyGeometry.h b/include/InputFunctions/SourceTerms/cartesianR2_SonnendruckerGyro_CzarnyGeometry.h index bf2585f8..f2bd0cf2 100644 --- a/include/InputFunctions/SourceTerms/cartesianR2_SonnendruckerGyro_CzarnyGeometry.h +++ b/include/InputFunctions/SourceTerms/cartesianR2_SonnendruckerGyro_CzarnyGeometry.h @@ -6,14 +6,13 @@ #include "../../PolarGrid/polargrid.h" -class CartesianR2_SonnendruckerGyro_CzarnyGeometry : public SourceTerm +class CartesianR2_SonnendruckerGyro_CzarnyGeometry { public: explicit CartesianR2_SonnendruckerGyro_CzarnyGeometry(PolarGrid const& grid, double Rmax, double inverse_aspect_ratio_epsilon, double ellipticity_e); - virtual ~CartesianR2_SonnendruckerGyro_CzarnyGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/cartesianR2_SonnendruckerGyro_ShafranovGeometry.h b/include/InputFunctions/SourceTerms/cartesianR2_SonnendruckerGyro_ShafranovGeometry.h index 2e7c7495..4c6c23be 100644 --- a/include/InputFunctions/SourceTerms/cartesianR2_SonnendruckerGyro_ShafranovGeometry.h +++ b/include/InputFunctions/SourceTerms/cartesianR2_SonnendruckerGyro_ShafranovGeometry.h @@ -6,14 +6,13 @@ #include "../../PolarGrid/polargrid.h" -class CartesianR2_SonnendruckerGyro_ShafranovGeometry : public SourceTerm +class CartesianR2_SonnendruckerGyro_ShafranovGeometry { public: explicit CartesianR2_SonnendruckerGyro_ShafranovGeometry(PolarGrid const& grid, double Rmax, double elongation_kappa, double shift_delta); - virtual ~CartesianR2_SonnendruckerGyro_ShafranovGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/cartesianR2_Sonnendrucker_CircularGeometry.h b/include/InputFunctions/SourceTerms/cartesianR2_Sonnendrucker_CircularGeometry.h index 8ef2d3a7..358686ef 100644 --- a/include/InputFunctions/SourceTerms/cartesianR2_Sonnendrucker_CircularGeometry.h +++ b/include/InputFunctions/SourceTerms/cartesianR2_Sonnendrucker_CircularGeometry.h @@ -6,13 +6,12 @@ #include "../../PolarGrid/polargrid.h" -class CartesianR2_Sonnendrucker_CircularGeometry : public SourceTerm +class CartesianR2_Sonnendrucker_CircularGeometry { public: explicit CartesianR2_Sonnendrucker_CircularGeometry(PolarGrid const& grid, double Rmax); - virtual ~CartesianR2_Sonnendrucker_CircularGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/cartesianR2_Sonnendrucker_CzarnyGeometry.h b/include/InputFunctions/SourceTerms/cartesianR2_Sonnendrucker_CzarnyGeometry.h index 5b6d2dc4..bf40bc45 100644 --- a/include/InputFunctions/SourceTerms/cartesianR2_Sonnendrucker_CzarnyGeometry.h +++ b/include/InputFunctions/SourceTerms/cartesianR2_Sonnendrucker_CzarnyGeometry.h @@ -6,14 +6,13 @@ #include "../../PolarGrid/polargrid.h" -class CartesianR2_Sonnendrucker_CzarnyGeometry : public SourceTerm +class CartesianR2_Sonnendrucker_CzarnyGeometry { public: explicit CartesianR2_Sonnendrucker_CzarnyGeometry(PolarGrid const& grid, double Rmax, double inverse_aspect_ratio_epsilon, double ellipticity_e); - virtual ~CartesianR2_Sonnendrucker_CzarnyGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/cartesianR2_Sonnendrucker_ShafranovGeometry.h b/include/InputFunctions/SourceTerms/cartesianR2_Sonnendrucker_ShafranovGeometry.h index 28e75aba..2efcb5bd 100644 --- a/include/InputFunctions/SourceTerms/cartesianR2_Sonnendrucker_ShafranovGeometry.h +++ b/include/InputFunctions/SourceTerms/cartesianR2_Sonnendrucker_ShafranovGeometry.h @@ -6,14 +6,13 @@ #include "../../PolarGrid/polargrid.h" -class CartesianR2_Sonnendrucker_ShafranovGeometry : public SourceTerm +class CartesianR2_Sonnendrucker_ShafranovGeometry { public: explicit CartesianR2_Sonnendrucker_ShafranovGeometry(PolarGrid const& grid, double Rmax, double elongation_kappa, double shift_delta); - virtual ~CartesianR2_Sonnendrucker_ShafranovGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/cartesianR2_ZoniGyro_CircularGeometry.h b/include/InputFunctions/SourceTerms/cartesianR2_ZoniGyro_CircularGeometry.h index 7fb72da6..d32fcf77 100644 --- a/include/InputFunctions/SourceTerms/cartesianR2_ZoniGyro_CircularGeometry.h +++ b/include/InputFunctions/SourceTerms/cartesianR2_ZoniGyro_CircularGeometry.h @@ -6,13 +6,12 @@ #include "../../PolarGrid/polargrid.h" -class CartesianR2_ZoniGyro_CircularGeometry : public SourceTerm +class CartesianR2_ZoniGyro_CircularGeometry { public: explicit CartesianR2_ZoniGyro_CircularGeometry(PolarGrid const& grid, double Rmax); - virtual ~CartesianR2_ZoniGyro_CircularGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/cartesianR2_ZoniGyro_CzarnyGeometry.h b/include/InputFunctions/SourceTerms/cartesianR2_ZoniGyro_CzarnyGeometry.h index f37061bf..9a32f09e 100644 --- a/include/InputFunctions/SourceTerms/cartesianR2_ZoniGyro_CzarnyGeometry.h +++ b/include/InputFunctions/SourceTerms/cartesianR2_ZoniGyro_CzarnyGeometry.h @@ -6,14 +6,13 @@ #include "../../PolarGrid/polargrid.h" -class CartesianR2_ZoniGyro_CzarnyGeometry : public SourceTerm +class CartesianR2_ZoniGyro_CzarnyGeometry { public: explicit CartesianR2_ZoniGyro_CzarnyGeometry(PolarGrid const& grid, double Rmax, double inverse_aspect_ratio_epsilon, double ellipticity_e); - virtual ~CartesianR2_ZoniGyro_CzarnyGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/cartesianR2_ZoniGyro_ShafranovGeometry.h b/include/InputFunctions/SourceTerms/cartesianR2_ZoniGyro_ShafranovGeometry.h index f0ccebb5..e6eb758a 100644 --- a/include/InputFunctions/SourceTerms/cartesianR2_ZoniGyro_ShafranovGeometry.h +++ b/include/InputFunctions/SourceTerms/cartesianR2_ZoniGyro_ShafranovGeometry.h @@ -6,14 +6,13 @@ #include "../../PolarGrid/polargrid.h" -class CartesianR2_ZoniGyro_ShafranovGeometry : public SourceTerm +class CartesianR2_ZoniGyro_ShafranovGeometry { public: explicit CartesianR2_ZoniGyro_ShafranovGeometry(PolarGrid const& grid, double Rmax, double elongation_kappa, double shift_delta); - virtual ~CartesianR2_ZoniGyro_ShafranovGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/cartesianR2_ZoniShiftedGyro_CircularGeometry.h b/include/InputFunctions/SourceTerms/cartesianR2_ZoniShiftedGyro_CircularGeometry.h index 603cc7fc..b5b25467 100644 --- a/include/InputFunctions/SourceTerms/cartesianR2_ZoniShiftedGyro_CircularGeometry.h +++ b/include/InputFunctions/SourceTerms/cartesianR2_ZoniShiftedGyro_CircularGeometry.h @@ -6,13 +6,12 @@ #include "../../PolarGrid/polargrid.h" -class CartesianR2_ZoniShiftedGyro_CircularGeometry : public SourceTerm +class CartesianR2_ZoniShiftedGyro_CircularGeometry { public: explicit CartesianR2_ZoniShiftedGyro_CircularGeometry(PolarGrid const& grid, double Rmax); - virtual ~CartesianR2_ZoniShiftedGyro_CircularGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/cartesianR2_ZoniShiftedGyro_CzarnyGeometry.h b/include/InputFunctions/SourceTerms/cartesianR2_ZoniShiftedGyro_CzarnyGeometry.h index 66204c6a..1915f784 100644 --- a/include/InputFunctions/SourceTerms/cartesianR2_ZoniShiftedGyro_CzarnyGeometry.h +++ b/include/InputFunctions/SourceTerms/cartesianR2_ZoniShiftedGyro_CzarnyGeometry.h @@ -6,14 +6,13 @@ #include "../../PolarGrid/polargrid.h" -class CartesianR2_ZoniShiftedGyro_CzarnyGeometry : public SourceTerm +class CartesianR2_ZoniShiftedGyro_CzarnyGeometry { public: explicit CartesianR2_ZoniShiftedGyro_CzarnyGeometry(PolarGrid const& grid, double Rmax, double inverse_aspect_ratio_epsilon, double ellipticity_e); - virtual ~CartesianR2_ZoniShiftedGyro_CzarnyGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/cartesianR2_ZoniShiftedGyro_ShafranovGeometry.h b/include/InputFunctions/SourceTerms/cartesianR2_ZoniShiftedGyro_ShafranovGeometry.h index c9a8393e..6be47fb8 100644 --- a/include/InputFunctions/SourceTerms/cartesianR2_ZoniShiftedGyro_ShafranovGeometry.h +++ b/include/InputFunctions/SourceTerms/cartesianR2_ZoniShiftedGyro_ShafranovGeometry.h @@ -6,14 +6,13 @@ #include "../../PolarGrid/polargrid.h" -class CartesianR2_ZoniShiftedGyro_ShafranovGeometry : public SourceTerm +class CartesianR2_ZoniShiftedGyro_ShafranovGeometry { public: explicit CartesianR2_ZoniShiftedGyro_ShafranovGeometry(PolarGrid const& grid, double Rmax, double elongation_kappa, double shift_delta); - virtual ~CartesianR2_ZoniShiftedGyro_ShafranovGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/cartesianR2_ZoniShifted_CircularGeometry.h b/include/InputFunctions/SourceTerms/cartesianR2_ZoniShifted_CircularGeometry.h index b9f4236e..3030625f 100644 --- a/include/InputFunctions/SourceTerms/cartesianR2_ZoniShifted_CircularGeometry.h +++ b/include/InputFunctions/SourceTerms/cartesianR2_ZoniShifted_CircularGeometry.h @@ -6,13 +6,12 @@ #include "../../PolarGrid/polargrid.h" -class CartesianR2_ZoniShifted_CircularGeometry : public SourceTerm +class CartesianR2_ZoniShifted_CircularGeometry { public: explicit CartesianR2_ZoniShifted_CircularGeometry(PolarGrid const& grid, double Rmax); - virtual ~CartesianR2_ZoniShifted_CircularGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/cartesianR2_ZoniShifted_CzarnyGeometry.h b/include/InputFunctions/SourceTerms/cartesianR2_ZoniShifted_CzarnyGeometry.h index 3a682580..f83e03e2 100644 --- a/include/InputFunctions/SourceTerms/cartesianR2_ZoniShifted_CzarnyGeometry.h +++ b/include/InputFunctions/SourceTerms/cartesianR2_ZoniShifted_CzarnyGeometry.h @@ -6,14 +6,13 @@ #include "../../PolarGrid/polargrid.h" -class CartesianR2_ZoniShifted_CzarnyGeometry : public SourceTerm +class CartesianR2_ZoniShifted_CzarnyGeometry { public: explicit CartesianR2_ZoniShifted_CzarnyGeometry(PolarGrid const& grid, double Rmax, double inverse_aspect_ratio_epsilon, double ellipticity_e); - virtual ~CartesianR2_ZoniShifted_CzarnyGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/cartesianR2_ZoniShifted_ShafranovGeometry.h b/include/InputFunctions/SourceTerms/cartesianR2_ZoniShifted_ShafranovGeometry.h index c60f11d8..0e366801 100644 --- a/include/InputFunctions/SourceTerms/cartesianR2_ZoniShifted_ShafranovGeometry.h +++ b/include/InputFunctions/SourceTerms/cartesianR2_ZoniShifted_ShafranovGeometry.h @@ -6,14 +6,13 @@ #include "../../PolarGrid/polargrid.h" -class CartesianR2_ZoniShifted_ShafranovGeometry : public SourceTerm +class CartesianR2_ZoniShifted_ShafranovGeometry { public: explicit CartesianR2_ZoniShifted_ShafranovGeometry(PolarGrid const& grid, double Rmax, double elongation_kappa, double shift_delta); - virtual ~CartesianR2_ZoniShifted_ShafranovGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/cartesianR2_Zoni_CircularGeometry.h b/include/InputFunctions/SourceTerms/cartesianR2_Zoni_CircularGeometry.h index c763e6b3..637c02fa 100644 --- a/include/InputFunctions/SourceTerms/cartesianR2_Zoni_CircularGeometry.h +++ b/include/InputFunctions/SourceTerms/cartesianR2_Zoni_CircularGeometry.h @@ -6,13 +6,12 @@ #include "../../PolarGrid/polargrid.h" -class CartesianR2_Zoni_CircularGeometry : public SourceTerm +class CartesianR2_Zoni_CircularGeometry { public: explicit CartesianR2_Zoni_CircularGeometry(PolarGrid const& grid, double Rmax); - virtual ~CartesianR2_Zoni_CircularGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/cartesianR2_Zoni_CzarnyGeometry.h b/include/InputFunctions/SourceTerms/cartesianR2_Zoni_CzarnyGeometry.h index 25596679..9d3318b9 100644 --- a/include/InputFunctions/SourceTerms/cartesianR2_Zoni_CzarnyGeometry.h +++ b/include/InputFunctions/SourceTerms/cartesianR2_Zoni_CzarnyGeometry.h @@ -6,14 +6,13 @@ #include "../../PolarGrid/polargrid.h" -class CartesianR2_Zoni_CzarnyGeometry : public SourceTerm +class CartesianR2_Zoni_CzarnyGeometry { public: explicit CartesianR2_Zoni_CzarnyGeometry(PolarGrid const& grid, double Rmax, double inverse_aspect_ratio_epsilon, double ellipticity_e); - virtual ~CartesianR2_Zoni_CzarnyGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/cartesianR2_Zoni_ShafranovGeometry.h b/include/InputFunctions/SourceTerms/cartesianR2_Zoni_ShafranovGeometry.h index a2a3d5ff..df74cc85 100644 --- a/include/InputFunctions/SourceTerms/cartesianR2_Zoni_ShafranovGeometry.h +++ b/include/InputFunctions/SourceTerms/cartesianR2_Zoni_ShafranovGeometry.h @@ -6,14 +6,13 @@ #include "../../PolarGrid/polargrid.h" -class CartesianR2_Zoni_ShafranovGeometry : public SourceTerm +class CartesianR2_Zoni_ShafranovGeometry { public: explicit CartesianR2_Zoni_ShafranovGeometry(PolarGrid const& grid, double Rmax, double elongation_kappa, double shift_delta); - virtual ~CartesianR2_Zoni_ShafranovGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/cartesianR6_Poisson_CircularGeometry.h b/include/InputFunctions/SourceTerms/cartesianR6_Poisson_CircularGeometry.h index de145f72..18a916c1 100644 --- a/include/InputFunctions/SourceTerms/cartesianR6_Poisson_CircularGeometry.h +++ b/include/InputFunctions/SourceTerms/cartesianR6_Poisson_CircularGeometry.h @@ -6,13 +6,12 @@ #include "../../PolarGrid/polargrid.h" -class CartesianR6_Poisson_CircularGeometry : public SourceTerm +class CartesianR6_Poisson_CircularGeometry { public: explicit CartesianR6_Poisson_CircularGeometry(PolarGrid const& grid, double Rmax); - virtual ~CartesianR6_Poisson_CircularGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/cartesianR6_Poisson_CzarnyGeometry.h b/include/InputFunctions/SourceTerms/cartesianR6_Poisson_CzarnyGeometry.h index 1a0f7743..297778ba 100644 --- a/include/InputFunctions/SourceTerms/cartesianR6_Poisson_CzarnyGeometry.h +++ b/include/InputFunctions/SourceTerms/cartesianR6_Poisson_CzarnyGeometry.h @@ -6,14 +6,13 @@ #include "../../PolarGrid/polargrid.h" -class CartesianR6_Poisson_CzarnyGeometry : public SourceTerm +class CartesianR6_Poisson_CzarnyGeometry { public: explicit CartesianR6_Poisson_CzarnyGeometry(PolarGrid const& grid, double Rmax, double inverse_aspect_ratio_epsilon, double ellipticity_e); - virtual ~CartesianR6_Poisson_CzarnyGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/cartesianR6_Poisson_ShafranovGeometry.h b/include/InputFunctions/SourceTerms/cartesianR6_Poisson_ShafranovGeometry.h index bab604b9..90d2b956 100644 --- a/include/InputFunctions/SourceTerms/cartesianR6_Poisson_ShafranovGeometry.h +++ b/include/InputFunctions/SourceTerms/cartesianR6_Poisson_ShafranovGeometry.h @@ -6,14 +6,13 @@ #include "../../PolarGrid/polargrid.h" -class CartesianR6_Poisson_ShafranovGeometry : public SourceTerm +class CartesianR6_Poisson_ShafranovGeometry { public: explicit CartesianR6_Poisson_ShafranovGeometry(PolarGrid const& grid, double Rmax, double elongation_kappa, double shift_delta); - virtual ~CartesianR6_Poisson_ShafranovGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/cartesianR6_SonnendruckerGyro_CircularGeometry.h b/include/InputFunctions/SourceTerms/cartesianR6_SonnendruckerGyro_CircularGeometry.h index 9b83913f..5f834735 100644 --- a/include/InputFunctions/SourceTerms/cartesianR6_SonnendruckerGyro_CircularGeometry.h +++ b/include/InputFunctions/SourceTerms/cartesianR6_SonnendruckerGyro_CircularGeometry.h @@ -6,13 +6,12 @@ #include "../../PolarGrid/polargrid.h" -class CartesianR6_SonnendruckerGyro_CircularGeometry : public SourceTerm +class CartesianR6_SonnendruckerGyro_CircularGeometry { public: explicit CartesianR6_SonnendruckerGyro_CircularGeometry(PolarGrid const& grid, double Rmax); - virtual ~CartesianR6_SonnendruckerGyro_CircularGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/cartesianR6_SonnendruckerGyro_CzarnyGeometry.h b/include/InputFunctions/SourceTerms/cartesianR6_SonnendruckerGyro_CzarnyGeometry.h index 03ebd62b..02723f7e 100644 --- a/include/InputFunctions/SourceTerms/cartesianR6_SonnendruckerGyro_CzarnyGeometry.h +++ b/include/InputFunctions/SourceTerms/cartesianR6_SonnendruckerGyro_CzarnyGeometry.h @@ -6,14 +6,13 @@ #include "../../PolarGrid/polargrid.h" -class CartesianR6_SonnendruckerGyro_CzarnyGeometry : public SourceTerm +class CartesianR6_SonnendruckerGyro_CzarnyGeometry { public: explicit CartesianR6_SonnendruckerGyro_CzarnyGeometry(PolarGrid const& grid, double Rmax, double inverse_aspect_ratio_epsilon, double ellipticity_e); - virtual ~CartesianR6_SonnendruckerGyro_CzarnyGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/cartesianR6_SonnendruckerGyro_ShafranovGeometry.h b/include/InputFunctions/SourceTerms/cartesianR6_SonnendruckerGyro_ShafranovGeometry.h index 0af32921..027961ee 100644 --- a/include/InputFunctions/SourceTerms/cartesianR6_SonnendruckerGyro_ShafranovGeometry.h +++ b/include/InputFunctions/SourceTerms/cartesianR6_SonnendruckerGyro_ShafranovGeometry.h @@ -6,14 +6,13 @@ #include "../../PolarGrid/polargrid.h" -class CartesianR6_SonnendruckerGyro_ShafranovGeometry : public SourceTerm +class CartesianR6_SonnendruckerGyro_ShafranovGeometry { public: explicit CartesianR6_SonnendruckerGyro_ShafranovGeometry(PolarGrid const& grid, double Rmax, double elongation_kappa, double shift_delta); - virtual ~CartesianR6_SonnendruckerGyro_ShafranovGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/cartesianR6_Sonnendrucker_CircularGeometry.h b/include/InputFunctions/SourceTerms/cartesianR6_Sonnendrucker_CircularGeometry.h index fcf9e660..c56a4274 100644 --- a/include/InputFunctions/SourceTerms/cartesianR6_Sonnendrucker_CircularGeometry.h +++ b/include/InputFunctions/SourceTerms/cartesianR6_Sonnendrucker_CircularGeometry.h @@ -6,13 +6,12 @@ #include "../../PolarGrid/polargrid.h" -class CartesianR6_Sonnendrucker_CircularGeometry : public SourceTerm +class CartesianR6_Sonnendrucker_CircularGeometry { public: explicit CartesianR6_Sonnendrucker_CircularGeometry(PolarGrid const& grid, double Rmax); - virtual ~CartesianR6_Sonnendrucker_CircularGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/cartesianR6_Sonnendrucker_CzarnyGeometry.h b/include/InputFunctions/SourceTerms/cartesianR6_Sonnendrucker_CzarnyGeometry.h index 91c3d813..2faa9228 100644 --- a/include/InputFunctions/SourceTerms/cartesianR6_Sonnendrucker_CzarnyGeometry.h +++ b/include/InputFunctions/SourceTerms/cartesianR6_Sonnendrucker_CzarnyGeometry.h @@ -6,14 +6,13 @@ #include "../../PolarGrid/polargrid.h" -class CartesianR6_Sonnendrucker_CzarnyGeometry : public SourceTerm +class CartesianR6_Sonnendrucker_CzarnyGeometry { public: explicit CartesianR6_Sonnendrucker_CzarnyGeometry(PolarGrid const& grid, double Rmax, double inverse_aspect_ratio_epsilon, double ellipticity_e); - virtual ~CartesianR6_Sonnendrucker_CzarnyGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/cartesianR6_Sonnendrucker_ShafranovGeometry.h b/include/InputFunctions/SourceTerms/cartesianR6_Sonnendrucker_ShafranovGeometry.h index f87e24cf..56466c3b 100644 --- a/include/InputFunctions/SourceTerms/cartesianR6_Sonnendrucker_ShafranovGeometry.h +++ b/include/InputFunctions/SourceTerms/cartesianR6_Sonnendrucker_ShafranovGeometry.h @@ -6,14 +6,13 @@ #include "../../PolarGrid/polargrid.h" -class CartesianR6_Sonnendrucker_ShafranovGeometry : public SourceTerm +class CartesianR6_Sonnendrucker_ShafranovGeometry { public: explicit CartesianR6_Sonnendrucker_ShafranovGeometry(PolarGrid const& grid, double Rmax, double elongation_kappa, double shift_delta); - virtual ~CartesianR6_Sonnendrucker_ShafranovGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/cartesianR6_ZoniGyro_CircularGeometry.h b/include/InputFunctions/SourceTerms/cartesianR6_ZoniGyro_CircularGeometry.h index 9000eb6c..ea59e04d 100644 --- a/include/InputFunctions/SourceTerms/cartesianR6_ZoniGyro_CircularGeometry.h +++ b/include/InputFunctions/SourceTerms/cartesianR6_ZoniGyro_CircularGeometry.h @@ -6,13 +6,12 @@ #include "../../PolarGrid/polargrid.h" -class CartesianR6_ZoniGyro_CircularGeometry : public SourceTerm +class CartesianR6_ZoniGyro_CircularGeometry { public: explicit CartesianR6_ZoniGyro_CircularGeometry(PolarGrid const& grid, double Rmax); - virtual ~CartesianR6_ZoniGyro_CircularGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/cartesianR6_ZoniGyro_CzarnyGeometry.h b/include/InputFunctions/SourceTerms/cartesianR6_ZoniGyro_CzarnyGeometry.h index 0398223f..c5b8c497 100644 --- a/include/InputFunctions/SourceTerms/cartesianR6_ZoniGyro_CzarnyGeometry.h +++ b/include/InputFunctions/SourceTerms/cartesianR6_ZoniGyro_CzarnyGeometry.h @@ -6,14 +6,13 @@ #include "../../PolarGrid/polargrid.h" -class CartesianR6_ZoniGyro_CzarnyGeometry : public SourceTerm +class CartesianR6_ZoniGyro_CzarnyGeometry { public: explicit CartesianR6_ZoniGyro_CzarnyGeometry(PolarGrid const& grid, double Rmax, double inverse_aspect_ratio_epsilon, double ellipticity_e); - virtual ~CartesianR6_ZoniGyro_CzarnyGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/cartesianR6_ZoniGyro_ShafranovGeometry.h b/include/InputFunctions/SourceTerms/cartesianR6_ZoniGyro_ShafranovGeometry.h index 467a6f6d..fbd07017 100644 --- a/include/InputFunctions/SourceTerms/cartesianR6_ZoniGyro_ShafranovGeometry.h +++ b/include/InputFunctions/SourceTerms/cartesianR6_ZoniGyro_ShafranovGeometry.h @@ -6,14 +6,13 @@ #include "../../PolarGrid/polargrid.h" -class CartesianR6_ZoniGyro_ShafranovGeometry : public SourceTerm +class CartesianR6_ZoniGyro_ShafranovGeometry { public: explicit CartesianR6_ZoniGyro_ShafranovGeometry(PolarGrid const& grid, double Rmax, double elongation_kappa, double shift_delta); - virtual ~CartesianR6_ZoniGyro_ShafranovGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/cartesianR6_ZoniShiftedGyro_CircularGeometry.h b/include/InputFunctions/SourceTerms/cartesianR6_ZoniShiftedGyro_CircularGeometry.h index 7f735dc1..669e2790 100644 --- a/include/InputFunctions/SourceTerms/cartesianR6_ZoniShiftedGyro_CircularGeometry.h +++ b/include/InputFunctions/SourceTerms/cartesianR6_ZoniShiftedGyro_CircularGeometry.h @@ -6,13 +6,12 @@ #include "../../PolarGrid/polargrid.h" -class CartesianR6_ZoniShiftedGyro_CircularGeometry : public SourceTerm +class CartesianR6_ZoniShiftedGyro_CircularGeometry { public: explicit CartesianR6_ZoniShiftedGyro_CircularGeometry(PolarGrid const& grid, double Rmax); - virtual ~CartesianR6_ZoniShiftedGyro_CircularGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/cartesianR6_ZoniShiftedGyro_CzarnyGeometry.h b/include/InputFunctions/SourceTerms/cartesianR6_ZoniShiftedGyro_CzarnyGeometry.h index b7443c06..989cf646 100644 --- a/include/InputFunctions/SourceTerms/cartesianR6_ZoniShiftedGyro_CzarnyGeometry.h +++ b/include/InputFunctions/SourceTerms/cartesianR6_ZoniShiftedGyro_CzarnyGeometry.h @@ -6,14 +6,13 @@ #include "../../PolarGrid/polargrid.h" -class CartesianR6_ZoniShiftedGyro_CzarnyGeometry : public SourceTerm +class CartesianR6_ZoniShiftedGyro_CzarnyGeometry { public: explicit CartesianR6_ZoniShiftedGyro_CzarnyGeometry(PolarGrid const& grid, double Rmax, double inverse_aspect_ratio_epsilon, double ellipticity_e); - virtual ~CartesianR6_ZoniShiftedGyro_CzarnyGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/cartesianR6_ZoniShiftedGyro_ShafranovGeometry.h b/include/InputFunctions/SourceTerms/cartesianR6_ZoniShiftedGyro_ShafranovGeometry.h index 3c8ce41e..c01bf27e 100644 --- a/include/InputFunctions/SourceTerms/cartesianR6_ZoniShiftedGyro_ShafranovGeometry.h +++ b/include/InputFunctions/SourceTerms/cartesianR6_ZoniShiftedGyro_ShafranovGeometry.h @@ -6,14 +6,13 @@ #include "../../PolarGrid/polargrid.h" -class CartesianR6_ZoniShiftedGyro_ShafranovGeometry : public SourceTerm +class CartesianR6_ZoniShiftedGyro_ShafranovGeometry { public: explicit CartesianR6_ZoniShiftedGyro_ShafranovGeometry(PolarGrid const& grid, double Rmax, double elongation_kappa, double shift_delta); - virtual ~CartesianR6_ZoniShiftedGyro_ShafranovGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/cartesianR6_ZoniShifted_CircularGeometry.h b/include/InputFunctions/SourceTerms/cartesianR6_ZoniShifted_CircularGeometry.h index ddd8a5b6..5af27515 100644 --- a/include/InputFunctions/SourceTerms/cartesianR6_ZoniShifted_CircularGeometry.h +++ b/include/InputFunctions/SourceTerms/cartesianR6_ZoniShifted_CircularGeometry.h @@ -6,13 +6,12 @@ #include "../../PolarGrid/polargrid.h" -class CartesianR6_ZoniShifted_CircularGeometry : public SourceTerm +class CartesianR6_ZoniShifted_CircularGeometry { public: explicit CartesianR6_ZoniShifted_CircularGeometry(PolarGrid const& grid, double Rmax); - virtual ~CartesianR6_ZoniShifted_CircularGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/cartesianR6_ZoniShifted_CzarnyGeometry.h b/include/InputFunctions/SourceTerms/cartesianR6_ZoniShifted_CzarnyGeometry.h index 53bb2160..9cae81aa 100644 --- a/include/InputFunctions/SourceTerms/cartesianR6_ZoniShifted_CzarnyGeometry.h +++ b/include/InputFunctions/SourceTerms/cartesianR6_ZoniShifted_CzarnyGeometry.h @@ -6,14 +6,13 @@ #include "../../PolarGrid/polargrid.h" -class CartesianR6_ZoniShifted_CzarnyGeometry : public SourceTerm +class CartesianR6_ZoniShifted_CzarnyGeometry { public: explicit CartesianR6_ZoniShifted_CzarnyGeometry(PolarGrid const& grid, double Rmax, double inverse_aspect_ratio_epsilon, double ellipticity_e); - virtual ~CartesianR6_ZoniShifted_CzarnyGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/cartesianR6_ZoniShifted_ShafranovGeometry.h b/include/InputFunctions/SourceTerms/cartesianR6_ZoniShifted_ShafranovGeometry.h index bec36bc6..6af7eeb2 100644 --- a/include/InputFunctions/SourceTerms/cartesianR6_ZoniShifted_ShafranovGeometry.h +++ b/include/InputFunctions/SourceTerms/cartesianR6_ZoniShifted_ShafranovGeometry.h @@ -6,14 +6,13 @@ #include "../../PolarGrid/polargrid.h" -class CartesianR6_ZoniShifted_ShafranovGeometry : public SourceTerm +class CartesianR6_ZoniShifted_ShafranovGeometry { public: explicit CartesianR6_ZoniShifted_ShafranovGeometry(PolarGrid const& grid, double Rmax, double elongation_kappa, double shift_delta); - virtual ~CartesianR6_ZoniShifted_ShafranovGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/cartesianR6_Zoni_CircularGeometry.h b/include/InputFunctions/SourceTerms/cartesianR6_Zoni_CircularGeometry.h index c660c209..302a080d 100644 --- a/include/InputFunctions/SourceTerms/cartesianR6_Zoni_CircularGeometry.h +++ b/include/InputFunctions/SourceTerms/cartesianR6_Zoni_CircularGeometry.h @@ -6,13 +6,12 @@ #include "../../PolarGrid/polargrid.h" -class CartesianR6_Zoni_CircularGeometry : public SourceTerm +class CartesianR6_Zoni_CircularGeometry { public: explicit CartesianR6_Zoni_CircularGeometry(PolarGrid const& grid, double Rmax); - virtual ~CartesianR6_Zoni_CircularGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/cartesianR6_Zoni_CzarnyGeometry.h b/include/InputFunctions/SourceTerms/cartesianR6_Zoni_CzarnyGeometry.h index 64c9ed4c..a66022ca 100644 --- a/include/InputFunctions/SourceTerms/cartesianR6_Zoni_CzarnyGeometry.h +++ b/include/InputFunctions/SourceTerms/cartesianR6_Zoni_CzarnyGeometry.h @@ -6,14 +6,13 @@ #include "../../PolarGrid/polargrid.h" -class CartesianR6_Zoni_CzarnyGeometry : public SourceTerm +class CartesianR6_Zoni_CzarnyGeometry { public: explicit CartesianR6_Zoni_CzarnyGeometry(PolarGrid const& grid, double Rmax, double inverse_aspect_ratio_epsilon, double ellipticity_e); - virtual ~CartesianR6_Zoni_CzarnyGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/cartesianR6_Zoni_ShafranovGeometry.h b/include/InputFunctions/SourceTerms/cartesianR6_Zoni_ShafranovGeometry.h index 860fcd96..b6a80321 100644 --- a/include/InputFunctions/SourceTerms/cartesianR6_Zoni_ShafranovGeometry.h +++ b/include/InputFunctions/SourceTerms/cartesianR6_Zoni_ShafranovGeometry.h @@ -6,14 +6,13 @@ #include "../../PolarGrid/polargrid.h" -class CartesianR6_Zoni_ShafranovGeometry : public SourceTerm +class CartesianR6_Zoni_ShafranovGeometry { public: explicit CartesianR6_Zoni_ShafranovGeometry(PolarGrid const& grid, double Rmax, double elongation_kappa, double shift_delta); - virtual ~CartesianR6_Zoni_ShafranovGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/polarR6_Poisson_CircularGeometry.h b/include/InputFunctions/SourceTerms/polarR6_Poisson_CircularGeometry.h index cb62750f..e8013b09 100644 --- a/include/InputFunctions/SourceTerms/polarR6_Poisson_CircularGeometry.h +++ b/include/InputFunctions/SourceTerms/polarR6_Poisson_CircularGeometry.h @@ -6,13 +6,12 @@ #include "../../PolarGrid/polargrid.h" -class PolarR6_Poisson_CircularGeometry : public SourceTerm +class PolarR6_Poisson_CircularGeometry { public: explicit PolarR6_Poisson_CircularGeometry(PolarGrid const& grid, double Rmax); - virtual ~PolarR6_Poisson_CircularGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/polarR6_Poisson_CzarnyGeometry.h b/include/InputFunctions/SourceTerms/polarR6_Poisson_CzarnyGeometry.h index d2395e53..6139369e 100644 --- a/include/InputFunctions/SourceTerms/polarR6_Poisson_CzarnyGeometry.h +++ b/include/InputFunctions/SourceTerms/polarR6_Poisson_CzarnyGeometry.h @@ -6,14 +6,13 @@ #include "../../PolarGrid/polargrid.h" -class PolarR6_Poisson_CzarnyGeometry : public SourceTerm +class PolarR6_Poisson_CzarnyGeometry { public: explicit PolarR6_Poisson_CzarnyGeometry(PolarGrid const& grid, double Rmax, double inverse_aspect_ratio_epsilon, double ellipticity_e); - virtual ~PolarR6_Poisson_CzarnyGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/polarR6_Poisson_ShafranovGeometry.h b/include/InputFunctions/SourceTerms/polarR6_Poisson_ShafranovGeometry.h index 2da921c4..e223b876 100644 --- a/include/InputFunctions/SourceTerms/polarR6_Poisson_ShafranovGeometry.h +++ b/include/InputFunctions/SourceTerms/polarR6_Poisson_ShafranovGeometry.h @@ -6,14 +6,13 @@ #include "../../PolarGrid/polargrid.h" -class PolarR6_Poisson_ShafranovGeometry : public SourceTerm +class PolarR6_Poisson_ShafranovGeometry { public: explicit PolarR6_Poisson_ShafranovGeometry(PolarGrid const& grid, double Rmax, double elongation_kappa, double shift_delta); - virtual ~PolarR6_Poisson_ShafranovGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/polarR6_SonnendruckerGyro_CircularGeometry.h b/include/InputFunctions/SourceTerms/polarR6_SonnendruckerGyro_CircularGeometry.h index 153b3c12..7de0c778 100644 --- a/include/InputFunctions/SourceTerms/polarR6_SonnendruckerGyro_CircularGeometry.h +++ b/include/InputFunctions/SourceTerms/polarR6_SonnendruckerGyro_CircularGeometry.h @@ -6,13 +6,12 @@ #include "../../PolarGrid/polargrid.h" -class PolarR6_SonnendruckerGyro_CircularGeometry : public SourceTerm +class PolarR6_SonnendruckerGyro_CircularGeometry { public: explicit PolarR6_SonnendruckerGyro_CircularGeometry(PolarGrid const& grid, double Rmax); - virtual ~PolarR6_SonnendruckerGyro_CircularGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/polarR6_SonnendruckerGyro_CzarnyGeometry.h b/include/InputFunctions/SourceTerms/polarR6_SonnendruckerGyro_CzarnyGeometry.h index 43533ddd..5d3ed467 100644 --- a/include/InputFunctions/SourceTerms/polarR6_SonnendruckerGyro_CzarnyGeometry.h +++ b/include/InputFunctions/SourceTerms/polarR6_SonnendruckerGyro_CzarnyGeometry.h @@ -6,14 +6,13 @@ #include "../../PolarGrid/polargrid.h" -class PolarR6_SonnendruckerGyro_CzarnyGeometry : public SourceTerm +class PolarR6_SonnendruckerGyro_CzarnyGeometry { public: explicit PolarR6_SonnendruckerGyro_CzarnyGeometry(PolarGrid const& grid, double Rmax, double inverse_aspect_ratio_epsilon, double ellipticity_e); - virtual ~PolarR6_SonnendruckerGyro_CzarnyGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/polarR6_SonnendruckerGyro_ShafranovGeometry.h b/include/InputFunctions/SourceTerms/polarR6_SonnendruckerGyro_ShafranovGeometry.h index 265e1029..45ad9fc2 100644 --- a/include/InputFunctions/SourceTerms/polarR6_SonnendruckerGyro_ShafranovGeometry.h +++ b/include/InputFunctions/SourceTerms/polarR6_SonnendruckerGyro_ShafranovGeometry.h @@ -6,14 +6,13 @@ #include "../../PolarGrid/polargrid.h" -class PolarR6_SonnendruckerGyro_ShafranovGeometry : public SourceTerm +class PolarR6_SonnendruckerGyro_ShafranovGeometry { public: explicit PolarR6_SonnendruckerGyro_ShafranovGeometry(PolarGrid const& grid, double Rmax, double elongation_kappa, double shift_delta); - virtual ~PolarR6_SonnendruckerGyro_ShafranovGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/polarR6_Sonnendrucker_CircularGeometry.h b/include/InputFunctions/SourceTerms/polarR6_Sonnendrucker_CircularGeometry.h index ca937cd5..0f409299 100644 --- a/include/InputFunctions/SourceTerms/polarR6_Sonnendrucker_CircularGeometry.h +++ b/include/InputFunctions/SourceTerms/polarR6_Sonnendrucker_CircularGeometry.h @@ -6,13 +6,12 @@ #include "../../PolarGrid/polargrid.h" -class PolarR6_Sonnendrucker_CircularGeometry : public SourceTerm +class PolarR6_Sonnendrucker_CircularGeometry { public: explicit PolarR6_Sonnendrucker_CircularGeometry(PolarGrid const& grid, double Rmax); - virtual ~PolarR6_Sonnendrucker_CircularGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/polarR6_Sonnendrucker_CzarnyGeometry.h b/include/InputFunctions/SourceTerms/polarR6_Sonnendrucker_CzarnyGeometry.h index abe57421..1dff82d5 100644 --- a/include/InputFunctions/SourceTerms/polarR6_Sonnendrucker_CzarnyGeometry.h +++ b/include/InputFunctions/SourceTerms/polarR6_Sonnendrucker_CzarnyGeometry.h @@ -6,14 +6,13 @@ #include "../../PolarGrid/polargrid.h" -class PolarR6_Sonnendrucker_CzarnyGeometry : public SourceTerm +class PolarR6_Sonnendrucker_CzarnyGeometry { public: explicit PolarR6_Sonnendrucker_CzarnyGeometry(PolarGrid const& grid, double Rmax, double inverse_aspect_ratio_epsilon, double ellipticity_e); - virtual ~PolarR6_Sonnendrucker_CzarnyGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/polarR6_Sonnendrucker_ShafranovGeometry.h b/include/InputFunctions/SourceTerms/polarR6_Sonnendrucker_ShafranovGeometry.h index 86332104..00b65a5c 100644 --- a/include/InputFunctions/SourceTerms/polarR6_Sonnendrucker_ShafranovGeometry.h +++ b/include/InputFunctions/SourceTerms/polarR6_Sonnendrucker_ShafranovGeometry.h @@ -6,14 +6,13 @@ #include "../../PolarGrid/polargrid.h" -class PolarR6_Sonnendrucker_ShafranovGeometry : public SourceTerm +class PolarR6_Sonnendrucker_ShafranovGeometry { public: explicit PolarR6_Sonnendrucker_ShafranovGeometry(PolarGrid const& grid, double Rmax, double elongation_kappa, double shift_delta); - virtual ~PolarR6_Sonnendrucker_ShafranovGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/polarR6_ZoniGyro_CircularGeometry.h b/include/InputFunctions/SourceTerms/polarR6_ZoniGyro_CircularGeometry.h index a7d6bf7b..ae56d545 100644 --- a/include/InputFunctions/SourceTerms/polarR6_ZoniGyro_CircularGeometry.h +++ b/include/InputFunctions/SourceTerms/polarR6_ZoniGyro_CircularGeometry.h @@ -6,13 +6,12 @@ #include "../../PolarGrid/polargrid.h" -class PolarR6_ZoniGyro_CircularGeometry : public SourceTerm +class PolarR6_ZoniGyro_CircularGeometry { public: explicit PolarR6_ZoniGyro_CircularGeometry(PolarGrid const& grid, double Rmax); - virtual ~PolarR6_ZoniGyro_CircularGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/polarR6_ZoniGyro_CzarnyGeometry.h b/include/InputFunctions/SourceTerms/polarR6_ZoniGyro_CzarnyGeometry.h index 0a5d87e7..fcb32ecb 100644 --- a/include/InputFunctions/SourceTerms/polarR6_ZoniGyro_CzarnyGeometry.h +++ b/include/InputFunctions/SourceTerms/polarR6_ZoniGyro_CzarnyGeometry.h @@ -6,14 +6,13 @@ #include "../../PolarGrid/polargrid.h" -class PolarR6_ZoniGyro_CzarnyGeometry : public SourceTerm +class PolarR6_ZoniGyro_CzarnyGeometry { public: explicit PolarR6_ZoniGyro_CzarnyGeometry(PolarGrid const& grid, double Rmax, double inverse_aspect_ratio_epsilon, double ellipticity_e); - virtual ~PolarR6_ZoniGyro_CzarnyGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/polarR6_ZoniGyro_ShafranovGeometry.h b/include/InputFunctions/SourceTerms/polarR6_ZoniGyro_ShafranovGeometry.h index 5bf5e1c1..17d9a8ad 100644 --- a/include/InputFunctions/SourceTerms/polarR6_ZoniGyro_ShafranovGeometry.h +++ b/include/InputFunctions/SourceTerms/polarR6_ZoniGyro_ShafranovGeometry.h @@ -6,14 +6,13 @@ #include "../../PolarGrid/polargrid.h" -class PolarR6_ZoniGyro_ShafranovGeometry : public SourceTerm +class PolarR6_ZoniGyro_ShafranovGeometry { public: explicit PolarR6_ZoniGyro_ShafranovGeometry(PolarGrid const& grid, double Rmax, double elongation_kappa, double shift_delta); - virtual ~PolarR6_ZoniGyro_ShafranovGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/polarR6_ZoniShiftedGyro_CircularGeometry.h b/include/InputFunctions/SourceTerms/polarR6_ZoniShiftedGyro_CircularGeometry.h index ce1176d0..6bde2804 100644 --- a/include/InputFunctions/SourceTerms/polarR6_ZoniShiftedGyro_CircularGeometry.h +++ b/include/InputFunctions/SourceTerms/polarR6_ZoniShiftedGyro_CircularGeometry.h @@ -6,13 +6,12 @@ #include "../../PolarGrid/polargrid.h" -class PolarR6_ZoniShiftedGyro_CircularGeometry : public SourceTerm +class PolarR6_ZoniShiftedGyro_CircularGeometry { public: explicit PolarR6_ZoniShiftedGyro_CircularGeometry(PolarGrid const& grid, double Rmax); - virtual ~PolarR6_ZoniShiftedGyro_CircularGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/polarR6_ZoniShiftedGyro_CulhamGeometry.h b/include/InputFunctions/SourceTerms/polarR6_ZoniShiftedGyro_CulhamGeometry.h index 5ed4d3c8..91b87d03 100644 --- a/include/InputFunctions/SourceTerms/polarR6_ZoniShiftedGyro_CulhamGeometry.h +++ b/include/InputFunctions/SourceTerms/polarR6_ZoniShiftedGyro_CulhamGeometry.h @@ -6,13 +6,12 @@ #include "../../PolarGrid/polargrid.h" -class PolarR6_ZoniShiftedGyro_CulhamGeometry : public SourceTerm +class PolarR6_ZoniShiftedGyro_CulhamGeometry { public: explicit PolarR6_ZoniShiftedGyro_CulhamGeometry(PolarGrid const& grid, double Rmax); - virtual ~PolarR6_ZoniShiftedGyro_CulhamGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/polarR6_ZoniShiftedGyro_CzarnyGeometry.h b/include/InputFunctions/SourceTerms/polarR6_ZoniShiftedGyro_CzarnyGeometry.h index edaff8e3..886a3d6b 100644 --- a/include/InputFunctions/SourceTerms/polarR6_ZoniShiftedGyro_CzarnyGeometry.h +++ b/include/InputFunctions/SourceTerms/polarR6_ZoniShiftedGyro_CzarnyGeometry.h @@ -6,14 +6,13 @@ #include "../../PolarGrid/polargrid.h" -class PolarR6_ZoniShiftedGyro_CzarnyGeometry : public SourceTerm +class PolarR6_ZoniShiftedGyro_CzarnyGeometry { public: explicit PolarR6_ZoniShiftedGyro_CzarnyGeometry(PolarGrid const& grid, double Rmax, double inverse_aspect_ratio_epsilon, double ellipticity_e); - virtual ~PolarR6_ZoniShiftedGyro_CzarnyGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/polarR6_ZoniShiftedGyro_ShafranovGeometry.h b/include/InputFunctions/SourceTerms/polarR6_ZoniShiftedGyro_ShafranovGeometry.h index 8bcc218f..c872752d 100644 --- a/include/InputFunctions/SourceTerms/polarR6_ZoniShiftedGyro_ShafranovGeometry.h +++ b/include/InputFunctions/SourceTerms/polarR6_ZoniShiftedGyro_ShafranovGeometry.h @@ -6,14 +6,13 @@ #include "../../PolarGrid/polargrid.h" -class PolarR6_ZoniShiftedGyro_ShafranovGeometry : public SourceTerm +class PolarR6_ZoniShiftedGyro_ShafranovGeometry { public: explicit PolarR6_ZoniShiftedGyro_ShafranovGeometry(PolarGrid const& grid, double Rmax, double elongation_kappa, double shift_delta); - virtual ~PolarR6_ZoniShiftedGyro_ShafranovGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/polarR6_ZoniShifted_CircularGeometry.h b/include/InputFunctions/SourceTerms/polarR6_ZoniShifted_CircularGeometry.h index 92bbc214..7cf4f1bf 100644 --- a/include/InputFunctions/SourceTerms/polarR6_ZoniShifted_CircularGeometry.h +++ b/include/InputFunctions/SourceTerms/polarR6_ZoniShifted_CircularGeometry.h @@ -6,13 +6,12 @@ #include "../../PolarGrid/polargrid.h" -class PolarR6_ZoniShifted_CircularGeometry : public SourceTerm +class PolarR6_ZoniShifted_CircularGeometry { public: explicit PolarR6_ZoniShifted_CircularGeometry(PolarGrid const& grid, double Rmax); - virtual ~PolarR6_ZoniShifted_CircularGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/polarR6_ZoniShifted_CzarnyGeometry.h b/include/InputFunctions/SourceTerms/polarR6_ZoniShifted_CzarnyGeometry.h index 7eec04bb..a91d02d2 100644 --- a/include/InputFunctions/SourceTerms/polarR6_ZoniShifted_CzarnyGeometry.h +++ b/include/InputFunctions/SourceTerms/polarR6_ZoniShifted_CzarnyGeometry.h @@ -6,14 +6,13 @@ #include "../../PolarGrid/polargrid.h" -class PolarR6_ZoniShifted_CzarnyGeometry : public SourceTerm +class PolarR6_ZoniShifted_CzarnyGeometry { public: explicit PolarR6_ZoniShifted_CzarnyGeometry(PolarGrid const& grid, double Rmax, double inverse_aspect_ratio_epsilon, double ellipticity_e); - virtual ~PolarR6_ZoniShifted_CzarnyGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/polarR6_ZoniShifted_ShafranovGeometry.h b/include/InputFunctions/SourceTerms/polarR6_ZoniShifted_ShafranovGeometry.h index f2420f9f..9be23ec0 100644 --- a/include/InputFunctions/SourceTerms/polarR6_ZoniShifted_ShafranovGeometry.h +++ b/include/InputFunctions/SourceTerms/polarR6_ZoniShifted_ShafranovGeometry.h @@ -6,14 +6,13 @@ #include "../../PolarGrid/polargrid.h" -class PolarR6_ZoniShifted_ShafranovGeometry : public SourceTerm +class PolarR6_ZoniShifted_ShafranovGeometry { public: explicit PolarR6_ZoniShifted_ShafranovGeometry(PolarGrid const& grid, double Rmax, double elongation_kappa, double shift_delta); - virtual ~PolarR6_ZoniShifted_ShafranovGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/polarR6_Zoni_CircularGeometry.h b/include/InputFunctions/SourceTerms/polarR6_Zoni_CircularGeometry.h index b4993ce8..6ca53a24 100644 --- a/include/InputFunctions/SourceTerms/polarR6_Zoni_CircularGeometry.h +++ b/include/InputFunctions/SourceTerms/polarR6_Zoni_CircularGeometry.h @@ -6,13 +6,12 @@ #include "../../PolarGrid/polargrid.h" -class PolarR6_Zoni_CircularGeometry : public SourceTerm +class PolarR6_Zoni_CircularGeometry { public: explicit PolarR6_Zoni_CircularGeometry(PolarGrid const& grid, double Rmax); - virtual ~PolarR6_Zoni_CircularGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/polarR6_Zoni_CzarnyGeometry.h b/include/InputFunctions/SourceTerms/polarR6_Zoni_CzarnyGeometry.h index 6f204a60..29f7e2cc 100644 --- a/include/InputFunctions/SourceTerms/polarR6_Zoni_CzarnyGeometry.h +++ b/include/InputFunctions/SourceTerms/polarR6_Zoni_CzarnyGeometry.h @@ -6,14 +6,13 @@ #include "../../PolarGrid/polargrid.h" -class PolarR6_Zoni_CzarnyGeometry : public SourceTerm +class PolarR6_Zoni_CzarnyGeometry { public: explicit PolarR6_Zoni_CzarnyGeometry(PolarGrid const& grid, double Rmax, double inverse_aspect_ratio_epsilon, double ellipticity_e); - virtual ~PolarR6_Zoni_CzarnyGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/polarR6_Zoni_ShafranovGeometry.h b/include/InputFunctions/SourceTerms/polarR6_Zoni_ShafranovGeometry.h index b7b020f8..cd0d44ea 100644 --- a/include/InputFunctions/SourceTerms/polarR6_Zoni_ShafranovGeometry.h +++ b/include/InputFunctions/SourceTerms/polarR6_Zoni_ShafranovGeometry.h @@ -6,14 +6,13 @@ #include "../../PolarGrid/polargrid.h" -class PolarR6_Zoni_ShafranovGeometry : public SourceTerm +class PolarR6_Zoni_ShafranovGeometry { public: explicit PolarR6_Zoni_ShafranovGeometry(PolarGrid const& grid, double Rmax, double elongation_kappa, double shift_delta); - virtual ~PolarR6_Zoni_ShafranovGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/refined_ZoniShiftedGyro_CircularGeometry.h b/include/InputFunctions/SourceTerms/refined_ZoniShiftedGyro_CircularGeometry.h index a729340d..05ae2859 100644 --- a/include/InputFunctions/SourceTerms/refined_ZoniShiftedGyro_CircularGeometry.h +++ b/include/InputFunctions/SourceTerms/refined_ZoniShiftedGyro_CircularGeometry.h @@ -6,13 +6,12 @@ #include "../../PolarGrid/polargrid.h" -class Refined_ZoniShiftedGyro_CircularGeometry : public SourceTerm +class Refined_ZoniShiftedGyro_CircularGeometry { public: explicit Refined_ZoniShiftedGyro_CircularGeometry(PolarGrid const& grid, double Rmax); - virtual ~Refined_ZoniShiftedGyro_CircularGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/refined_ZoniShiftedGyro_CulhamGeometry.h b/include/InputFunctions/SourceTerms/refined_ZoniShiftedGyro_CulhamGeometry.h index b11ce702..cddd03aa 100644 --- a/include/InputFunctions/SourceTerms/refined_ZoniShiftedGyro_CulhamGeometry.h +++ b/include/InputFunctions/SourceTerms/refined_ZoniShiftedGyro_CulhamGeometry.h @@ -6,13 +6,12 @@ #include "../../PolarGrid/polargrid.h" -class Refined_ZoniShiftedGyro_CulhamGeometry : public SourceTerm +class Refined_ZoniShiftedGyro_CulhamGeometry { public: explicit Refined_ZoniShiftedGyro_CulhamGeometry(PolarGrid const& grid, double Rmax); - virtual ~Refined_ZoniShiftedGyro_CulhamGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/refined_ZoniShiftedGyro_CzarnyGeometry.h b/include/InputFunctions/SourceTerms/refined_ZoniShiftedGyro_CzarnyGeometry.h index 75bacf59..60130b6a 100644 --- a/include/InputFunctions/SourceTerms/refined_ZoniShiftedGyro_CzarnyGeometry.h +++ b/include/InputFunctions/SourceTerms/refined_ZoniShiftedGyro_CzarnyGeometry.h @@ -6,14 +6,13 @@ #include "../../PolarGrid/polargrid.h" -class Refined_ZoniShiftedGyro_CzarnyGeometry : public SourceTerm +class Refined_ZoniShiftedGyro_CzarnyGeometry { public: explicit Refined_ZoniShiftedGyro_CzarnyGeometry(PolarGrid const& grid, double Rmax, double inverse_aspect_ratio_epsilon, double ellipticity_e); - virtual ~Refined_ZoniShiftedGyro_CzarnyGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/SourceTerms/refined_ZoniShiftedGyro_ShafranovGeometry.h b/include/InputFunctions/SourceTerms/refined_ZoniShiftedGyro_ShafranovGeometry.h index 026caae3..368ff0a3 100644 --- a/include/InputFunctions/SourceTerms/refined_ZoniShiftedGyro_ShafranovGeometry.h +++ b/include/InputFunctions/SourceTerms/refined_ZoniShiftedGyro_ShafranovGeometry.h @@ -6,14 +6,13 @@ #include "../../PolarGrid/polargrid.h" -class Refined_ZoniShiftedGyro_ShafranovGeometry : public SourceTerm +class Refined_ZoniShiftedGyro_ShafranovGeometry { public: explicit Refined_ZoniShiftedGyro_ShafranovGeometry(PolarGrid const& grid, double Rmax, double elongation_kappa, double shift_delta); - virtual ~Refined_ZoniShiftedGyro_ShafranovGeometry() = default; - double operator()(std::size_t i_r, std::size_t i_theta) const override; + double operator()(std::size_t i_r, std::size_t i_theta) const; private: PolarGrid const& grid_; diff --git a/include/InputFunctions/sourceTerm.h b/include/InputFunctions/sourceTerm.h index 96f544aa..2903e24e 100644 --- a/include/InputFunctions/sourceTerm.h +++ b/include/InputFunctions/sourceTerm.h @@ -1,10 +1,11 @@ #pragma once -class SourceTerm +namespace concepts { -public: - SourceTerm() = default; - virtual ~SourceTerm() = default; - virtual double operator()(std::size_t i_r, std::size_t i_theta) const = 0; +template +concept SourceTerm = requires(const T source, std::size_t i_r, std::size_t i_theta) { + { source(i_r, i_theta) } -> std::convertible_to; }; + +} // namespace concepts diff --git a/src/ConfigParser/config_parser.cpp b/src/ConfigParser/config_parser.cpp index 63b2b8bd..315f26f8 100644 --- a/src/ConfigParser/config_parser.cpp +++ b/src/ConfigParser/config_parser.cpp @@ -437,16 +437,6 @@ const DensityProfileCoefficientsVariant& ConfigParser::densityProfileCoefficient return *density_profile_coefficients_.get(); } -const BoundaryConditionsVariant& ConfigParser::boundaryConditions() const -{ - return *boundary_conditions_.get(); -} - -const SourceTerm& ConfigParser::sourceTerm() const -{ - return *source_term_.get(); -} - const ExactSolution& ConfigParser::exactSolution() const { return *exact_solution_.get(); diff --git a/src/ConfigParser/select_test_case.cpp b/src/ConfigParser/select_test_case.cpp index b3d37854..487e44df 100644 --- a/src/ConfigParser/select_test_case.cpp +++ b/src/ConfigParser/select_test_case.cpp @@ -27,6 +27,11 @@ std::unique_ptr ConfigParser::solver() const void ConfigParser::selectTestCase(GeometryType geometry_type, ProblemType problem_type, AlphaCoeff alpha_type, BetaCoeff beta_type, double Rmax, double kappa_eps, double delta_e, double alpha_jump) { + geometry_type_ = geometry_type; + problem_type_ = problem_type; + alpha_type_ = alpha_type; + beta_type_ = beta_type; + /* --------------- */ /* Domain Geometry */ switch (geometry_type) { @@ -107,25 +112,19 @@ void ConfigParser::selectTestCase(GeometryType geometry_type, ProblemType proble throw std::runtime_error("Invalid alpha.\n"); } - /* ------------------------------------ */ - /* Exact Solution & Boundary Conditions */ + /* -------------- */ + /* Exact Solution */ switch (problem_type) { case ProblemType::CARTESIAN_R2: switch (geometry_type) { case GeometryType::CIRCULAR: exact_solution_ = std::make_unique(Rmax); - boundary_conditions_ = - std::make_unique(CartesianR2_Boundary_CircularGeometry(Rmax)); break; case GeometryType::SHAFRANOV: - exact_solution_ = std::make_unique(Rmax, kappa_eps, delta_e); - boundary_conditions_ = std::make_unique( - CartesianR2_Boundary_ShafranovGeometry(Rmax, kappa_eps, delta_e)); + exact_solution_ = std::make_unique(Rmax, kappa_eps, delta_e); break; case GeometryType::CZARNY: - exact_solution_ = std::make_unique(Rmax, kappa_eps, delta_e); - boundary_conditions_ = std::make_unique( - CartesianR2_Boundary_CzarnyGeometry(Rmax, kappa_eps, delta_e)); + exact_solution_ = std::make_unique(Rmax, kappa_eps, delta_e); break; default: throw std::runtime_error("Invalid geometry for configuration.\n"); @@ -136,18 +135,12 @@ void ConfigParser::selectTestCase(GeometryType geometry_type, ProblemType proble switch (geometry_type) { case GeometryType::CIRCULAR: exact_solution_ = std::make_unique(Rmax); - boundary_conditions_ = - std::make_unique(CartesianR6_Boundary_CircularGeometry(Rmax)); break; case GeometryType::SHAFRANOV: - exact_solution_ = std::make_unique(Rmax, kappa_eps, delta_e); - boundary_conditions_ = std::make_unique( - CartesianR6_Boundary_ShafranovGeometry(Rmax, kappa_eps, delta_e)); + exact_solution_ = std::make_unique(Rmax, kappa_eps, delta_e); break; case GeometryType::CZARNY: - exact_solution_ = std::make_unique(Rmax, kappa_eps, delta_e); - boundary_conditions_ = std::make_unique( - CartesianR6_Boundary_CzarnyGeometry(Rmax, kappa_eps, delta_e)); + exact_solution_ = std::make_unique(Rmax, kappa_eps, delta_e); break; default: throw std::runtime_error("Invalid geometry for configuration.\n"); @@ -157,22 +150,16 @@ void ConfigParser::selectTestCase(GeometryType geometry_type, ProblemType proble case ProblemType::POLAR_R6: switch (geometry_type) { case GeometryType::CIRCULAR: - exact_solution_ = std::make_unique(Rmax); - boundary_conditions_ = std::make_unique(PolarR6_Boundary_CircularGeometry(Rmax)); + exact_solution_ = std::make_unique(Rmax); break; case GeometryType::SHAFRANOV: - exact_solution_ = std::make_unique(Rmax, kappa_eps, delta_e); - boundary_conditions_ = std::make_unique( - PolarR6_Boundary_ShafranovGeometry(Rmax, kappa_eps, delta_e)); + exact_solution_ = std::make_unique(Rmax, kappa_eps, delta_e); break; case GeometryType::CZARNY: exact_solution_ = std::make_unique(Rmax, kappa_eps, delta_e); - boundary_conditions_ = - std::make_unique(PolarR6_Boundary_CzarnyGeometry(Rmax, kappa_eps, delta_e)); break; case GeometryType::CULHAM: - exact_solution_ = std::make_unique(Rmax); - boundary_conditions_ = std::make_unique(PolarR6_Boundary_CulhamGeometry(Rmax)); + exact_solution_ = std::make_unique(Rmax); break; default: throw std::runtime_error("Invalid geometry for configuration.\n"); @@ -182,22 +169,16 @@ void ConfigParser::selectTestCase(GeometryType geometry_type, ProblemType proble case ProblemType::REFINED_RADIUS: switch (geometry_type) { case GeometryType::CIRCULAR: - exact_solution_ = std::make_unique(Rmax); - boundary_conditions_ = std::make_unique(Refined_Boundary_CircularGeometry(Rmax)); + exact_solution_ = std::make_unique(Rmax); break; case GeometryType::SHAFRANOV: - exact_solution_ = std::make_unique(Rmax, kappa_eps, delta_e); - boundary_conditions_ = std::make_unique( - Refined_Boundary_ShafranovGeometry(Rmax, kappa_eps, delta_e)); + exact_solution_ = std::make_unique(Rmax, kappa_eps, delta_e); break; case GeometryType::CZARNY: exact_solution_ = std::make_unique(Rmax, kappa_eps, delta_e); - boundary_conditions_ = - std::make_unique(Refined_Boundary_CzarnyGeometry(Rmax, kappa_eps, delta_e)); break; case GeometryType::CULHAM: - exact_solution_ = std::make_unique(Rmax); - boundary_conditions_ = std::make_unique(Refined_Boundary_CulhamGeometry(Rmax)); + exact_solution_ = std::make_unique(Rmax); break; default: throw std::runtime_error("Invalid geometry for configuration.\n"); @@ -207,51 +188,71 @@ void ConfigParser::selectTestCase(GeometryType geometry_type, ProblemType proble default: throw std::runtime_error("Invalid problem.\n"); } +} - /* ------------------- */ - /* Source Term (rhs_f) */ - switch (problem_type) { +template +void ConfigParser::solve(GMGPolar& solver) const +{ + assert(domain_geometry_ != nullptr); + /* ------------------------------------------ */ + /* Source Term (rhs_f) and BoundaryConditions */ + switch (problem_type_) { case ProblemType::CARTESIAN_R2: - switch (geometry_type) { - case GeometryType::CIRCULAR: + switch (geometry_type_) { + case GeometryType::CIRCULAR: { + CartesianR2_Boundary_CircularGeometry boundary_conditions(Rmax_); - switch (alpha_type) { - case AlphaCoeff::POISSON: - source_term_ = std::make_unique(grid_, Rmax); + switch (alpha_type_) { + case AlphaCoeff::POISSON: { + CartesianR2_Poisson_CircularGeometry source_term(grid_, Rmax_); + solver.solve(boundary_conditions, source_term); break; + } case AlphaCoeff::SONNENDRUCKER: - switch (beta_type) { - case BetaCoeff::ZERO: - source_term_ = std::make_unique(grid_, Rmax); + switch (beta_type_) { + case BetaCoeff::ZERO: { + CartesianR2_Sonnendrucker_CircularGeometry source_term(grid_, Rmax_); + solver.solve(boundary_conditions, source_term); break; - case BetaCoeff::ALPHA_INVERSE: - source_term_ = std::make_unique(grid_, Rmax); + } + case BetaCoeff::ALPHA_INVERSE: { + CartesianR2_SonnendruckerGyro_CircularGeometry source_term(grid_, Rmax_); + solver.solve(boundary_conditions, source_term); break; + } default: throw std::runtime_error("Invalid beta.\n"); } break; case AlphaCoeff::ZONI: - switch (beta_type) { - case BetaCoeff::ZERO: - source_term_ = std::make_unique(grid_, Rmax); + switch (beta_type_) { + case BetaCoeff::ZERO: { + CartesianR2_Zoni_CircularGeometry source_term(grid_, Rmax_); + solver.solve(boundary_conditions, source_term); break; - case BetaCoeff::ALPHA_INVERSE: - source_term_ = std::make_unique(grid_, Rmax); + } + case BetaCoeff::ALPHA_INVERSE: { + CartesianR2_ZoniGyro_CircularGeometry source_term(grid_, Rmax_); + solver.solve(boundary_conditions, source_term); break; + } default: throw std::runtime_error("Invalid beta.\n"); } break; case AlphaCoeff::ZONI_SHIFTED: - switch (beta_type) { - case BetaCoeff::ZERO: - source_term_ = std::make_unique(grid_, Rmax); + switch (beta_type_) { + case BetaCoeff::ZERO: { + CartesianR2_ZoniShifted_CircularGeometry source_term(grid_, Rmax_); + solver.solve(boundary_conditions, source_term); break; - case BetaCoeff::ALPHA_INVERSE: - source_term_ = std::make_unique(grid_, Rmax); + } + case BetaCoeff::ALPHA_INVERSE: { + CartesianR2_ZoniShiftedGyro_CircularGeometry source_term(grid_, Rmax_); + solver.solve(boundary_conditions, source_term); break; + } default: throw std::runtime_error("Invalid beta.\n"); } @@ -260,51 +261,61 @@ void ConfigParser::selectTestCase(GeometryType geometry_type, ProblemType proble throw std::runtime_error("Invalid alpha.\n"); } break; + } - case GeometryType::SHAFRANOV: + case GeometryType::SHAFRANOV: { + CartesianR2_Boundary_ShafranovGeometry boundary_conditions(Rmax_, kappa_eps_, delta_e_); - switch (alpha_type) { - case AlphaCoeff::POISSON: - source_term_ = std::make_unique(grid_, Rmax, kappa_eps, delta_e); + switch (alpha_type_) { + case AlphaCoeff::POISSON: { + CartesianR2_Poisson_ShafranovGeometry source_term(grid_, Rmax_, kappa_eps_, delta_e_); + solver.solve(boundary_conditions, source_term); break; + } case AlphaCoeff::SONNENDRUCKER: - switch (beta_type) { - case BetaCoeff::ZERO: - source_term_ = - std::make_unique(grid_, Rmax, kappa_eps, delta_e); + switch (beta_type_) { + case BetaCoeff::ZERO: { + CartesianR2_Sonnendrucker_ShafranovGeometry source_term(grid_, Rmax_, kappa_eps_, delta_e_); + solver.solve(boundary_conditions, source_term); break; - case BetaCoeff::ALPHA_INVERSE: - source_term_ = std::make_unique( - grid_, Rmax, kappa_eps, delta_e); + } + case BetaCoeff::ALPHA_INVERSE: { + CartesianR2_SonnendruckerGyro_ShafranovGeometry source_term(grid_, Rmax_, kappa_eps_, delta_e_); + solver.solve(boundary_conditions, source_term); break; + } default: throw std::runtime_error("Invalid beta.\n"); } break; case AlphaCoeff::ZONI: - switch (beta_type) { - case BetaCoeff::ZERO: - source_term_ = - std::make_unique(grid_, Rmax, kappa_eps, delta_e); + switch (beta_type_) { + case BetaCoeff::ZERO: { + CartesianR2_Zoni_ShafranovGeometry source_term(grid_, Rmax_, kappa_eps_, delta_e_); + solver.solve(boundary_conditions, source_term); break; - case BetaCoeff::ALPHA_INVERSE: - source_term_ = - std::make_unique(grid_, Rmax, kappa_eps, delta_e); + } + case BetaCoeff::ALPHA_INVERSE: { + CartesianR2_ZoniGyro_ShafranovGeometry source_term(grid_, Rmax_, kappa_eps_, delta_e_); + solver.solve(boundary_conditions, source_term); break; + } default: throw std::runtime_error("Invalid beta.\n"); } break; case AlphaCoeff::ZONI_SHIFTED: - switch (beta_type) { - case BetaCoeff::ZERO: - source_term_ = - std::make_unique(grid_, Rmax, kappa_eps, delta_e); + switch (beta_type_) { + case BetaCoeff::ZERO: { + CartesianR2_ZoniShifted_ShafranovGeometry source_term(grid_, Rmax_, kappa_eps_, delta_e_); + solver.solve(boundary_conditions, source_term); break; - case BetaCoeff::ALPHA_INVERSE: - source_term_ = std::make_unique(grid_, Rmax, - kappa_eps, delta_e); + } + case BetaCoeff::ALPHA_INVERSE: { + CartesianR2_ZoniShiftedGyro_ShafranovGeometry source_term(grid_, Rmax_, kappa_eps_, delta_e_); + solver.solve(boundary_conditions, source_term); break; + } default: throw std::runtime_error("Invalid beta.\n"); } @@ -313,50 +324,61 @@ void ConfigParser::selectTestCase(GeometryType geometry_type, ProblemType proble throw std::runtime_error("Invalid alpha.\n"); } break; + } - case GeometryType::CZARNY: + case GeometryType::CZARNY: { + CartesianR2_Boundary_CzarnyGeometry boundary_conditions(Rmax_, kappa_eps_, delta_e_); - switch (alpha_type) { - case AlphaCoeff::POISSON: - source_term_ = std::make_unique(grid_, Rmax, kappa_eps, delta_e); + switch (alpha_type_) { + case AlphaCoeff::POISSON: { + CartesianR2_Poisson_CzarnyGeometry source_term(grid_, Rmax_, kappa_eps_, delta_e_); + solver.solve(boundary_conditions, source_term); break; + } case AlphaCoeff::SONNENDRUCKER: - switch (beta_type) { - case BetaCoeff::ZERO: - source_term_ = - std::make_unique(grid_, Rmax, kappa_eps, delta_e); + switch (beta_type_) { + case BetaCoeff::ZERO: { + CartesianR2_Sonnendrucker_CzarnyGeometry source_term(grid_, Rmax_, kappa_eps_, delta_e_); + solver.solve(boundary_conditions, source_term); break; - case BetaCoeff::ALPHA_INVERSE: - source_term_ = - std::make_unique(grid_, Rmax, kappa_eps, delta_e); + } + case BetaCoeff::ALPHA_INVERSE: { + CartesianR2_SonnendruckerGyro_CzarnyGeometry source_term(grid_, Rmax_, kappa_eps_, delta_e_); + solver.solve(boundary_conditions, source_term); break; + } default: throw std::runtime_error("Invalid beta.\n"); } break; case AlphaCoeff::ZONI: - switch (beta_type) { - case BetaCoeff::ZERO: - source_term_ = std::make_unique(grid_, Rmax, kappa_eps, delta_e); + switch (beta_type_) { + case BetaCoeff::ZERO: { + CartesianR2_Zoni_CzarnyGeometry source_term(grid_, Rmax_, kappa_eps_, delta_e_); + solver.solve(boundary_conditions, source_term); break; - case BetaCoeff::ALPHA_INVERSE: - source_term_ = - std::make_unique(grid_, Rmax, kappa_eps, delta_e); + } + case BetaCoeff::ALPHA_INVERSE: { + CartesianR2_ZoniGyro_CzarnyGeometry source_term(grid_, Rmax_, kappa_eps_, delta_e_); + solver.solve(boundary_conditions, source_term); break; + } default: throw std::runtime_error("Invalid beta.\n"); } break; case AlphaCoeff::ZONI_SHIFTED: - switch (beta_type) { - case BetaCoeff::ZERO: - source_term_ = - std::make_unique(grid_, Rmax, kappa_eps, delta_e); + switch (beta_type_) { + case BetaCoeff::ZERO: { + CartesianR2_ZoniShifted_CzarnyGeometry source_term(grid_, Rmax_, kappa_eps_, delta_e_); + solver.solve(boundary_conditions, source_term); break; - case BetaCoeff::ALPHA_INVERSE: - source_term_ = - std::make_unique(grid_, Rmax, kappa_eps, delta_e); + } + case BetaCoeff::ALPHA_INVERSE: { + CartesianR2_ZoniShiftedGyro_CzarnyGeometry source_term(grid_, Rmax_, kappa_eps_, delta_e_); + solver.solve(boundary_conditions, source_term); break; + } default: throw std::runtime_error("Invalid beta.\n"); } @@ -365,6 +387,7 @@ void ConfigParser::selectTestCase(GeometryType geometry_type, ProblemType proble throw std::runtime_error("Invalid alpha.\n"); } break; + } default: throw std::runtime_error("Invalid geometry for configuration.\n"); @@ -373,45 +396,60 @@ void ConfigParser::selectTestCase(GeometryType geometry_type, ProblemType proble case ProblemType::CARTESIAN_R6: - switch (geometry_type) { - case GeometryType::CIRCULAR: + switch (geometry_type_) { + case GeometryType::CIRCULAR: { + CartesianR6_Boundary_CircularGeometry boundary_conditions(Rmax_); - switch (alpha_type) { - case AlphaCoeff::POISSON: - source_term_ = std::make_unique(grid_, Rmax); + switch (alpha_type_) { + case AlphaCoeff::POISSON: { + CartesianR6_Poisson_CircularGeometry source_term(grid_, Rmax_); + solver.solve(boundary_conditions, source_term); break; + } case AlphaCoeff::SONNENDRUCKER: - switch (beta_type) { - case BetaCoeff::ZERO: - source_term_ = std::make_unique(grid_, Rmax); + switch (beta_type_) { + case BetaCoeff::ZERO: { + CartesianR6_Sonnendrucker_CircularGeometry source_term(grid_, Rmax_); + solver.solve(boundary_conditions, source_term); break; - case BetaCoeff::ALPHA_INVERSE: - source_term_ = std::make_unique(grid_, Rmax); + } + case BetaCoeff::ALPHA_INVERSE: { + CartesianR6_SonnendruckerGyro_CircularGeometry source_term(grid_, Rmax_); + solver.solve(boundary_conditions, source_term); break; + } default: throw std::runtime_error("Invalid beta.\n"); } break; case AlphaCoeff::ZONI: - switch (beta_type) { - case BetaCoeff::ZERO: - source_term_ = std::make_unique(grid_, Rmax); + switch (beta_type_) { + case BetaCoeff::ZERO: { + CartesianR6_Zoni_CircularGeometry source_term(grid_, Rmax_); + solver.solve(boundary_conditions, source_term); break; - case BetaCoeff::ALPHA_INVERSE: - source_term_ = std::make_unique(grid_, Rmax); + } + case BetaCoeff::ALPHA_INVERSE: { + CartesianR6_ZoniGyro_CircularGeometry source_term(grid_, Rmax_); + solver.solve(boundary_conditions, source_term); break; + } default: throw std::runtime_error("Invalid beta.\n"); } break; case AlphaCoeff::ZONI_SHIFTED: - switch (beta_type) { - case BetaCoeff::ZERO: - source_term_ = std::make_unique(grid_, Rmax); + switch (beta_type_) { + case BetaCoeff::ZERO: { + CartesianR6_ZoniShifted_CircularGeometry source_term(grid_, Rmax_); + solver.solve(boundary_conditions, source_term); break; - case BetaCoeff::ALPHA_INVERSE: - source_term_ = std::make_unique(grid_, Rmax); + } + case BetaCoeff::ALPHA_INVERSE: { + CartesianR6_ZoniShiftedGyro_CircularGeometry source_term(grid_, Rmax_); + solver.solve(boundary_conditions, source_term); break; + } default: throw std::runtime_error("Invalid beta.\n"); } @@ -420,51 +458,61 @@ void ConfigParser::selectTestCase(GeometryType geometry_type, ProblemType proble throw std::runtime_error("Invalid alpha.\n"); } break; + } - case GeometryType::SHAFRANOV: + case GeometryType::SHAFRANOV: { + CartesianR6_Boundary_ShafranovGeometry boundary_conditions(Rmax_, kappa_eps_, delta_e_); - switch (alpha_type) { - case AlphaCoeff::POISSON: - source_term_ = std::make_unique(grid_, Rmax, kappa_eps, delta_e); + switch (alpha_type_) { + case AlphaCoeff::POISSON: { + CartesianR6_Poisson_ShafranovGeometry source_term(grid_, Rmax_, kappa_eps_, delta_e_); + solver.solve(boundary_conditions, source_term); break; + } case AlphaCoeff::SONNENDRUCKER: - switch (beta_type) { - case BetaCoeff::ZERO: - source_term_ = - std::make_unique(grid_, Rmax, kappa_eps, delta_e); + switch (beta_type_) { + case BetaCoeff::ZERO: { + CartesianR6_Sonnendrucker_ShafranovGeometry source_term(grid_, Rmax_, kappa_eps_, delta_e_); + solver.solve(boundary_conditions, source_term); break; - case BetaCoeff::ALPHA_INVERSE: - source_term_ = std::make_unique( - grid_, Rmax, kappa_eps, delta_e); + } + case BetaCoeff::ALPHA_INVERSE: { + CartesianR6_SonnendruckerGyro_ShafranovGeometry source_term(grid_, Rmax_, kappa_eps_, delta_e_); + solver.solve(boundary_conditions, source_term); break; + } default: throw std::runtime_error("Invalid beta.\n"); } break; case AlphaCoeff::ZONI: - switch (beta_type) { - case BetaCoeff::ZERO: - source_term_ = - std::make_unique(grid_, Rmax, kappa_eps, delta_e); + switch (beta_type_) { + case BetaCoeff::ZERO: { + CartesianR6_Zoni_ShafranovGeometry source_term(grid_, Rmax_, kappa_eps_, delta_e_); + solver.solve(boundary_conditions, source_term); break; - case BetaCoeff::ALPHA_INVERSE: - source_term_ = - std::make_unique(grid_, Rmax, kappa_eps, delta_e); + } + case BetaCoeff::ALPHA_INVERSE: { + CartesianR6_ZoniGyro_ShafranovGeometry source_term(grid_, Rmax_, kappa_eps_, delta_e_); + solver.solve(boundary_conditions, source_term); break; + } default: throw std::runtime_error("Invalid beta.\n"); } break; case AlphaCoeff::ZONI_SHIFTED: - switch (beta_type) { - case BetaCoeff::ZERO: - source_term_ = - std::make_unique(grid_, Rmax, kappa_eps, delta_e); + switch (beta_type_) { + case BetaCoeff::ZERO: { + CartesianR6_ZoniShifted_ShafranovGeometry source_term(grid_, Rmax_, kappa_eps_, delta_e_); + solver.solve(boundary_conditions, source_term); break; - case BetaCoeff::ALPHA_INVERSE: - source_term_ = std::make_unique(grid_, Rmax, - kappa_eps, delta_e); + } + case BetaCoeff::ALPHA_INVERSE: { + CartesianR6_ZoniShiftedGyro_ShafranovGeometry source_term(grid_, Rmax_, kappa_eps_, delta_e_); + solver.solve(boundary_conditions, source_term); break; + } default: throw std::runtime_error("Invalid beta.\n"); } @@ -473,50 +521,61 @@ void ConfigParser::selectTestCase(GeometryType geometry_type, ProblemType proble throw std::runtime_error("Invalid alpha.\n"); } break; + } - case GeometryType::CZARNY: + case GeometryType::CZARNY: { + CartesianR6_Boundary_CzarnyGeometry boundary_conditions(Rmax_, kappa_eps_, delta_e_); - switch (alpha_type) { - case AlphaCoeff::POISSON: - source_term_ = std::make_unique(grid_, Rmax, kappa_eps, delta_e); + switch (alpha_type_) { + case AlphaCoeff::POISSON: { + CartesianR6_Poisson_CzarnyGeometry source_term(grid_, Rmax_, kappa_eps_, delta_e_); + solver.solve(boundary_conditions, source_term); break; + } case AlphaCoeff::SONNENDRUCKER: - switch (beta_type) { - case BetaCoeff::ZERO: - source_term_ = - std::make_unique(grid_, Rmax, kappa_eps, delta_e); + switch (beta_type_) { + case BetaCoeff::ZERO: { + CartesianR6_Sonnendrucker_CzarnyGeometry source_term(grid_, Rmax_, kappa_eps_, delta_e_); + solver.solve(boundary_conditions, source_term); break; - case BetaCoeff::ALPHA_INVERSE: - source_term_ = - std::make_unique(grid_, Rmax, kappa_eps, delta_e); + } + case BetaCoeff::ALPHA_INVERSE: { + CartesianR6_SonnendruckerGyro_CzarnyGeometry source_term(grid_, Rmax_, kappa_eps_, delta_e_); + solver.solve(boundary_conditions, source_term); break; + } default: throw std::runtime_error("Invalid beta.\n"); } break; case AlphaCoeff::ZONI: - switch (beta_type) { - case BetaCoeff::ZERO: - source_term_ = std::make_unique(grid_, Rmax, kappa_eps, delta_e); + switch (beta_type_) { + case BetaCoeff::ZERO: { + CartesianR6_Zoni_CzarnyGeometry source_term(grid_, Rmax_, kappa_eps_, delta_e_); + solver.solve(boundary_conditions, source_term); break; - case BetaCoeff::ALPHA_INVERSE: - source_term_ = - std::make_unique(grid_, Rmax, kappa_eps, delta_e); + } + case BetaCoeff::ALPHA_INVERSE: { + CartesianR6_ZoniGyro_CzarnyGeometry source_term(grid_, Rmax_, kappa_eps_, delta_e_); + solver.solve(boundary_conditions, source_term); break; + } default: throw std::runtime_error("Invalid beta.\n"); } break; case AlphaCoeff::ZONI_SHIFTED: - switch (beta_type) { - case BetaCoeff::ZERO: - source_term_ = - std::make_unique(grid_, Rmax, kappa_eps, delta_e); + switch (beta_type_) { + case BetaCoeff::ZERO: { + CartesianR6_ZoniShifted_CzarnyGeometry source_term(grid_, Rmax_, kappa_eps_, delta_e_); + solver.solve(boundary_conditions, source_term); break; - case BetaCoeff::ALPHA_INVERSE: - source_term_ = - std::make_unique(grid_, Rmax, kappa_eps, delta_e); + } + case BetaCoeff::ALPHA_INVERSE: { + CartesianR6_ZoniShiftedGyro_CzarnyGeometry source_term(grid_, Rmax_, kappa_eps_, delta_e_); + solver.solve(boundary_conditions, source_term); break; + } default: throw std::runtime_error("Invalid beta.\n"); } @@ -525,6 +584,7 @@ void ConfigParser::selectTestCase(GeometryType geometry_type, ProblemType proble throw std::runtime_error("Invalid alpha.\n"); } break; + } default: throw std::runtime_error("Invalid geometry for configuration.\n"); @@ -533,45 +593,60 @@ void ConfigParser::selectTestCase(GeometryType geometry_type, ProblemType proble case ProblemType::POLAR_R6: - switch (geometry_type) { - case GeometryType::CIRCULAR: + switch (geometry_type_) { + case GeometryType::CIRCULAR: { + PolarR6_Boundary_CircularGeometry boundary_conditions(Rmax_); - switch (alpha_type) { - case AlphaCoeff::POISSON: - source_term_ = std::make_unique(grid_, Rmax); + switch (alpha_type_) { + case AlphaCoeff::POISSON: { + PolarR6_Poisson_CircularGeometry source_term(grid_, Rmax_); + solver.solve(boundary_conditions, source_term); break; + } case AlphaCoeff::SONNENDRUCKER: - switch (beta_type) { - case BetaCoeff::ZERO: - source_term_ = std::make_unique(grid_, Rmax); + switch (beta_type_) { + case BetaCoeff::ZERO: { + PolarR6_Sonnendrucker_CircularGeometry source_term(grid_, Rmax_); + solver.solve(boundary_conditions, source_term); break; - case BetaCoeff::ALPHA_INVERSE: - source_term_ = std::make_unique(grid_, Rmax); + } + case BetaCoeff::ALPHA_INVERSE: { + PolarR6_SonnendruckerGyro_CircularGeometry source_term(grid_, Rmax_); + solver.solve(boundary_conditions, source_term); break; + } default: throw std::runtime_error("Invalid beta.\n"); } break; case AlphaCoeff::ZONI: - switch (beta_type) { - case BetaCoeff::ZERO: - source_term_ = std::make_unique(grid_, Rmax); + switch (beta_type_) { + case BetaCoeff::ZERO: { + PolarR6_Zoni_CircularGeometry source_term(grid_, Rmax_); + solver.solve(boundary_conditions, source_term); break; - case BetaCoeff::ALPHA_INVERSE: - source_term_ = std::make_unique(grid_, Rmax); + } + case BetaCoeff::ALPHA_INVERSE: { + PolarR6_ZoniGyro_CircularGeometry source_term(grid_, Rmax_); + solver.solve(boundary_conditions, source_term); break; + } default: throw std::runtime_error("Invalid beta.\n"); } break; case AlphaCoeff::ZONI_SHIFTED: - switch (beta_type) { - case BetaCoeff::ZERO: - source_term_ = std::make_unique(grid_, Rmax); + switch (beta_type_) { + case BetaCoeff::ZERO: { + PolarR6_ZoniShifted_CircularGeometry source_term(grid_, Rmax_); + solver.solve(boundary_conditions, source_term); break; - case BetaCoeff::ALPHA_INVERSE: - source_term_ = std::make_unique(grid_, Rmax); + } + case BetaCoeff::ALPHA_INVERSE: { + PolarR6_ZoniShiftedGyro_CircularGeometry source_term(grid_, Rmax_); + solver.solve(boundary_conditions, source_term); break; + } default: throw std::runtime_error("Invalid beta.\n"); } @@ -580,50 +655,61 @@ void ConfigParser::selectTestCase(GeometryType geometry_type, ProblemType proble throw std::runtime_error("Invalid alpha.\n"); } break; + } - case GeometryType::SHAFRANOV: + case GeometryType::SHAFRANOV: { + PolarR6_Boundary_ShafranovGeometry boundary_conditions(Rmax_, kappa_eps_, delta_e_); - switch (alpha_type) { - case AlphaCoeff::POISSON: - source_term_ = std::make_unique(grid_, Rmax, kappa_eps, delta_e); + switch (alpha_type_) { + case AlphaCoeff::POISSON: { + PolarR6_Poisson_ShafranovGeometry source_term(grid_, Rmax_, kappa_eps_, delta_e_); + solver.solve(boundary_conditions, source_term); break; + } case AlphaCoeff::SONNENDRUCKER: - switch (beta_type) { - case BetaCoeff::ZERO: - source_term_ = - std::make_unique(grid_, Rmax, kappa_eps, delta_e); + switch (beta_type_) { + case BetaCoeff::ZERO: { + PolarR6_Sonnendrucker_ShafranovGeometry source_term(grid_, Rmax_, kappa_eps_, delta_e_); + solver.solve(boundary_conditions, source_term); break; - case BetaCoeff::ALPHA_INVERSE: - source_term_ = - std::make_unique(grid_, Rmax, kappa_eps, delta_e); + } + case BetaCoeff::ALPHA_INVERSE: { + PolarR6_SonnendruckerGyro_ShafranovGeometry source_term(grid_, Rmax_, kappa_eps_, delta_e_); + solver.solve(boundary_conditions, source_term); break; + } default: throw std::runtime_error("Invalid beta.\n"); } break; case AlphaCoeff::ZONI: - switch (beta_type) { - case BetaCoeff::ZERO: - source_term_ = std::make_unique(grid_, Rmax, kappa_eps, delta_e); + switch (beta_type_) { + case BetaCoeff::ZERO: { + PolarR6_Zoni_ShafranovGeometry source_term(grid_, Rmax_, kappa_eps_, delta_e_); + solver.solve(boundary_conditions, source_term); break; - case BetaCoeff::ALPHA_INVERSE: - source_term_ = - std::make_unique(grid_, Rmax, kappa_eps, delta_e); + } + case BetaCoeff::ALPHA_INVERSE: { + PolarR6_ZoniGyro_ShafranovGeometry source_term(grid_, Rmax_, kappa_eps_, delta_e_); + solver.solve(boundary_conditions, source_term); break; + } default: throw std::runtime_error("Invalid beta.\n"); } break; case AlphaCoeff::ZONI_SHIFTED: - switch (beta_type) { - case BetaCoeff::ZERO: - source_term_ = - std::make_unique(grid_, Rmax, kappa_eps, delta_e); + switch (beta_type_) { + case BetaCoeff::ZERO: { + PolarR6_ZoniShifted_ShafranovGeometry source_term(grid_, Rmax_, kappa_eps_, delta_e_); + solver.solve(boundary_conditions, source_term); break; - case BetaCoeff::ALPHA_INVERSE: - source_term_ = - std::make_unique(grid_, Rmax, kappa_eps, delta_e); + } + case BetaCoeff::ALPHA_INVERSE: { + PolarR6_ZoniShiftedGyro_ShafranovGeometry source_term(grid_, Rmax_, kappa_eps_, delta_e_); + solver.solve(boundary_conditions, source_term); break; + } default: throw std::runtime_error("Invalid beta.\n"); } @@ -632,49 +718,61 @@ void ConfigParser::selectTestCase(GeometryType geometry_type, ProblemType proble throw std::runtime_error("Invalid alpha.\n"); } break; + } - case GeometryType::CZARNY: + case GeometryType::CZARNY: { + PolarR6_Boundary_CzarnyGeometry boundary_conditions(Rmax_, kappa_eps_, delta_e_); - switch (alpha_type) { - case AlphaCoeff::POISSON: - source_term_ = std::make_unique(grid_, Rmax, kappa_eps, delta_e); + switch (alpha_type_) { + case AlphaCoeff::POISSON: { + PolarR6_Poisson_CzarnyGeometry source_term(grid_, Rmax_, kappa_eps_, delta_e_); + solver.solve(boundary_conditions, source_term); break; + } case AlphaCoeff::SONNENDRUCKER: - switch (beta_type) { - case BetaCoeff::ZERO: - source_term_ = - std::make_unique(grid_, Rmax, kappa_eps, delta_e); + switch (beta_type_) { + case BetaCoeff::ZERO: { + PolarR6_Sonnendrucker_CzarnyGeometry source_term(grid_, Rmax_, kappa_eps_, delta_e_); + solver.solve(boundary_conditions, source_term); break; - case BetaCoeff::ALPHA_INVERSE: - source_term_ = - std::make_unique(grid_, Rmax, kappa_eps, delta_e); + } + case BetaCoeff::ALPHA_INVERSE: { + PolarR6_SonnendruckerGyro_CzarnyGeometry source_term(grid_, Rmax_, kappa_eps_, delta_e_); + solver.solve(boundary_conditions, source_term); break; + } default: throw std::runtime_error("Invalid beta.\n"); } break; case AlphaCoeff::ZONI: - switch (beta_type) { - case BetaCoeff::ZERO: - source_term_ = std::make_unique(grid_, Rmax, kappa_eps, delta_e); + switch (beta_type_) { + case BetaCoeff::ZERO: { + PolarR6_Zoni_CzarnyGeometry source_term(grid_, Rmax_, kappa_eps_, delta_e_); + solver.solve(boundary_conditions, source_term); break; - case BetaCoeff::ALPHA_INVERSE: - source_term_ = std::make_unique(grid_, Rmax, kappa_eps, delta_e); + } + case BetaCoeff::ALPHA_INVERSE: { + PolarR6_ZoniGyro_CzarnyGeometry source_term(grid_, Rmax_, kappa_eps_, delta_e_); + solver.solve(boundary_conditions, source_term); break; + } default: throw std::runtime_error("Invalid beta.\n"); } break; case AlphaCoeff::ZONI_SHIFTED: - switch (beta_type) { - case BetaCoeff::ZERO: - source_term_ = - std::make_unique(grid_, Rmax, kappa_eps, delta_e); + switch (beta_type_) { + case BetaCoeff::ZERO: { + PolarR6_ZoniShifted_CzarnyGeometry source_term(grid_, Rmax_, kappa_eps_, delta_e_); + solver.solve(boundary_conditions, source_term); break; - case BetaCoeff::ALPHA_INVERSE: - source_term_ = - std::make_unique(grid_, Rmax, kappa_eps, delta_e); + } + case BetaCoeff::ALPHA_INVERSE: { + PolarR6_ZoniShiftedGyro_CzarnyGeometry source_term(grid_, Rmax_, kappa_eps_, delta_e_); + solver.solve(boundary_conditions, source_term); break; + } default: throw std::runtime_error("Invalid beta.\n"); } @@ -683,14 +781,18 @@ void ConfigParser::selectTestCase(GeometryType geometry_type, ProblemType proble throw std::runtime_error("Invalid alpha.\n"); } break; + } - case GeometryType::CULHAM: - switch (alpha_type) { + case GeometryType::CULHAM: { + PolarR6_Boundary_CulhamGeometry boundary_conditions(Rmax_); + switch (alpha_type_) { case AlphaCoeff::ZONI_SHIFTED: - switch (beta_type) { - case BetaCoeff::ALPHA_INVERSE: - source_term_ = std::make_unique(grid_, Rmax); + switch (beta_type_) { + case BetaCoeff::ALPHA_INVERSE: { + PolarR6_ZoniShiftedGyro_CulhamGeometry source_term(grid_, Rmax_); + solver.solve(boundary_conditions, source_term); break; + } default: throw std::runtime_error("Invalid beta for configuration.\n"); } @@ -699,6 +801,7 @@ void ConfigParser::selectTestCase(GeometryType geometry_type, ProblemType proble throw std::runtime_error("Invalid alpha for configuration.\n"); } break; + } default: throw std::runtime_error("Invalid geometry for configuration.\n"); @@ -707,15 +810,18 @@ void ConfigParser::selectTestCase(GeometryType geometry_type, ProblemType proble case ProblemType::REFINED_RADIUS: - switch (geometry_type) { - case GeometryType::CIRCULAR: + switch (geometry_type_) { + case GeometryType::CIRCULAR: { + Refined_Boundary_CircularGeometry boundary_conditions(Rmax_); - switch (alpha_type) { + switch (alpha_type_) { case AlphaCoeff::ZONI_SHIFTED: - switch (beta_type) { - case BetaCoeff::ALPHA_INVERSE: - source_term_ = std::make_unique(grid_, Rmax); + switch (beta_type_) { + case BetaCoeff::ALPHA_INVERSE: { + Refined_ZoniShiftedGyro_CircularGeometry source_term(grid_, Rmax_); + solver.solve(boundary_conditions, source_term); break; + } default: throw std::runtime_error("Invalid beta for configuration.\n"); } @@ -724,16 +830,19 @@ void ConfigParser::selectTestCase(GeometryType geometry_type, ProblemType proble throw std::runtime_error("Invalid alpha for configuration.\n"); } break; + } - case GeometryType::SHAFRANOV: + case GeometryType::SHAFRANOV: { + Refined_Boundary_ShafranovGeometry boundary_conditions(Rmax_, kappa_eps_, delta_e_); - switch (alpha_type) { + switch (alpha_type_) { case AlphaCoeff::ZONI_SHIFTED: - switch (beta_type) { - case BetaCoeff::ALPHA_INVERSE: - source_term_ = - std::make_unique(grid_, Rmax, kappa_eps, delta_e); + switch (beta_type_) { + case BetaCoeff::ALPHA_INVERSE: { + Refined_ZoniShiftedGyro_ShafranovGeometry source_term(grid_, Rmax_, kappa_eps_, delta_e_); + solver.solve(boundary_conditions, source_term); break; + } default: throw std::runtime_error("Invalid beta for configuration.\n"); } @@ -742,16 +851,19 @@ void ConfigParser::selectTestCase(GeometryType geometry_type, ProblemType proble throw std::runtime_error("Invalid alpha for configuration.\n"); } break; + } - case GeometryType::CZARNY: + case GeometryType::CZARNY: { + Refined_Boundary_CzarnyGeometry boundary_conditions(Rmax_, kappa_eps_, delta_e_); - switch (alpha_type) { + switch (alpha_type_) { case AlphaCoeff::ZONI_SHIFTED: - switch (beta_type) { - case BetaCoeff::ALPHA_INVERSE: - source_term_ = - std::make_unique(grid_, Rmax, kappa_eps, delta_e); + switch (beta_type_) { + case BetaCoeff::ALPHA_INVERSE: { + Refined_ZoniShiftedGyro_CzarnyGeometry source_term(grid_, Rmax_, kappa_eps_, delta_e_); + solver.solve(boundary_conditions, source_term); break; + } default: throw std::runtime_error("Invalid beta for configuration.\n"); } @@ -760,15 +872,19 @@ void ConfigParser::selectTestCase(GeometryType geometry_type, ProblemType proble throw std::runtime_error("Invalid alpha for configuration.\n"); } break; + } - case GeometryType::CULHAM: + case GeometryType::CULHAM: { + Refined_Boundary_CulhamGeometry boundary_conditions(Rmax_); - switch (alpha_type) { + switch (alpha_type_) { case AlphaCoeff::ZONI_SHIFTED: - switch (beta_type) { - case BetaCoeff::ALPHA_INVERSE: - source_term_ = std::make_unique(grid_, Rmax); + switch (beta_type_) { + case BetaCoeff::ALPHA_INVERSE: { + Refined_ZoniShiftedGyro_CulhamGeometry source_term(grid_, Rmax_); + solver.solve(boundary_conditions, source_term); break; + } default: throw std::runtime_error("Invalid beta for configuration.\n"); } @@ -777,6 +893,7 @@ void ConfigParser::selectTestCase(GeometryType geometry_type, ProblemType proble throw std::runtime_error("Invalid alpha for configuration.\n"); } break; + } default: throw std::runtime_error("Invalid geometry for configuration.\n"); @@ -787,3 +904,63 @@ void ConfigParser::selectTestCase(GeometryType geometry_type, ProblemType proble throw std::runtime_error("Invalid problem.\n"); } } + +template void ConfigParser::solve( + GMGPolar& solver) const; +template void ConfigParser::solve( + GMGPolar& solver) const; +template void ConfigParser::solve( + GMGPolar& solver) const; +template void +ConfigParser::solve(GMGPolar& solver) const; +template void ConfigParser::solve( + GMGPolar& solver) const; +template void ConfigParser::solve( + GMGPolar& solver) const; +template void ConfigParser::solve( + GMGPolar& solver) const; + +template void ConfigParser::solve( + GMGPolar& solver) const; +template void ConfigParser::solve( + GMGPolar& solver) const; +template void ConfigParser::solve( + GMGPolar& solver) const; +template void +ConfigParser::solve(GMGPolar& solver) const; +template void ConfigParser::solve( + GMGPolar& solver) const; +template void ConfigParser::solve( + GMGPolar& solver) const; +template void ConfigParser::solve( + GMGPolar& solver) const; + +template void +ConfigParser::solve(GMGPolar& solver) const; +template void ConfigParser::solve( + GMGPolar& solver) const; +template void ConfigParser::solve( + GMGPolar& solver) const; +template void +ConfigParser::solve(GMGPolar& solver) const; +template void +ConfigParser::solve(GMGPolar& solver) const; +template void ConfigParser::solve( + GMGPolar& solver) const; +template void ConfigParser::solve( + GMGPolar& solver) const; + +template void +ConfigParser::solve(GMGPolar& solver) const; +template void ConfigParser::solve( + GMGPolar& solver) const; +template void ConfigParser::solve( + GMGPolar& solver) const; +template void +ConfigParser::solve(GMGPolar& solver) const; +template void +ConfigParser::solve(GMGPolar& solver) const; +template void ConfigParser::solve( + GMGPolar& solver) const; +template void ConfigParser::solve( + GMGPolar& solver) const; diff --git a/src/main.cpp b/src/main.cpp index 452a1aeb..f5425431 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -15,11 +15,10 @@ int main(int argc, char* argv[]) parser.parse(argc, argv); std::visit( - [&parser](auto const& domain_geometry, auto const& density_profile_coeffs, auto const& boundary_condition) { + [&parser](auto const& domain_geometry, auto const& density_profile_coeffs) { // Get the types of the domain geometry and the density profile coefficients using DG = std::decay_t; using DC = std::decay_t; - // Create GMGPolar solver for the selected geometry and coefficient types GMGPolar solver(parser.grid(), domain_geometry, density_profile_coeffs); @@ -72,7 +71,7 @@ int main(int argc, char* argv[]) solver.setSolution(&parser.exactSolution()); // --- Solve Phase --- // - solver.solve(boundary_condition, parser.sourceTerm()); + parser.solve(solver); // --- Retrieve solution and associated grid --- // Vector solution = solver.solution(); @@ -81,7 +80,7 @@ int main(int argc, char* argv[]) // Print timing statistics for each solver phase solver.printTimings(); }, - parser.domainGeometry(), parser.densityProfileCoefficients(), parser.boundaryConditions()); + parser.domainGeometry(), parser.densityProfileCoefficients()); // Finalize LIKWID performance markers LIKWID_CLOSE(); diff --git a/tests/ConfigParser/config_parser.cpp b/tests/ConfigParser/config_parser.cpp index a0b5a3c5..9c26ceff 100644 --- a/tests/ConfigParser/config_parser.cpp +++ b/tests/ConfigParser/config_parser.cpp @@ -160,8 +160,6 @@ TEST_P(ConfigParserTest, ParseAllGeometryAndProblemCombinations) // Test case objects are initialized EXPECT_NE(&parser.domainGeometry(), nullptr); EXPECT_NE(&parser.densityProfileCoefficients(), nullptr); - EXPECT_NE(&parser.boundaryConditions(), nullptr); - EXPECT_NE(&parser.sourceTerm(), nullptr); EXPECT_NE(&parser.exactSolution(), nullptr); // Control parameters diff --git a/tests/DirectSolver/directSolver.cpp b/tests/DirectSolver/directSolver.cpp index 2d193732..c54a1dcf 100644 --- a/tests/DirectSolver/directSolver.cpp +++ b/tests/DirectSolver/directSolver.cpp @@ -16,31 +16,26 @@ #include "../../include/InputFunctions/domainGeometry.h" #include "../../include/InputFunctions/densityProfileCoefficients.h" #include "../../include/InputFunctions/boundaryConditions.h" -#include "../../include/InputFunctions/sourceTerm.h" /* ------ */ /* Test 1 */ /* ------ */ #include "../include/InputFunctions/DomainGeometry/circularGeometry.h" #include "../include/InputFunctions/DensityProfileCoefficients/sonnendruckerGyroCoefficients.h" -#include "../include/InputFunctions/SourceTerms/cartesianR2_SonnendruckerGyro_CircularGeometry.h" /* ------ */ /* Test 2 */ /* ------ */ #include "../include/InputFunctions/DomainGeometry/shafranovGeometry.h" #include "../include/InputFunctions/DensityProfileCoefficients/zoniGyroCoefficients.h" -#include "../include/InputFunctions/SourceTerms/cartesianR6_ZoniGyro_ShafranovGeometry.h" /* ------ */ /* Test 3 */ /* ------ */ #include "../include/InputFunctions/DomainGeometry/czarnyGeometry.h" #include "../include/InputFunctions/DensityProfileCoefficients/zoniShiftedCoefficients.h" -#include "../include/InputFunctions/SourceTerms/polarR6_ZoniShifted_CzarnyGeometry.h" /* ------ */ /* Test 4 */ /* ------ */ #include "../include/InputFunctions/DomainGeometry/culhamGeometry.h" #include "../include/InputFunctions/DensityProfileCoefficients/zoniShiftedGyroCoefficients.h" -#include "../include/InputFunctions/SourceTerms/refined_ZoniShiftedGyro_CulhamGeometry.h" #ifdef GMGPOLAR_USE_MUMPS @@ -76,8 +71,6 @@ TEST(DirectSolverTest, directSolver_DirBC_Interior) *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::NONE, false); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax, kappa_eps, delta_e); DirectSolver_COO_MUMPS_Take directSolverGive_operator(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); @@ -132,8 +125,6 @@ TEST(DirectSolverTest, directSolver_AcrossOrigin) *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::NONE, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax, kappa_eps, delta_e); DirectSolver_COO_MUMPS_Give directSolverGive_operator(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); @@ -190,8 +181,6 @@ TEST(DirectSolverTest_CircularGeometry, SequentialDirectSolverDirBC_Interior_Cir *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::NONE, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax); DirectSolver_COO_MUMPS_Give solver_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); ResidualGive residual_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); @@ -234,8 +223,6 @@ TEST(DirectSolverTest_CircularGeometry, ParallelDirectSolverDirBC_Interior_Circu *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::NONE, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax); DirectSolver_COO_MUMPS_Give solver_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); ResidualGive residual_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); @@ -278,8 +265,6 @@ TEST(DirectSolverTest_CircularGeometry, SequentialDirectSolverAcrossOrigin_Circu *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::NONE, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax); DirectSolver_COO_MUMPS_Give solver_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); ResidualGive residual_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); @@ -322,8 +307,6 @@ TEST(DirectSolverTest_CircularGeometry, ParallelDirectSolverAcrossOrigin_Circula *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::NONE, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax); DirectSolver_COO_MUMPS_Give solver_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); ResidualGive residual_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); @@ -372,8 +355,6 @@ TEST(DirectSolverTest_ShafranovGeometry, DirectSolverDirBC_Interior_ShafranovGeo *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::NONE, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax, kappa_eps, delta_e); DirectSolver_COO_MUMPS_Give solver_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); ResidualGive residual_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); @@ -418,8 +399,6 @@ TEST(DirectSolverTest_ShafranovGeometry, DirectSolverAcrossOrigin_ShafranovGeome *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::NONE, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax, kappa_eps, delta_e); DirectSolver_COO_MUMPS_Give solver_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); ResidualGive residual_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); @@ -468,8 +447,6 @@ TEST(DirectSolverTest_CzarnyGeometry, DirectSolverDirBC_Interior_CzarnyGeometry) *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::NONE, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax, kappa_eps, delta_e); DirectSolver_COO_MUMPS_Give solver_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); ResidualGive residual_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); @@ -514,8 +491,6 @@ TEST(DirectSolverTest_CzarnyGeometry, DirectSolverAcrossOrigin_CzarnyGeometry) *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::NONE, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax, kappa_eps, delta_e); DirectSolver_COO_MUMPS_Give solver_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); ResidualGive residual_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); @@ -562,8 +537,6 @@ TEST(DirectSolverTest_CulhamGeometry, DirectSolverDirBC_Interior_CulhamGeometry) *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::NONE, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax); DirectSolver_COO_MUMPS_Give solver_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); ResidualGive residual_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); @@ -606,8 +579,6 @@ TEST(DirectSolverTest_CulhamGeometry, DirectSolverAcrossOrigin_CulhamGeometry) *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::NONE, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax); DirectSolver_COO_MUMPS_Give solver_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); ResidualGive residual_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); @@ -662,8 +633,6 @@ TEST(DirectSolverTest_CircularGeometry, DirectSolverAcrossOriginHigherPrecision_ *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::NONE, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax); DirectSolver_COO_MUMPS_Give solver_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); ResidualGive residual_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); @@ -706,8 +675,6 @@ TEST(DirectSolverTest_CircularGeometry, DirectSolverAcrossOriginHigherPrecision2 *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::NONE, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax); DirectSolver_COO_MUMPS_Give solver_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); ResidualGive residual_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); @@ -751,8 +718,6 @@ TEST(DirectSolverTakeTest_CircularGeometry, SequentialDirectSolverDirBC_Interior *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::NONE, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax); DirectSolver_COO_MUMPS_Take solver_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); ResidualGive residual_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); @@ -795,8 +760,6 @@ TEST(DirectSolverTakeTest_CircularGeometry, ParallelDirectSolverDirBC_Interior_C *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::NONE, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax); DirectSolver_COO_MUMPS_Take solver_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); ResidualGive residual_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); @@ -839,8 +802,6 @@ TEST(DirectSolverTakeTest_CircularGeometry, SequentialDirectSolverAcrossOrigin_C *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::NONE, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax); DirectSolver_COO_MUMPS_Take solver_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); ResidualGive residual_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); @@ -883,8 +844,6 @@ TEST(DirectSolverTakeTest_CircularGeometry, ParallelDirectSolverAcrossOrigin_Cir *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::NONE, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax); DirectSolver_COO_MUMPS_Take solver_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); ResidualGive residual_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); @@ -933,8 +892,6 @@ TEST(DirectSolverTakeTest_ShafranovGeometry, DirectSolverDirBC_Interior_Shafrano *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::NONE, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax, kappa_eps, delta_e); DirectSolver_COO_MUMPS_Take solver_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); ResidualGive residual_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); @@ -979,8 +936,6 @@ TEST(DirectSolverTakeTest_ShafranovGeometry, DirectSolverAcrossOrigin_ShafranovG *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::NONE, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax, kappa_eps, delta_e); DirectSolver_COO_MUMPS_Take solver_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); ResidualGive residual_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); @@ -1029,8 +984,6 @@ TEST(DirectSolverTakeTest_CzarnyGeometry, DirectSolverDirBC_Interior_CzarnyGeome *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::NONE, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax, kappa_eps, delta_e); DirectSolver_COO_MUMPS_Take solver_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); ResidualGive residual_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); @@ -1075,8 +1028,6 @@ TEST(DirectSolverTakeTest_CzarnyGeometry, DirectSolverAcrossOrigin_CzarnyGeometr *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::NONE, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax, kappa_eps, delta_e); DirectSolver_COO_MUMPS_Take solver_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); ResidualGive residual_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); @@ -1123,8 +1074,6 @@ TEST(DirectSolverTakeTest_CulhamGeometry, DirectSolverDirBC_Interior_CulhamGeome *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::NONE, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax); DirectSolver_COO_MUMPS_Take solver_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); ResidualGive residual_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); @@ -1167,8 +1116,6 @@ TEST(DirectSolverTakeTest_CulhamGeometry, DirectSolverAcrossOrigin_CulhamGeometr *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::NONE, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax); DirectSolver_COO_MUMPS_Take solver_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); ResidualGive residual_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); @@ -1221,8 +1168,6 @@ TEST(DirectSolverTakeTest_CircularGeometry, DirectSolverAcrossOriginHigherPrecis *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::NONE, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax); DirectSolver_COO_MUMPS_Take solver_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); ResidualGive residual_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); @@ -1265,8 +1210,6 @@ TEST(DirectSolverTakeTest_CircularGeometry, DirectSolverAcrossOriginHigherPrecis *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::NONE, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax); DirectSolver_COO_MUMPS_Take solver_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); ResidualGive residual_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); diff --git a/tests/DirectSolver/directSolverNoMumps.cpp b/tests/DirectSolver/directSolverNoMumps.cpp index 370a9ef0..413d0964 100644 --- a/tests/DirectSolver/directSolverNoMumps.cpp +++ b/tests/DirectSolver/directSolverNoMumps.cpp @@ -16,31 +16,26 @@ #include "../../include/InputFunctions/domainGeometry.h" #include "../../include/InputFunctions/densityProfileCoefficients.h" #include "../../include/InputFunctions/boundaryConditions.h" -#include "../../include/InputFunctions/sourceTerm.h" /* ------ */ /* Test 1 */ /* ------ */ #include "../include/InputFunctions/DomainGeometry/circularGeometry.h" #include "../include/InputFunctions/DensityProfileCoefficients/sonnendruckerGyroCoefficients.h" -#include "../include/InputFunctions/SourceTerms/cartesianR2_SonnendruckerGyro_CircularGeometry.h" /* ------ */ /* Test 2 */ /* ------ */ #include "../include/InputFunctions/DomainGeometry/shafranovGeometry.h" #include "../include/InputFunctions/DensityProfileCoefficients/zoniGyroCoefficients.h" -#include "../include/InputFunctions/SourceTerms/cartesianR6_ZoniGyro_ShafranovGeometry.h" /* ------ */ /* Test 3 */ /* ------ */ #include "../include/InputFunctions/DomainGeometry/czarnyGeometry.h" #include "../include/InputFunctions/DensityProfileCoefficients/zoniShiftedCoefficients.h" -#include "../include/InputFunctions/SourceTerms/polarR6_ZoniShifted_CzarnyGeometry.h" /* ------ */ /* Test 4 */ /* ------ */ #include "../include/InputFunctions/DomainGeometry/culhamGeometry.h" #include "../include/InputFunctions/DensityProfileCoefficients/zoniShiftedGyroCoefficients.h" -#include "../include/InputFunctions/SourceTerms/refined_ZoniShiftedGyro_CulhamGeometry.h" /* Test 1/2: */ /* Does the Take and Give Implementation match up? */ diff --git a/tests/ExtrapolatedSmoother/extrapolated_smoother.cpp b/tests/ExtrapolatedSmoother/extrapolated_smoother.cpp index fd6f950c..4726fe04 100644 --- a/tests/ExtrapolatedSmoother/extrapolated_smoother.cpp +++ b/tests/ExtrapolatedSmoother/extrapolated_smoother.cpp @@ -16,13 +16,11 @@ #include "../../include/InputFunctions/domainGeometry.h" #include "../../include/InputFunctions/densityProfileCoefficients.h" -#include "../../include/InputFunctions/sourceTerm.h" /* --------- */ /* Test Case */ /* --------- */ #include "../include/InputFunctions/DomainGeometry/czarnyGeometry.h" #include "../include/InputFunctions/DensityProfileCoefficients/zoniShiftedCoefficients.h" -#include "../include/InputFunctions/SourceTerms/polarR6_ZoniShifted_CzarnyGeometry.h" #include @@ -59,8 +57,6 @@ TEST(ExtrapolatedSmootherTest, extrapolatedSmoother_DirBC_Interior) *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::NONE, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax, kappa_eps, delta_e); ExtrapolatedSmootherGive smootherGive_operator(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); ExtrapolatedSmootherTake smootherTake_operator(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); @@ -119,8 +115,6 @@ TEST(ExtrapolatedSmootherTest, extrapolatedSmoother_AcossOrigin) *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::NONE, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax, kappa_eps, delta_e); ExtrapolatedSmootherGive smootherGive_operator(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); ExtrapolatedSmootherTake smootherTake_operator(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); @@ -180,8 +174,6 @@ TEST(ExtrapolatedSmootherTest, SequentialExtrapolatedSmootherDirBC_Interior) *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::IMPLICIT_EXTRAPOLATION, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax, kappa_eps, delta_e); DirectSolver_CSR_LU_Give solver_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); ResidualGive residual_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); @@ -263,8 +255,6 @@ TEST(ExtrapolatedSmootherTest, ParallelExtrapolatedSmootherDirBC_Interior) *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::IMPLICIT_EXTRAPOLATION, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax, kappa_eps, delta_e); DirectSolver_CSR_LU_Give solver_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); ResidualGive residual_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); @@ -346,8 +336,6 @@ TEST(ExtrapolatedSmootherTest, SequentialExtrapolatedSmootherAcrossOrigin) *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::IMPLICIT_EXTRAPOLATION, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax, kappa_eps, delta_e); DirectSolver_CSR_LU_Give solver_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); ResidualGive residual_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); @@ -431,8 +419,6 @@ TEST(ExtrapolatedSmootherTest, ParallelExtrapolatedSmootherAcrossOrigin) *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::IMPLICIT_EXTRAPOLATION, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax, kappa_eps, delta_e); DirectSolver_CSR_LU_Give solver_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); ResidualGive residual_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); @@ -515,8 +501,6 @@ TEST(ExtrapolatedSmootherTest, SequentialExtrapolatedSmootherDirBC_Interior_Smal *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::IMPLICIT_EXTRAPOLATION, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax, kappa_eps, delta_e); DirectSolver_CSR_LU_Give solver_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); ResidualGive residual_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); @@ -599,8 +583,6 @@ TEST(ExtrapolatedSmootherTest, ParallelExtrapolatedSmootherDirBC_Interior_Smalle *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::IMPLICIT_EXTRAPOLATION, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax, kappa_eps, delta_e); DirectSolver_CSR_LU_Give solver_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); ResidualGive residual_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); @@ -683,8 +665,6 @@ TEST(ExtrapolatedSmootherTest, SequentialExtrapolatedSmootherAcrossOrigin_Smalle *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::IMPLICIT_EXTRAPOLATION, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax, kappa_eps, delta_e); DirectSolver_CSR_LU_Give solver_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); ResidualGive residual_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); @@ -765,8 +745,6 @@ TEST(ExtrapolatedSmootherTest, ParallelExtrapolatedSmootherAcrossOrigin_Smallest *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::IMPLICIT_EXTRAPOLATION, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax, kappa_eps, delta_e); DirectSolver_CSR_LU_Give solver_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); ResidualGive residual_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); @@ -850,8 +828,6 @@ TEST(ExtrapolatedSmootherTest, SequentialExtrapolatedSmootherTakeDirBC_Interior) *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::IMPLICIT_EXTRAPOLATION, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax, kappa_eps, delta_e); DirectSolver_CSR_LU_Take solver_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); ResidualTake residual_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); @@ -935,8 +911,6 @@ TEST(ExtrapolatedSmootherTest, ParallelExtrapolatedSmootherTakeDirBC_Interior) *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::IMPLICIT_EXTRAPOLATION, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax, kappa_eps, delta_e); DirectSolver_CSR_LU_Take solver_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); ResidualTake residual_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); @@ -1018,8 +992,6 @@ TEST(ExtrapolatedSmootherTest, SequentialExtrapolatedSmootherTakeAcrossOrigin) *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::IMPLICIT_EXTRAPOLATION, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax, kappa_eps, delta_e); DirectSolver_CSR_LU_Take solver_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); ResidualTake residual_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); @@ -1101,8 +1073,6 @@ TEST(ExtrapolatedSmootherTest, ParallelExtrapolatedSmootherTakeAcrossOrigin) *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::IMPLICIT_EXTRAPOLATION, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax, kappa_eps, delta_e); DirectSolver_CSR_LU_Take solver_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); ResidualTake residual_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); @@ -1183,8 +1153,6 @@ TEST(ExtrapolatedSmootherTest, SequentialExtrapolatedSmootherTakeDirBC_Interior_ *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::IMPLICIT_EXTRAPOLATION, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax, kappa_eps, delta_e); DirectSolver_CSR_LU_Take solver_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); ResidualTake residual_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); @@ -1265,8 +1233,6 @@ TEST(ExtrapolatedSmootherTest, ParallelExtrapolatedSmootherTakeDirBC_Interior_Sm *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::IMPLICIT_EXTRAPOLATION, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax, kappa_eps, delta_e); DirectSolver_CSR_LU_Take solver_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); ResidualTake residual_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); @@ -1347,8 +1313,6 @@ TEST(ExtrapolatedSmootherTest, SequentialExtrapolatedSmootherTakeAcrossOrigin_Sm *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::IMPLICIT_EXTRAPOLATION, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax, kappa_eps, delta_e); DirectSolver_CSR_LU_Take solver_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); ResidualTake residual_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); @@ -1429,8 +1393,6 @@ TEST(ExtrapolatedSmootherTest, ParallelExtrapolatedSmootherTakeAcrossOrigin_Smal *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::IMPLICIT_EXTRAPOLATION, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax, kappa_eps, delta_e); DirectSolver_CSR_LU_Take solver_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); ResidualTake residual_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); diff --git a/tests/GMGPolar/convergence_order.cpp b/tests/GMGPolar/convergence_order.cpp index 7aa4199b..d3f5b7b1 100644 --- a/tests/GMGPolar/convergence_order.cpp +++ b/tests/GMGPolar/convergence_order.cpp @@ -7,6 +7,9 @@ #include "../../include/ConfigParser/test_selection.h" #include "../../include/GMGPolar/gmgpolar.h" +#include "../../include/InputFunctions/boundaryConditions.h" +#include "../../include/InputFunctions/densityProfileCoefficients.h" +#include "../../include/InputFunctions/sourceTerm.h" template class GMGPolarPaperTestCase; @@ -153,7 +156,8 @@ std::vector refine(std::vector const& original_points) return refined; } -template +template std::tuple get_gmgpolar_error(PolarGrid const& grid, CzarnyGeometry const& domain_geometry, DensityProfileCoefficients const& coefficients, BoundaryConditions const& boundary_conditions, diff --git a/tests/Residual/residual.cpp b/tests/Residual/residual.cpp index ccb1d694..b8ba5fe6 100644 --- a/tests/Residual/residual.cpp +++ b/tests/Residual/residual.cpp @@ -13,13 +13,11 @@ #include "../../include/InputFunctions/domainGeometry.h" #include "../../include/InputFunctions/densityProfileCoefficients.h" #include "../../include/InputFunctions/boundaryConditions.h" -#include "../../include/InputFunctions/sourceTerm.h" /* --------- */ /* Test Case */ /* --------- */ #include "../include/InputFunctions/DomainGeometry/czarnyGeometry.h" #include "../include/InputFunctions/DensityProfileCoefficients/zoniShiftedCoefficients.h" -#include "../include/InputFunctions/SourceTerms/polarR6_ZoniShifted_CzarnyGeometry.h" /* Test 1/1: */ /* Does the Take and Give Implementation match up? */ @@ -53,8 +51,6 @@ TEST(OperatorATest, applyA_DirBC_Interior) *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::NONE, false); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax, kappa_eps, delta_e); ResidualGive residualGive_operator(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); ResidualTake residualTake_operator(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); @@ -108,8 +104,6 @@ TEST(OperatorATest, applyA_AcrossOrigin) *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::NONE, false); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax, kappa_eps, delta_e); ResidualGive residualGive_operator(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); ResidualTake residualTake_operator(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); diff --git a/tests/Smoother/smoother.cpp b/tests/Smoother/smoother.cpp index a69e46a3..cca39984 100644 --- a/tests/Smoother/smoother.cpp +++ b/tests/Smoother/smoother.cpp @@ -15,13 +15,11 @@ #include "../../include/InputFunctions/domainGeometry.h" #include "../../include/InputFunctions/densityProfileCoefficients.h" #include "../../include/InputFunctions/boundaryConditions.h" -#include "../../include/InputFunctions/sourceTerm.h" /* --------- */ /* Test Case */ /* --------- */ #include "../include/InputFunctions/DomainGeometry/czarnyGeometry.h" #include "../include/InputFunctions/DensityProfileCoefficients/zoniShiftedCoefficients.h" -#include "../include/InputFunctions/SourceTerms/polarR6_ZoniShifted_CzarnyGeometry.h" #include @@ -58,8 +56,6 @@ TEST(SmootherTest, smoother_DirBC_Interior) *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::NONE, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax, kappa_eps, delta_e); SmootherGive smootherGive_operator(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); SmootherTake smootherTake_operator(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); @@ -117,8 +113,6 @@ TEST(SmootherTest, smoother_AcrossOrigin) *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::NONE, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax, kappa_eps, delta_e); SmootherGive smootherGive_operator(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); SmootherTake smootherTake_operator(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); @@ -178,8 +172,6 @@ TEST(SmootherTest, SequentialSmootherDirBC_Interior) *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::NONE, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax, kappa_eps, delta_e); DirectSolver_CSR_LU_Give solver_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); ResidualGive residual_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); @@ -255,8 +247,6 @@ TEST(SmootherTest, ParallelSmootherDirBC_Interior) *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::NONE, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax, kappa_eps, delta_e); DirectSolver_CSR_LU_Give solver_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); ResidualGive residual_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); @@ -332,8 +322,6 @@ TEST(SmootherTest, SequentialSmootherAcrossOrigin) *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::NONE, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax, kappa_eps, delta_e); DirectSolver_CSR_LU_Give solver_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); ResidualGive residual_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); @@ -409,8 +397,6 @@ TEST(SmootherTest, ParallelSmootherAcrossOrigin) *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::NONE, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax, kappa_eps, delta_e); DirectSolver_CSR_LU_Give solver_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); ResidualGive residual_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); @@ -485,8 +471,6 @@ TEST(SmootherTest, SequentialSmootherDirBC_Interior_SmallestGrid) *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::NONE, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax, kappa_eps, delta_e); DirectSolver_CSR_LU_Give solver_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); ResidualGive residual_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); @@ -561,8 +545,6 @@ TEST(SmootherTest, ParallelSmootherDirBC_Interior_SmallestGrid) *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::NONE, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax, kappa_eps, delta_e); DirectSolver_CSR_LU_Give solver_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); ResidualGive residual_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); @@ -637,8 +619,6 @@ TEST(SmootherTest, SequentialSmootherAcrossOrigin_SmallestGrid) *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::NONE, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax, kappa_eps, delta_e); DirectSolver_CSR_LU_Give solver_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); ResidualGive residual_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); @@ -713,8 +693,6 @@ TEST(SmootherTest, ParallelSmootherAcrossOrigin_SmallestGrid) *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::NONE, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax, kappa_eps, delta_e); DirectSolver_CSR_LU_Give solver_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); ResidualGive residual_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); @@ -792,8 +770,6 @@ TEST(SmootherTest, SequentialSmootherTakeDirBC_Interior) *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::NONE, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax, kappa_eps, delta_e); DirectSolver_CSR_LU_Give solver_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); ResidualGive residual_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); @@ -869,8 +845,6 @@ TEST(SmootherTest, ParallelSmootherTakeDirBC_Interior) *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::NONE, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax, kappa_eps, delta_e); DirectSolver_CSR_LU_Give solver_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); ResidualGive residual_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); @@ -946,8 +920,6 @@ TEST(SmootherTest, SequentialSmootherTakeAcrossOrigin) *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::NONE, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax, kappa_eps, delta_e); DirectSolver_CSR_LU_Give solver_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); ResidualGive residual_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); @@ -1023,8 +995,6 @@ TEST(SmootherTest, ParallelSmootherTakeAcrossOrigin) *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::NONE, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax, kappa_eps, delta_e); DirectSolver_CSR_LU_Give solver_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); ResidualGive residual_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); @@ -1099,8 +1069,6 @@ TEST(SmootherTest, SequentialSmootherTakeDirBC_Interior_SmallestGrid) *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::NONE, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax, kappa_eps, delta_e); DirectSolver_CSR_LU_Give solver_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); ResidualGive residual_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); @@ -1175,8 +1143,6 @@ TEST(SmootherTest, ParallelSmootherTakeDirBC_Interior_SmallestGrid) *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::NONE, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax, kappa_eps, delta_e); DirectSolver_CSR_LU_Give solver_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); ResidualGive residual_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); @@ -1251,8 +1217,6 @@ TEST(SmootherTest, SequentialSmootherTakeAcrossOrigin_SmallestGrid) *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::NONE, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax, kappa_eps, delta_e); DirectSolver_CSR_LU_Give solver_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); ResidualGive residual_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); @@ -1327,8 +1291,6 @@ TEST(SmootherTest, ParallelSmootherTakeAcrossOrigin_SmallestGrid) *grid, coefficients, domain_geometry, cache_density_rpofile_coefficients, cache_domain_geometry); Level level(0, std::move(grid), std::move(levelCache), ExtrapolationType::NONE, 0); - std::unique_ptr source_term = - std::make_unique(level.grid(), Rmax, kappa_eps, delta_e); DirectSolver_CSR_LU_Give solver_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads); ResidualGive residual_op(level.grid(), level.levelCache(), DirBC_Interior, maxOpenMPThreads);