Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion include/LinearAlgebra/Matrix/coo_matrix.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ class SparseMatrixCOO
using triplet_type = std::tuple<int, int, T>;

SparseMatrixCOO();
SparseMatrixCOO(const SparseMatrixCOO& other) = delete;
KOKKOS_DEFAULTED_FUNCTION SparseMatrixCOO(const SparseMatrixCOO& other) = default;
SparseMatrixCOO(SparseMatrixCOO&& other) noexcept;

explicit SparseMatrixCOO(int rows, int columns, int nnz);
Expand Down
4 changes: 2 additions & 2 deletions include/Residual/ResidualTake/applyATake.inl
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ void ResidualTake<LevelCacheType>::applySystemOperator(Vector<double> result, Co
{grid.numberSmootherCircles(), grid.ntheta()} // Ending point of the index space
),
// Kokkos lambda function to execute for each point in the index space
KOKKOS_LAMBDA(const int i_r, const int i_theta) {
KOKKOS_CLASS_LAMBDA(const int i_r, const int i_theta) {
node_apply_a_take(i_r, i_theta, grid, DirBC_Interior, result, x, arr, att, art, detDF, coeff_beta);
});

Expand All @@ -107,7 +107,7 @@ void ResidualTake<LevelCacheType>::applySystemOperator(Vector<double> result, Co
{grid.ntheta(), grid.nr()} // Ending point of the index space
),
// Kokkos lambda function to execute for each point in the index space
KOKKOS_LAMBDA(const int i_theta, const int i_r) {
KOKKOS_CLASS_LAMBDA(const int i_theta, const int i_r) {
node_apply_a_take(i_r, i_theta, grid, DirBC_Interior, result, x, arr, att, art, detDF, coeff_beta);
});

Expand Down
3 changes: 2 additions & 1 deletion include/Residual/ResidualTake/residualTake.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@ class ResidualTake : public Residual<LevelCacheType>
public:
explicit ResidualTake(const PolarGrid& grid, const LevelCacheType& level_cache, const bool DirBC_Interior,
const int num_omp_threads);
~ResidualTake() override = default;
KOKKOS_DEFAULTED_FUNCTION ResidualTake(const ResidualTake&) = default;
KOKKOS_DEFAULTED_FUNCTION ~ResidualTake() override = default;

void computeResidual(Vector<double> result, ConstVector<double> rhs, ConstVector<double> x) const override;

Expand Down
4 changes: 2 additions & 2 deletions include/Residual/residual.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,8 @@ class Residual
protected:
/* ------------------- */
/* Constructor members */
const PolarGrid& grid_;
const LevelCacheType& level_cache_;
const PolarGrid grid_;
const LevelCacheType level_cache_;
const bool DirBC_Interior_;
const int num_omp_threads_;
};
Expand Down
8 changes: 4 additions & 4 deletions include/Smoother/SmootherTake/applyAscOrtho.inl
Original file line number Diff line number Diff line change
Expand Up @@ -246,7 +246,7 @@ void SmootherTake<LevelCacheType>::applyAscOrthoBlackCircleSection(ConstVector<d
{num_black_circles, grid.ntheta()} // Ending point of the index space
),
// Kokkos lambda function to execute for each point in the index space
KOKKOS_LAMBDA(const int circle_task, const int i_theta) {
KOKKOS_CLASS_LAMBDA(const int circle_task, const int i_theta) {
int i_r = start_black_circles + circle_task * 2;
nodeApplyAscOrthoCircleTake(i_r, i_theta, grid, DirBC_Interior, x, rhs, temp, arr, att, art, detDF,
coeff_beta);
Expand Down Expand Up @@ -286,7 +286,7 @@ void SmootherTake<LevelCacheType>::applyAscOrthoWhiteCircleSection(ConstVector<d
{num_white_circles, grid.ntheta()} // Ending point of the index space
),
// Kokkos lambda function to execute for each point in the index space
KOKKOS_LAMBDA(const int circle_task, const int i_theta) {
KOKKOS_CLASS_LAMBDA(const int circle_task, const int i_theta) {
const int i_r = start_white_circles + circle_task * 2;
nodeApplyAscOrthoCircleTake(i_r, i_theta, grid, DirBC_Interior, x, rhs, temp, arr, att, art, detDF,
coeff_beta);
Expand Down Expand Up @@ -326,7 +326,7 @@ void SmootherTake<LevelCacheType>::applyAscOrthoBlackRadialSection(ConstVector<d
{num_black_radial_lines, grid.nr()} // Ending point of the index space
),
// Kokkos lambda function to execute for each point in the index space
KOKKOS_LAMBDA(const int radial_task, const int i_r) {
KOKKOS_CLASS_LAMBDA(const int radial_task, const int i_r) {
const int i_theta = start_black_radials + radial_task * 2;
nodeApplyAscOrthoRadialTake(i_r, i_theta, grid, DirBC_Interior, x, rhs, temp, arr, att, art, detDF,
coeff_beta);
Expand Down Expand Up @@ -366,7 +366,7 @@ void SmootherTake<LevelCacheType>::applyAscOrthoWhiteRadialSection(ConstVector<d
{num_white_radial_lines, grid.nr()} // Ending point of the index space
),
// Kokkos lambda function to execute for each point in the index space
KOKKOS_LAMBDA(const int radial_task, const int i_r) {
KOKKOS_CLASS_LAMBDA(const int radial_task, const int i_r) {
const int i_theta = start_white_radials + radial_task * 2;
nodeApplyAscOrthoRadialTake(i_r, i_theta, grid, DirBC_Interior, x, rhs, temp, arr, att, art, detDF,
coeff_beta);
Expand Down
2 changes: 2 additions & 0 deletions include/Smoother/SmootherTake/smootherTake.h
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,8 @@ class SmootherTake : public Smoother<LevelCacheType>
explicit SmootherTake(const PolarGrid& grid, const LevelCacheType& level_cache, bool DirBC_Interior,
int num_omp_threads);

KOKKOS_DEFAULTED_FUNCTION SmootherTake(const SmootherTake&) = default;

// Performs one full coupled smoothing sweep:
// BC -> WC -> BR -> WR
// using temp as RHS workspace.
Expand Down
5 changes: 3 additions & 2 deletions include/Smoother/smoother.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,13 +35,14 @@ class Smoother
, num_omp_threads_(num_omp_threads)
{
}
KOKKOS_DEFAULTED_FUNCTION Smoother(const Smoother&) = default;
virtual ~Smoother() = default;

virtual void smoothing(Vector<double> x, ConstVector<double> rhs, Vector<double> temp) = 0;

protected:
const PolarGrid& grid_;
const LevelCacheType& level_cache_;
const PolarGrid grid_;
const LevelCacheType level_cache_;
const bool DirBC_Interior_;
const int num_omp_threads_;
};
Expand Down
Loading