Note: This discussion is about an older version of the COMSOL Multiphysics® software. The information provided may be out of date.

Discussion Closed This discussion was created more than 6 months ago and has been closed. To start a new discussion with a link back to this one, click here.

Pre Stetch inside an artery

Please login with a confirmed email address before reporting spam

Hi All,

I would like to incorporate 12% pre-stretch inside the wall of an artery.

I simulate the artery as a simple hyperelastic tube (with a stent inside). My goal is to incorporate pre-stretch inside the wall of the tube and than run my model.

How may I define this in Comsol?
I work on both Comsol 3.5a and 4a, but I prefer using version 3.5a.

Thank you in advance,
Tal

22 Replies Last Post Apr 12, 2011, 11:18 a.m. EDT
Ivar KJELBERG COMSOL Multiphysics(r) fan, retired, former "Senior Expert" at CSEM SA (CH)

Please login with a confirmed email address before reporting spam

Posted: 1 decade ago Dec 21, 2010, 6:24 a.m. EST
Hi

I would suggest that you run a first stationary study with an inside pressure defined over the prestressed region such to get your initial stress; then you save the solution and restart from there using it as initial conditions and adding the stent BC's

One way around to avoid running a parametric sweep is to define an objectif function (global variable) such to measure the stress and compare to the desired 12% stress (or was it strain?) and have COMSOL adjust the pressure until you reach this condition in a mean square way (somewhat like the very different example but of similar approach of torque load in the structural doc of 3.5a).
The only thing I do not see what to propose is how to define your objective function because that is very model dependent

--
Good luck
Ivar
Hi I would suggest that you run a first stationary study with an inside pressure defined over the prestressed region such to get your initial stress; then you save the solution and restart from there using it as initial conditions and adding the stent BC's One way around to avoid running a parametric sweep is to define an objectif function (global variable) such to measure the stress and compare to the desired 12% stress (or was it strain?) and have COMSOL adjust the pressure until you reach this condition in a mean square way (somewhat like the very different example but of similar approach of torque load in the structural doc of 3.5a). The only thing I do not see what to propose is how to define your objective function because that is very model dependent -- Good luck Ivar

Please login with a confirmed email address before reporting spam

Posted: 1 decade ago Dec 21, 2010, 10:22 a.m. EST
Dear Ivar,

Thank you for your answer.

It's obvious that I can stretch the artery (tube) and then run the model, using stored solutions, sequential solver etc.

HOWEVER, I saw that under subdomain settings there's a tab named "Initial stress and strain".
Do you happen to know how to use this feature?

It just seems as a more direct way for solving my problem. Don't you think? :)

Thank you,
Tal
Dear Ivar, Thank you for your answer. It's obvious that I can stretch the artery (tube) and then run the model, using stored solutions, sequential solver etc. HOWEVER, I saw that under subdomain settings there's a tab named "Initial stress and strain". Do you happen to know how to use this feature? It just seems as a more direct way for solving my problem. Don't you think? :) Thank you, Tal

Please login with a confirmed email address before reporting spam

Posted: 1 decade ago Dec 21, 2010, 10:48 a.m. EST
Tal,

I am wondering if you were able to run a successful simulation of artery with the stent inside it using COMSOL FSI. If yes, would it be possible for you to share your paper/ model?

Thanks,
Sirisha

PS: I don't know anything about how to do the pre-stretch in the artery
Tal, I am wondering if you were able to run a successful simulation of artery with the stent inside it using COMSOL FSI. If yes, would it be possible for you to share your paper/ model? Thanks, Sirisha PS: I don't know anything about how to do the pre-stretch in the artery

Please login with a confirmed email address before reporting spam

Posted: 1 decade ago Dec 21, 2010, 11:30 a.m. EST
Sirisha,

I'm not modeling flow simulations. I'm interested in strength of materials...

Sirisha, I'm not modeling flow simulations. I'm interested in strength of materials...

Please login with a confirmed email address before reporting spam

Posted: 1 decade ago Dec 21, 2010, 11:31 a.m. EST
Oh ok! Thanks Tan.
Oh ok! Thanks Tan.

Ivar KJELBERG COMSOL Multiphysics(r) fan, retired, former "Senior Expert" at CSEM SA (CH)

Please login with a confirmed email address before reporting spam

Posted: 1 decade ago Dec 22, 2010, 7:56 a.m. EST
Hi

certainly you can add the local stress in the initial conditions, but that means you know the full tensor data values, which in most cases is not a trivial task, so to find it requires a stationary run, so then why not use it ?

Or do you have a better idea, Always interested to learn ;)

--
Good luck
Ivar
Hi certainly you can add the local stress in the initial conditions, but that means you know the full tensor data values, which in most cases is not a trivial task, so to find it requires a stationary run, so then why not use it ? Or do you have a better idea, Always interested to learn ;) -- Good luck Ivar

Please login with a confirmed email address before reporting spam

Posted: 1 decade ago Feb 17, 2011, 5:57 a.m. EST
Hello Tal,

Were you able to implement the pre-stretch in your model? I am working on a axial symmetry model with hyperelastic materials. I wanted to include an initial strain as well. I am not quite able to do that.
I was wondering if you could share your model if you have it implemented successfully.

Thanks in advance.

- Aseem
Hello Tal, Were you able to implement the pre-stretch in your model? I am working on a axial symmetry model with hyperelastic materials. I wanted to include an initial strain as well. I am not quite able to do that. I was wondering if you could share your model if you have it implemented successfully. Thanks in advance. - Aseem

Ivar KJELBERG COMSOL Multiphysics(r) fan, retired, former "Senior Expert" at CSEM SA (CH)

Please login with a confirmed email address before reporting spam

Posted: 1 decade ago Feb 17, 2011, 7:12 a.m. EST
Hi

the best way know about to introduce a pre-stressed/strained state is to run a stationary analysis on a model at rest. Then to "store" the result and use it as a starting point for the next analysis.

because getting the stress or strain tensor correctly set up is not trivial (at leas I find it not to be ;)

--
Good luck
Ivar
Hi the best way know about to introduce a pre-stressed/strained state is to run a stationary analysis on a model at rest. Then to "store" the result and use it as a starting point for the next analysis. because getting the stress or strain tensor correctly set up is not trivial (at leas I find it not to be ;) -- Good luck Ivar

Please login with a confirmed email address before reporting spam

Posted: 1 decade ago Feb 17, 2011, 9:03 a.m. EST
Hello,

I have followed this discussion and tried to follow it up in COMSOL. I haven't quite understood 'running a stationary analysis' part. I have my model attached below.
The dimensions in the model are the final dimensions of the pre-strained geometry. I do not know the unstrained dimensions.

Does a stationary analysis mean that I should pull the material in the r direction first?

My final aim is to apply a vertical displacement on boundary 1.

Thanks

Hello, I have followed this discussion and tried to follow it up in COMSOL. I haven't quite understood 'running a stationary analysis' part. I have my model attached below. The dimensions in the model are the final dimensions of the pre-strained geometry. I do not know the unstrained dimensions. Does a stationary analysis mean that I should pull the material in the r direction first? My final aim is to apply a vertical displacement on boundary 1. Thanks


Ivar KJELBERG COMSOL Multiphysics(r) fan, retired, former "Senior Expert" at CSEM SA (CH)

Please login with a confirmed email address before reporting spam

Posted: 1 decade ago Feb 17, 2011, 9:56 a.m. EST
Hi

one of the issues is that you are in 3.5 and I cannot remember if you can do it fully within COMSOL with the solver sequencer or if you need MATLAB

The idea is that you draw your geometry at rest, you apply a load (in steps is often better) along one or several direction with a stationary solver (and if needed linked to a parametrical sweep). Then you store this solution and you restart your final analysis with from the prestressed solution

Note that you must provide some initial condition counter force/pressures to avoid that your system collapses back immediately

--
Good luck
Ivar
Hi one of the issues is that you are in 3.5 and I cannot remember if you can do it fully within COMSOL with the solver sequencer or if you need MATLAB The idea is that you draw your geometry at rest, you apply a load (in steps is often better) along one or several direction with a stationary solver (and if needed linked to a parametrical sweep). Then you store this solution and you restart your final analysis with from the prestressed solution Note that you must provide some initial condition counter force/pressures to avoid that your system collapses back immediately -- Good luck Ivar

Please login with a confirmed email address before reporting spam

Posted: 1 decade ago Feb 18, 2011, 4:28 a.m. EST
Hi Ivar,

I was able to run a stationary analysis and get the desired pre-strain. Could you tell me how to use the stationary analysis to extract the stress/strain state and then use the initial stress, strain tab in the subdomain properties?

The problem is that further in my analysis i need to attach electrodes on the top and bottom of the elastomer, which are not pre-strained. So I cannot think of a way to have the elastomer pre-strained and electrodes attached to the elastomer with no initial strain.

Any suggestions?

Thanks
Hi Ivar, I was able to run a stationary analysis and get the desired pre-strain. Could you tell me how to use the stationary analysis to extract the stress/strain state and then use the initial stress, strain tab in the subdomain properties? The problem is that further in my analysis i need to attach electrodes on the top and bottom of the elastomer, which are not pre-strained. So I cannot think of a way to have the elastomer pre-strained and electrodes attached to the elastomer with no initial strain. Any suggestions? Thanks

Ivar KJELBERG COMSOL Multiphysics(r) fan, retired, former "Senior Expert" at CSEM SA (CH)

Please login with a confirmed email address before reporting spam

Posted: 1 decade ago Feb 18, 2011, 5:10 a.m. EST
Hi

normally you can save the stationary model and say to COMSOL to use initial conditions from this file. But I'm not sure how to separate some prestressed and some free items, if not having two linked models

--
Good luck
Ivar
Hi normally you can save the stationary model and say to COMSOL to use initial conditions from this file. But I'm not sure how to separate some prestressed and some free items, if not having two linked models -- Good luck Ivar

Please login with a confirmed email address before reporting spam

Posted: 1 decade ago Feb 18, 2011, 9:06 a.m. EST
Hi,

In my case, I know the pre-strain in the material or I exactly know the strain values in the r, phi and z directions.

My question is how does COMSOL implement the initial stress or strain values when they are specified in the input parameters tab in subdomain properties?

Like in my earlier question I mentioned that i have two connecting parts but one of them has a pre-strain and the other doesn't. So I cannot really use a stationary run.

Can it be implemented by editing subdomain equations probably?

Thanks,
Aseem
Hi, In my case, I know the pre-strain in the material or I exactly know the strain values in the r, phi and z directions. My question is how does COMSOL implement the initial stress or strain values when they are specified in the input parameters tab in subdomain properties? Like in my earlier question I mentioned that i have two connecting parts but one of them has a pre-strain and the other doesn't. So I cannot really use a stationary run. Can it be implemented by editing subdomain equations probably? Thanks, Aseem

Please login with a confirmed email address before reporting spam

Posted: 1 decade ago Mar 18, 2011, 3:04 p.m. EDT
Aseem,

I have been trying to implement prestress or prestrain to a hyperelastic material and it seems that it is not possible to do that in the Initial Stress-Strain option of the subdomain setting of V3.5. It is as if you have entered nothing for the initial values. This option particularly does not work for hyperelastic materials because if first you try elastic material with small deformation (e.g. isotropic material) you will see that with those initial stresses and with no external surface forces, the body will be stressed correctly. But when you switch the material to hyperelastic it will do nothing for you.

Manuel.
Aseem, I have been trying to implement prestress or prestrain to a hyperelastic material and it seems that it is not possible to do that in the Initial Stress-Strain option of the subdomain setting of V3.5. It is as if you have entered nothing for the initial values. This option particularly does not work for hyperelastic materials because if first you try elastic material with small deformation (e.g. isotropic material) you will see that with those initial stresses and with no external surface forces, the body will be stressed correctly. But when you switch the material to hyperelastic it will do nothing for you. Manuel.

Please login with a confirmed email address before reporting spam

Posted: 1 decade ago Mar 18, 2011, 3:22 p.m. EDT
Hi Manuel,

Yeah. It is not implemented in COMSOL, even the newest versions. Not sure why!
However I did figure out how to do that by modifying the subdomain equations in the Physics settings.

- Aseem
Hi Manuel, Yeah. It is not implemented in COMSOL, even the newest versions. Not sure why! However I did figure out how to do that by modifying the subdomain equations in the Physics settings. - Aseem

Please login with a confirmed email address before reporting spam

Posted: 1 decade ago Mar 18, 2011, 3:29 p.m. EDT
Aseem

Will you share with us?

Thanks.
Manuel
Aseem Will you share with us? Thanks. Manuel

Please login with a confirmed email address before reporting spam

Posted: 1 decade ago Mar 18, 2011, 4:10 p.m. EDT
you will have to modify the equations for the quantities from which the stress and strains are calculated.
A stationary run can be used to find their values.
you will have to modify the equations for the quantities from which the stress and strains are calculated. A stationary run can be used to find their values.

Nagi Elabbasi Facebook Reality Labs

Please login with a confirmed email address before reporting spam

Posted: 1 decade ago Mar 18, 2011, 5:57 p.m. EDT
Initial stresses in hyperelastic materials are hard to implement. That is because the stresses are based on the total deformation gradient, and that gradient is not available when you have initial stresses. Linear elastic materials do not have this restriction, and can use an incremental equation to calculate stress (Sigma = D x Strain + Sigma0 where Sigma0 is the initial stress tensor).

The best modeling approach I believe is to apply a preload that will generate the required stress in the hyperelastic material, as some mentioned above. In your artery case, just stretch the ends!

I hope this helps.

Nagi Elabbasi
Veryst Engineering
Initial stresses in hyperelastic materials are hard to implement. That is because the stresses are based on the total deformation gradient, and that gradient is not available when you have initial stresses. Linear elastic materials do not have this restriction, and can use an incremental equation to calculate stress (Sigma = D x Strain + Sigma0 where Sigma0 is the initial stress tensor). The best modeling approach I believe is to apply a preload that will generate the required stress in the hyperelastic material, as some mentioned above. In your artery case, just stretch the ends! I hope this helps. Nagi Elabbasi Veryst Engineering

Ivar KJELBERG COMSOL Multiphysics(r) fan, retired, former "Senior Expert" at CSEM SA (CH)

Please login with a confirmed email address before reporting spam

Posted: 1 decade ago Mar 19, 2011, 2:59 a.m. EDT
Hi

I fully agree (even for linear material)

Note that in V4 the prestress loads can be applied: it's a sub-sub-sub... node
Always try to right click on all nodes, often new ones open, and even some appear only depending on main physics settings

--
Good luck
Ivar
Hi I fully agree (even for linear material) Note that in V4 the prestress loads can be applied: it's a sub-sub-sub... node Always try to right click on all nodes, often new ones open, and even some appear only depending on main physics settings -- Good luck Ivar

Please login with a confirmed email address before reporting spam

Posted: 1 decade ago Apr 5, 2011, 6:33 p.m. EDT
Hi Nagi and Ivar,

I could implement a pre-stress by adding a constant value to the 1st Piola stress in the Equation System, which is great.

Now, I am also interested in trying a pre-strain rather pre-stress. Again the Initial Values inputted in the Subdomain setting did not work. So I added a constant displacement to u (deformation in x-direction) (e.g. u+a) hoping that the direct manipulation of the equations can cause the deformation, as it did for stress. But again I did not get any deformation. Any suggestion what can be the problem?

Thanks,
Manuel
Hi Nagi and Ivar, I could implement a pre-stress by adding a constant value to the 1st Piola stress in the Equation System, which is great. Now, I am also interested in trying a pre-strain rather pre-stress. Again the Initial Values inputted in the Subdomain setting did not work. So I added a constant displacement to u (deformation in x-direction) (e.g. u+a) hoping that the direct manipulation of the equations can cause the deformation, as it did for stress. But again I did not get any deformation. Any suggestion what can be the problem? Thanks, Manuel

Nagi Elabbasi Facebook Reality Labs

Please login with a confirmed email address before reporting spam

Posted: 1 decade ago Apr 6, 2011, 6:20 p.m. EDT
Hi Manuel,

Interesting implementation of pre-stress! However, you should be careful since based on the changes you made the material is no longer hyperelastic! If you only have small deformations that’s not a serious problem, but with large deformations it may be. I did not understand how you’re applying the initial strains by modifying the displacement field (if you add a constant “a” to u, the strains will not be affected). Even when you figure it out, you will be faced with the same problem where the material is no longer hyperelastic.

There are solution procedures (inverse methods) for finding an initial stress-free configuration but I haven’t seen then in any FEA code. There are two things to try if you want to maintain a hyperelastic material formulation. My favorite, when feasible, is to create the geometry in the stress free configuration and load it to achieve the “initial” configuration. The other option is to create a user-defined hyperelastic property group (not an easy task). COMSOL allows you to use the individual components of the Green-Lagrange strain tensor in defining the strain energy density, so you can create your own function of the form “Constant x (epsilon_XX – epsilon_initial_XX)” for example. I never tried this approach though.

Good luck.

Nagi Elabbasi
Veryst Engineering
Hi Manuel, Interesting implementation of pre-stress! However, you should be careful since based on the changes you made the material is no longer hyperelastic! If you only have small deformations that’s not a serious problem, but with large deformations it may be. I did not understand how you’re applying the initial strains by modifying the displacement field (if you add a constant “a” to u, the strains will not be affected). Even when you figure it out, you will be faced with the same problem where the material is no longer hyperelastic. There are solution procedures (inverse methods) for finding an initial stress-free configuration but I haven’t seen then in any FEA code. There are two things to try if you want to maintain a hyperelastic material formulation. My favorite, when feasible, is to create the geometry in the stress free configuration and load it to achieve the “initial” configuration. The other option is to create a user-defined hyperelastic property group (not an easy task). COMSOL allows you to use the individual components of the Green-Lagrange strain tensor in defining the strain energy density, so you can create your own function of the form “Constant x (epsilon_XX – epsilon_initial_XX)” for example. I never tried this approach though. Good luck. Nagi Elabbasi Veryst Engineering

Please login with a confirmed email address before reporting spam

Posted: 1 decade ago Apr 12, 2011, 11:18 a.m. EDT
Hi Nagi,

I really appreciate your reply and your comments.
I agree with you that changing u ==> u+a does not affect the solution and the initial strain. In order to do that I will try to make proper changes to the deformation gradient matrix (F), if possible. And to do that (in uniaxial stretch) I may need to even change the derivative of ux to another form such as uX, in that X is a primary frame where the initial strain (epsilon_o):

say
x1=X+uo : after initial deformation
x2=x1+u : after secondary deformation

==> x2=X+uo+u ==> d(x2) / dX = 1+ d(uo) / dX + du / dX

epsilon_o = d(uo) / dX
epsilon = du / dX

==> F_11= 1 + epsilon_o + epsilon

The default value of strain in the System of Equations is du/dx1 which is different (in frame) from du/dX used above. So I need to modify the default value, accordingly.

I had also thought about the easier approach that you had mentioned, but somehow I preferred the second approach. Of course the first approach needs some try and error as initially the amount of stress that can provide the desired strain is not known, and it can be done by a program in MATLAB.

Please let me know if you have any comments.
Thanks again and I will let you know if I make any progress.
Hi Nagi, I really appreciate your reply and your comments. I agree with you that changing u ==> u+a does not affect the solution and the initial strain. In order to do that I will try to make proper changes to the deformation gradient matrix (F), if possible. And to do that (in uniaxial stretch) I may need to even change the derivative of ux to another form such as uX, in that X is a primary frame where the initial strain (epsilon_o): say x1=X+uo : after initial deformation x2=x1+u : after secondary deformation ==> x2=X+uo+u ==> d(x2) / dX = 1+ d(uo) / dX + du / dX epsilon_o = d(uo) / dX epsilon = du / dX ==> F_11= 1 + epsilon_o + epsilon The default value of strain in the System of Equations is du/dx1 which is different (in frame) from du/dX used above. So I need to modify the default value, accordingly. I had also thought about the easier approach that you had mentioned, but somehow I preferred the second approach. Of course the first approach needs some try and error as initially the amount of stress that can provide the desired strain is not known, and it can be done by a program in MATLAB. Please let me know if you have any comments. Thanks again and I will let you know if I make any progress.

Note that while COMSOL employees may participate in the discussion forum, COMSOL® software users who are on-subscription should submit their questions via the Support Center for a more comprehensive response from the Technical Support team.