Differences between revisions 1 and 23 (spanning 22 versions)
Revision 1 as of 2015-04-14 01:24:47
Size: 1524
Editor: aerdemir
Comment:
Revision 23 as of 2016-05-04 22:09:52
Size: 12025
Editor: localhost
Comment: converted to 1.6 markup
Deletions are marked like this. Additions are marked like this.
Line 5: Line 5:
[[TableOfContents]] <<TableOfContents>>
Line 12: Line 12:

The case relies on simulations of varying levels of tibiofemoral joint loading to evaluate the performance of the model in terms of convergence while reasonably predicting joint mechanics. Convergence is defined by the ease and speed of simulations. Relative predictive accuracy evaluates changes in predicted joint kinematics and tissue stress-strain distributions.
Line 19: Line 21:
 * To explore the correspondence of Open Knee(s) simulation against robotics prescribed pivot shift loading of various knees (secondary)
Line 29: Line 30:
The loading and boundary conditions relies on prescribed time histories of movement and loading of the tibiofemoral joint (six degrees of freedom) for various loading scenarios (see Simulation Conditions):

 * flexion
 * internal/external rotation torque
 * varus/valgus torque
 * anterior/posterior force
 * medial/lateral force
 * compression/distraction force
Line 31: Line 41:
 * Convergence metrics (primary)
  * Completion of simulation (Yes/No)
  * If not completed - time point at which the simulation crashed
  * If completed - computation time (also provide computer specifications), number of iterations
 * Time histories of kinematics-kinetics of the tibiofemoral joint (six degrees of freedom) (secondary)
  * flexion torque
  * internal/external rotation
  * varus/valgus
  * anterior/posterior translation
  * medial/lateral translation
  * compression/distraction
 * Post-processed joint mechanics information (secondary)
  * Comparison of tibia kinetics and femur kinetics
  * Comparison of tibiofemoral joint kinematics to baseline simulation results
 * Time histories of stress-strain behavior (secondary)
Line 34: Line 59:
 * Simulation (numerical analysis) parameters (refer to FEBio manual for descriptions):
  * Convergence tolerances
   * dtol
   * etol
   * rtol
   * lstol
  * Time stepper properties
   * dtmin
   * dtmax
   * max_retries
   * opt_iter
   * aggressiveness
  * Newton/quasi-Newton parameters
   * max_refs
   * max_ups
  * cmax
  * min_residual
  * Analysis type (static/dynamic)
 * Model parameters
  * Increase of menisci circumferential modulus
  * Increase of cartilage modulus (relative to menisci)
  * Increase of ligament fiber moduli
  * Change in tibia and femur inertial properties (for dynamic simulations)
 * Model changes
  * Addition of transverse ligament
   * Python script finds most anterior nodes of menisci and creates spring.
    * Found in Source Code Repository (febmod_tl.py in https://simtk.org/websvn/wsvn/openknee/_gen1/src/febmod_modules/#__gen1_src_febmod_modules_)
    * Easiest methods to find node ID is to use FEBio PostView and use node selection tool.
   * Literature for Young's modulus of 200 N/mm: (Donahue et al., Journal of Biomechanics, 36: 19-34, 2003)
   * XML file for FE Model found in Source Code Repository (tf_joint_FEBio_v2_mod1.feb in https://simtk.org/websvn/wsvn/openknee/_gen1/src/transverse_ligament/tf_joint_FEBio_v2_mod200/#__gen1_src_transverse_ligament_tf_joint_FEBio_v2_mod200_)
   * Model successfully converged.
  * Distributed attachment of meniscal horns
  * Attachment of medial meniscus to medial collateral ligament
  * Attachment of lateral and medial menisci to tibia
  * Application of in situ ligament strain
  * Additional ligaments
  * Femur stabilization through low stiffness linear and torsional springs
  * Use of different constitutive models
 * Loading conditions
  * passive flexion
  * internal/external rotation laxity
  * anterior-posterior translation laxity
  * varus/valgus laxity
  * pivot shift

----

== Use Cases ==

----

=== max_retries & max_refs ===

'''Parameter permutations:'''
 * max_retries = 5,10,20
 * max_refs = 5,10,20

'''Converged:'''
 * all permutations

'''Ranking:'''
 1. max_retries = 5, max_refs = 20
 1. max_retries = 20, max_refs = 20

both have similar results

'''Results:'''
https://simtk.org/svn/openknee/app/Convergence/sol/max_retries_refs_1/


----

=== flexion angle & Anterior-Posterior (AP) force ===

==== SET 1 ====

'''Parameter permutations:'''
 * flexion angle = 0,30,60,90 degrees
 * AP force = -100 (P), 100 (A) N
 * max_retries = 5
 * max_refs = 20

'''Converged:'''
 * flexion angle = 0 degrees
 * AP force = -100 (P) N

'''Non-converged:'''
 * all other permutations
 * failed due to: ''Max. nr of retries reached.''

'''Results:'''
https://simtk.org/svn/openknee/app/Convergence/sol/flexion_AP_1/

==== SET 2 ====

'''Parameter permutations:'''
 * flexion angle = 0,30,60,90 degrees
 * AP force = -100 (P), 100 (A) N
 * max_retries = 20
 * max_refs = 20

'''Converged:'''
 * flexion angle = 0,30 degrees
 * AP force = -100 (P) N

'''Non-converged:'''
 * all other permutations
 * flexion angle = 60 degrees completed flexion
 * flexion angle = 90 degrees did not complete flexion

'''Results:'''
https://simtk.org/svn/openknee/app/Convergence/sol/flexion_AP_2/


----

=== flexion angle & Internal-External (IE) torque ===

==== SET 1 ====

'''Parameter permutations:'''
 * flexion angle = 0,30,60,90 degrees
 * IE torque = -5 (I), 5 (E) N*mm = -0.005,0.005 N*m
 * max_retries = 5
 * max_refs = 20

'''Converged:'''
 * flexion angle = 0,30 degrees
 * IE torque = -5,5 N*mm

'''Nonconverged'''
 * flexion angle = 60,90 degrees
 * IE torque = -5,5 N*mm
 * failed due to: ''Max. nr of retries reached.''

'''Results:'''
https://simtk.org/svn/openknee/app/Convergence/sol/flexion_IE_1/

==== SET 2 ====

'''Parameter permutations:'''
 * flexion angle = 0,30,60,90 degrees
 * IE torque = -5000 (I), 5000 (E) N*mm = -5,5 N*m
 * max_retries = 5
 * max_refs = 20

'''Nonconverged:'''
 * all permutations
 * flexion angle = 0,30 degrees, completed flexion, began applying loading
 * flexion angle = 60,90 degrees, didn't complete flexion
 * failed due to: ''Max. nr of retries reached.''

'''Results:'''
https://simtk.org/svn/openknee/app/Convergence/sol/flexion_IE_2/


----

=== flexion angle & Varus-Valgus (VV) torque ===

==== SET 1 ====

'''Parameter permutations:'''
 * flexion angle = 0,30,60,90 degrees
 * VV torque = -10 (Varus), 10 (Valgus) N*mm = -0.01,0.01 N*m
 * max_retries = 5
 * max_refs = 20

'''Converged:'''
 * flexion angle = 0,30 degrees
 * VV torque = -10,10 N*mm

'''Nonconverged:'''
 * flexion angle = 60,90 degrees
 * VV torque = -10,10 N*mm
 * failed due to: ''Max. nr of retries reached.''

'''Results:'''
https://simtk.org/svn/openknee/app/Convergence/sol/flexion_VV_1/

==== SET 2 ====

'''Parameter permutations:'''
 * flexion angle = 0,30,60,90 degrees
 * VV torque = -10000 (Varus), 10000 (Valgus) N*mm = -10,10 N*m
 * max_retries = 5
 * max_refs = 20

'''Converged:'''
 * flexion angle = 0 degrees
 * VV torque = -10000,10000 N*mm

'''Nonconverged:'''
 * flexion angle = 30,60,90 degrees
 * VV torque = -10000,10000 N*mm

 * flexion angle = 30,60 degrees, began loading
 * flexion angle = 90 degrees, didn't finish flexion

 * failed due to: ''Max. nr of retries reached.''

'''Results:'''
https://simtk.org/svn/openknee/app/Convergence/sol/flexion_VV_2/

----

=== SPRING SETS, 90 degree passive flexion, 1.0 s, ramp-only ===

tf_joint_FEBio_v2.feb, repository revision 1103

Load curve: ramp only (without hold as in original version)

Passive flexion, 90 degrees

Total time = 1.0 s

NONE CONVERGED!!!

SUMMARY:

|| Spring Set || None || Transverse || Transverse || Transverse || Medial || Medial || Medial || Capsule || Capsule || Capsule ||
|| Stiffness (N/mm) / spring || 0 || 33.3 || 66.6 || 100 || 33.3 || 66.6 || 100 || 33.3 || 66.6 || 100 ||
|| # Springs || 0 || 3 || 3 || 3 || 137 || 137 || 137 || 130 || 130 || 130 ||
|| Total Stiffness (N/mm) || 0 || 100 || 200 || 300 || 4566.6 || 9133.3 || 13700 || 4333.3 || 8666.6 || 13000 ||
|| Fraction Complete || 0.141834 || 0.666360 || 0.827006 || 0.883352 || 0.859743 || 0.909037 || 0.978855 || 0.507349 || 0.444903 || 0.584906 ||
|| Flexion achieved (deg) || 12.8 || 60.0 || 74.4 || 79.5 || 77.4 || 81.8 || 88.1 || 45.7 || 40.0 || 52.6 ||


==== NO SPRING SETS ====

Grood-Suntay Kinematics:

{{attachment:no_springs_flexion_90.png}}

==== Transverse Ligament ====

===== 33.3 N/mm / spring =====

{{attachment:transverse_33.3_flexion_90.png}}

===== 66.6 N/mm / spring =====

{{attachment:transverse_66.6_flexion_90.png}}

===== 100 N/mm / spring =====

{{attachment:transverse_100_flexion_90.png}}


==== Medial Ligament ====

===== 33.3 N/mm / spring =====

{{attachment:medial_33.3_flexion_90.png}}

===== 66.6 N/mm / spring =====

{{attachment:medial_66.6_flexion_90.png}}

===== 100 N/mm / spring =====

{{attachment:medial_100_flexion_90.png}}


==== Joint Capsule ====

===== 33.3 N/mm / spring =====

{{attachment:capsule_33.3_flexion_90.png}}

===== 66.6 N/mm / spring =====

{{attachment:capsule_66.6_flexion_90.png}}

===== 100 N/mm / spring =====

{{attachment:capsule_100_flexion_90.png}}


=== SPRING SETS, 45 degree passive flexion, 1.0 s, ramp-only ===

tf_joint_FEBio_v2.feb, repository revision 1103

Load curve: ramp only (without hold as in original version)

Passive flexion, 45 degrees

Total time = 1.0 s

CONVERGED!!!

Flexion achieved = 45 degrees


=== SPRING SETS, 90 degree passive flexion, 2.0 s, ramp-only ===

tf_joint_FEBio_v2.feb, repository revision 1103

Load curve: ramp only (without hold as in original version)

Passive flexion, 90 degrees

Total time = 2.0 s

NONE CONVERGED!!!

SUMMARY:

|| Spring Set || None || Transverse || Transverse || Transverse || Medial || Medial || Medial || Capsule || Capsule || Capsule ||
|| Stiffness (N/mm) / spring || 0 || 33.3 || 66.6 || 100 || 33.3 || 66.6 || 100 || 33.3 || 66.6 || 100 ||
|| # Springs || 0 || 3 || 3 || 3 || 137 || 137 || 137 || 130 || 130 || 130 ||
|| Flexion achieved (deg) || 78.3 || 73.8 || 56.2 || 79.9 || 40.5 || 66.6 || 60.3 || 77.4 || 76.5 || 42.3 ||


----
Line 37: Line 377:
Ahmet Erdemir - study planning, assisting simulations, interpretation of results

Craig Bennetts - scripting for large scale analysis, execution of simulations, interpretation of results

Snehal Chokhandre - execution of simulations, interpretation of results

Synopsis

The overall goal of this case study is to understand convergence characteristics of Open Knee(s) - Generation 1 model to conduct simulations in an efficient and effective manner.

Use Case

The case relies on simulations of varying levels of tibiofemoral joint loading to evaluate the performance of the model in terms of convergence while reasonably predicting joint mechanics. Convergence is defined by the ease and speed of simulations. Relative predictive accuracy evaluates changes in predicted joint kinematics and tissue stress-strain distributions.

Simulation Aims

  • To understand the role of joint loading on convergence characteristics
  • To understand the role of simulation (numerical analysis) parameters on convergence characteristics
  • To understand model parameters on convergence characteristics
  • To understand new model features on convergence characteristics

Model

The model is based on Open Knee(s) - Generation 1 model, which was updated for FEBio version 2.1:

Inputs

The loading and boundary conditions relies on prescribed time histories of movement and loading of the tibiofemoral joint (six degrees of freedom) for various loading scenarios (see Simulation Conditions):

  • flexion
  • internal/external rotation torque
  • varus/valgus torque
  • anterior/posterior force
  • medial/lateral force
  • compression/distraction force

Outputs

  • Convergence metrics (primary)
    • Completion of simulation (Yes/No)
    • If not completed - time point at which the simulation crashed
    • If completed - computation time (also provide computer specifications), number of iterations
  • Time histories of kinematics-kinetics of the tibiofemoral joint (six degrees of freedom) (secondary)
    • flexion torque
    • internal/external rotation
    • varus/valgus
    • anterior/posterior translation
    • medial/lateral translation
    • compression/distraction
  • Post-processed joint mechanics information (secondary)
    • Comparison of tibia kinetics and femur kinetics
    • Comparison of tibiofemoral joint kinematics to baseline simulation results
  • Time histories of stress-strain behavior (secondary)

Simulation Conditions

  • Simulation (numerical analysis) parameters (refer to FEBio manual for descriptions):
    • Convergence tolerances
      • dtol
      • etol
      • rtol
      • lstol
    • Time stepper properties
      • dtmin
      • dtmax
      • max_retries
      • opt_iter
      • aggressiveness
    • Newton/quasi-Newton parameters
      • max_refs
      • max_ups
    • cmax
    • min_residual
    • Analysis type (static/dynamic)
  • Model parameters
    • Increase of menisci circumferential modulus
    • Increase of cartilage modulus (relative to menisci)
    • Increase of ligament fiber moduli
    • Change in tibia and femur inertial properties (for dynamic simulations)
  • Model changes
  • Loading conditions
    • passive flexion
    • internal/external rotation laxity
    • anterior-posterior translation laxity
    • varus/valgus laxity
    • pivot shift


Use Cases


max_retries & max_refs

Parameter permutations:

  • max_retries = 5,10,20
  • max_refs = 5,10,20

Converged:

  • all permutations

Ranking:

  1. max_retries = 5, max_refs = 20
  2. max_retries = 20, max_refs = 20

both have similar results

Results: https://simtk.org/svn/openknee/app/Convergence/sol/max_retries_refs_1/


flexion angle & Anterior-Posterior (AP) force

SET 1

Parameter permutations:

  • flexion angle = 0,30,60,90 degrees
  • AP force = -100 (P), 100 (A) N
  • max_retries = 5
  • max_refs = 20

Converged:

  • flexion angle = 0 degrees
  • AP force = -100 (P) N

Non-converged:

  • all other permutations
  • failed due to: Max. nr of retries reached.

Results: https://simtk.org/svn/openknee/app/Convergence/sol/flexion_AP_1/

SET 2

Parameter permutations:

  • flexion angle = 0,30,60,90 degrees
  • AP force = -100 (P), 100 (A) N
  • max_retries = 20
  • max_refs = 20

Converged:

  • flexion angle = 0,30 degrees
  • AP force = -100 (P) N

Non-converged:

  • all other permutations
  • flexion angle = 60 degrees completed flexion
  • flexion angle = 90 degrees did not complete flexion

Results: https://simtk.org/svn/openknee/app/Convergence/sol/flexion_AP_2/


flexion angle & Internal-External (IE) torque

SET 1

Parameter permutations:

  • flexion angle = 0,30,60,90 degrees
  • IE torque = -5 (I), 5 (E) N*mm = -0.005,0.005 N*m
  • max_retries = 5
  • max_refs = 20

Converged:

  • flexion angle = 0,30 degrees
  • IE torque = -5,5 N*mm

Nonconverged

  • flexion angle = 60,90 degrees
  • IE torque = -5,5 N*mm
  • failed due to: Max. nr of retries reached.

Results: https://simtk.org/svn/openknee/app/Convergence/sol/flexion_IE_1/

SET 2

Parameter permutations:

  • flexion angle = 0,30,60,90 degrees
  • IE torque = -5000 (I), 5000 (E) N*mm = -5,5 N*m
  • max_retries = 5
  • max_refs = 20

Nonconverged:

  • all permutations
  • flexion angle = 0,30 degrees, completed flexion, began applying loading
  • flexion angle = 60,90 degrees, didn't complete flexion
  • failed due to: Max. nr of retries reached.

Results: https://simtk.org/svn/openknee/app/Convergence/sol/flexion_IE_2/


flexion angle & Varus-Valgus (VV) torque

SET 1

Parameter permutations:

  • flexion angle = 0,30,60,90 degrees
  • VV torque = -10 (Varus), 10 (Valgus) N*mm = -0.01,0.01 N*m
  • max_retries = 5
  • max_refs = 20

Converged:

  • flexion angle = 0,30 degrees
  • VV torque = -10,10 N*mm

Nonconverged:

  • flexion angle = 60,90 degrees
  • VV torque = -10,10 N*mm
  • failed due to: Max. nr of retries reached.

Results: https://simtk.org/svn/openknee/app/Convergence/sol/flexion_VV_1/

SET 2

Parameter permutations:

  • flexion angle = 0,30,60,90 degrees
  • VV torque = -10000 (Varus), 10000 (Valgus) N*mm = -10,10 N*m
  • max_retries = 5
  • max_refs = 20

Converged:

  • flexion angle = 0 degrees
  • VV torque = -10000,10000 N*mm

Nonconverged:

  • flexion angle = 30,60,90 degrees
  • VV torque = -10000,10000 N*mm
  • flexion angle = 30,60 degrees, began loading
  • flexion angle = 90 degrees, didn't finish flexion
  • failed due to: Max. nr of retries reached.

Results: https://simtk.org/svn/openknee/app/Convergence/sol/flexion_VV_2/


SPRING SETS, 90 degree passive flexion, 1.0 s, ramp-only

tf_joint_FEBio_v2.feb, repository revision 1103

Load curve: ramp only (without hold as in original version)

Passive flexion, 90 degrees

Total time = 1.0 s

NONE CONVERGED!!!

SUMMARY:

Spring Set

None

Transverse

Transverse

Transverse

Medial

Medial

Medial

Capsule

Capsule

Capsule

Stiffness (N/mm) / spring

0

33.3

66.6

100

33.3

66.6

100

33.3

66.6

100

# Springs

0

3

3

3

137

137

137

130

130

130

Total Stiffness (N/mm)

0

100

200

300

4566.6

9133.3

13700

4333.3

8666.6

13000

Fraction Complete

0.141834

0.666360

0.827006

0.883352

0.859743

0.909037

0.978855

0.507349

0.444903

0.584906

Flexion achieved (deg)

12.8

60.0

74.4

79.5

77.4

81.8

88.1

45.7

40.0

52.6

NO SPRING SETS

Grood-Suntay Kinematics:

no_springs_flexion_90.png

Transverse Ligament

33.3 N/mm / spring

transverse_33.3_flexion_90.png

66.6 N/mm / spring

transverse_66.6_flexion_90.png

100 N/mm / spring

transverse_100_flexion_90.png

Medial Ligament

33.3 N/mm / spring

medial_33.3_flexion_90.png

66.6 N/mm / spring

medial_66.6_flexion_90.png

100 N/mm / spring

medial_100_flexion_90.png

Joint Capsule

33.3 N/mm / spring

capsule_33.3_flexion_90.png

66.6 N/mm / spring

capsule_66.6_flexion_90.png

100 N/mm / spring

capsule_100_flexion_90.png

SPRING SETS, 45 degree passive flexion, 1.0 s, ramp-only

tf_joint_FEBio_v2.feb, repository revision 1103

Load curve: ramp only (without hold as in original version)

Passive flexion, 45 degrees

Total time = 1.0 s

CONVERGED!!!

Flexion achieved = 45 degrees

SPRING SETS, 90 degree passive flexion, 2.0 s, ramp-only

tf_joint_FEBio_v2.feb, repository revision 1103

Load curve: ramp only (without hold as in original version)

Passive flexion, 90 degrees

Total time = 2.0 s

NONE CONVERGED!!!

SUMMARY:

Spring Set

None

Transverse

Transverse

Transverse

Medial

Medial

Medial

Capsule

Capsule

Capsule

Stiffness (N/mm) / spring

0

33.3

66.6

100

33.3

66.6

100

33.3

66.6

100

# Springs

0

3

3

3

137

137

137

130

130

130

Flexion achieved (deg)

78.3

73.8

56.2

79.9

40.5

66.6

60.3

77.4

76.5

42.3


Team Members

Ahmet Erdemir - study planning, assisting simulations, interpretation of results

Craig Bennetts - scripting for large scale analysis, execution of simulations, interpretation of results

Snehal Chokhandre - execution of simulations, interpretation of results

Progress

Source Code Repository

https://simtk.org/svn/openknee/app/Convergence/

Data

https://simtk.org/svn/openknee/app/Convergence/dat/

Model Customization

https://simtk.org/svn/openknee/app/Convergence/src/

Simulations

Post-Processing

https://simtk.org/svn/openknee/app/Convergence/sol/

Publications

https://simtk.org/svn/openknee/app/Convergence/doc/

References

Cases/ConvergenceOptimization (last edited 2016-05-04 22:09:52 by localhost)