25 int const variable_id,
int const component_id,
30 variable_id, component_id);
32 std::vector<MeshLib::Node*>
const& bc_nodes = boundary_mesh.
getNodes();
38 variable_id, {component_id}, std::move(bc_mesh_subset));
42 int const variable_id,
int const component_id,
46 double const lower_limit)
47 : variable_id_(variable_id),
48 component_id_(component_id),
49 boundary_mesh_(boundary_mesh),
51 variable_id, component_id, boundary_mesh, dof_table_bulk)),
52 time_decay_parameter_(time_decay_parameter),
53 lower_limit_(lower_limit)
64 auto const global_index =
77 if (global_index >= 0) [[likely]]
88 DBUG(
"Apply TimeDecayDirichlet boundary bondition.");
100 bc_values.
ids.clear();
109 auto const node_id = node->getID();
113 auto const global_index =
127 if (global_index >= 0) [[likely]]
133 bc_values.
values.push_back(
137 bc_values.
ids.push_back(global_index);
Defines functions that are shared by DirichletBoundaryCondition and DirichletBoundaryConditionWithinT...
void DBUG(fmt::format_string< Args... > fmt, Args &&... args)
Definition of the Mesh class.
Global vector based on Eigen vector.
double get(IndexType rowId) const
get entry
A subset of nodes on a single mesh.
std::vector< Node * > const & getNodes() const
Get the nodes-vector for the mesh.
std::size_t getID() const
Get id of the mesh.
std::unique_ptr< LocalToGlobalIndexMap > deriveBoundaryConstrainedMap(int const variable_id, std::vector< int > const &component_ids, MeshLib::MeshSubset &&new_mesh_subset) const
static constexpr NUMLIB_EXPORT GlobalIndexType const nop
void setNodeID(std::size_t node_id)
void setCoordinates(MathLib::Point3d const &coordinates)
void getEssentialBCValues(const double t, GlobalVector const &x, NumLib::IndexValueVector< GlobalIndexType > &bc_values) const override
Writes the values of essential BCs to bc_values.
void setInitialValues(GlobalVector const &x) const
TimeDecayDirichletBoundaryCondition(int const variable_id, int const component_id, MeshLib::Mesh const &boundary_mesh, NumLib::LocalToGlobalIndexMap const &dof_table_bulk, ParameterLib::Parameter< double > const &time_decay_parameter, double const lower_limit)
Constructs a time decay Dirichlet boundary condition.
std::unique_ptr< NumLib::LocalToGlobalIndexMap > const dof_table_boundary_
bool initial_values_are_set_
ParameterLib::Parameter< double > const & time_decay_parameter_
double const lower_limit_
The lower limit of the boundary value.
MeshLib::Mesh const & boundary_mesh_
std::vector< double > initial_x_values_
auto meshLocations(Mesh const &mesh, MeshItemType const item_type)
std::unique_ptr< NumLib::LocalToGlobalIndexMap > createBoundaryDOFTable(int const variable_id, int const component_id, MeshLib::Mesh const &boundary_mesh, NumLib::LocalToGlobalIndexMap const &dof_table_bulk)
void checkParametersOfDirichletBoundaryCondition(MeshLib::Mesh const &bc_mesh, NumLib::LocalToGlobalIndexMap const &dof_table_bulk, int const variable_id, int const component_id)
std::vector< IndexType > ids
std::vector< double > values