NetDEM v1.0
Loading...
Searching...
No Matches
netdem::WallMotionControl Class Reference

A class used to control the displacement of walls in a DEM simulation. More...

#include <wall_motion_control.hpp>

Inheritance diagram for netdem::WallMotionControl:
netdem::WallGroup netdem::Modifier

Public Member Functions

 WallMotionControl ()
 Default constructor for WallMotionControl class.
 
void FixVelocity (double v_x, double v_y, double v_z)
 Sets the velocity properties for all walls in the group.
 
void FixSpin (double spin_x, double spin_y, double spin_z)
 Sets the spin properties for all walls in the group.
 
void SetVelocity (double v_x, double v_y, double v_z)
 Sets the velocity properties for all walls in the group.
 
void SetSpin (double spin_x, double spin_y, double spin_z)
 Sets the spin properties for all walls in the group.
 
ModifierClone () const override
 Clones the current WallMotionControl instance.
 
void Execute () override
 Executes the WallMotionControl instance.
 
- Public Member Functions inherited from netdem::WallGroup
 WallGroup ()
 Default constructor for WallGroup class.
 
VecXT< Wall * > const & GetWalls ()
 Get the walls.
 
void AddWall (int id)
 Adds a wall to the group.
 
void RemoveWall (int id)
 Removes a wall from the group.
 
void AddWall (const VecXT< int > &ids)
 Adds multiple walls to the group.
 
void RemoveWall (const VecXT< int > &ids)
 Removes multiple walls from the group.
 
void AddWall (const std::initializer_list< int > &ids)
 Adds multiple walls to the group.
 
void RemoveWall (const std::initializer_list< int > &ids)
 Removes multiple walls from the group.
 
void SetWall (int id)
 Sets the walls based on a wall ID.
 
void SetWall (const VecXT< int > &id_list)
 Sets the walls based on a variable number of wall IDs.
 
void SetWall (const std::initializer_list< int > &id_list)
 Sets the walls based on a variable number of wall IDs.
 
void Clear ()
 Clears all walls from the group.
 
void Update () override
 Updates the WallGroup instance.
 
- Public Member Functions inherited from netdem::Modifier
 Modifier ()
 Default constructor for Modifier class.
 
virtual void Init (Simulation *sim)
 Initializes the Modifier instance.
 
virtual void Enable ()
 Enables the Modifier instance.
 
virtual void Disable ()
 Disables the Modifier instance.
 
virtual ~Modifier ()
 Destructor for Modifier class.
 

Additional Inherited Members

- Public Attributes inherited from netdem::Modifier
std::string label {"default"}
 
DEMSolver::CyclePoint cycle_point {DEMSolver::CyclePoint::pre}
 
Simulationsim {nullptr}
 
Scenescene {nullptr}
 
bool update_with_scene {false}
 
bool enable_logging {true}
 
- Protected Attributes inherited from netdem::WallGroup
std::unordered_set< int > wall_id_list
 The list of wall ids.
 
VecXT< Wall * > wall_list
 The list of wall.
 

Detailed Description

A class used to control the displacement of walls in a DEM simulation.

The WallMotionControl class is used to control the displacement of walls in a DEM simulation by setting their velocities and spins.

Examples
0_plane_case.cpp, 1_membrane_case.cpp, 1_test_triaxial_comp.cpp, 91_triaixal_comp.cpp, 91_triaixal_comp_trimesh.cpp, 93_triaixal_comp_trimesh.cpp, 97_triaixal_comp_sphere_geom.cpp, and odemetric_comp_main.cpp.

Constructor & Destructor Documentation

◆ WallMotionControl()

netdem::WallMotionControl::WallMotionControl ( )

Default constructor for WallMotionControl class.

Member Function Documentation

◆ Clone()

Modifier * netdem::WallMotionControl::Clone ( ) const
overridevirtual

Clones the current WallMotionControl instance.

Returns
A pointer to the cloned WallMotionControl instance.

Reimplemented from netdem::WallGroup.

◆ Execute()

void netdem::WallMotionControl::Execute ( )
overridevirtual

Executes the WallMotionControl instance.

Reimplemented from netdem::WallGroup.

◆ FixSpin()

void netdem::WallMotionControl::FixSpin ( double spin_x,
double spin_y,
double spin_z )

Sets the spin properties for all walls in the group.

Parameters
spin_xThe x component of the spin.
spin_yThe y component of the spin.
spin_zThe z component of the spin.

◆ FixVelocity()

void netdem::WallMotionControl::FixVelocity ( double v_x,
double v_y,
double v_z )

Sets the velocity properties for all walls in the group.

Parameters
v_xThe x component of the velocity.
v_yThe y component of the velocity.
v_zThe z component of the velocity.

◆ SetSpin()

void netdem::WallMotionControl::SetSpin ( double spin_x,
double spin_y,
double spin_z )

Sets the spin properties for all walls in the group.

Parameters
spin_xThe x component of the spin.
spin_yThe y component of the spin.
spin_zThe z component of the spin.

◆ SetVelocity()

void netdem::WallMotionControl::SetVelocity ( double v_x,
double v_y,
double v_z )

Sets the velocity properties for all walls in the group.

Parameters
v_xThe x component of the velocity.
v_yThe y component of the velocity.
v_zThe z component of the velocity.
Examples
0_plane_case.cpp, 1_test_triaxial_comp.cpp, 91_triaixal_comp.cpp, 91_triaixal_comp_trimesh.cpp, 93_triaixal_comp_trimesh.cpp, 97_triaixal_comp_sphere_geom.cpp, and odemetric_comp_main.cpp.

The documentation for this class was generated from the following files: