OGS
DeactivatedSubdomain.h
Go to the documentation of this file.
1 
13 #pragma once
14 
15 #include <Eigen/Dense>
16 #include <memory>
17 #include <string>
18 #include <vector>
19 
21 #include "MathLib/Point3d.h"
22 
23 namespace MeshLib
24 {
25 class Mesh;
26 class Node;
27 } // namespace MeshLib
28 
29 namespace ParameterLib
30 {
31 template <typename T>
32 struct Parameter;
33 }
34 
35 namespace ProcessLib
36 {
38 {
40  std::unique_ptr<MeshLib::Mesh> deactivated_subdomain_mesh_,
41  std::vector<MeshLib::Node*>&& inner_nodes_,
42  std::vector<MeshLib::Node*>&& outer_nodes_);
43 
44  std::unique_ptr<MeshLib::Mesh> const mesh;
45  std::vector<MeshLib::Node*> const inner_nodes;
46  std::vector<MeshLib::Node*> const outer_nodes;
47 };
48 
69 {
72  std::pair<Eigen::Vector3d, Eigen::Vector3d>
74  std::vector<int>&& materialIDs_,
75  std::vector<std::unique_ptr<DeactivatedSubdomainMesh>>&&
76  deactivated_subdomain_meshes_,
78 
81  bool isInTimeSupportInterval(double const t) const;
82 
87  bool isDeactivated(MathLib::Point3d const& point, double const time) const;
88 
90 
93  std::pair<Eigen::Vector3d, Eigen::Vector3d> line_segment;
94 
96  std::vector<int> const materialIDs;
97 
98  std::vector<std::unique_ptr<DeactivatedSubdomainMesh>> const
100 
104 
105  static const std::string zero_parameter_name;
106 };
107 } // namespace ProcessLib
Definition of the PiecewiseLinearInterpolation class.
Definition of the Point3d class.
std::vector< MeshLib::Node * > const outer_nodes
DeactivatedSubdomainMesh(std::unique_ptr< MeshLib::Mesh > deactivated_subdomain_mesh_, std::vector< MeshLib::Node * > &&inner_nodes_, std::vector< MeshLib::Node * > &&outer_nodes_)
std::vector< MeshLib::Node * > const inner_nodes
std::unique_ptr< MeshLib::Mesh > const mesh
std::pair< Eigen::Vector3d, Eigen::Vector3d > line_segment
MathLib::PiecewiseLinearInterpolation const time_interval
DeactivatedSubdomain(MathLib::PiecewiseLinearInterpolation time_interval_, std::pair< Eigen::Vector3d, Eigen::Vector3d > line_segment, std::vector< int > &&materialIDs_, std::vector< std::unique_ptr< DeactivatedSubdomainMesh >> &&deactivated_subdomain_meshes_, ParameterLib::Parameter< double > const *boundary_value_parameter)
std::vector< std::unique_ptr< DeactivatedSubdomainMesh > > const deactivated_subdomain_meshes
bool isDeactivated(MathLib::Point3d const &point, double const time) const
static const std::string zero_parameter_name
std::vector< int > const materialIDs
The material IDs of the deactivated the subdomains.
bool isInTimeSupportInterval(double const t) const
ParameterLib::Parameter< double > const *const boundary_value_parameter