34 double const time)
const
37 if (!bulk_element_ids.contains(element.
getID()))
44 auto const& element_center = getCenterOfGravity(element);
49 Eigen::Vector3d
const t = (b - a).normalized();
53 Eigen::Vector3d
const r = a + t * curve_position;
56 return (element_center.asEigenVector3d() - r).dot(t) <= 0;
61 auto const& element_center = getCenterOfGravity(element);
63 auto const& center =
ball->center;
66 if (r_t >
ball->radius)
71 double const r_element_center =
72 (element_center.asEigenVector3d() - center).norm();
74 return r_element_center < r_t;
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
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