NetDEM v1.0
Loading...
Searching...
No Matches
wall_servo_control.hpp
Go to the documentation of this file.
1#pragma once
2
3#include "modifier.hpp"
4#include "wall.hpp"
5#include "wall_group.hpp"
6#include <cstdarg>
7
8namespace netdem {
9
18private:
19 VecXT<double> pressure_list;
20
21public:
22 double kn{1.0e5};
23 double area{0.1};
24 double target_pressure{0.0};
25 double vel_max{0.5};
26 double study_rate{0.5};
27
28 double tol{0.05};
29 bool achieved{true};
30 bool enable_warning{false};
31
36 bool enable_auto_area{false};
37
44 WallServoControl(double kn, double area);
45
51 Modifier *Clone() const override;
52
56 void Execute() override;
57
61 void Update() override;
62};
63
64} // namespace netdem
An interface class used to modify a DEM simulation.
Definition modifier.hpp:18
A class used to group walls in a DEM simulation.
Definition wall_group.hpp:16
A class used to control the pressure of walls in a DEM simulation.
Definition wall_servo_control.hpp:17
bool enable_warning
A flag indicating whether to log warning info.
Definition wall_servo_control.hpp:30
double target_pressure
Target pressure.
Definition wall_servo_control.hpp:24
double kn
wall stiffness
Definition wall_servo_control.hpp:22
void Execute() override
Executes the WallServoControl instance.
Definition wall_servo_control.cpp:21
void Update() override
Updates the WallServoControl instance.
Definition wall_servo_control.cpp:89
double study_rate
Coefficient of PID servo-control.
Definition wall_servo_control.hpp:26
bool enable_auto_area
A flag indicating whether to automaticaly calculate the contact area from the particles.
Definition wall_servo_control.hpp:36
bool achieved
A flag indicating if target pressure is achieved.
Definition wall_servo_control.hpp:29
double vel_max
Maximum velocity of wall during servo-control.
Definition wall_servo_control.hpp:25
double area
Wall area, on which the pressure is applied.
Definition wall_servo_control.hpp:23
WallServoControl(double kn, double area)
Constructor for WallServoControl class.
Definition wall_servo_control.cpp:11
double tol
Tolerance of servo-control.
Definition wall_servo_control.hpp:28
Modifier * Clone() const override
Clones the current WallServoControl instance.
Definition wall_servo_control.cpp:17
Definition bond_entry.hpp:7
std::vector< T > VecXT
Definition utils_macros.hpp:31