Loading [MathJax]/extensions/tex2jax.js
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
59namespace detail
60{
61struct Ball
62{
63 Eigen::Vector3d center;
64 double radius;
65};
66} // namespace detail
88{
91 bool isInTimeSupportInterval(double const t) const;
92
100 bool isDeactivated(MeshLib::Element const& element,
101 double const time) const;
102
104
107 std::optional<std::pair<Eigen::Vector3d, Eigen::Vector3d>> line_segment;
108
110 // problems.
111 std::optional<detail::Ball> ball;
112
114
118
119 PROCESSLIB_EXPORT static const std::string zero_parameter_name;
120};
121} // 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< detail::Ball > ball
The shape of the deactivated domain is a ball, which is a disk for 2D.
std::optional< std::pair< Eigen::Vector3d, Eigen::Vector3d > > line_segment