#include <mbd_bisection_step_simulator.h>
Classes | |
class | constraint_traits |
class | edge_traits |
class | node_traits |
Public Member Functions | |
BisectionStepSimulator () | |
virtual | ~BisectionStepSimulator () |
void | run (real_type const &time_step) |
Protected Types | |
typedef mbd_types::math_policy::index_type | size_type |
typedef mbd_types::math_policy::real_type | real_type |
typedef mbd_types::math_policy::vector_type | vector_type |
typedef mbd_types::group_type | group_type |
typedef mbd_types::group_ptr_container | group_ptr_container |
Protected Member Functions | |
void | error_correction (group_ptr_container &groups) |
void | resolve_collisions (group_ptr_container &groups) |
void | run (group_ptr_container &groups, real_type const &time_step) |
void | record_state () |
void | rewind_state () |
Protected Attributes | |
vector_type | m_s |
Generalized position vector of all bodies. | |
vector_type | m_u |
Generalized velocity vector of all bodies. | |
group_type * | m_all |
group_ptr_container | m_groups |
Temporary Storage, used to hold results from the collision detection engine. |
A Bisection Time-based Simulator. This simulator tries to find the time of impact using bisection, it then ask the stepper to resolve collisions at that time, before it tries to simulate forward again.
This kind of simulator was designed with acceleration based formulations in mind.
This kind of simulator requires the stepper method to have three methods: A run method, a resolve_collisions method, and a error_correction method.
09-09-2004 KE: This simulator have not been tested yet....
typedef mbd_types::group_ptr_container OpenTissue::mbd::BisectionStepSimulator< mbd_types >::group_ptr_container [protected] |
typedef mbd_types::group_type OpenTissue::mbd::BisectionStepSimulator< mbd_types >::group_type [protected] |
typedef mbd_types::math_policy::real_type OpenTissue::mbd::BisectionStepSimulator< mbd_types >::real_type [protected] |
Reimplemented from OpenTissue::mbd::SimulatorInterface< mbd_types >.
typedef mbd_types::math_policy::index_type OpenTissue::mbd::BisectionStepSimulator< mbd_types >::size_type [protected] |
typedef mbd_types::math_policy::vector_type OpenTissue::mbd::BisectionStepSimulator< mbd_types >::vector_type [protected] |
OpenTissue::mbd::BisectionStepSimulator< mbd_types >::BisectionStepSimulator | ( | ) | [inline] |
virtual OpenTissue::mbd::BisectionStepSimulator< mbd_types >::~BisectionStepSimulator | ( | ) | [inline, virtual] |
void OpenTissue::mbd::BisectionStepSimulator< mbd_types >::error_correction | ( | group_ptr_container & | groups | ) | [inline, protected] |
void OpenTissue::mbd::BisectionStepSimulator< mbd_types >::record_state | ( | ) | [inline, protected] |
void OpenTissue::mbd::BisectionStepSimulator< mbd_types >::resolve_collisions | ( | group_ptr_container & | groups | ) | [inline, protected] |
void OpenTissue::mbd::BisectionStepSimulator< mbd_types >::rewind_state | ( | ) | [inline, protected] |
void OpenTissue::mbd::BisectionStepSimulator< mbd_types >::run | ( | real_type const & | time_step | ) | [inline, virtual] |
Implements OpenTissue::mbd::SimulatorInterface< mbd_types >.
void OpenTissue::mbd::BisectionStepSimulator< mbd_types >::run | ( | group_ptr_container & | groups, | |
real_type const & | time_step | |||
) | [inline, protected] |
group_type* OpenTissue::mbd::BisectionStepSimulator< mbd_types >::m_all [protected] |
body_type group, used to handle the state of all bodies at once, see record_state() and rewind_state() methods
group_ptr_container OpenTissue::mbd::BisectionStepSimulator< mbd_types >::m_groups [protected] |
Temporary Storage, used to hold results from the collision detection engine.
vector_type OpenTissue::mbd::BisectionStepSimulator< mbd_types >::m_s [protected] |
Generalized position vector of all bodies.
vector_type OpenTissue::mbd::BisectionStepSimulator< mbd_types >::m_u [protected] |
Generalized velocity vector of all bodies.