OGS
|
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 79 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 |
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 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.
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 105 of file DeactivatedSubdomain.h.
DeactivatedSubdomainMesh ProcessLib::DeactivatedSubdomain::deactivated_subdomain_mesh |
Definition at line 101 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 99 of file DeactivatedSubdomain.h.
Referenced by isDeactivated().
MathLib::PiecewiseLinearInterpolation ProcessLib::DeactivatedSubdomain::time_interval |
Definition at line 95 of file DeactivatedSubdomain.h.
Referenced by isDeactivated(), and isInTimeSupportInterval().
|
static |
Definition at line 107 of file DeactivatedSubdomain.h.
Referenced by ProcessLib::ProcessVariable::createBoundaryConditionsForDeactivatedSubDomains(), and ProjectData::parseParameters().