OGS
HeatTransportBHE/BHE/MeshUtils.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) OpenGeoSys Community (opengeosys.org)
2// SPDX-License-Identifier: BSD-3-Clause
3
4#pragma once
5
6#include <cstddef>
7#include <unordered_map>
8#include <vector>
9
10#include "BHETypes.h"
11
12namespace MeshLib
13{
14class Element;
15class Mesh;
16class Node;
17} // namespace MeshLib
18
19namespace ProcessLib
20{
21namespace HeatTransportBHE
22{
23/* TODO (naumov) Just an idea
24struct BheMeshSubset
25{
26 int material_id;
27 std::vector<MeshLib::Element*> elements;
28 std::vector<MeshLib::Node*> nodes;
29};
30*/
31
33{
34 std::vector<int> BHE_mat_IDs;
35 std::vector<std::vector<MeshLib::Element*>> BHE_elements;
36 std::vector<std::vector<MeshLib::Node*>> BHE_nodes;
37 std::vector<std::vector<MeshLib::Node*>> BHE_topology_ordered_nodes;
38 std::unordered_map<std::size_t, double> BHE_element_distances_from_wellhead;
39 std::unordered_map<std::size_t, int> BHE_element_section_indices;
40
41 void updateElementSectionIndices(std::vector<BHE::BHETypes> const& bhes);
42
43 // TODO (naumov) Just an idea: std::vector<BheMeshSubset> mesh_subsets;
44};
45
54} // end of namespace HeatTransportBHE
55} // namespace ProcessLib
BHEMeshData getBHEDataInMesh(MeshLib::Mesh const &mesh)
std::vector< std::vector< MeshLib::Node * > > BHE_nodes
std::unordered_map< std::size_t, int > BHE_element_section_indices
std::vector< std::vector< MeshLib::Element * > > BHE_elements
std::vector< std::vector< MeshLib::Node * > > BHE_topology_ordered_nodes
void updateElementSectionIndices(std::vector< BHE::BHETypes > const &bhes)
std::unordered_map< std::size_t, double > BHE_element_distances_from_wellhead