Classes | Public Member Functions | Protected Types | Protected Attributes

OpenTissue::mbd::TwoPassShockPropagationStepper< mbd_types, solver_type > Class Template Reference

#include <mbd_2pass_shock_propagation_stepper.h>

Inheritance diagram for OpenTissue::mbd::TwoPassShockPropagationStepper< mbd_types, solver_type >:
OpenTissue::mbd::StepperInterface< mbd_types >

List of all members.

Classes

class  constraint_traits
struct  DynamicsFunctor
class  edge_traits
struct  ErrorFunctor
class  node_traits
struct  StepperFunctor

Public Member Functions

 TwoPassShockPropagationStepper ()
virtual ~TwoPassShockPropagationStepper ()
void run (group_type &group, real_type const &time_step)
void error_correction (group_type &group)
void resolve_collisions (group_type &group)

Protected Types

typedef
mbd_types::math_policy::real_type 
real_type
typedef
mbd_types::math_policy::value_traits 
value_traits
typedef
mbd_types::math_policy::vector3_type 
vector3_type
typedef
mbd_types::math_policy::vector_type 
vector_type
typedef
mbd_types::math_policy::idx_vector_type 
idx_vector_type
typedef mbd_types::group_type group_type
typedef StackPropagation
< mbd_types > 
propagation_algorithm
typedef DynamicsStepper
< mbd_types, solver_type
dynamics_algorithm
typedef FirstOrderStepper
< mbd_types, solver_type
error_correction_algorithm
typedef
collision_laws::FrictionalNewtonCollisionLawPolicy 
collision_law_policy
typedef
IterateOnceCollisionResolver
< mbd_types,
collision_law_policy
collision_resolver_algorithm

Protected Attributes

propagation_algorithm m_propagation
 Stack Propagation Algorithm to be used.
StepperFunctor m_stepper_functor
 Stepper function to be used together with propagation algorithm.
collision_resolver_algorithm m_resolver
 Collision resolver.
DynamicsFunctor m_dynamics_functor
 Pure Dynamics function to be used together with propagation algorithm.
ErrorFunctor m_error_functor
 Pure Error function to be used together with propagation algorithm.

Detailed Description

template<typename mbd_types, typename solver_type>
class OpenTissue::mbd::TwoPassShockPropagationStepper< mbd_types, solver_type >

A 2 Pass Shock Propagation Constraint Based Stepper Method.

This method makes two runs over all stack layers, one going top-to-bottom and another going from bottom-to-top.

During first pass only impulse is transfered, in the second pass bottom-most objects are artificially fixated resulting in correction of velocities before doing the actual position update.


Member Typedef Documentation

template<typename mbd_types, typename solver_type>
typedef collision_laws::FrictionalNewtonCollisionLawPolicy OpenTissue::mbd::TwoPassShockPropagationStepper< mbd_types, solver_type >::collision_law_policy [protected]
template<typename mbd_types, typename solver_type>
typedef IterateOnceCollisionResolver<mbd_types, collision_law_policy > OpenTissue::mbd::TwoPassShockPropagationStepper< mbd_types, solver_type >::collision_resolver_algorithm [protected]
template<typename mbd_types, typename solver_type>
typedef DynamicsStepper<mbd_types,solver_type> OpenTissue::mbd::TwoPassShockPropagationStepper< mbd_types, solver_type >::dynamics_algorithm [protected]
template<typename mbd_types, typename solver_type>
typedef FirstOrderStepper<mbd_types,solver_type> OpenTissue::mbd::TwoPassShockPropagationStepper< mbd_types, solver_type >::error_correction_algorithm [protected]
template<typename mbd_types, typename solver_type>
typedef mbd_types::group_type OpenTissue::mbd::TwoPassShockPropagationStepper< mbd_types, solver_type >::group_type [protected]
template<typename mbd_types, typename solver_type>
typedef mbd_types::math_policy::idx_vector_type OpenTissue::mbd::TwoPassShockPropagationStepper< mbd_types, solver_type >::idx_vector_type [protected]
template<typename mbd_types, typename solver_type>
typedef StackPropagation<mbd_types> OpenTissue::mbd::TwoPassShockPropagationStepper< mbd_types, solver_type >::propagation_algorithm [protected]
template<typename mbd_types, typename solver_type>
typedef mbd_types::math_policy::real_type OpenTissue::mbd::TwoPassShockPropagationStepper< mbd_types, solver_type >::real_type [protected]
template<typename mbd_types, typename solver_type>
typedef mbd_types::math_policy::value_traits OpenTissue::mbd::TwoPassShockPropagationStepper< mbd_types, solver_type >::value_traits [protected]
template<typename mbd_types, typename solver_type>
typedef mbd_types::math_policy::vector3_type OpenTissue::mbd::TwoPassShockPropagationStepper< mbd_types, solver_type >::vector3_type [protected]
template<typename mbd_types, typename solver_type>
typedef mbd_types::math_policy::vector_type OpenTissue::mbd::TwoPassShockPropagationStepper< mbd_types, solver_type >::vector_type [protected]

Constructor & Destructor Documentation

template<typename mbd_types, typename solver_type>
OpenTissue::mbd::TwoPassShockPropagationStepper< mbd_types, solver_type >::TwoPassShockPropagationStepper (  )  [inline]
template<typename mbd_types, typename solver_type>
virtual OpenTissue::mbd::TwoPassShockPropagationStepper< mbd_types, solver_type >::~TwoPassShockPropagationStepper (  )  [inline, virtual]

Member Function Documentation

template<typename mbd_types, typename solver_type>
void OpenTissue::mbd::TwoPassShockPropagationStepper< mbd_types, solver_type >::error_correction ( group_type group  )  [inline, virtual]
template<typename mbd_types, typename solver_type>
void OpenTissue::mbd::TwoPassShockPropagationStepper< mbd_types, solver_type >::resolve_collisions ( group_type group  )  [inline, virtual]
template<typename mbd_types, typename solver_type>
void OpenTissue::mbd::TwoPassShockPropagationStepper< mbd_types, solver_type >::run ( group_type group,
real_type const &  time_step 
) [inline, virtual]

Member Data Documentation

template<typename mbd_types, typename solver_type>
DynamicsFunctor OpenTissue::mbd::TwoPassShockPropagationStepper< mbd_types, solver_type >::m_dynamics_functor [protected]

Pure Dynamics function to be used together with propagation algorithm.

template<typename mbd_types, typename solver_type>
ErrorFunctor OpenTissue::mbd::TwoPassShockPropagationStepper< mbd_types, solver_type >::m_error_functor [protected]

Pure Error function to be used together with propagation algorithm.

template<typename mbd_types, typename solver_type>
propagation_algorithm OpenTissue::mbd::TwoPassShockPropagationStepper< mbd_types, solver_type >::m_propagation [protected]

Stack Propagation Algorithm to be used.

template<typename mbd_types, typename solver_type>
collision_resolver_algorithm OpenTissue::mbd::TwoPassShockPropagationStepper< mbd_types, solver_type >::m_resolver [protected]

Collision resolver.

template<typename mbd_types, typename solver_type>
StepperFunctor OpenTissue::mbd::TwoPassShockPropagationStepper< mbd_types, solver_type >::m_stepper_functor [protected]

Stepper function to be used together with propagation algorithm.


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