OGS
DeactivatedSubdomain.h
Go to the documentation of this file.
1
13#pragma once
14
15#include <Eigen/Core>
16#include <memory>
17#include <optional>
18#include <string>
19#include <unordered_set>
20#include <vector>
21
23#include "MeshLib/Mesh.h"
24#include "processlib_export.h"
25
26namespace MeshLib
27{
28class Element;
29} // namespace MeshLib
30
31namespace ParameterLib
32{
33template <typename T>
34struct Parameter;
35}
36
37namespace ProcessLib
38{
40{
44 std::unordered_set<std::size_t> bulk_element_ids;
45
48 std::vector<std::size_t> inner_nodes;
52 std::vector<std::size_t> outer_nodes;
53
56 std::vector<std::vector<std::size_t>> outer_nodes_elements;
57};
58
80{
83 bool isInTimeSupportInterval(double const t) const;
84
92 bool isDeactivated(MeshLib::Element const& element,
93 double const time) const;
94
96
99 std::optional<std::pair<Eigen::Vector3d, Eigen::Vector3d>> line_segment;
100
102
106
107 PROCESSLIB_EXPORT static const std::string zero_parameter_name;
108};
109} // namespace ProcessLib
Definition of the Mesh class.
Definition of the PiecewiseLinearInterpolation class.
#define PROCESSLIB_EXPORT
std::vector< std::vector< std::size_t > > outer_nodes_elements
std::unordered_set< std::size_t > bulk_element_ids
bool isDeactivated(MeshLib::Element const &element, double const time) const
static PROCESSLIB_EXPORT const std::string zero_parameter_name
MathLib::PiecewiseLinearInterpolation time_interval
ParameterLib::Parameter< double > const * boundary_value_parameter
DeactivatedSubdomainMesh deactivated_subdomain_mesh
bool isInTimeSupportInterval(double const t) const
std::optional< std::pair< Eigen::Vector3d, Eigen::Vector3d > > line_segment