gibbonCode / GIBBON

The Geometry and Image-Based Bioengineering add-On for MATLAB
http://gibboncode.org/
GNU Affero General Public License v3.0
191 stars 60 forks source link

Holzapfel Gasser Ogden (HGO) #159

Closed jpv20 closed 1 year ago

jpv20 commented 1 year ago

heh Kevin,

do you happen to have a gibbon based minimal working example (MWE) for using and HGO model in febio? parsing out your Matlab material struct format / syntax is giving me challenges in this regard. it would be great if this MWE clearly showed how to implement material orientations.

let me know either way! j

ps. here are some excerpts from a working febio file i have that may help with the febio HGO model:

jpv20 commented 1 year ago

Screen Shot 2023-03-23 at 2 54 33 PM

jpv20 commented 1 year ago

Screen Shot 2023-03-23 at 2 54 23 PM

Kevin-Mattheus-Moerman commented 1 year ago

Can you check if this works:

materialName1='Material1';
febio_spec.Material.material{1}.ATTR.name=materialName1;
febio_spec.Material.material{1}.ATTR.type='Holzapfel-Gasser-Ogden';
febio_spec.Material.material{1}.ATTR.id=1;
febio_spec.Material.material{1}.c=7.64;
febio_spec.Material.material{1}.k1=996.6;
febio_spec.Material.material{1}.k2=524.6;
febio_spec.Material.material{1}.gamma=49.98;
febio_spec.Material.material{1}.kappa=0.226;
febio_spec.Material.material{1}.k=1e5;

Note this model can act funny as also shown here: https://doi.org/10.1016/j.jmbbm.2014.06.016 And in this quick uni-axial loading check: HGO_uncoupled

The coupled one is safer in that respect:

materialName1='Material1';
febio_spec.Material.material{1}.ATTR.name=materialName1;
febio_spec.Material.material{1}.ATTR.type='HGO unconstrained';
febio_spec.Material.material{1}.ATTR.id=1;
febio_spec.Material.material{1}.c=7.64;
febio_spec.Material.material{1}.k1=996.6;
febio_spec.Material.material{1}.k2=524.6;
febio_spec.Material.material{1}.gamma=49.98;
febio_spec.Material.material{1}.kappa=0.226;
febio_spec.Material.material{1}.k=7.64e3;

Which behaves properly:

HGO_coupled

Kevin-Mattheus-Moerman commented 1 year ago

I added a demo (number 0083) to the febio4 branch now. This branch will be merged with the master branch shortly.

jpv20 commented 1 year ago

thanks Kevin! i updated to febio4 and i can drag/drop/run the created .feb file in FEBioStudio. however my matlab function is stalling....its seems like there is an issue with matlab finding the correct filepaths etc. any thoughts on how to get this going?

just as important - where in the above MWE are you assigning local element material orientations? if they are there let me know - i didn't see them. if not - would you mind updating the MWE? (it might be cool if the matlab plot of febio results also indicated the orientation via a quiver or similar). thanks again!

Kevin-Mattheus-Moerman commented 1 year ago

@jpv20 I think we can close this now, we had a meeting on this, and also the updated demos DEMO_febio_00014_cube_varying_material, DEMO_febio_0015_cube_fibers_transiso, and the new DEMO_febio_0083_cube_uniaxial_HGO illustrate all functionality required to do what you want.

Kevin-Mattheus-Moerman commented 1 year ago

@jpv20 I remamed the HGO demo to: DEMO_febio_0038_cube_uniaxial_HGO