Skip to content

SolavLab/indentify

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

License: License

Table of contents

Project Summary

indentify is an open-source MATLAB project designed for exploring the identifiability of soft-tissue material parameters (hyperelastic laws) from noninvasive indentation test and inverse finite-element analysis. indentify utilizes the open-sourced software GIBBON MATLAB toolbox and FEBio nonlinear FE solver to create an automated and customizable environment for characterizing and solving the inverse problem with synthetic test data.

Current modules capabilities:

  1. Axisymmetric Indentation: Carry out preliminary, bulk calculations, on a customizable FE model.
  2. Objective Function Analysis: Define, evaluate and visualize the objective function.
  3. Parameter Identification: Implement and compare nonlinear optimization schemes for minimizing the objective function.

Installation

indentify

Create a local copy of indentify by simply cloning the latest repository to your preferred <local directory>:

  1. cd <local directory>
  2. git init
  3. git clone https://github.com/SolavLab/indentify

Alternatively, download and unzip the files manually.

Third-party apps

Before indentify can be used, the following software packages must be installed (follow instructions in links):

Getting Started

important: make sure to add the indentify folder (<indentify directory>) and subfolders to MATLAB's search path:

HOME tabenvironmentSet pathadd with subfolders<indentify directory>
or
command lineaddpath(genpath('<indentify directory>'))

Axisymmetric Indentation

Exploring material parameters identifiability and sensitivity, often requires preliminary numerical data obtained by numerous FE simulations, which is later used to evaluate the objective function. As such, indentify utilizes GIBBON to implement an automation script for writing and executing FE models in batch: AxisymIndent_main.m.

The first section of AxisymIndent_main.m contains user-specified parameters which define the jobs that are to be carried in that analysis. After the user specifies the master directory for the analysis (runPath), a separate subdirectory (savePath) is created automatically for each job in the batch, wherein an appropriate FEBio input file (.feb) is written and solved with FEBio's solver.

An analysis may contain one or more jobs varying by mesh size and/or material parameters according to the following user-specified parameters, which are treated as vectors: mesh_density_facotr,P1,P2 and k_factor. Therefore, the total amount of jobs in an analysis is given by the product of their lengths (see example 1).

Example 1: setting mesh_density_facotr=1:10 and the rest as scalars will yield 10 jobs in total with increasingly finer meshes (useful for mesh convergence studies).

For parameter identifiability analysis, set the values of P1 and P2 to cover the parameter space with the desired ranges and resolutions (see example 2).

Example 2: setting mat_type='OG', P1=[1:1:51]*1e-3, P2=[1:1:37] and the rest as scalars, will repeat the indentation test over a grid of 51x37 parameter sets with the first-order Ogden material model (1887 jobs in total). See Table 2 in paper.

Objective Function Analysis

The purpose of this module is to investigate the contribution of different measurement modalities, namely indentation forces-depth and full-field surface displacement measurement, to the identifiability of several hyperselastic constitutive parameters.

The main script of this module, SensitivityAnalysis_main.m, performs post-processing on the data generated by the Axisymmetric Indentation module. This includes the objective function definition (objFun.m), evaluation, visualization over a 2D parameter space, and exportation (MakePlots.m). indentify currently supports 2D and 3D contour, surface, and scatter plots of the objective function and its gradient magnitude at various indentation depths (visualization type controlled by value of colormap_data_field in SensitivityAnalysis_main.m).

Additionally, MakePlots.m uses finite-differences to derive a second order approximation to the objective function at the global minimum, and displays heatmaps of certain of its properties which are helpful for evaluating the sensitivity. For a detailed explanation on the outputed visuals and practical examples, see this paper.

Parameter Identification

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published