Skip to content
Snippets Groups Projects
Commit f4e45f73 authored by Stéphane Del Pino's avatar Stéphane Del Pino
Browse files

Remove the constructors based on FunctionSymbolId

These constructors existence was the result of a bad design and just
treated very special cases
parent 6613c427
No related branches found
No related tags found
1 merge request!89Add missing compatibility check when affecting lists to R^d or R^dxd
#include <scheme/AcousticSolver.hpp> #include <scheme/AcousticSolver.hpp>
#include <language/utils/InterpolateItemValue.hpp>
#include <mesh/ItemValueUtils.hpp> #include <mesh/ItemValueUtils.hpp>
#include <mesh/MeshNodeBoundary.hpp> #include <mesh/MeshNodeBoundary.hpp>
#include <scheme/DirichletBoundaryConditionDescriptor.hpp> #include <scheme/DirichletBoundaryConditionDescriptor.hpp>
......
#include <scheme/DiscreteFunctionInterpoler.hpp> #include <scheme/DiscreteFunctionInterpoler.hpp>
#include <language/utils/InterpolateItemValue.hpp>
#include <scheme/DiscreteFunctionP0.hpp> #include <scheme/DiscreteFunctionP0.hpp>
#include <utils/Exceptions.hpp> #include <utils/Exceptions.hpp>
...@@ -8,7 +9,13 @@ std::shared_ptr<IDiscreteFunction> ...@@ -8,7 +9,13 @@ std::shared_ptr<IDiscreteFunction>
DiscreteFunctionInterpoler::_interpolate() const DiscreteFunctionInterpoler::_interpolate() const
{ {
std::shared_ptr mesh = std::dynamic_pointer_cast<const Mesh<Connectivity<Dimension>>>(m_mesh); std::shared_ptr mesh = std::dynamic_pointer_cast<const Mesh<Connectivity<Dimension>>>(m_mesh);
return std::make_shared<DiscreteFunctionP0<Dimension, DataType>>(mesh, m_function_id); using MeshDataType = MeshData<Dimension>;
MeshDataType& mesh_data = MeshDataManager::instance().getMeshData(*mesh);
return std::make_shared<
DiscreteFunctionP0<Dimension, DataType>>(mesh,
InterpolateItemValue<DataType(TinyVector<Dimension>)>::
template interpolate<ItemType::cell>(m_function_id, mesh_data.xj()));
} }
template <size_t Dimension> template <size_t Dimension>
......
...@@ -3,7 +3,6 @@ ...@@ -3,7 +3,6 @@
#include <scheme/IDiscreteFunction.hpp> #include <scheme/IDiscreteFunction.hpp>
#include <language/utils/InterpolateItemValue.hpp>
#include <mesh/Connectivity.hpp> #include <mesh/Connectivity.hpp>
#include <mesh/Mesh.hpp> #include <mesh/Mesh.hpp>
#include <mesh/MeshData.hpp> #include <mesh/MeshData.hpp>
...@@ -246,16 +245,6 @@ class DiscreteFunctionP0 : public IDiscreteFunction ...@@ -246,16 +245,6 @@ class DiscreteFunctionP0 : public IDiscreteFunction
return ratio; return ratio;
} }
DiscreteFunctionP0(const std::shared_ptr<const MeshType>& mesh, const FunctionSymbolId& function_id) : m_mesh(mesh)
{
using MeshDataType = MeshData<Dimension>;
MeshDataType& mesh_data = MeshDataManager::instance().getMeshData(*mesh);
m_cell_values =
InterpolateItemValue<DataType(TinyVector<Dimension>)>::template interpolate<ItemType::cell>(function_id,
mesh_data.xj());
}
DiscreteFunctionP0(const std::shared_ptr<const MeshType>& mesh) : m_mesh{mesh}, m_cell_values{mesh->connectivity()} {} DiscreteFunctionP0(const std::shared_ptr<const MeshType>& mesh) : m_mesh{mesh}, m_cell_values{mesh->connectivity()} {}
DiscreteFunctionP0(const std::shared_ptr<const MeshType>& mesh, const CellValue<DataType>& cell_value) DiscreteFunctionP0(const std::shared_ptr<const MeshType>& mesh, const CellValue<DataType>& cell_value)
......
...@@ -3,7 +3,6 @@ ...@@ -3,7 +3,6 @@
#include <scheme/IDiscreteFunction.hpp> #include <scheme/IDiscreteFunction.hpp>
#include <language/utils/InterpolateItemArray.hpp>
#include <mesh/Connectivity.hpp> #include <mesh/Connectivity.hpp>
#include <mesh/ItemArray.hpp> #include <mesh/ItemArray.hpp>
#include <mesh/Mesh.hpp> #include <mesh/Mesh.hpp>
...@@ -195,17 +194,6 @@ class DiscreteFunctionP0Vector : public IDiscreteFunction ...@@ -195,17 +194,6 @@ class DiscreteFunctionP0Vector : public IDiscreteFunction
return product; return product;
} }
DiscreteFunctionP0Vector(const std::shared_ptr<const MeshType>& mesh,
const std::vector<FunctionSymbolId>& function_symbol_id_list)
: m_mesh(mesh)
{
using MeshDataType = MeshData<Dimension>;
MeshDataType& mesh_data = MeshDataManager::instance().getMeshData(*mesh);
m_cell_arrays = InterpolateItemArray<DataType(
TinyVector<Dimension>)>::template interpolate<ItemType::cell>(function_symbol_id_list, mesh_data.xj());
}
DiscreteFunctionP0Vector(const std::shared_ptr<const MeshType>& mesh, size_t size) DiscreteFunctionP0Vector(const std::shared_ptr<const MeshType>& mesh, size_t size)
: m_mesh{mesh}, m_cell_arrays{mesh->connectivity(), size} : m_mesh{mesh}, m_cell_arrays{mesh->connectivity(), size}
{} {}
......
#include <scheme/DiscreteFunctionVectorInterpoler.hpp> #include <scheme/DiscreteFunctionVectorInterpoler.hpp>
#include <language/utils/InterpolateItemArray.hpp>
#include <scheme/DiscreteFunctionP0Vector.hpp> #include <scheme/DiscreteFunctionP0Vector.hpp>
#include <utils/Exceptions.hpp> #include <utils/Exceptions.hpp>
...@@ -8,7 +9,14 @@ std::shared_ptr<IDiscreteFunction> ...@@ -8,7 +9,14 @@ std::shared_ptr<IDiscreteFunction>
DiscreteFunctionVectorInterpoler::_interpolate() const DiscreteFunctionVectorInterpoler::_interpolate() const
{ {
std::shared_ptr mesh = std::dynamic_pointer_cast<const Mesh<Connectivity<Dimension>>>(m_mesh); std::shared_ptr mesh = std::dynamic_pointer_cast<const Mesh<Connectivity<Dimension>>>(m_mesh);
return std::make_shared<DiscreteFunctionP0Vector<Dimension, DataType>>(mesh, m_function_id_list);
using MeshDataType = MeshData<Dimension>;
MeshDataType& mesh_data = MeshDataManager::instance().getMeshData(*mesh);
return std::make_shared<
DiscreteFunctionP0Vector<Dimension, DataType>>(mesh, InterpolateItemArray<DataType(TinyVector<Dimension>)>::
template interpolate<ItemType::cell>(m_function_id_list,
mesh_data.xj()));
} }
template <size_t Dimension> template <size_t Dimension>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment