Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations KootK on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

Bone growth modeling

Status
Not open for further replies.

Lucy A

Bioengineer
Mar 27, 2018
28
I am trying to simulate bone growth in my spine model using a fortran code for the growth. If I use quadratic instead of linear elements in the hardware, will it result in convergence issues? Also, my next question is, whenever a maximum penetration error arises, is it because the contacts are not defined properly or there could be other reasons as well? Please let me know if the question is not clear and/or additional information needs to be told so that I can get proper suggestions regarding this.

Thanks.
 
Replies continue below

Recommended for you

From what I know bone remodeling in FEA consists of changing material properties based on solution variables (in Abaqus with the use of USDFLD subroutine). The rest is the same as in usual simulations. Thus all rules of typical FEA apply. Quadratic elements should be more accurate and shouldn’t cause convergence issues. Penetration mainly depends on contact properties.

Interesting paper about it:
„Simulation of Adaptive Bone Remodeling with Abaqus/Standard” Abaqus Technology Brief
 
I recently did a similar simulation where the bone-properties were adapted according to the strain in the bone. For this I used an UMAT subroutine with fortran. It worked for me to use c3D4 tet elements. The model also included an implant and I had no problems with the contact between the implant and bone. I think as mentioned above that the problems you describe are not specific to the remodelling algorithm and are identical to the usual simulations. One thing I could think of is that for a UMAT subroutine it is necessary to specify the hourglass stifness. Maybe this could cause your penetration errors? If you could show your model and the locations where the error occur it might be easier to help.
 
Hi FEA way,

Yes I am using the USDFLD subroutine. Thank you very much for your response. I will go through the paper you sent.
 
Hi vazaar,

I am using the USDFLD subroutine with fortran. My model has implants too. It did run for range of motion simulations, so I think the changes I did in the model to run it for the growth have gone wrong somewhere. Could you please tell what kind of steps you applied in your model to run it for bone growth? I could have missed some necessary steps may be. I have tried several things to troubleshoot the model but nothing is working. Can incorrect material orientation result in penetration errors?

I am sorry, my file is huge and is not being uploaded for some reason. I will try to upload it later on.

Thank you very much for your response.
 
I dont have a lot of experience with penetration errors, but I think it is best to indeed first do the simulation without your remodelling algorithm, then see if you obtain some errors. Try to solve the errors first before you apply your algorithm. For the remodelling I wrote a Fortran code which reads out the principal strains from every step and then adjust the E-modulus of the bone accordingly for the next step. In addition I have a SDVINI subroutine to define the initial values of the E-modulus. I also had some trouble in the beginning (e.g. obtaining NaN values for stress). I solved this by printing out everything which I adjust (with "WRITE(7,*) 'IND1-1',ddsdde(1,1)" for example), which helped me finding the mistakes. Maybe it is a good idea to look again at your code and print every property which you are changing, make sure you use the correct units, etc. Otherwise I would start with a simple code, for example use the one from the abaqus manual: Link . Try and see if this one works. It basically already does what you want, namely adjusting the E-modulus based on the strain. Then if this works, try to change it step by step to finetune what you exactly want. Without seeing the fortran code it is quite difficult to tell what exactly goes wrong.
 
Hi vazaar,

Thank you very much for your suggestions! I will definitely do that and try to figure out the issues.
 
Hi vazaar,

I have one more question to you. As I have mentioned that I am trying to apply growth in spine and simulate the model, I wanted to know if the assignment of local material orientation to each vertebra separately is correct or assigning the orientation all at once is correct too? Since my model is dying in the growth step, the possible mistake I could think as of now is assigning the material orientation incorrectly. I have made some changes and put the model in run but is queued so meanwhile I thought of posting this question here. If you could tell me the proper steps regarding this, it would really help me.

Thanks a lot.
 
I havent worked with the material orientation in the remodelling algorithm. I assumed that the material (bone) was isotropic. The Youngs modulus changed simply on the total strain for each element. If you think that it might be the issue, first try it without your definition of material orientation and try to run it without errors. I think if you want to change the material in every direction you can use the UMAT subroutine. Read out the strains in every direction and adapt the youngs modulus in that direction based on the strain in that direction.
 
Thank you vazaar. Really appreciate your help!
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor