Page 1 of 1

Hertz stiffness and Hunt and Crossley dissipation

Posted: Thu Oct 20, 2011 5:01 pm
by porsasina
Hi All,
According to this paper, in order to define a contact between two bodies I need elastic modulus and dissipation coefficients of each of the bodies(4 parameters):
http://www.stanford.edu/group/nmbl/publ ... rm2011.pdf

but in the *.osim file, I can only define 2 parameters including "stiffness" and "dissipation". Take a look at the following code:

Code: Select all

<HuntCrossleyForce::ContactParameters>
<geometry></geometry>
<stiffness>0</stiffness>
<dissipation>0</dissipation>
<static_friction>0</static_friction>
<dynamic_friction>0</dynamic_friction>
<viscous_friction>0</viscous_friction>
</HuntCrossleyForce::ContactParameters>
Does anybody have any ideas? it's confusing.

Cheers
Sina

Re: Hertz stiffness and Hunt and Crossley dissipation

Posted: Thu Oct 20, 2011 8:47 pm
by sherm
Hi, Sina.

You are correct that there should in general be a pair of material properties per body for stiffness and dissipation, and Simbody does take those parameters as described in the paper. OpenSim currently provides only a simplified interface, in which the stiffness and dissipation are the composite properties. Those are used for any pairs of surfaces that contact using that HuntCrossleyForce.

For now, you should compute the composite properties yourself using the method defined in Appendix A.1 in the paper you cited, and then supply the resulting stiffness and dissipation parameters in the .osim file.

For many applications the results you are interested in will not be very sensitive to the contact material parameters. As a sanity check, I strongly suggest that you do some ad hoc sensitivity studies to see how much effort you need to put in to nailing down the perfect material properties -- you might find that it is easy to get good behavior even with approximate properties.

I hope that helps -- please post again if you have further questions.

Regards,
Sherm

Re: Hertz stiffness and Hunt and Crossley dissipation

Posted: Sun Oct 23, 2011 4:57 pm
by porsasina
Hi Sherm
Thanks for your reply, it was really helpful.
I have one other question about the mentioned paper. The paper indicates that a variety of numerical integrators are available for forward dynamics. But I do not know how should I implement these integrators in "ForwardTool"

Code: Select all

<ForwardTool>
<model_file></model_file>
<replace_force_set>false</replace_force_set>
<force_set_files></force_set_files>
<results_directory>./</results_directory>
<output_precision>8</output_precision>
<initial_time>0</initial_time>
<final_time>1</final_time>
<solve_for_equilibrium_for_auxiliary_states>false</solve_for_equilibrium_for_auxiliary_states>
<maximum_number_of_integrator_steps>20000</maximum_number_of_integrator_steps>
<maximum_integrator_step_size>1</maximum_integrator_step_size>
<minimum_integrator_step_size>1e-008</minimum_integrator_step_size>
<integrator_error_tolerance>1e-005</integrator_error_tolerance>
<Analyses>Object</Analyses>
<ControllerSet>Object</ControllerSet>
<external_loads_file></external_loads_file>
<states_file></states_file>
<use_specified_dt>false</use_specified_dt>
</ForwardTool>
Regards,
Sina

Re: Hertz stiffness and Hunt and Crossley dissipation

Posted: Sun Oct 23, 2011 9:48 pm
by aseth
The forward tool currently does not permit users to change the integrator type. In our experience, providing more options for integrators is of little utility unless one can characterize the limitation of the existing (RungeKuttaMerson) integrator for a given problem. Often times, it is not an issue with the integrator but problems with the settings and/or the model specification that leads to poor behavior or performance.

Of course, there are cases where a stiff (implicit) integrator will work better for a particular problem where stiffness is part of the real system dynamics and not a mistake in the model. API users have access to all the integrators provided by SimTK::Simbody. You can look at the ExampleMain program under OpenSim2.4.0\sdk\APIExamples\ to see how to construct a model and simulate it via the your own main program. I believe that is what Sherm's document was referring to.