Skip to content

Commit

Permalink
Use unique pointer for mesh refinement interpolant
Browse files Browse the repository at this point in the history
  • Loading branch information
lucacarniato committed Dec 20, 2023
1 parent 4ea07a9 commit 56be2eb
Show file tree
Hide file tree
Showing 5 changed files with 129 additions and 108 deletions.
18 changes: 9 additions & 9 deletions libs/MeshKernel/benchmark/src/perf_mesh_refinement.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -33,14 +33,14 @@ static void BM_MeshRefinementBasedOnSamples(benchmark::State& state)
}
}

auto const interpolator = std::make_shared<AveragingInterpolation>(*mesh,
samples,
AveragingInterpolation::Method::MinAbsValue,
Location::Faces,
1.0,
false,
false,
1);
auto interpolator = std::make_unique<AveragingInterpolation>(*mesh,
samples,
AveragingInterpolation::Method::MinAbsValue,
Location::Faces,
1.0,
false,
false,
1);

MeshRefinementParameters mesh_refinement_parameters;
mesh_refinement_parameters.max_num_refinement_iterations = 1;
Expand All @@ -55,7 +55,7 @@ static void BM_MeshRefinementBasedOnSamples(benchmark::State& state)
state.ResumeTiming();

MeshRefinement meshRefinement(*mesh,
interpolator,
std::move(interpolator),
mesh_refinement_parameters);

meshRefinement.Compute();
Expand Down
6 changes: 3 additions & 3 deletions libs/MeshKernel/include/MeshKernel/MeshRefinement.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ namespace meshkernel
/// @param[in] interpolant The averaging interpolation to use
/// @param[in] meshRefinementParameters The mesh refinement parameters
MeshRefinement(Mesh2D& mesh,
std::shared_ptr<MeshInterpolation> interpolant,
std::unique_ptr<MeshInterpolation> interpolant,
const MeshRefinementParameters& meshRefinementParameters);

/// @brief The constructor for refining based on samples
Expand All @@ -104,7 +104,7 @@ namespace meshkernel
/// @param[in] meshRefinementParameters The mesh refinement parameters
/// @param[in] useNodalRefinement Use nodal refinement
MeshRefinement(Mesh2D& mesh,
std::shared_ptr<MeshInterpolation> interpolant,
std::unique_ptr<MeshInterpolation> interpolant,
const MeshRefinementParameters& meshRefinementParameters,
bool useNodalRefinement);

Expand Down Expand Up @@ -240,7 +240,7 @@ namespace meshkernel
bool m_directionalRefinement = false; ///< Whether there is directional refinement

Mesh2D& m_mesh; ///< A reference to the mesh
std::shared_ptr<MeshInterpolation> m_interpolant; ///< Pointer to the AveragingInterpolation instance
std::unique_ptr<MeshInterpolation> m_interpolant; ///< Pointer to the AveragingInterpolation instance
Polygons m_polygons; ///< Polygons
MeshRefinementParameters m_meshRefinementParameters; ///< The mesh refinement parameters
bool m_useNodalRefinement = false; ///< Use refinement based on interpolated values at nodes
Expand Down
8 changes: 4 additions & 4 deletions libs/MeshKernel/src/MeshRefinement.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,10 @@ using meshkernel::Mesh2D;
using meshkernel::MeshRefinement;

MeshRefinement::MeshRefinement(Mesh2D& mesh,
std::shared_ptr<MeshInterpolation> interpolant,
std::unique_ptr<MeshInterpolation> interpolant,
const MeshRefinementParameters& meshRefinementParameters) : m_samplesRTree(RTreeFactory::Create(mesh.m_projection)),
m_mesh(mesh),
m_interpolant(interpolant)
m_interpolant(std::move(interpolant))
{
CheckMeshRefinementParameters(meshRefinementParameters);
m_isRefinementBasedOnSamples = true;
Expand All @@ -50,11 +50,11 @@ MeshRefinement::MeshRefinement(Mesh2D& mesh,
}

MeshRefinement::MeshRefinement(Mesh2D& mesh,
std::shared_ptr<MeshInterpolation> interpolant,
std::unique_ptr<MeshInterpolation> interpolant,
const MeshRefinementParameters& meshRefinementParameters,
bool useNodalRefinement) : m_samplesRTree(RTreeFactory::Create(mesh.m_projection)),
m_mesh(mesh),
m_interpolant(interpolant),
m_interpolant(std::move(interpolant)),
m_useNodalRefinement(useNodalRefinement)
{
CheckMeshRefinementParameters(meshRefinementParameters);
Expand Down
Loading

0 comments on commit 56be2eb

Please sign in to comment.