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!

USDFLD can't read "ESEDEN" or "SENER" (Strain Energy Density) for bone remodeling. 5

Status
Not open for further replies.

VMSam

Bioengineer
Jan 20, 2018
14
I am using usdfld to simulate the bone remodeling response. This is the subroutine that SIMULIA suggests for this application, although many researchers use UMAT.
.
Using USDFLD, I want to use a "look up table" to relate Young's Modulus ( E ) and Density (ro) of the material, to "Strain Energy Density" (SED). (more details: based upon the loading, different elements will have different SEDs, and the elements' density and Young's Modulus change based on the SED that the elements sense)
.
My problems is that I can't get the "Strain Energy Density" using GETVRM in USDFLD subroutine.
I tryed using "SENER" , "ESEDEN", "ELEDEN" as keywords, no luck.
.
I know I can define "Strain Energy Density" as a function of stress and strain myself, but I insist on using ABAQUS's field output variables (better computational cost, more convinient) and I wonder which keyword should I use?
And where can I find the formulation (that ABAQUS uses) for these variables? (to know for sure, which one is the one I'm looking for)
.
And lastly, how can I get my hands on SIMULIA's own bone remodeling code, which is written for USDFLD subroutine?
Here's SIMULIA's guide:
 
Replies continue below

Recommended for you

First of all I think, that you can't change the density during the simulation. Read the section about the density in the Users Manual.

The issue with ESEDEN might come from the situation, that it is a whole element variable, but the GETVRM read results from the integration points. In the paper it sounds like it was done with the combination of SENER and IVOL. But that's just my guess. Take look into the Users Manual regarding these variables and check if that would be an option for you.
 
Thank you Mustaine3,
.
About density, is there a way around this? The bone's density is a function of Strain Energy Density and I need it to change. :-|
.
Your point about ESEDEN being a whole element variable is a valid point, my mistake.
.
But even if I try using SENER, I get the error "Unidentified or invalid output request SENER", even though I have selected it in "Field Output Requests" window in Step module.
.
eng_ghrm9p.jpg

.
------------------------------------------------------------------------------------------------------------------------S
.
And ABAQUS documentation doesn't provide any detail about how it calculates SENER or ESEDEN.
.
eng2_hoxoky.jpg

eng3_pjxjyh.jpg

.
But I think the fact that it states " .fil No" , indicates we GETVRM can't read the SENER.
So is there any other way than defining it using stress and strain?
 
About a decade ago, I helped someone with their USDFLD code on bone remodeling. Unfortunately, I do not remember a thing. However, if you are in the academia, I suggest calling Simulia (Johnston, Rhode Island), talking to them about your application, and asking for their code for academic use. There is no point in re-inventing the wheel and this algorithm has been around for at least three decades now since it was published by Rik Huiskes and colleagues. If you do not wish to do that, odds are the code is out there in a published thesis.

*********************************************************
Are you new to this forum? If so, please read these FAQs:

 

IceBreakerSours,

thanks for your input.
I emailed Simulia, no answer.
I searched for days/hours, no luck on finding a useful code in published materials.
 
Emailing won't help. Call your local Simulia Tech Support and see if they can help out. You should also join the Simulia Learning Community, go the page that talks about bone remodeling, and seek help there.

I found a thesis which looks valuable with one Google search. Click here. I am sensitive to matters related to giving someone their due credit so, if you end up getting inspired by or using the code in this thesis, please ensure the author of the thesis receives full credit.

*********************************************************
Are you new to this forum? If so, please read these FAQs:

 
IceBreakerSours,

I checked Simulia Learning Community, navigated in its subsections for hours, but I didn't find "the page that talks about bone remodeling". Can you please provide me with a link?

IceBreakerSours said:
I found a thesis which looks valuable with one Google search. Click here.
Thank you really. Actually I had found that one (took me hours, how did you find it so quickly?) and the confusing thing about that code is that it is written for ABAQUS:Implicit, wherease nearly all of the articles mention "Euler forward method" as their integration methode, which is an Explicit routine.
And also I don't get which property will get updated using a look-up table. The code will calculate E (young's moduli) on its own and stores it as a Field Variable, so what other variable will be updated according to this FV?

edit:
(after checking the code throughly) I suspect there should be a one on one look up table that relates the E (in property module) to the E (our field variable). I am not sure though.
 
Calling your local tech support is ideal. If Simulia Learning Community does not have it, then it must be on SwYM or one of those (frustrating) Dassault Systeme websites.

*********************************************************
Are you new to this forum? If so, please read these FAQs:

 
IceBreakerSours,

We don't have a Simulia Support Center in our country, and they won't provide any form of support to us due to some sanctions!
but thanks anyway [thumbsup2]
 
Ok I solved the problem and I am going to write it here for future researchers so that it wiil save them a few days.

In bone remodeling applications, if you are using USDFLD for calculating and updating the elements' Young Modulus based on strain energy density (SED),
You have to request "ENER" via GETVRM, and calculate the SED using this formulation: SED = ENER / RHO
SENER and ESEDEN and etc won't work since they are not integration point values.
the SENER contour will be a little different from the SED that you calculated in this way, and that is due to different procedures of interpolating between nodes/integration points.

since you can't enter RHO (density) in the property module for your material and it won't update in that way, you have to leave it empty (don't define density for the material) and calculate the RHO in your fortran code and save it in a state value, and update it every incerement. ABAQUS doesn't need to know the density!

and don't let the time and mass dependent nature of the problem and the mention of Euler Forward Method in articles fool you, the problem should be solved in ABAQUS/Standard, and not in Explicit.(it's somehow obvious but there are a lot of reasons to get this wrong)
 
Dear Vahid
I understand that in FORTRAN we can update material properties in each increment from the SED and other functions which we define. Is SENER commutative and could you please explain more about how you define force in CAE?
 
Dear Mehran,
i would be happy to help but unfortunately I couldn't understand your question.
 
Hi,

Since some of you were discussing about the USDFLD subroutine, I wanted to know if any of you know if there is USDFLD code available somewhere for the growth simulation in scoliotic spine. I have searched but not found any. Also, what is the proper abaqus command to run an analysis that needs to use the subroutine? Any help would be highly appreciated. Thanks.
 
Tina,

even if there is a code out there, you have to search really hard in thesis databases to find one. finding an "algorithm" would be easier though, and you can write your code based on that algorithm.
And about your question on abaqus command, i couldnt understand if you are looking for the python command, or CMD command, or maybe you are new to this and you are just trying to run a subroutine-based analysis? for the latter, edit the "job" and in the second tab, select the subroutine you want to use.
 
Hi VahidMlb,

I am sorry that my question was not clear. I was looking for the CMD command. Yes, I am totally new regarding this, never used subroutine before and its been quite difficult searching for the code. Thanks for your response.
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor