Commit ed16dd85 authored by GILLES Sebastien's avatar GILLES Sebastien

#1473 Internal object for parallelism moved into MoReFEMData folder. The...

#1473 Internal object for parallelism moved into MoReFEMData folder. The directory issue has not yet been solved.
parent 44b8a67e
......@@ -1034,9 +1034,9 @@
BE7E552822EF280E00BEA053 /* Parallelism.hpp in Headers */ = {isa = PBXBuildFile; fileRef = BE7E552522EF280E00BEA053 /* Parallelism.hpp */; };
BE7E553A22EF2D0000BEA053 /* Parallelism.hpp in Headers */ = {isa = PBXBuildFile; fileRef = BE7E553722EF2D0000BEA053 /* Parallelism.hpp */; };
BE7E553B22EF2D0000BEA053 /* Parallelism.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE7E553822EF2D0000BEA053 /* Parallelism.cpp */; };
BE7E554122EF410200BEA053 /* Parallelism.hxx in Headers */ = {isa = PBXBuildFile; fileRef = BE7E553E22EF410200BEA053 /* Parallelism.hxx */; };
BE7E554222EF410200BEA053 /* Parallelism.hpp in Headers */ = {isa = PBXBuildFile; fileRef = BE7E553F22EF410200BEA053 /* Parallelism.hpp */; };
BE7E554922EF44CB00BEA053 /* ParallelismStrategy.hpp in Headers */ = {isa = PBXBuildFile; fileRef = BE7E554622EF44CB00BEA053 /* ParallelismStrategy.hpp */; };
BE7E554F22EF502200BEA053 /* ParallelismStrategy.hpp in Headers */ = {isa = PBXBuildFile; fileRef = BE7E554C22EF500D00BEA053 /* ParallelismStrategy.hpp */; };
BE7E555322EF507A00BEA053 /* Parallelism.hxx in Headers */ = {isa = PBXBuildFile; fileRef = BE7E555122EF507A00BEA053 /* Parallelism.hxx */; };
BE7E555422EF507A00BEA053 /* Parallelism.hpp in Headers */ = {isa = PBXBuildFile; fileRef = BE7E555222EF507A00BEA053 /* Parallelism.hpp */; };
BE83582B1FFD779E0009956E /* Sort.hpp in Headers */ = {isa = PBXBuildFile; fileRef = BE83582A1FFD779E0009956E /* Sort.hpp */; };
BE83582D1FFD78DE0009956E /* Sort.hxx in Headers */ = {isa = PBXBuildFile; fileRef = BE83582C1FFD78DD0009956E /* Sort.hxx */; };
BE8553A91BBD77BF00DB109E /* DofSource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE8553A31BBD77BF00DB109E /* DofSource.cpp */; };
......@@ -4130,9 +4130,9 @@
BE7E552522EF280E00BEA053 /* Parallelism.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = Parallelism.hpp; sourceTree = "<group>"; };
BE7E553722EF2D0000BEA053 /* Parallelism.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = Parallelism.hpp; sourceTree = "<group>"; };
BE7E553822EF2D0000BEA053 /* Parallelism.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Parallelism.cpp; sourceTree = "<group>"; };
BE7E553E22EF410200BEA053 /* Parallelism.hxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = Parallelism.hxx; sourceTree = "<group>"; };
BE7E553F22EF410200BEA053 /* Parallelism.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = Parallelism.hpp; sourceTree = "<group>"; };
BE7E554622EF44CB00BEA053 /* ParallelismStrategy.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = ParallelismStrategy.hpp; sourceTree = "<group>"; };
BE7E554C22EF500D00BEA053 /* ParallelismStrategy.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = ParallelismStrategy.hpp; sourceTree = "<group>"; };
BE7E555122EF507A00BEA053 /* Parallelism.hxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = Parallelism.hxx; sourceTree = "<group>"; };
BE7E555222EF507A00BEA053 /* Parallelism.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = Parallelism.hpp; sourceTree = "<group>"; };
BE7E68682065615100AA2FB3 /* InputData.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = InputData.hpp; sourceTree = "<group>"; };
BE7E68692065615100AA2FB3 /* CMakeLists.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = CMakeLists.txt; sourceTree = "<group>"; };
BE7E686A2065615100AA2FB3 /* Model.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = Model.hpp; sourceTree = "<group>"; };
......@@ -8329,6 +8329,8 @@
children = (
BE68B9D51FF385FA009C43BA /* MoReFEMData.hpp */,
BE68B9D61FF385FA009C43BA /* MoReFEMData.hxx */,
BE7E554B22EF4FBC00BEA053 /* Advanced */,
BE7E555022EF503C00BEA053 /* Internal */,
);
path = MoReFEMData;
sourceTree = "<group>";
......@@ -8643,20 +8645,21 @@
path = Internal;
sourceTree = "<group>";
};
BE7E554322EF44A100BEA053 /* Advanced */ = {
BE7E554B22EF4FBC00BEA053 /* Advanced */ = {
isa = PBXGroup;
children = (
BE7E554A22EF44EC00BEA053 /* GodOfDof */,
BE7E554C22EF500D00BEA053 /* ParallelismStrategy.hpp */,
);
path = Advanced;
sourceTree = "<group>";
};
BE7E554A22EF44EC00BEA053 /* GodOfDof */ = {
BE7E555022EF503C00BEA053 /* Internal */ = {
isa = PBXGroup;
children = (
BE7E554622EF44CB00BEA053 /* ParallelismStrategy.hpp */,
BE7E555222EF507A00BEA053 /* Parallelism.hpp */,
BE7E555122EF507A00BEA053 /* Parallelism.hxx */,
);
path = GodOfDof;
path = Internal;
sourceTree = "<group>";
};
BE7E68642065615100AA2FB3 /* NonlinearMembrane */ = {
......@@ -9893,7 +9896,6 @@
BE13458A19CC16F4003ED11A /* FEltSpace.cpp */,
BE13458B19CC16F4003ED11A /* FEltSpace.hpp */,
BE13458C19CC16F4003ED11A /* FEltSpace.hxx */,
BE7E554322EF44A100BEA053 /* Advanced */,
BEBEB18219C8429300E4EA1D /* Internal */,
);
path = FiniteElementSpace;
......@@ -9963,8 +9965,6 @@
BEF4A6DD22E1BF0400CD4A6E /* OutputDirectoryStorage.cpp */,
BEF4A6DF22E1BF0400CD4A6E /* OutputDirectoryStorage.hpp */,
BEF4A6DE22E1BF0400CD4A6E /* OutputDirectoryStorage.hxx */,
BE7E553F22EF410200BEA053 /* Parallelism.hpp */,
BE7E553E22EF410200BEA053 /* Parallelism.hxx */,
BEBEB21D19C849C200E4EA1D /* Impl */,
);
path = Internal;
......@@ -10926,6 +10926,7 @@
BE4D0D4A21A2E4F900E0D4E7 /* RectangularSourceTimeParameter.hpp in Headers */,
BE4D0D7B21A2E4F900E0D4E7 /* LightweightDomainList.hpp in Headers */,
BE4D0D4221A2E4F900E0D4E7 /* SpatialFunction.hxx in Headers */,
BE7E555322EF507A00BEA053 /* Parallelism.hxx in Headers */,
BE4D0D3921A2E4F900E0D4E7 /* Petsc.hpp in Headers */,
BE90DECF1A24903700CCAFDE /* Enum.hpp in Headers */,
BE2EEA411DB4B7CB00AF0D62 /* SetFromInputData.hpp in Headers */,
......@@ -10941,6 +10942,7 @@
BE2EEA421DB4B7CB00AF0D62 /* SetFromInputData.hxx in Headers */,
BE4D0D8521A2E4F900E0D4E7 /* LightweightDomainList.hxx in Headers */,
BE4D0D1321A2E4F900E0D4E7 /* InitialCondition.hpp in Headers */,
BE7E555422EF507A00BEA053 /* Parallelism.hpp in Headers */,
BE8B675E1CC0F41200312399 /* FetchFunction.hpp in Headers */,
BE4D0D6B21A2E4F900E0D4E7 /* ViscoelasticBoundaryCondition.hpp in Headers */,
BE4D0D8221A2E4F900E0D4E7 /* PseudoNormals.hpp in Headers */,
......@@ -10959,6 +10961,7 @@
BE4D0D5321A2E4F900E0D4E7 /* AnalyticalPrestress.hpp in Headers */,
BE4D0D6821A2E4F900E0D4E7 /* Fluid.hpp in Headers */,
BE4478741AA70A1300665010 /* PrintAndAbort.hpp in Headers */,
BE7E554F22EF502200BEA053 /* ParallelismStrategy.hpp in Headers */,
BE4D0D4621A2E4F900E0D4E7 /* RectangularSourceTimeParameter.hpp in Headers */,
BE4478751AA70A1300665010 /* PrintAndAbort.hxx in Headers */,
BE8B675F1CC0F41200312399 /* FetchFunction.hxx in Headers */,
......@@ -11359,7 +11362,6 @@
BE90E0671A2491AE00CCAFDE /* FEltSpace.hpp in Headers */,
BE2B665D1A2778C700E80864 /* RefFEltInFEltSpace.hpp in Headers */,
BE2B66631A2778C700E80864 /* RefLocalFEltSpace.hpp in Headers */,
BE7E554122EF410200BEA053 /* Parallelism.hxx in Headers */,
BE3E664E1ACEB94E00A3F7E2 /* Connectivity.hpp in Headers */,
BE63C1511B21876B00978D05 /* SegmentP0.hpp in Headers */,
BEF4A6E222E1BF0400CD4A6E /* OutputDirectoryStorage.hpp in Headers */,
......@@ -11373,7 +11375,6 @@
BE90E1161A2491AE00CCAFDE /* GaussQuadratureFormula.hpp in Headers */,
BE5100061CCE3EB80034FE28 /* PerDegreeOfExactness.hpp in Headers */,
BE6128881CCE54A600318BB6 /* PerShapeFunctionOrder.hpp in Headers */,
BE7E554922EF44CB00BEA053 /* ParallelismStrategy.hpp in Headers */,
BE9B828A1D81881E00BA174F /* TriangleP1Bubble.hpp in Headers */,
BEFC32E01CB53C3B00C8903C /* RefFEltInLocalOperator.hpp in Headers */,
BE90E06D1A2491AE00CCAFDE /* ComputeMatrixPattern.hpp in Headers */,
......@@ -11403,7 +11404,6 @@
BE510D841CB3D44900E953FE /* Comp1.hpp in Headers */,
BE90E1001A2491AE00CCAFDE /* QuadratureRule.hpp in Headers */,
BE32218B1B4686B100F27D6C /* Local2GlobalStorage.hxx in Headers */,
BE7E554222EF410200BEA053 /* Parallelism.hpp in Headers */,
BE2B663C1A2778C700E80864 /* HexahedronQ2c.hpp in Headers */,
BEFC32E11CB53C3B00C8903C /* RefFEltInLocalOperator.hxx in Headers */,
BE90E0711A2491AE00CCAFDE /* CreateNodeListHelper.hpp in Headers */,
......@@ -8,8 +8,8 @@
//Copyright © 2019 Inria. All rights reserved.
//
#ifndef MOREFEM_x_FINITE_ELEMENT_x_FINITE_ELEMENT_SPACE_x_ADVANCED_x_GOD_OF_DOF_x_PARALLELISM_STRATEGY_HPP_
# define MOREFEM_x_FINITE_ELEMENT_x_FINITE_ELEMENT_SPACE_x_ADVANCED_x_GOD_OF_DOF_x_PARALLELISM_STRATEGY_HPP_
#ifndef MOREFEM_x_CORE_x_MO_RE_F_E_M_DATA_x_ADVANCED_x_PARALLELISM_STRATEGY_HPP_
# define MOREFEM_x_CORE_x_MO_RE_F_E_M_DATA_x_ADVANCED_x_PARALLELISM_STRATEGY_HPP_
namespace MoReFEM::Advanced
......@@ -27,7 +27,6 @@ namespace MoReFEM::Advanced
};
} // namespace MoReFEM::Advanced
#endif // MOREFEM_x_FINITE_ELEMENT_x_FINITE_ELEMENT_SPACE_x_ADVANCED_x_GOD_OF_DOF_x_PARALLELISM_STRATEGY_HPP_
#endif // MOREFEM_x_CORE_x_MO_RE_F_E_M_DATA_x_ADVANCED_x_PARALLELISM_STRATEGY_HPP_
......@@ -7,7 +7,7 @@
### ===================================================================================
target_sources(${MOREFEM_FELT}
target_sources(${MOREFEM_CORE}
PRIVATE
"${CMAKE_CURRENT_LIST_DIR}/ParallelismStrategy.hpp"
......
......@@ -8,18 +8,18 @@
//Copyright © 2019 Inria. All rights reserved.
//
#ifndef MOREFEM_x_FINITE_ELEMENT_x_FINITE_ELEMENT_SPACE_x_INTERNAL_x_PARALLELISM_HPP_
# define MOREFEM_x_FINITE_ELEMENT_x_FINITE_ELEMENT_SPACE_x_INTERNAL_x_PARALLELISM_HPP_
#ifndef MOREFEM_x_CORE_x_MO_RE_F_E_M_DATA_x_INTERNAL_x_PARALLELISM_HPP_
# define MOREFEM_x_CORE_x_MO_RE_F_E_M_DATA_x_INTERNAL_x_PARALLELISM_HPP_
# include <memory>
# include <string>
# include <cassert>
# include "Core/InputData/Instances/Parallelism/Parallelism.hpp"
# include "FiniteElement/FiniteElementSpace/Advanced/GodOfDof/ParallelismStrategy.hpp"
# include "Core/MoReFEMData/Advanced/ParallelismStrategy.hpp"
namespace MoReFEM::Internal::GodOfDofNS
namespace MoReFEM::Internal
{
......@@ -82,10 +82,10 @@ namespace MoReFEM::Internal::GodOfDofNS
};
} // namespace MoReFEM::Internal::GodOfDofNS
} // namespace MoReFEM::Internal
# include "FiniteElement/FiniteElementSpace/Internal/Parallelism.hxx"
# include "Core/MoReFEMData/Internal/Parallelism.hxx"
#endif // MOREFEM_x_FINITE_ELEMENT_x_FINITE_ELEMENT_SPACE_x_INTERNAL_x_PARALLELISM_HPP_
#endif // MOREFEM_x_CORE_x_MO_RE_F_E_M_DATA_x_INTERNAL_x_PARALLELISM_HPP_
......@@ -8,11 +8,11 @@
//Copyright © 2019 Inria. All rights reserved.
//
#ifndef MOREFEM_x_FINITE_ELEMENT_x_FINITE_ELEMENT_SPACE_x_INTERNAL_x_PARALLELISM_HXX_
# define MOREFEM_x_FINITE_ELEMENT_x_FINITE_ELEMENT_SPACE_x_INTERNAL_x_PARALLELISM_HXX_
#ifndef MOREFEM_x_CORE_x_MO_RE_F_E_M_DATA_x_INTERNAL_x_PARALLELISM_HXX_
# define MOREFEM_x_CORE_x_MO_RE_F_E_M_DATA_x_INTERNAL_x_PARALLELISM_HXX_
namespace MoReFEM::Internal::GodOfDofNS
namespace MoReFEM::Internal
{
......@@ -38,7 +38,7 @@ namespace MoReFEM::Internal::GodOfDofNS
exit(EXIT_FAILURE);
}
if (parallelism_strategy_ == ::MoReFEM::Advanced::parallelism_strategy::run_from_preprocessed)
preprocessed_directory_ = ipl::Extract<Parallelism::Path>::Folder(input_data);
......@@ -65,7 +65,7 @@ namespace MoReFEM::Internal::GodOfDofNS
}
} // namespace MoReFEM::Internal::GodOfDofNS
} // namespace MoReFEM::Internal
#endif // MOREFEM_x_FINITE_ELEMENT_x_FINITE_ELEMENT_SPACE_x_INTERNAL_x_PARALLELISM_HXX_
#endif // MOREFEM_x_CORE_x_MO_RE_F_E_M_DATA_x_INTERNAL_x_PARALLELISM_HXX_
......@@ -7,9 +7,10 @@
### ===================================================================================
target_sources(${MOREFEM_FELT}
target_sources(${MOREFEM_CORE}
PRIVATE
"${CMAKE_CURRENT_LIST_DIR}/Parallelism.hpp"
"${CMAKE_CURRENT_LIST_DIR}/Parallelism.hxx"
)
include(${CMAKE_CURRENT_LIST_DIR}/GodOfDof/SourceList.cmake)
......@@ -32,6 +32,7 @@
# include "Core/InputData/Instances/Result.hpp"
# include "Core/InitTimeKeepLog.hpp"
# include "Core/MoReFEMData/Internal/Parallelism.hpp"
namespace MoReFEM
......@@ -128,7 +129,8 @@ namespace MoReFEM
template<MpiScale MpiScaleT>
const std::string& GetResultDirectory() const noexcept;
//!
//! Accessor to the object which keeps the data related to parallelism strategy.
const Internal::Parallelism* GetParallelismPtr() const noexcept;
private:
......@@ -141,6 +143,9 @@ namespace MoReFEM
//! Subdirectory of \a result_directory_ in which informations related to current rank are written.
std::string result_directory_with_rank_;
//! Object which holds the parallelism strategy to use.
Internal::Parallelism::unique_ptr parallelism_ = nullptr;
};
......
......@@ -178,6 +178,8 @@ namespace MoReFEM
mpi,
DoTrackUnusedFieldsT);
parallelism_ = std::make_unique<Internal::Parallelism>(*input_data_);
namespace ipl = Utilities::InputDataNS;
using Result = InputDataNS::Result;
......@@ -275,6 +277,20 @@ namespace MoReFEM
}
template
<
class InputDataT,
Utilities::InputDataNS::DoTrackUnusedFields DoTrackUnusedFieldsT,
class AdditionalCommandLineArgumentsPolicyT
>
const Internal::Parallelism* MoReFEMData<InputDataT, DoTrackUnusedFieldsT, AdditionalCommandLineArgumentsPolicyT>
::GetParallelismPtr() const noexcept
{
assert(!(!parallelism_));
return parallelism_.get();
}
} // namespace MoReFEM
......
......@@ -14,3 +14,5 @@ target_sources(${MOREFEM_CORE}
"${CMAKE_CURRENT_LIST_DIR}/MoReFEMData.hxx"
)
include(${CMAKE_CURRENT_LIST_DIR}/Advanced/SourceList.cmake)
include(${CMAKE_CURRENT_LIST_DIR}/Internal/SourceList.cmake)
......@@ -20,6 +20,7 @@
# include "Utilities/UniqueId/UniqueId.hpp"
# include "Core/MoReFEMData/MoReFEMData.hpp"
# include "Core/InputData/Advanced/SetFromInputData.hpp"
# include "Core/InputData/Instances/Result.hpp"
......@@ -32,7 +33,6 @@
# include "FiniteElement/FiniteElementSpace/Internal/ComputeMatrixPattern.hpp"
# include "FiniteElement/FiniteElementSpace/Internal/DofProgramWiseIndexListPerVertexCoordIndexListManager.hpp"
# include "FiniteElement/FiniteElementSpace/Internal/OutputDirectoryStorage.hpp"
# include "FiniteElement/FiniteElementSpace/Internal/Parallelism.hpp"
# include "FiniteElement/BoundaryConditions/DirichletBoundaryCondition.hpp"
......@@ -149,13 +149,13 @@ namespace MoReFEM
* - Set the list of finite elements in each finite element space.
* - Set the list of nodes here.
*
* \copydoc doxygen_hide_input_data_arg
* \copydoc doxygen_hide_morefem_data_param
* \param[in] felt_space_list List of all \a FEltSpace to consider in the \a GodOfDof.
* \copydetails doxygen_hide_do_consider_processor_wise_local_2_global
* \param[in] output_directory Output directory for data specific to the mesh covered by the \a GodOfDof.
*/
template<class InputDataT>
void Init(const InputDataT& input_data,
template<class MoReFEMDataT>
void Init(const MoReFEMDataT& morefem_data,
FEltSpace::vector_unique_ptr&& felt_space_list,
DoConsiderProcessorWiseLocal2Global do_consider_processor_wise_local_2_global,
std::string&& output_directory);
......@@ -427,8 +427,8 @@ namespace MoReFEM
*/
auto GetIteratorFEltSpace(unsigned int unique_id) const;
//! Accessor to the object which keeps the data related to parallelism strategy.
const Internal::GodOfDofNS::Parallelism& GetParallelism() const noexcept;
//! Access to internal object in charge of parallelism strategy.
const Internal::Parallelism& GetParallelism() const noexcept;
private:
......@@ -600,9 +600,10 @@ namespace MoReFEM
//! Path of the file listing the time iterations and the related files.
std::string time_iteration_file_;
//! Object which holds the parallelism strategy to use.
Internal::GodOfDofNS::Parallelism::unique_ptr parallelism_ = nullptr;
//! Object which holds the informations about parallelism.
const Internal::Parallelism* parallelism_ = nullptr;
# ifndef NDEBUG
/*!
* \brief Whether Init() has already been called or not.
......
......@@ -21,13 +21,13 @@ namespace MoReFEM
template<class InputDataT>
void GodOfDof::Init(const InputDataT& input_data,
template<class MoReFEMDataT>
void GodOfDof::Init(const MoReFEMDataT& morefem_data,
FEltSpace::vector_unique_ptr&& a_felt_space_list,
DoConsiderProcessorWiseLocal2Global do_consider_proc_wise_local_2_global,
std::string&& output_directory)
{
parallelism_ = std::make_unique<Internal::GodOfDofNS::Parallelism>(input_data);
parallelism_ = morefem_data.GetParallelismPtr();
std::map<unsigned int, std::vector<unsigned int>> dof_list_per_felt_space;
......@@ -35,7 +35,7 @@ namespace MoReFEM
std::move(a_felt_space_list),
dof_list_per_felt_space);
Init2(input_data);
Init2(morefem_data.GetInputData());
Init3(do_consider_proc_wise_local_2_global, dof_list_per_felt_space);
}
......@@ -269,7 +269,7 @@ namespace MoReFEM
}
inline const Internal::GodOfDofNS::Parallelism& GodOfDof::GetParallelism() const noexcept
inline const Internal::Parallelism& GodOfDof::GetParallelism() const noexcept
{
assert(!(!parallelism_));
return *parallelism_;
......
......@@ -50,8 +50,6 @@ target_sources(${MOREFEM_FELT}
"${CMAKE_CURRENT_LIST_DIR}/NdofHolder.hxx"
"${CMAKE_CURRENT_LIST_DIR}/OutputDirectoryStorage.hpp"
"${CMAKE_CURRENT_LIST_DIR}/OutputDirectoryStorage.hxx"
"${CMAKE_CURRENT_LIST_DIR}/Parallelism.hpp"
"${CMAKE_CURRENT_LIST_DIR}/Parallelism.hxx"
"${CMAKE_CURRENT_LIST_DIR}/Partition.hpp"
"${CMAKE_CURRENT_LIST_DIR}/Partition.hxx"
"${CMAKE_CURRENT_LIST_DIR}/ReduceToProcessorWise.hpp"
......
......@@ -24,5 +24,4 @@ target_sources(${MOREFEM_FELT}
"${CMAKE_CURRENT_LIST_DIR}/GodOfDofManager.hxx"
)
include(${CMAKE_CURRENT_LIST_DIR}/Advanced/SourceList.cmake)
include(${CMAKE_CURRENT_LIST_DIR}/Internal/SourceList.cmake)
......@@ -39,14 +39,14 @@ namespace MoReFEM
/*!
* \brief Create the finite element spaces and init the god of dofs with them.
*
* \copydoc doxygen_hide_input_data_arg
* \copydoc doxygen_hide_morefem_data_param
* \copydetails doxygen_hide_do_consider_processor_wise_local_2_global
* \param[in] output_directory_per_mesh_index Key is the unique id of the \a Mesh (same
* as the one for the \a GodOfDof), value the path to the associated output directory (which should have
* already been created by \a Model class).
*/
template<class InputDataT>
void InitGodOfDof(const InputDataT& input_data,
template<class MoReDEMDataT>
void InitGodOfDof(const MoReDEMDataT& morefem_data,
DoConsiderProcessorWiseLocal2Global do_consider_processor_wise_local_2_global,
std::map<unsigned int, std::string>&& output_directory_per_mesh_index);
......@@ -72,7 +72,7 @@ namespace MoReFEM
*
* \internal <b><tt>[internal]</tt></b> Should not be called outside of InitGodOfDof().
*
* \copydoc doxygen_hide_input_data_arg
* \copydoc doxygen_hide_morefem_data_param
* \copydetails doxygen_hide_do_consider_processor_wise_local_2_global
* \copydoc doxygen_hide_do_create_output_dir_arg
*
......@@ -80,8 +80,8 @@ namespace MoReFEM
* have already been instantiated during this call, and are given to their proper \a GodOfDof.
* The reference is not constant due to move semantics inside, but the output value shouldn't be considered.
*/
template<class InputDataT>
void InitEachGodOfDof(const InputDataT& input_data,
template<class MoReDEMDataT>
void InitEachGodOfDof(const MoReDEMDataT& morefem_data,
std::map<unsigned int, FEltSpace::vector_unique_ptr>& felt_space_list_per_god_of_dof_index,
DoConsiderProcessorWiseLocal2Global do_consider_processor_wise_local_2_global,
create_output_dir do_create_output_dir);
......
......@@ -28,8 +28,8 @@ namespace MoReFEM
{
template<class InputDataT>
void InitEachGodOfDof(const InputDataT& input_data,
template<class MoReDEMDataT>
void InitEachGodOfDof(const MoReDEMDataT& morefem_data,
std::map<unsigned int, FEltSpace::vector_unique_ptr>& felt_space_list_per_god_of_dof_index,
DoConsiderProcessorWiseLocal2Global do_consider_proc_wise_local_2_global,
std::map<unsigned int, std::string>&& mesh_output_directory_storage)
......@@ -53,7 +53,7 @@ namespace MoReFEM
assert(it_output_dir != mesh_output_directory_storage.cend());
god_of_dof.Init(input_data,
god_of_dof.Init(morefem_data,
std::move(it->second),
do_consider_proc_wise_local_2_global,
std::move(it_output_dir->second));
......@@ -61,16 +61,16 @@ namespace MoReFEM
}
template<class InputDataT>
void InitGodOfDof(const InputDataT& input_data,
template<class MoReDEMDataT>
void InitGodOfDof(const MoReDEMDataT& morefem_data,
DoConsiderProcessorWiseLocal2Global do_consider_proc_wise_local_2_global,
std::map<unsigned int, std::string>&& mesh_output_directory_storage)
{
std::map<unsigned int, FEltSpace::vector_unique_ptr> felt_space_list_per_god_of_dof_index;
CreateFEltSpaceList(input_data, felt_space_list_per_god_of_dof_index);
CreateFEltSpaceList(morefem_data.GetInputData(), felt_space_list_per_god_of_dof_index);
InitEachGodOfDof(input_data,
InitEachGodOfDof(morefem_data,
felt_space_list_per_god_of_dof_index,
do_consider_proc_wise_local_2_global,
std::move(mesh_output_directory_storage));
......
......@@ -259,7 +259,7 @@ namespace MoReFEM
Advanced::SetFromInputData<>(input_data, manager, mpi);
}
Internal::ModelNS::InitGodOfDof(input_data,
Internal::ModelNS::InitGodOfDof(morefem_data,
DoConsiderProcessorWiseLocal2GlobalT,
CreateMeshDataDirectory<MpiScale::processor_wise>(do_create_output_dir));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment