Time-dependent subdomain deactivation.
Subdomain deactivation is space and time-dependent. The spatial extent of deactivated elements is defined through an intersection between a half-space and a set of material ids. The half-space is defined by a line segment that separates through its normal plane and position on the line segment an active and an inactive part.
The subdomain can be deactivated at once using a time interval. For fine-grained control, a time curve can be specified. It maps the current time to the position given as distance (in length units) between the start and the end points on the line segment. Elements, which center points lie left of this position are deactivated.
The deactivated elements are excluded from the assembly, pre and post call, secondary variables computation and the like. To keep the size of the global linear equation system artificial Dirichlet boundary conditions are applied on the interior of the deactivated subdomain. The nodes on the border between the active and inactive elements are not affected.
Definition at line 87 of file DeactivatedSubdomain.h.
#include <DeactivatedSubdomain.h>
Public Member Functions | |
bool | isInTimeSupportInterval (double const t) const |
bool | isDeactivated (MeshLib::Element const &element, double const time) const |
Public Attributes | |
MathLib::PiecewiseLinearInterpolation | time_interval |
std::optional< std::pair< Eigen::Vector3d, Eigen::Vector3d > > | line_segment |
std::optional< detail::Ball > | ball |
The shape of the deactivated domain is a ball, which is a disk for 2D. | |
DeactivatedSubdomainMesh | deactivated_subdomain_mesh |
ParameterLib::Parameter< double > const * | boundary_value_parameter |
Static Public Attributes | |
static PROCESSLIB_EXPORT const std::string | zero_parameter_name |
bool ProcessLib::DeactivatedSubdomain::isDeactivated | ( | MeshLib::Element const & | element, |
double const | time ) const |
Definition at line 33 of file DeactivatedSubdomain.cpp.
References ball, ProcessLib::DeactivatedSubdomainMesh::bulk_element_ids, deactivated_subdomain_mesh, MeshLib::Element::getID(), MathLib::PiecewiseLinearInterpolation::getValue(), line_segment, and time_interval.
bool ProcessLib::DeactivatedSubdomain::isInTimeSupportInterval | ( | double const | t | ) | const |
Definition at line 27 of file DeactivatedSubdomain.cpp.
References MathLib::PiecewiseLinearInterpolation::getSupportMax(), MathLib::PiecewiseLinearInterpolation::getSupportMin(), and time_interval.
std::optional<detail::Ball> ProcessLib::DeactivatedSubdomain::ball |
The shape of the deactivated domain is a ball, which is a disk for 2D.
Definition at line 111 of file DeactivatedSubdomain.h.
Referenced by isDeactivated().
ParameterLib::Parameter<double> const* ProcessLib::DeactivatedSubdomain::boundary_value_parameter |
A pararameter for the optional Dirichlet boundary condition applied on the surface of the deactivated subdomain/excavation.
Definition at line 117 of file DeactivatedSubdomain.h.
DeactivatedSubdomainMesh ProcessLib::DeactivatedSubdomain::deactivated_subdomain_mesh |
Definition at line 113 of file DeactivatedSubdomain.h.
Referenced by isDeactivated().
std::optional<std::pair<Eigen::Vector3d, Eigen::Vector3d> > ProcessLib::DeactivatedSubdomain::line_segment |
Line segment along which excavation progresses. Represented by start and end points.
Definition at line 107 of file DeactivatedSubdomain.h.
Referenced by isDeactivated().
MathLib::PiecewiseLinearInterpolation ProcessLib::DeactivatedSubdomain::time_interval |
Definition at line 103 of file DeactivatedSubdomain.h.
Referenced by isDeactivated(), and isInTimeSupportInterval().
|
static |
Definition at line 119 of file DeactivatedSubdomain.h.
Referenced by ProcessLib::ProcessVariable::createBoundaryConditionsForDeactivatedSubDomains(), and ProjectData::parseParameters().