MAJ terminée. Nous sommes passés en version 14.6.2 . Pour consulter les "releases notes" associées c'est ici :

https://about.gitlab.com/releases/2022/01/11/security-release-gitlab-14-6-2-released/
https://about.gitlab.com/releases/2022/01/04/gitlab-14-6-1-released/

Commit e98ce455 authored by GILLES Sebastien's avatar GILLES Sebastien
Browse files

#2000 Model: make the type of MoReFEMData a template argument of the class....

#2000 Model: make the type of MoReFEMData a template argument of the class. This was not done earlier to avoid making base Model a template class... but it has long become since a template class anyway, so it's better to use the possible extra leverage (next step is to store reference to the \a MoReFEMDataType and hence avoiding giving it as parameter in three of the class methods).
parent a31b4a5c
......@@ -1558,7 +1558,6 @@
BEACD8FE1CCC0B4800667B82 /* GeometricEltFactory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BEACD8FA1CCC0B4800667B82 /* GeometricEltFactory.cpp */; };
BEACD8FF1CCC0B4800667B82 /* GeometricEltFactory.hpp in Headers */ = {isa = PBXBuildFile; fileRef = BEACD8FB1CCC0B4800667B82 /* GeometricEltFactory.hpp */; };
BEAE11BF1D06B49B00967C19 /* RefineMesh.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0A2CBE941D05B87A007262F2 /* RefineMesh.cpp */; };
BEAE11C01D06B4A000967C19 /* Model.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0A2CBE911D05B87A007262F2 /* Model.cpp */; };
BEB2919B1CA02EB400A74738 /* libSeldon.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BEE79A1F1C995B5F00F05519 /* libSeldon.a */; };
BEB2919C1CA02EB400A74738 /* libCore.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BE05B52916D238FE000E248D /* libCore.a */; };
BEB2919D1CA02EB400A74738 /* libFiniteElement.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BE9C4D121807F5DC005B94BC /* libFiniteElement.a */; };
......@@ -3616,7 +3615,6 @@
/* End PBXCopyFilesBuildPhase section */
 
/* Begin PBXFileReference section */
0A2CBE911D05B87A007262F2 /* Model.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Model.cpp; sourceTree = "<group>"; };
0A2CBE921D05B87A007262F2 /* Model.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = Model.hpp; sourceTree = "<group>"; };
0A2CBE931D05B87A007262F2 /* Model.hxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = Model.hxx; sourceTree = "<group>"; };
0A2CBE941D05B87A007262F2 /* RefineMesh.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RefineMesh.cpp; sourceTree = "<group>"; };
......@@ -6548,7 +6546,6 @@
0A2CBE901D05B87A007262F2 /* RefineMeshQuadranglesSpectral */ = {
isa = PBXGroup;
children = (
0A2CBE911D05B87A007262F2 /* Model.cpp */,
0A2CBE921D05B87A007262F2 /* Model.hpp */,
0A2CBE931D05B87A007262F2 /* Model.hxx */,
0A2CBE941D05B87A007262F2 /* RefineMesh.cpp */,
......@@ -14361,7 +14358,6 @@
BEACCC5C1E11D26300CBA4F2 /* DofInformationFile.cpp in Sources */,
BEACCC621E11D26300CBA4F2 /* TimeIterationFile.cpp in Sources */,
BEEABA4E1A49BC8700A875C6 /* Ensight6.cpp in Sources */,
BEAE11C01D06B4A000967C19 /* Model.cpp in Sources */,
BE469ED21A496290008C9B68 /* PostProcessing.cpp in Sources */,
BEACCC651E11D26300CBA4F2 /* UnknownInformationFile.cpp in Sources */,
);
......@@ -82,13 +82,30 @@ namespace MoReFEM
* - bool SupplHasFinishedConditions() const;
*
*/
template<class DerivedT, DoConsiderProcessorWiseLocal2Global DoConsiderProcessorWiseLocal2GlobalT>
template
<
class DerivedT,
class MoReFEMDataT,
DoConsiderProcessorWiseLocal2Global DoConsiderProcessorWiseLocal2GlobalT
>
class Model
: public Crtp::CrtpMpi<Model<DerivedT, DoConsiderProcessorWiseLocal2GlobalT>>
: public Crtp::CrtpMpi<Model<DerivedT, MoReFEMDataT, DoConsiderProcessorWiseLocal2GlobalT>>
{
public:
//! Alias to self.
using self = Model
<
DerivedT,
MoReFEMDataT,
DoConsiderProcessorWiseLocal2GlobalT
>;
//! Alias to MoReFEMData.
using morefem_data_type = MoReFEMDataT;
/// \name Special members.
///@{
......@@ -104,8 +121,7 @@ namespace MoReFEM
* \param[in] do_print_banner If True, print text at the beginning and the end of the program. False has been
* introduced only for the integration tests.
*/
template<class MoReFEMDataT>
explicit Model(const MoReFEMDataT& morefem_data,
explicit Model(const morefem_data_type& morefem_data,
create_domain_list_for_coords a_create_domain_list_for_coords = create_domain_list_for_coords::no,
print_banner do_print_banner = print_banner::yes);
......@@ -151,8 +167,7 @@ namespace MoReFEM
* \copydoc doxygen_hide_input_parameter_data_arg
* \copydoc doxygen_hide_do_create_output_dir_arg
*/
template<class InputParameterDataT>
void Initialize(const InputParameterDataT& input_parameter_data,
void Initialize(const morefem_data_type& input_parameter_data,
create_output_dir do_create_output_dir = create_output_dir::yes);
......@@ -212,8 +227,7 @@ namespace MoReFEM
* \copydoc doxygen_hide_init_morefem_param
* \copydoc doxygen_hide_do_create_output_dir_arg
*/
template<class MoReFEMDataT>
void Run(const MoReFEMDataT& morefem_data,
void Run(const morefem_data_type& morefem_data,
create_output_dir do_create_output_dir = create_output_dir::yes);
......
......@@ -17,12 +17,17 @@ namespace MoReFEM
{
template<class DerivedT, DoConsiderProcessorWiseLocal2Global DoConsiderProcessorWiseLocal2GlobalT>
template<class MoReFEMDataT>
Model<DerivedT, DoConsiderProcessorWiseLocal2GlobalT>::Model(const MoReFEMDataT& morefem_data,
create_domain_list_for_coords a_create_domain_list_for_coords,
print_banner do_print_banner)
: Crtp::CrtpMpi<Model<DerivedT, DoConsiderProcessorWiseLocal2GlobalT>>(morefem_data.GetMpi()),
template
<
class DerivedT,
class MoReFEMDataT,
DoConsiderProcessorWiseLocal2Global DoConsiderProcessorWiseLocal2GlobalT
>
Model<DerivedT, MoReFEMDataT, DoConsiderProcessorWiseLocal2GlobalT>
::Model(const morefem_data_type& morefem_data,
create_domain_list_for_coords a_create_domain_list_for_coords,
print_banner do_print_banner)
: Crtp::CrtpMpi<Model<DerivedT, MoReFEMDataT, DoConsiderProcessorWiseLocal2GlobalT>>(morefem_data.GetMpi()),
output_directory_(morefem_data.GetResultDirectory()),
do_print_banner_(do_print_banner)
{
......@@ -121,8 +126,13 @@ namespace MoReFEM
}
template<class DerivedT, DoConsiderProcessorWiseLocal2Global DoConsiderProcessorWiseLocal2GlobalT>
Model<DerivedT, DoConsiderProcessorWiseLocal2GlobalT>::~Model()
template
<
class DerivedT,
class MoReFEMDataT,
DoConsiderProcessorWiseLocal2Global DoConsiderProcessorWiseLocal2GlobalT
>
Model<DerivedT, MoReFEMDataT, DoConsiderProcessorWiseLocal2GlobalT>::~Model()
{
const auto& mpi = this->GetMpi();
......@@ -152,8 +162,13 @@ namespace MoReFEM
}
template<class DerivedT, DoConsiderProcessorWiseLocal2Global DoConsiderProcessorWiseLocal2GlobalT>
bool Model<DerivedT, DoConsiderProcessorWiseLocal2GlobalT>::HasFinished()
template
<
class DerivedT,
class MoReFEMDataT,
DoConsiderProcessorWiseLocal2Global DoConsiderProcessorWiseLocal2GlobalT
>
bool Model<DerivedT, MoReFEMDataT, DoConsiderProcessorWiseLocal2GlobalT>::HasFinished()
{
auto& time_manager = GetNonCstTimeManager();
......@@ -167,10 +182,14 @@ namespace MoReFEM
}
template<class DerivedT, DoConsiderProcessorWiseLocal2Global DoConsiderProcessorWiseLocal2GlobalT>
template<class MoReFEMDataT>
void Model<DerivedT, DoConsiderProcessorWiseLocal2GlobalT>
::Initialize(const MoReFEMDataT& morefem_data,
template
<
class DerivedT,
class MoReFEMDataT,
DoConsiderProcessorWiseLocal2Global DoConsiderProcessorWiseLocal2GlobalT
>
void Model<DerivedT, MoReFEMDataT, DoConsiderProcessorWiseLocal2GlobalT>
::Initialize(const morefem_data_type& morefem_data,
create_output_dir do_create_output_dir)
{
const auto& mpi = this->GetMpi();
......@@ -266,8 +285,13 @@ namespace MoReFEM
}
template<class DerivedT, DoConsiderProcessorWiseLocal2Global DoConsiderProcessorWiseLocal2GlobalT>
void Model<DerivedT, DoConsiderProcessorWiseLocal2GlobalT>::InitializeStep()
template
<
class DerivedT,
class MoReFEMDataT,
DoConsiderProcessorWiseLocal2Global DoConsiderProcessorWiseLocal2GlobalT
>
void Model<DerivedT, MoReFEMDataT, DoConsiderProcessorWiseLocal2GlobalT>::InitializeStep()
{
// Update time for current time step.
UpdateTime();
......@@ -286,16 +310,26 @@ namespace MoReFEM
}
template<class DerivedT, DoConsiderProcessorWiseLocal2Global DoConsiderProcessorWiseLocal2GlobalT>
void Model<DerivedT, DoConsiderProcessorWiseLocal2GlobalT>::FinalizeStep()
template
<
class DerivedT,
class MoReFEMDataT,
DoConsiderProcessorWiseLocal2Global DoConsiderProcessorWiseLocal2GlobalT
>
void Model<DerivedT, MoReFEMDataT, DoConsiderProcessorWiseLocal2GlobalT>::FinalizeStep()
{
// Additional operations required by DerivedT.
static_cast<DerivedT&>(*this).SupplFinalizeStep();
}
template<class DerivedT, DoConsiderProcessorWiseLocal2Global DoConsiderProcessorWiseLocal2GlobalT>
void Model<DerivedT, DoConsiderProcessorWiseLocal2GlobalT>::Finalize()
template
<
class DerivedT,
class MoReFEMDataT,
DoConsiderProcessorWiseLocal2Global DoConsiderProcessorWiseLocal2GlobalT
>
void Model<DerivedT, MoReFEMDataT, DoConsiderProcessorWiseLocal2GlobalT>::Finalize()
{
const auto& mpi = this->GetMpi();
......@@ -327,10 +361,15 @@ namespace MoReFEM
}
template<class DerivedT, DoConsiderProcessorWiseLocal2Global DoConsiderProcessorWiseLocal2GlobalT>
template<class MoReFEMDataT>
void Model<DerivedT, DoConsiderProcessorWiseLocal2GlobalT>::Run(const MoReFEMDataT& morefem_data,
create_output_dir do_create_output_dir)
template
<
class DerivedT,
class MoReFEMDataT,
DoConsiderProcessorWiseLocal2Global DoConsiderProcessorWiseLocal2GlobalT
>
void Model<DerivedT, MoReFEMDataT, DoConsiderProcessorWiseLocal2GlobalT>
::Run(const morefem_data_type& morefem_data,
create_output_dir do_create_output_dir)
{
auto& crtp_helper = static_cast<DerivedT&>(*this);
......@@ -352,49 +391,77 @@ namespace MoReFEM
////////////////////////
template<class DerivedT, DoConsiderProcessorWiseLocal2Global DoConsiderProcessorWiseLocal2GlobalT>
inline const GeometricMeshRegion& Model<DerivedT, DoConsiderProcessorWiseLocal2GlobalT>
template
<
class DerivedT,
class MoReFEMDataT,
DoConsiderProcessorWiseLocal2Global DoConsiderProcessorWiseLocal2GlobalT
>
inline const GeometricMeshRegion& Model<DerivedT, MoReFEMDataT, DoConsiderProcessorWiseLocal2GlobalT>
::GetGeometricMeshRegion(unsigned int mesh_index) const
{
return Internal::MeshNS::GeometricMeshRegionManager::GetInstance(__FILE__, __LINE__).GetMesh(mesh_index);
}
template<class DerivedT, DoConsiderProcessorWiseLocal2Global DoConsiderProcessorWiseLocal2GlobalT>
inline GeometricMeshRegion& Model<DerivedT, DoConsiderProcessorWiseLocal2GlobalT>
template
<
class DerivedT,
class MoReFEMDataT,
DoConsiderProcessorWiseLocal2Global DoConsiderProcessorWiseLocal2GlobalT
>
inline GeometricMeshRegion& Model<DerivedT, MoReFEMDataT, DoConsiderProcessorWiseLocal2GlobalT>
::GetNonCstGeometricMeshRegion(unsigned int mesh_index) const
{
return Internal::MeshNS::GeometricMeshRegionManager::GetInstance(__FILE__, __LINE__).GetNonCstMesh(mesh_index);
}
template<class DerivedT, DoConsiderProcessorWiseLocal2Global DoConsiderProcessorWiseLocal2GlobalT>
const GodOfDof& Model<DerivedT, DoConsiderProcessorWiseLocal2GlobalT>::GetGodOfDof(unsigned int unique_id) const
template
<
class DerivedT,
class MoReFEMDataT,
DoConsiderProcessorWiseLocal2Global DoConsiderProcessorWiseLocal2GlobalT
>
const GodOfDof& Model<DerivedT, MoReFEMDataT, DoConsiderProcessorWiseLocal2GlobalT>::GetGodOfDof(unsigned int unique_id) const
{
return GodOfDofManager::GetInstance(__FILE__, __LINE__).GetGodOfDof(unique_id);
}
template<class DerivedT, DoConsiderProcessorWiseLocal2Global DoConsiderProcessorWiseLocal2GlobalT>
inline TimeManager& Model<DerivedT, DoConsiderProcessorWiseLocal2GlobalT>::GetNonCstTimeManager()
template
<
class DerivedT,
class MoReFEMDataT,
DoConsiderProcessorWiseLocal2Global DoConsiderProcessorWiseLocal2GlobalT
>
inline TimeManager& Model<DerivedT, MoReFEMDataT, DoConsiderProcessorWiseLocal2GlobalT>::GetNonCstTimeManager()
{
assert(!(!time_manager_));
return *time_manager_;
}
template<class DerivedT, DoConsiderProcessorWiseLocal2Global DoConsiderProcessorWiseLocal2GlobalT>
inline const TimeManager& Model<DerivedT, DoConsiderProcessorWiseLocal2GlobalT>::GetTimeManager() const
template
<
class DerivedT,
class MoReFEMDataT,
DoConsiderProcessorWiseLocal2Global DoConsiderProcessorWiseLocal2GlobalT
>
inline const TimeManager& Model<DerivedT, MoReFEMDataT, DoConsiderProcessorWiseLocal2GlobalT>::GetTimeManager() const
{
assert(!(!time_manager_));
return *time_manager_;
}
template<class DerivedT, DoConsiderProcessorWiseLocal2Global DoConsiderProcessorWiseLocal2GlobalT>
const std::string& Model<DerivedT, DoConsiderProcessorWiseLocal2GlobalT>::GetOutputDirectory() const
template
<
class DerivedT,
class MoReFEMDataT,
DoConsiderProcessorWiseLocal2Global DoConsiderProcessorWiseLocal2GlobalT
>
const std::string& Model<DerivedT, MoReFEMDataT, DoConsiderProcessorWiseLocal2GlobalT>::GetOutputDirectory() const
{
assert(!output_directory_.empty());
return output_directory_;
......@@ -407,16 +474,25 @@ namespace MoReFEM
////////////////////////
template<class DerivedT, DoConsiderProcessorWiseLocal2Global DoConsiderProcessorWiseLocal2GlobalT>
void Model<DerivedT, DoConsiderProcessorWiseLocal2GlobalT>::UpdateTime()
template
<
class DerivedT,
class MoReFEMDataT,
DoConsiderProcessorWiseLocal2Global DoConsiderProcessorWiseLocal2GlobalT
>
void Model<DerivedT, MoReFEMDataT, DoConsiderProcessorWiseLocal2GlobalT>::UpdateTime()
{
time_manager_->IncrementTime();
}
template<class DerivedT, DoConsiderProcessorWiseLocal2Global DoConsiderProcessorWiseLocal2GlobalT>
void Model<DerivedT, DoConsiderProcessorWiseLocal2GlobalT>::PrintNewTimeIterationBanner() const
template
<
class DerivedT,
class MoReFEMDataT,
DoConsiderProcessorWiseLocal2Global DoConsiderProcessorWiseLocal2GlobalT
>
void Model<DerivedT, MoReFEMDataT, DoConsiderProcessorWiseLocal2GlobalT>::PrintNewTimeIterationBanner() const
{
const auto& mpi = this->GetMpi();
......@@ -433,8 +509,13 @@ namespace MoReFEM
}
template<class DerivedT, DoConsiderProcessorWiseLocal2Global DoConsiderProcessorWiseLocal2GlobalT>
unsigned int Model<DerivedT, DoConsiderProcessorWiseLocal2GlobalT>::GetDisplayValue() const
template
<
class DerivedT,
class MoReFEMDataT,
DoConsiderProcessorWiseLocal2Global DoConsiderProcessorWiseLocal2GlobalT
>
unsigned int Model<DerivedT, MoReFEMDataT, DoConsiderProcessorWiseLocal2GlobalT>::GetDisplayValue() const
{
return display_value_;
}
......@@ -443,9 +524,10 @@ namespace MoReFEM
template
<
class DerivedT,
class MoReFEMDataT,
DoConsiderProcessorWiseLocal2Global DoConsiderProcessorWiseLocal2GlobalT
>
std::map<unsigned int, std::string> Model<DerivedT, DoConsiderProcessorWiseLocal2GlobalT>
std::map<unsigned int, std::string> Model<DerivedT, MoReFEMDataT, DoConsiderProcessorWiseLocal2GlobalT>
::CreateMeshDataDirectory(create_output_dir do_create_output_dir) const
{
......@@ -480,23 +562,38 @@ namespace MoReFEM
}
template<class DerivedT, DoConsiderProcessorWiseLocal2Global DoConsiderProcessorWiseLocal2GlobalT>
void Model<DerivedT, DoConsiderProcessorWiseLocal2GlobalT>::SetClearGodOfDofTemporaryDataToFalse()
template
<
class DerivedT,
class MoReFEMDataT,
DoConsiderProcessorWiseLocal2Global DoConsiderProcessorWiseLocal2GlobalT
>
void Model<DerivedT, MoReFEMDataT, DoConsiderProcessorWiseLocal2GlobalT>::SetClearGodOfDofTemporaryDataToFalse()
{
do_clear_god_of_dof_temporary_data_after_initialize_ = false;
}
template<class DerivedT, DoConsiderProcessorWiseLocal2Global DoConsiderProcessorWiseLocal2GlobalT>
inline void Model<DerivedT, DoConsiderProcessorWiseLocal2GlobalT>
template
<
class DerivedT,
class MoReFEMDataT,
DoConsiderProcessorWiseLocal2Global DoConsiderProcessorWiseLocal2GlobalT
>
inline void Model<DerivedT, MoReFEMDataT, DoConsiderProcessorWiseLocal2GlobalT>
::SetDoPrintNewTimeIterationBanner(bool do_print) noexcept
{
do_print_new_time_iteration_banner_ = do_print;
}
template<class DerivedT, DoConsiderProcessorWiseLocal2Global DoConsiderProcessorWiseLocal2GlobalT>
inline void Model<DerivedT, DoConsiderProcessorWiseLocal2GlobalT>::CreateDomainListForCoords()
template
<
class DerivedT,
class MoReFEMDataT,
DoConsiderProcessorWiseLocal2Global DoConsiderProcessorWiseLocal2GlobalT
>
inline void Model<DerivedT, MoReFEMDataT, DoConsiderProcessorWiseLocal2GlobalT>::CreateDomainListForCoords()
{
{
auto& domain_manager = DomainManager::CreateOrGetInstance(__FILE__, __LINE__);
......@@ -542,8 +639,13 @@ namespace MoReFEM
}
template<class DerivedT, DoConsiderProcessorWiseLocal2Global DoConsiderProcessorWiseLocal2GlobalT>
bool Model<DerivedT, DoConsiderProcessorWiseLocal2GlobalT>::DoPrintBanner() const noexcept
template
<
class DerivedT,
class MoReFEMDataT,
DoConsiderProcessorWiseLocal2Global DoConsiderProcessorWiseLocal2GlobalT
>
bool Model<DerivedT, MoReFEMDataT, DoConsiderProcessorWiseLocal2GlobalT>::DoPrintBanner() const noexcept
{
switch(do_print_banner_)
{
......
......@@ -26,7 +26,7 @@ namespace MoReFEM
//! \copydoc doxygen_hide_simple_model
class ElasticityModel final : public Model<ElasticityModel, DoConsiderProcessorWiseLocal2Global::no>
class ElasticityModel final : public Model<ElasticityModel, morefem_data_type, DoConsiderProcessorWiseLocal2Global::no>
{
......@@ -35,8 +35,11 @@ namespace MoReFEM
//! Return the name of the model.
static const std::string& ClassName();
//! Alias to self.
using self = ElasticityModel;
//! Convenient alias to parent.
using parent = Model<ElasticityModel, DoConsiderProcessorWiseLocal2Global::no>;
using parent = Model<ElasticityModel, morefem_data_type, DoConsiderProcessorWiseLocal2Global::no>;
//! Friendship granted to the base class so this one can manipulates private methods.
friend parent;
......
......@@ -26,7 +26,7 @@ namespace MoReFEM
//! Model that implements the heat problem in static and dynamic (backward Euler for time integration)
class HeatModel final : public MoReFEM::Model<HeatModel, DoConsiderProcessorWiseLocal2Global::yes>
class HeatModel final : public MoReFEM::Model<HeatModel, morefem_data_type, DoConsiderProcessorWiseLocal2Global::yes>
{
......@@ -35,8 +35,11 @@ namespace MoReFEM
//! Return the name of the model.
static const std::string& ClassName();
//! Alias to self.
using self = HeatModel;
//! Convenient alias to parent.
using parent = MoReFEM::Model<HeatModel, DoConsiderProcessorWiseLocal2Global::yes>;
using parent = MoReFEM::Model<self, morefem_data_type, DoConsiderProcessorWiseLocal2Global::yes>;
//! Friendship granted to the base class so this one can manipulates private methods.
friend parent;
......
......@@ -28,7 +28,7 @@ namespace MoReFEM
//! \copydoc doxygen_hide_simple_model
class Model : public MoReFEM::Model<Model, DoConsiderProcessorWiseLocal2Global::yes>
class Model : public MoReFEM::Model<Model, morefem_data_type, DoConsiderProcessorWiseLocal2Global::yes>
{
private:
......@@ -37,7 +37,7 @@ namespace MoReFEM
using self = Model;
//! Convenient alias.
using parent = MoReFEM::Model<Model, DoConsiderProcessorWiseLocal2Global::yes>;
using parent = MoReFEM::Model<Model, morefem_data_type, DoConsiderProcessorWiseLocal2Global::yes>;
public:
......
......@@ -26,7 +26,7 @@ namespace MoReFEM
//! \copydoc doxygen_hide_simple_model
class Model final : public MoReFEM::Model<Model, DoConsiderProcessorWiseLocal2Global::yes>
class Model final : public MoReFEM::Model<Model, morefem_data_type, DoConsiderProcessorWiseLocal2Global::yes>
{
......@@ -36,7 +36,7 @@ namespace MoReFEM
static const std::string& ClassName();
//! Convenient alias to parent.
using parent = MoReFEM::Model<Model, DoConsiderProcessorWiseLocal2Global::yes>;
using parent = MoReFEM::Model<Model, morefem_data_type, DoConsiderProcessorWiseLocal2Global::yes>;
//! Friendship granted to the base class so this one can manipulates private methods.
friend parent;
......
......@@ -28,7 +28,7 @@ namespace MoReFEM
//! \copydoc doxygen_hide_simple_model
class Model : public MoReFEM::Model<Model, DoConsiderProcessorWiseLocal2Global::yes>
class Model : public MoReFEM::Model<Model, morefem_data_type, DoConsiderProcessorWiseLocal2Global::yes>
{
private:
......@@ -37,7 +37,7 @@ namespace MoReFEM
using self = Model;
//! Convenient alias.
using parent = MoReFEM::Model<Model, DoConsiderProcessorWiseLocal2Global::yes>;
using parent = MoReFEM::Model<Model, morefem_data_type, DoConsiderProcessorWiseLocal2Global::yes>;
//! \copydoc doxygen_hide_morefem_data_type
using morefem_data_type = MoReFEMData<InputParameterList>;
......
......@@ -26,13 +26,13 @@ namespace MoReFEM
//! \copydoc doxygen_hide_simple_model
class Model final : public MoReFEM::Model<Model, DoConsiderProcessorWiseLocal2Global::no>
class Model final : public MoReFEM::Model<Model, morefem_data_type, DoConsiderProcessorWiseLocal2Global::no>
{
private:
//! Convenient alias.
using parent = MoReFEM::Model<Model, DoConsiderProcessorWiseLocal2Global::no>;
using parent = MoReFEM::Model<Model, morefem_data_type, DoConsiderProcessorWiseLocal2Global::no>;
public:
......
target_sources(${MOREFEM_POST_PROCESSING}
PRIVATE
"${CMAKE_CURRENT_LIST_DIR}/Model.cpp" /
"${CMAKE_CURRENT_LIST_DIR}/RefineMesh.cpp" /
#PUBLIC
......
///
////// \file
///
///
/// Created by Federica Caforio <federica.caforio@inria.fr> on the Thu, 12 May 2016 16:34:28 +0200
/// Copyright (c) Inria. All rights reserved.
///
/// \ingroup PostProcessingGroup
/// \addtogroup PostProcessingGroup
/// \{
#include "PostProcessing/RefineMeshQuadranglesSpectral/Model.hpp"
namespace MoReFEM
{
namespace RefineMeshNS
{
void Model::Forward()
{ }
void Model::SupplFinalizeStep()
{ }
void Model::SupplFinalize()
{ }
} // namespace RefineMeshNS
} // namespace MoReFEM
/// @} // addtogroup PostProcessingGroup
......@@ -31,16 +31,17 @@ namespace MoReFEM
/*!
* \brief Model used to init stuff required for RefineMesh algorithm.
*/
class Model : public MoReFEM::Model<Model, DoConsiderProcessorWiseLocal2Global::yes>
template<class MoReFEMDataT>
class Model : public MoReFEM::Model<Model<MoReFEMDataT>, MoReFEMDataT, DoConsiderProcessorWiseLocal2Global::yes>
{