OGS 6.2.0-244-g47b8a9a9d
DeactivatedSubdomain.h
Go to the documentation of this file.
1 
13 #pragma once
14 
15 #include <algorithm>
16 #include <memory>
17 #include <string>
18 #include <vector>
19 
20 // TimeInterval cannot be forwardly declared because that
21 // std::unique_ptr<BaseLib::TimeInterval> type member requires its full
22 // definition (see https://stackoverflow.com/a/6089065).
23 #include "BaseLib/TimeInterval.h"
24 
25 namespace BaseLib
26 {
27 class ConfigTree;
28 } // namespace BaseLib
29 
30 namespace MeshLib
31 {
32 class Mesh;
33 class Node;
34 } // namespace MeshLib
35 
36 namespace ProcessLib
37 {
39 {
41  std::unique_ptr<MeshLib::Mesh> deactivated_subdomain_mesh_,
42  std::vector<MeshLib::Node*>&& inactive_nodes_);
43 
44  std::unique_ptr<MeshLib::Mesh> const mesh;
45  std::vector<MeshLib::Node*> const inactive_nodes;
46 };
47 
49 {
51  std::unique_ptr<BaseLib::TimeInterval> time_interval_,
52  std::vector<int>&& materialIDs_,
53  std::vector<std::unique_ptr<DeactivetedSubdomainMesh>>&&
54  deactivated_subdomain_meshes_);
55 
56  bool includesTimeOf(double const t) const;
57 
58  std::unique_ptr<BaseLib::TimeInterval const> const time_interval;
59 
61  std::vector<int> const materialIDs;
62 
63  std::vector<std::unique_ptr<DeactivetedSubdomainMesh>> const
65 
66  static const std::string zero_parameter_name;
67 };
68 
69 std::vector<std::unique_ptr<DeactivatedSubdomain const>>
71  MeshLib::Mesh const& mesh);
72 
73 } // namespace ProcessLib
std::unique_ptr< BaseLib::TimeInterval const > const time_interval
std::vector< std::unique_ptr< DeactivetedSubdomainMesh > > const deactivated_subdomain_meshes
std::vector< MeshLib::Node * > const inactive_nodes
std::vector< int > const materialIDs
The material IDs of the deactivated the subdomains.
static const std::string zero_parameter_name
Interface for heuristic search length strategy.
Definition: ProjectData.h:29
std::unique_ptr< MeshLib::Mesh > const mesh
Build information.
std::vector< std::unique_ptr< DeactivatedSubdomain const > > createDeactivatedSubdomains(BaseLib::ConfigTree const &config, MeshLib::Mesh const &mesh)