Commit 1de2fbbd authored by Mark van Turnhout's avatar Mark van Turnhout
Browse files

started buildfem documentation

parent faea2f28
function nu = bas_D2nu(mu,D) function nu = bas_D2nu(mu, D)
% %
% nu = bas_D2nu(mu,D) % nu = bas_D2nu(mu, D)
% %
% Converts a the parameter D as expected by abaqus for an Ogden material % Converts a the parameter D as expected by abaqus for an Ogden material
% model to the Poisson ratio nu, based on the Ogden stiffness mu. % model to the Poisson ratio nu, based on the Ogden stiffness mu.
......
function D = bas_nu2D(mu,nu) function D = bas_nu2D(mu, nu)
% %
% D = bas_nu2D(mu,nu) % D = bas_nu2D(mu, nu)
% %
% Converts a material's Poisson ratio nu to the parameter D as expected by % Converts a material's Poisson ratio nu to the parameter D as expected by
% abaqus for an Ogden material model based on the Ogden stiffness mu. % abaqus for an Ogden material model based on the Ogden stiffness mu.
......
\newcommand{\noopsort}[1]{} \newcommand{\noopsort}[1]{}
\begin{thebibliography}{1} \begin{thebibliography}{10}
\providecommand{\noopsort}[1]{} \providecommand{\noopsort}[1]{}
\providecommand{\doi}[1]{doi: \href{http://dx.doi.org/#1}{#1}} \providecommand{\doi}[1]{doi: \href{https://dx.doi.org/#1}{#1}}
\providecommand{\pmid}[1]{pmid: \providecommand{\pmid}[1]{pmid:
\href{http://www.ncbi.nlm.nih.gov/pubmed/#1}{#1}} \href{https://www.ncbi.nlm.nih.gov/pubmed/#1}{#1}}
\addcontentsline{toc}{chapter}{\protect\numberline{\color{white}}{\refname}} \addcontentsline{toc}{chapter}{\protect\numberline{\color{white}}{\refname}}
\bibitem{Armstrong1995} \bibitem{Armstrong1995}
...@@ -14,6 +14,24 @@ Sarah~J. Armstrong, Richard~A. Read and Roger Price. ...@@ -14,6 +14,24 @@ Sarah~J. Armstrong, Richard~A. Read and Roger Price.
\newblock \pmid{7719953}. \newblock \pmid{7719953}.
\newblock \doi{10.1016/S1063-4584(05)80035-4}. \newblock \doi{10.1016/S1063-4584(05)80035-4}.
\bibitem{Bosboom2003}
E.M.H. Bosboom, C.V.C. Bouten, C.W.J. Oomens, F.P.T. Baaijens and K.~Nicolay.
\newblock {Q}uantifying pressure sore-related muscle damage using
high-resolution {MRI}.
\newblock \emph{Journal of Applied Physiology}, \textbf{95}(6):2235--2240,
December 2003.
\newblock \pmid{12819217}.
\newblock \doi{10.1152/japplphysiol.01023.2001}.
\bibitem{Ceelen2008}
K.K. Ceelen, A.~Stekelenburg, S.~Loerakker, G.J. Strijkers, D.L. Bader,
K.~Nicolay, F.P.T. Baaijens and C.W.J. Oomens.
\newblock {C}ompression-induced damage and internal tissue strains are related.
\newblock \emph{Journal of Biomechanics}, \textbf{41}(16):3399--3404, December
2008.
\newblock \pmid{19010470}.
\newblock \doi{10.1016/j.jbiomech.2008.09.016}.
\bibitem{Dawkins2009} \bibitem{Dawkins2009}
Richard Dawkins. Richard Dawkins.
\newblock \emph{{T}he greatest show on earth -- the evidence for evolution}. \newblock \emph{{T}he greatest show on earth -- the evidence for evolution}.
...@@ -24,4 +42,106 @@ Richard~P. Feynman. ...@@ -24,4 +42,106 @@ Richard~P. Feynman.
\newblock \emph{{QED} -- the strange theory of light and matter}. \newblock \emph{{QED} -- the strange theory of light and matter}.
\newblock Princeton University Press, Princeton, New Jersey, 2006. \newblock Princeton University Press, Princeton, New Jersey, 2006.
\bibitem{Loerakker2011a}
S.~Loerakker, E.~Manders, G.J. Strijkers, K.~Nicolay, F.P.T. Baaijens, D.L.
Bader and C.W.J. Oomens.
\newblock {T}he effects of deformation, ischemia, and reperfusion on the
development of muscle damage during prolonged loading.
\newblock \emph{Journal of Applied Physiology}, \textbf{111}(4):1168--1177,
October 2011.
\newblock \pmid{21757578}.
\newblock \doi{10.1152/japplphysiol.00389.2011}.
\bibitem{Loerakker2011}
S.~Loerakker, C.W.J. Oomens, E.~Manders, T.~Schakel, D.L. Bader, F.P.T.
Baaijens, K.~Nicolay and G.J. Strijkers.
\newblock {I}schemia-reperfusion injury in rat skeletal muscle assessed with
{T}2-weighted and dynamic contrast-enhanced {MRI}.
\newblock \emph{Magnetic Resonance In Medicine}, \textbf{66}(2):528--537,
August 2011.
\newblock \pmid{21360588}.
\newblock \doi{10.1002/mrm.22801}.
\bibitem{Loerakker2010}
S.~Loerakker, A.~Stekelenburg, G.J. Strijkers, J.J.M. Rijpkema, F.P.T.
Baaijens, D.L. Bader, K.~Nicolay and C.W.J. Oomens.
\newblock {T}emporal effects of mechanical loading on deformation-induced
damage in skeletal muscle tissue.
\newblock \emph{Annals of Biomedical Engineering}, \textbf{38}(8):2577--2587,
August 2010.
\newblock \pmid{20232152}.
\newblock \doi{10.1007/s10439-010-0002-x}.
\bibitem{Moerman2013}
Kevin~M. Moerman, Aart~J. Nederveen and Ciaran~K. Simms.
\newblock {I}mage based model construction, boundary condition specification
and inverse {FEA} control: a basic {M}atlab toolkit for {FEB}io.
\newblock In: \emph{Proceedings of the 11th International Symposium on Computer
Methods in Biomechanics and Biomedical Engineering}. Salt Lake City, Utah,
USA, April 2013.
\bibitem{Nierop2010}
Bastiaan~J. \noopsort{Nierop}van Nierop, Anke Stekelenburg, Sandra Loerakker,
Cees~W. Oomens, Dan Bader, Gustav~J. Strijkers and Klaas Nicolay.
\newblock {D}iffusion of water in skeletal muscle tissue is not influenced by
compression in a rat model of deep tissue injury.
\newblock \emph{Journal of Biomechanics}, \textbf{43}(3):570--575, February
2010.
\newblock \pmid{19897200}.
\newblock \doi{10.1016/j.jbiomech.2009.07.043}.
\bibitem{Oomens2010}
C.W.J. Oomens, Sandra Loerakker and D.L. Bader.
\newblock {T}he importance of internal strain as opposed to interface pressure
in the prevention of pressure related deep tissue injury.
\newblock \emph{Journal of tissue viability}, \textbf{19}(2):35--42, May 2010.
\newblock \pmid{20005716}.
\newblock \doi{10.1016/j.jtv.2009.11.002}.
\bibitem{Stekelenburg2006}
A.~Stekelenburg, C.W.J. Oomens, G.J. Strijkers, L.~\noopsort{Graaf}de Graaf,
D.L. Bader and K.~Nicolay.
\newblock {A} new {MR}-compatible loading device to study in vivo muscle damage
development in rats due to compressive loading.
\newblock \emph{Medical Engineering and Physics}, \textbf{28}(4):331--338, May
2006.
\newblock \pmid{16118060}.
\newblock \doi{10.1016/j.medengphy.2005.07.005}.
\bibitem{Stekelenburg2006a}
A.~Stekelenburg, C.W.J. Oomens, G.J. Strijkers, K.~Nicolay and D.L. Bader.
\newblock {C}ompression-induced deep tissue injury examined with magnetic
resonance imaging and histology.
\newblock \emph{Journal of Applied Physiology}, \textbf{100}(6):1946--1954,
June 2006.
\newblock \pmid{16484364}.
\newblock \doi{10.1152/japplphysiol.00889.2005}.
\bibitem{Stekelenburg2007}
Anke Stekelenburg, Gustav~J. Strijkers, Henry Parusel, Dan~L. Bader, Klaas
Nicolay and Cees~W. Oomens.
\newblock {R}ole of ischemia and deformation in the onset of
compression-induced deep tissue injury: {MRI}-based studies in a rat model.
\newblock \emph{Journal of Applied Physiology}, \textbf{102}(5):2002--2011, May
2007.
\newblock \pmid{17255369}.
\newblock \doi{10.1152/japplphysiol.01115.2006}.
\bibitem{Traa2015}
W.A. Traa, D.L. Bader and C.W.J. Oomens.
\newblock \href{http://repository.tue.nl/posters/801419.pdf}{Non-invasive
monitoring of pressure ulcer formation.}
\newblock Annual MaTe Poster Award of the Materials Technology (MaTe) group
(Eindhoven University of Technology, Eindhoven, The Netherlands), December
2015.
\bibitem{Traa2014}
W.A. Traa, J.L. Nelissen, K.M. Moerman, F.P.T. Baaijens, D.L. Bader and C.W.J.
Oomens.
\newblock \href{http://repository.tue.nl/posters/783267.pdf}{Investigating deep
tissue injury with MRI based 3D FEA.}
\newblock Annual MaTe Poster Award of the Materials Technology (MaTe) group
(Eindhoven University of Technology, Eindhoven, The Netherlands), December
2014.
\end{thebibliography} \end{thebibliography}
...@@ -111,6 +111,7 @@ ...@@ -111,6 +111,7 @@
\include{introduction} \include{introduction}
\include{conventions} \include{conventions}
\include{workflow} \include{workflow}
\include{buildfem}
\def\bibname{References} \def\bibname{References}
%\begin{savequote} %\begin{savequote}
......
% !TeX root = BasilLab.tex
\begin{savequote}
In the computer model, all the microfilaments were given certain quantitative properties with names that mean something to physicists: a `viscous damping coefficient' and an `elastic spring constant'. Never mind exactly what these mean: they are the kind of things physicists like to measure in a spring. \qauthor{Richard Dawkins \cite{Dawkins2009}}
\end{savequote}
\chapter{Building the FEM}\label{buildfem}
In this chapter we discuss the core of BasilLab: \bas{buildFEM} and its ouput \texttt{basil<basilid>\_job.py\index{basil<basilid>\_job.py@\texttt{basil<basilid>\_job.py}}}.
\section{Building parameters}
The function \bas{buildFEM} accepts a number of parameters that are provided in a structure as an argument to \bas{buildFEM} (section \ref{buildmodel}). When parameters are omitted, defaults are provided (table \ref{buildfemoptions}).
\begin{table}[p!]
\center
\caption{Options for \bas{buildFEM}. \textbf{Bold} values are the \textbf{defaults} when the argument is omitted. The default value for \texttt{basilhome} is read from \bas{getDataRoot}.}\label{buildfemoptions}\small
\begin{tabulary}{\linewidth}{l c l R}
\hline\noalign{\smallskip}
\texttt{param.<field>} & value & type & description\\
\noalign{\smallskip}\hline\noalign{\smallskip}
\texttt{basilhome} & \textbf{default} & string & directory where the modelling data will be sought in the subdirectory \texttt{<basilid>}\\\hline\noalign{\smallskip}
\texttt{seed} & \textbf{1} & float & value for Abaqus to `seed' the model before meshing; determines the global element size\\\hline\noalign{\smallskip}
\texttt{elOrder} & 1 & integer & use linear elements \\
& \textbf{2} && \textbf{use quadratic elements}\\ \hline\noalign{\smallskip}
\texttt{ri} & \textbf{1.5} & float & indenter radius\\ \hline\noalign{\smallskip}
\texttt{numCpus} & \textbf{4} & integer & number of CPU's that Abaqus will use during the simulation; will only have an effect when \texttt{submit = 1}\\ \hline\noalign{\smallskip}
\texttt{numDomains} & \textbf{4} & integer & number of domains that Abaqus will use during the simulation; will only have an effect when \texttt{submit = 1}\\ \hline\noalign{\smallskip}
\texttt{timePeriod} & \textbf{100} & float & duration (in seconds) for the indentation step for Abaqus\\ \hline\noalign{\smallskip}
\texttt{maxNumInc} & \textbf{1e6} & integer & maximum number of iterations in the indentation step for Abaqus\\ \hline\noalign{\smallskip}
\texttt{initialInc} & \textbf{1} & float & time used for the first attempt in the first increment in the indentation step for Abaqus\\ \hline\noalign{\smallskip}
\texttt{minInc} & \textbf{1e-6} & float & minimum increment time; Abaqus will abort when the required increment time in the indentation step becomes smaller than this value\\ \hline\noalign{\smallskip}
\texttt{cast} & 0 & integer & do not model the alginate cast around the leg\\
& \textbf{1} & & \textbf{model the alginate cast around the leg}\\ \hline\noalign{\smallskip}
\texttt{submit} & \textbf{0} & integer & \textbf{do not run the simulation when the FEM has been build} \\
& 1 & & run the simulation when the FEM has been build\\ \hline\noalign{\smallskip}
\texttt{plot} & \textbf{0} & integer & \textbf{do not write a python script to extract a plot from the \texttt{odb}-file} \\
& 1 & & write a python script to extract a plot from the \texttt{odb}-file\\ \hline\noalign{\smallskip}
\texttt{fixBone} & \textbf{0} & integer & \textbf{model tibia movement in the indentation step} \\
& 1 & & tibia does not move or rotate in the simulation\\ \hline\noalign{\smallskip}
\texttt{discon} & \textbf{0} & integer & \textbf{do not use Abaqus' `discontinuous' option for the simulation} \\
& 1 & & use Abaqus' `discontinuous' option for the simulation \\ \hline\noalign{\smallskip}
\texttt{inp} & 0 & integer & do not write the Abaqus input file \\
& \textbf{1} & & \textbf{write the Abaqus input file} \\ \hline\noalign{\smallskip}
\texttt{cae} & \textbf{0} & integer & \textbf{do not write the Abaqus cae file} \\
& 1 & & write the Abaqus cae file \\ \hline\noalign{\smallskip}
\texttt{Ogden} & \textbf{[0.0156, 21.4, 60]} & row & \textbf{Ogden material parameters for the soft tissue} (see section \ref{ogden}) \\ \hline\noalign{\smallskip}
\texttt{exec} & 0 & integer & do not submit the model python script to Abaqus\\
& \textbf{1} & & \textbf{submit the model python script to Abaqus} \\ \hline\noalign{\smallskip}
\texttt{odbT} & \textbf{5} & integer & period that Abaqus uses to write simulation results to the \texttt{odb}-file in the indentation step\\ \hline\noalign{\smallskip}
\texttt{indOff} & \textbf{0} & float & move indenter an extra \texttt{indOff} mm from the skin before the simulation\\
\noalign{\smallskip}\hline
\end{tabulary}
\end{table}
\subsection{Step parameters}
The model consists of four separate modelling steps. The first three steps each last 1\,second and are used to apply the tibia rotation in the FEM. The fourth step is the actual indentation step: in this step both the indentation and tibia displacement (after rotation) are applied. The parameters that e.g.\ affect step size and incrementation (such as \texttt{timePeriod} and \texttt{maxNumInc}) only apply to this last indentation step. The total `simulation time' of the model is therefore $3+\text{\texttt{timePeriod}}$\,seconds.
\subsection{Ogden material parameters}\label{ogden}
Abaqus requires three parameters for the Ogden material law: a stiffness parameter $\mu_0$, a non-linearity parameters $\alpha$, and a parameter $D$ that describes the initial bulk modulus (see section `4.6.1 Hyperelastic material behavior' in the Abaqus Theory Manual of the \adoc{}).
The parameter $D$ is a measure for the compressibility of the material, and is related to the initial bulk modulus $K_0$ according to:
\begin{equation}
K_0 = \frac{2}{D}
\end{equation}
The Poisson's ratio $\nu$ can be calculated from $\mu_0$ and $K_0$ with (see section `22.5.1 Hyperelastic behavior of rubberlike materials' in the Abaqus Analysis User's Manual of the \adoc{}):
\begin{equation}
\nu = \frac{3\frac{K_0}{\mu_0}-2}{6\frac{K_0}{\mu_0}+2}
\end{equation}
BasilLab provides the function \bas{D2nu} to calculate the Poisson's ratio $\nu$ from $\mu_0$ and $D$, and the function \bas{nu2D} to calculate $D$ from $\mu_0$ and a Poisson's ratio $\nu$:
\begin{lstlisting}[numbers=none]
>> nu = bas_D2nu(0.0156, 60)
nu =
0.2976
>> D = bas_nu2D(0.0156, nu)
D =
60.0000
\end{lstlisting}
Thus, the default material parameters in \bas{buildFEM} use a Poisson's ratio of 0.3 (steel).\\
\noindent The material parameter option \texttt{Ogden} for \bas{buildFEM} accepts a three element input, or a four element input. The three element input should have the format [$\mu_0$, $\alpha$, $D$]. With the four element input, you can supply the Poisson's ratio explicitly in the fourth value, i.e.\ the format becomes [$\mu_0$, $\alpha$, 0, $\nu$]. In this case, \bas{buildFEM} will call \bas{nu2D} with $\mu_0$ and $\nu$, and the third value in the input will be overwritten with the calculated parameter $D$. Thus, the options $\text{\texttt{Ogden}} = \begin{bmatrix}0.0156, & 21.4, & 60\end{bmatrix}$ and $\text{\texttt{Ogden}}= \begin{bmatrix}0.0156, & 21.4, & 0, & 0.2976\end{bmatrix}$ are equivalent.
\section{The \texttt{odbT} parameter}
By default, Abaqus writes simulation results to the \texttt{odb}-file for every (successful) increment. To reduce the size of the \texttt{odb}-file
\ No newline at end of file
...@@ -241,7 +241,7 @@ The FEM building process is described in detail in the next chapter. Briefly, we ...@@ -241,7 +241,7 @@ The FEM building process is described in detail in the next chapter. Briefly, we
\begin{lstlisting}[numbers=none] \begin{lstlisting}[numbers=none]
>> bas_buildFEM([140611, 140613], param); >> bas_buildFEM([140611, 140613], param);
\end{lstlisting} \end{lstlisting}
where \texttt{param} is a structure with modelling options (see chapter \ref{buildFEM}). where \texttt{param} is a structure with modelling options (see chapter \ref{buildfem}).
The (main) output of \bas{buildFEM} is the python script \texttt{basil<basilid>\_job.py\index{basil<basilid>\_job.py@\texttt{basil<basilid>\_job.py}}}, and the FEM can be build by calling Abaqus with The (main) output of \bas{buildFEM} is the python script \texttt{basil<basilid>\_job.py\index{basil<basilid>\_job.py@\texttt{basil<basilid>\_job.py}}}, and the FEM can be build by calling Abaqus with
\begin{lstlisting}[numbers=none, language=bash] \begin{lstlisting}[numbers=none, language=bash]
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment