OGS
ReleaseNodalForce.h
Go to the documentation of this file.
1
12#pragma once
13
14#include <memory>
15
19
20namespace ParameterLib
21{
22template <typename T>
23struct Parameter;
24} // namespace ParameterLib
25
26namespace MeshLib
27{
28class Mesh;
29}
30
31namespace ProcessLib
32{
33
101{
102public:
117 explicit ReleaseNodalForce(
118 int const variable_id,
119 MeshLib::Mesh const& boundary_mesh,
120 std::unique_ptr<NumLib::LocalToGlobalIndexMap>& dof_table,
121 ParameterLib::Parameter<double> const& time_decay_parameter);
122
123 void set(GlobalVector const* r_neq);
124
136 void applyNaturalBC(const double t, std::vector<GlobalVector*> const& x,
137 int const process_id, GlobalMatrix* K, GlobalVector& b,
138 GlobalMatrix* Jac) override;
139
140private:
141 int const variable_id_;
142
144
145 std::unique_ptr<NumLib::LocalToGlobalIndexMap> const dof_table_;
146
156
160 std::vector<double> initial_release_nodal_force_;
161
162 std::vector<GlobalIndexType> global_indices_;
163 std::vector<MeshLib::Node const*> boundary_nodes_;
164};
165
166} // namespace ProcessLib
Global vector based on Eigen vector.
Definition EigenVector.h:26
Boundary condition for simulating excavation using the release nodal force approach.
void applyNaturalBC(const double t, std::vector< GlobalVector * > const &x, int const process_id, GlobalMatrix *K, GlobalVector &b, GlobalMatrix *Jac) override
Applies the released nodal force boundary condition. This method scales the nodal forces by the relea...
std::vector< double > initial_release_nodal_force_
ParameterLib::Parameter< double > const & time_decay_parameter_
ReleaseNodalForce(int const variable_id, MeshLib::Mesh const &boundary_mesh, std::unique_ptr< NumLib::LocalToGlobalIndexMap > &dof_table, ParameterLib::Parameter< double > const &time_decay_parameter)
Constructs a released nodal force boundary condition.
std::vector< GlobalIndexType > global_indices_
MeshLib::Mesh const & boundary_mesh_
std::vector< MeshLib::Node const * > boundary_nodes_
void set(GlobalVector const *r_neq)
std::unique_ptr< NumLib::LocalToGlobalIndexMap > const dof_table_