trick/trick_sims/SIM_contact
jmpenn ee2f824550
Disable unneeded SimObjects from default_trick_sys.sm in Trick exampl… (#1719)
* Disable unneeded SimObjects from default_trick_sys.sm in Trick example sims.

* Take out unit test disable. Add some S_defines I forgot.
2024-05-23 10:12:27 -05:00
..
images Update image of Colliding Balls. Ref #995 2020-05-04 22:06:04 -05:00
models Disambiguate python use #1250 (#1251) 2022-03-22 15:15:40 -05:00
Modified_data Disambiguate python use #1250 (#1251) 2022-03-22 15:15:40 -05:00
RUN_ball_line Update input files to be happy with Python 3. #1280 #706 2022-06-02 15:46:38 -05:00
RUN_multi_collision Update input files to be happy with Python 3. #1280 #706 2022-06-02 15:46:38 -05:00
RUN_Newtons_cradle Update input files to be happy with Python 3. #1280 #706 2022-06-02 15:46:38 -05:00
RUN_pool_break Update input files to be happy with Python 3. #1280 #706 2022-06-02 15:46:38 -05:00
RUN_simple_collision Update input files to be happy with Python 3. #1280 #706 2022-06-02 15:46:38 -05:00
RUN_test5 Update input files to be happy with Python 3. #1280 #706 2022-06-02 15:46:38 -05:00
README.md Update README.md 2020-03-25 13:53:35 -05:00
S_define Disable unneeded SimObjects from default_trick_sys.sm in Trick exampl… (#1719) 2024-05-23 10:12:27 -05:00
S_overrides.mk Disambiguate python use #1250 (#1251) 2022-03-22 15:15:40 -05:00

SIM_contact

SIM_contact simulates the motion, and the collisions of any arbitrary numbers of moving balls.

Each ball is defined by a position, velocity, radius, and mass.

Collisions are purely elastic. In addition to conserving momentum, they also conserve kinetic energy.

A graphics client allows you to see the balls in motion:

Graphics CLient showing two balls

Examples

The configuration for the above display is:

dyn.contact.nballs = 2
dyn.contact.balls = trick.TMM_declare_var_1d("Ball*", dyn.contact.nballs)
dyn.contact.balls[0] = trick.make_Ball(0.0, 0.0,  0.5, 0.0, 0.5, 1.0)
dyn.contact.balls[1] = trick.make_Ball(3.0, 0.0, -0.5, 0.0, 0.5, 1.0)

The initial state of the first ball is pos=<0.0, 0.0>, vel=<0.5,0.0>, radius=0.5, and mass=1.0.

The initial state of the second ball is pos=<3.0, 0.0>, vel=<-0.5,0.0>, radius=0.5, and mass=1.0.