GIBBON icon indicating copy to clipboard operation
GIBBON copied to clipboard

Move to Febio 3.0

Open MartinSnapform opened this issue 5 years ago • 4 comments

I'm moving all my code to use FEbio 3.0. It is a bit tricky as the Febio manual is a bit thin on some areas.

A particular problem I have left is the pressure surface load with a link to a pressure map. How is this linked in Febio 3.0?

Febio can run this, but the result are strange compared to FEbio 2.5.:

febio_spec.Loads.surface_load{1}.ATTR.name='Design Pressure on BM100'; febio_spec.Loads.surface_load{1}.ATTR.type='pressure'; febio_spec.Loads.surface_load{1}.ATTR.surface='FacetSet Surface100'; febio_spec.Loads.surface_load{1}.pressure.ATTR.type='map'; febio_spec.Loads.surface_load{1}.pressure.ATTR.lc=1; febio_spec.Loads.surface_load{1}.pressure.VAL='Design Pressure BM100';

Design Pressure BM100 is the SurfaceData map and FacetSet Surface100 the surface set.

Any ideas?

br, Martin

MartinSnapform avatar Dec 11 '20 12:12 MartinSnapform

Hi @MartinSnapform thanks for posting this issue. Yes the FEBio user manual has been a bit sparse explaining these details. @SteveMaas1978 is working hard to update the manual too so keep checking the latest FEBio version as this will come with the updated manuals.

I have however successfully converted demo 1-30 to the FEBio3 format. This includes the following which features spatially varying/mapping pressures: DEMO_febio_0013_disc_pressure_varying

In summary the pressure mapping is done like this in that demo:

%MeshData secion
%-> Surface data
loadDataName1='LoadData1';
febio_spec.MeshData.SurfaceData.ATTR.name=loadDataName1;
febio_spec.MeshData.SurfaceData.ATTR.surface=surfaceName1;
febio_spec.MeshData.SurfaceData.ATTR.data_type='scalar';
febio_spec.MeshData.SurfaceData.face.ATTR.lid=(1:1:numel(C_pressure))';
febio_spec.MeshData.SurfaceData.face.VAL=C_pressure;   

%Loads section
% -> Surface load
febio_spec.Loads.surface_load{1}.ATTR.type='pressure';
febio_spec.Loads.surface_load{1}.ATTR.surface=surfaceName1;        
febio_spec.Loads.surface_load{1}.pressure.ATTR.lc=1;
febio_spec.Loads.surface_load{1}.pressure.ATTR.type='map';
febio_spec.Loads.surface_load{1}.pressure.VAL=loadDataName1;
febio_spec.Loads.surface_load{1}.symmetric_stiffness=1;

Let me know if after studying that demo you still have questions. I'll close this for now but am happy to reopen this issue if needed.

Kevin-Mattheus-Moerman avatar Dec 15 '20 09:12 Kevin-Mattheus-Moerman

Hi @Kevin-Mattheus-Moerman

Thanks for the demo. It is slightly embarrassing how many hours I have looked at your examples.

The pressure map seem to be working, but I still cannot get the same results as with FeBio2.9.1. If I import the feb file from Gibbon into FeBio Studio and run it from there I do get the same results. In all it is a bit strange. I have been looking at the xml file differences, but so far I cannot tell what the issue is.

MartinSnapform avatar Dec 15 '20 12:12 MartinSnapform

@MartinSnapform I reopened this issue. To me it now sounds like we might be missing a "secret setting" which FEBioStudio adds to the .feb file.

Are you using the latest FEBio version? What exactly is different? Is the deformation/pressure application different?

Can you share the two XML files (raw GIBBON export, and the FEBioStudio generates one) with me, either here of via [email protected]?

Kevin-Mattheus-Moerman avatar Dec 15 '20 12:12 Kevin-Mattheus-Moerman

@Kevin-Mattheus-Moerman, I have sent the files to you.

MartinSnapform avatar Dec 15 '20 14:12 MartinSnapform

@MartinSnapform apologies I never got back to you. If you still have questions please email me: [email protected].

I'll close this issue for now.

Kevin-Mattheus-Moerman avatar May 22 '23 14:05 Kevin-Mattheus-Moerman