14 #if !defined(KRATOS_ROM_AUXILIARY_UTILITIES_H)
15 #define KRATOS_ROM_AUXILIARY_UTILITIES_H
18 #include <unordered_map>
62 std::vector<IndexType>,
63 std::pair<bool, GeometryPointerType>,
80 static void SetHRomComputingModelPart(
98 static void SetHRomComputingModelPartWithNeighbours(
112 static void SetHRomVolumetricVisualizationModelPart(
125 static std::vector<IndexType> GetHRomConditionParentsIds(
127 const std::map<std::string, std::map<IndexType, double>>& rHRomWeights);
143 static std::vector<IndexType> GetNodalNeighbouringElementIdsNotInHRom(
146 const std::map<std::string, std::map<IndexType, double>>& rHRomWeights);
161 static std::vector<IndexType> GetNodalNeighbouringElementIds(
173 static std::vector<IndexType> GetConditionIdsNotInHRomModelPart(
174 const ModelPart& rModelPartWithConditionsToInclude,
175 std::map<std::string, std::map<IndexType, double>>& rHRomWeights);
185 static std::vector<IndexType> GetElementIdsNotInHRomModelPart(
186 const ModelPart& rModelPartWithElementsToInclude,
187 std::map<std::string, std::map<IndexType, double>>& rHRomWeights);
197 static std::vector<IndexType> GetHRomMinimumConditionsIds(
199 const std::map<IndexType, double>& rHRomConditionWeights);
212 static std::vector<IndexType> GetElementIdsInModelPart(
226 static std::vector<IndexType> GetConditionIdsInModelPart(
237 static void ProjectRomSolutionIncrementToNodes(
238 const std::vector<std::string> &rRomVariableNames,
248 static void GetPhiElemental(
252 const std::unordered_map<Kratos::VariableData::KeyType, Matrix::size_type>& rVarToRowMapping);
262 static void GetPsiElemental(
266 const std::unordered_map<Kratos::VariableData::KeyType, Matrix::size_type>& rVarToRowMapping);
278 static void GetJPhiElemental(
290 static void RecursiveHRomModelPartCreation(
292 const std::vector<Element::Pointer>& rElementsVector,
293 const std::vector<Condition::Pointer>& rConditionsVector,
297 static void RecursiveHRomMinimumConditionIds(
299 const std::map<IndexType, double>& rHRomConditionWeights,
300 std::vector<IndexType>& rMinimumConditionsIds);
302 static void RecursiveVisualizationSubModelPartCreation(
std::vector< DofType::Pointer > DofsVectorType
Definition: element.h:100
Geometry base class.
Definition: geometry.h:71
This class aims to manage meshes for multi-physics simulations.
Definition: model_part.h:77
MeshType::NodesContainerType NodesContainerType
Nodes container. Which is a vector set of nodes with their Id's as key.
Definition: model_part.h:128
This class defines the node.
Definition: node.h:65
This class provides to Kratos a data structure for I/O based on the standard of JSON.
Definition: kratos_parameters.h:59
Definition: rom_auxiliary_utilities.h:44
std::size_t SizeType
Definition: rom_auxiliary_utilities.h:49
ModelPart::NodesContainerType NodesPointerSetType
Definition: rom_auxiliary_utilities.h:59
Geometry< NodeType >::Pointer GeometryPointerType
Definition: rom_auxiliary_utilities.h:57
std::size_t IndexType
Definition: rom_auxiliary_utilities.h:51
std::unordered_map< std::vector< IndexType >, std::pair< bool, GeometryPointerType >, KeyHasherRange< std::vector< IndexType > >, KeyComparorRange< std::vector< IndexType > >> ElementFacesMapType
Definition: rom_auxiliary_utilities.h:65
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
This is a key comparer of general pourpose between two classes.
Definition: key_hash.h:100
This is a hasher of general pourpose.
Definition: key_hash.h:138