DEMO_FEBio_trabeculae_compression

This demonstration shows the creation of a trabacular structure model derived from a triply periodic equation. The structure is meshed using tetrahedral elements and subjected to compression.

Contents

clear; close all; clc;

Plot settings

fontSize=15;
faceAlpha1=1;
faceAlpha2=0.5;
edgeColor=0.25*ones(1,3);
edgeWidth=1;
markerSize1=25;
boneColor=[1 0.8 0.7]*0.7;

path names

defaultFolder = fileparts(fileparts(mfilename('fullpath')));
savePath=fullfile(defaultFolder,'data','temp');

DEFINING GEOMETRY

The trabecular structure is here simulated using isosurfaces on triply periodic minimal surfaces functions.

samplePeriodSize=3;

%Get periodic surface
porousGeometryCase='g';
ns=12; %Number of voxel steps across period for image data (roughly number of points on mesh period)
nPeriods=[2 2 2]; %Number of periods in each direction
switch porousGeometryCase
    case 'g' %Gyroid
        n=nPeriods*ns; %Number of sample points
        isoLevel=0.; %Iso-surface level

        cutOffset=1/3*pi; %Cut level such that data "ends well"

        %Define coordinate limits
        xMin=0*pi;
        xMax=(xMin+2*pi*nPeriods(1))-cutOffset;
        yMin=0*pi;
        yMax=(yMin+2*pi*nPeriods(2))-cutOffset;
        zMin=0*pi;
        zMax=(zMin+2*pi*nPeriods(3))-cutOffset;
    case 'p' %Schwarz P
        n=nPeriods*ns; %Number of sample points
        isoLevel=0.; %Iso-surface level

        %Define coordinate limits
        xMin=0*pi;
        xMax=xMin+2*pi*nPeriods(1);
        yMin=0*pi;
        yMax=yMin+2*pi*nPeriods(2);
        zMin=0*pi;
        zMax=zMin+2*pi*nPeriods(3);
    case 'd' %Schwarz D
        n=nPeriods*ns; %Number of sample points
        isoLevel=0.; %Iso-surface level

        %Define coordinate limits
        xMin=0*pi;
        xMax=xMin+2*pi*nPeriods(1);
        yMin=0*pi;
        yMax=yMin+2*pi*nPeriods(2);
        zMin=0*pi;
        zMax=zMin+2*pi*nPeriods(3);
end

%Create coordinates
xRange=linspace(xMin,xMax,n(1));
yRange=linspace(yMin,yMax,n(2));
zRange=linspace(zMin,zMax,n(3));
[X,Y,Z]=meshgrid(xRange,yRange,zRange);
V=[X(:) Y(:) Z(:)];

%Calculate 3D image data
S=triplyPeriodicMinimal(V(:,1),V(:,2),V(:,3),porousGeometryCase);
S=reshape(S,size(X));

%Scaling coordinates
X=(X./abs(xMax-xMin)).*samplePeriodSize.*nPeriods(1);
Y=(Y./abs(yMax-yMin)).*samplePeriodSize.*nPeriods(2);
Z=(Z./abs(zMax-zMin)).*samplePeriodSize.*nPeriods(3);

%Compute isosurface
[Fi,Vi] = isosurface(X,Y,Z,S,isoLevel); %main isosurface
Fi=fliplr(Fi); %Flip so normal faces outward

%Merge nodes
[~,ind1,ind2]=unique(pround(Vi,5),'rows');
Vi=Vi(ind1,:);
Fi=ind2(Fi);
logicInvalid=any(diff(sort(Fi,2),[],2)==0,2);
Fi=Fi(~logicInvalid,:);

%Compute caps (to create closed surface)
[Fc,Vc] = isocaps(X,Y,Z,S,isoLevel); %Caps to close the shape
Fc=fliplr(Fc); %Flip so normal faces outward

%Merge nodes
[~,ind1,ind2]=unique(pround(Vc,5),'rows');
Vc=Vc(ind1,:);
Fc=ind2(Fc);
logicInvalid=any(diff(sort(Fc,2),[],2)==0,2);
Fc=Fc(~logicInvalid,:);

%Join model segments (isosurface and caps)
V=[Vi;Vc];
F=[Fi;Fc+size(Vi,1)];

%Find top and bottom face sets
[Nc]=patchNormal(Fc,Vc);
logicTop_Fc=Nc(:,3)>0.5;
logicTop=[false(size(Fi,1),1);logicTop_Fc];

[Nc]=patchNormal(Fc,Vc);
logicBottom_Fc=Nc(:,3)<-0.5;
logicBottom=[false(size(Fi,1),1);logicBottom_Fc];

%Merge nodes
[~,ind1,ind2]=unique(pround(V,5),'rows');
V=V(ind1,:);
F=ind2(F);

%Smoothen surface mesh (isosurface does not yield high quality mesh)
indRigid=F(size(Fi,1)+1:end,:);
indRigid=unique(indRigid(:));
cPar.n=50;
cPar.RigidConstraints=indRigid; %Boundary nodes are held on to
cPar.Method='tHC';
[~,IND_V]=patchIND(F,V,2);
[V]=patchSmooth(F,V,IND_V,cPar);

cFigure;
title('Gyroid derived model of trabecular structure','FontSize',fontSize);
xlabel('X','FontSize',fontSize);ylabel('Y','FontSize',fontSize); zlabel('Z','FontSize',fontSize); hold on;
patch('Faces',F,'Vertices',V,'FaceColor',boneColor,'edgeColor',edgeColor,'lineWidth',edgeWidth,'FaceAlpha',1);
patch('Faces',F(logicTop,:),'Vertices',V,'FaceColor','none','EdgeColor','r','lineWidth',edgeWidth,'FaceAlpha',1);
patch('Faces',F(logicBottom,:),'Vertices',V,'FaceColor','none','EdgeColor','b','lineWidth',edgeWidth,'FaceAlpha',1);
plotV(V(indRigid,:),'k.','MarkerSize',markerSize1);
axis equal; view(3); axis tight; axis vis3d; grid on;
set(gca,'FontSize',fontSize);
camlight headlight;

Save STL

% stlStruct.solidNames={'part'};
% stlStruct.solidVertices={V};
% stlStruct.solidFaces={F};
% stlStruct.solidNormals={[]};
%
% %Set main folder and fileName
% fileName=fullfile('C:\Users\kmoerman\Desktop\STL',['part_',porousGeometryCase,'.stl']);
%
% export_STL_txt(fileName,stlStruct);

Prepare for meshing by finding interior point

[~,indInner]=max(S(:)); %Due to isosurface spec. we can use this
V_in_1=[X(indInner) Y(indInner) Z(indInner)];

faceBoundaryMarker=ones(size(F,1),1);
faceBoundaryMarker(logicTop)=2;
faceBoundaryMarker(logicBottom)=3;

cFigure;
title('Inner point visualization','FontSize',fontSize);
xlabel('X','FontSize',fontSize);ylabel('Y','FontSize',fontSize); zlabel('Z','FontSize',fontSize); hold on;
patch('Faces',F,'Vertices',V,'FaceColor',boneColor,'edgeColor','none','FaceAlpha',0.5);
plotV(V_in_1,'r.','MarkerSize',markerSize1);

axis equal; view(3); axis tight; axis vis3d; grid on;
set(gca,'FontSize',fontSize);
camlight headlight;
drawnow;

DEFINE SMESH STRUCT FOR MESHING

stringOpt='-pq1.2AaYQ';
modelNameEnd='tempModel';
modelName=fullfile(savePath,modelNameEnd);
smeshName=[modelName,'.smesh'];

smeshStruct.stringOpt=stringOpt;
smeshStruct.Faces=fliplr(F);
smeshStruct.Nodes=V;
smeshStruct.holePoints=[];
smeshStruct.faceBoundaryMarker=faceBoundaryMarker; %Face boundary markers
smeshStruct.regionPoints=V_in_1; %region points
smeshStruct.regionA=[0.5];
smeshStruct.minRegionMarker=2; %Minimum region marker
smeshStruct.smeshName=smeshName;

MESH MODEL USING TETGEN

[meshOutput]=runTetGen(smeshStruct);
%runTetView(meshOutput.loadNameStruct.loadName_ele);

% Accessing the model element and patch data
FT=meshOutput.faces;
Fb=meshOutput.facesBoundary;
Cb=meshOutput.boundaryMarker;
VT=meshOutput.nodes;
C=meshOutput.faceMaterialID;
E=meshOutput.elements;
elementMaterialIndices=meshOutput.elementMaterialID;
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
--- TETGEN Tetrahedral meshing --- 18-Aug-2017 15:05:59
Warning: smeshStruct.smeshName input will be replaced by smeshStruct.modelName
in future releases! 
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
--- Writing SMESH file --- 18-Aug-2017 15:05:59
Warning: smeshStruct.smeshName input will be replaced by smeshStruct.modelName
in future releases! 
----> Adding node field
----> Adding facet field
----> Adding holes specification
----> Adding region specification
--- Done --- 18-Aug-2017 15:06:00
--- Running TetGen to mesh input boundary--- 18-Aug-2017 15:06:00
Opening /mnt/data/MATLAB/GIT/GIBBON/lib_ext/tetGen/tempFiles/tempModel.smesh.
--- Done --- 18-Aug-2017 15:06:01
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
--- Importing TetGen files --- 18-Aug-2017 15:06:01
--- Done --- 18-Aug-2017 15:06:01

SET UP BOUNDARY CONDITIONS

%List of nodes to fix
bcFixList=Fb(Cb==3,:);
bcFixList=unique(bcFixList(:));

%List of nodes to prescribe displacement for
bcPrescribeList=Fb(Cb==2,:);
bcPrescribeList=unique(bcPrescribeList(:));

%Define displacement magnitudes
displacementMagnitude=[0 0 -1.5];
bcPrescribeMagnitudes=displacementMagnitude(ones(1,numel(bcPrescribeList)),:);
%Plot model boundaries
cFigure;
title('Model boundaries and BC nodes','FontSize',fontSize);
xlabel('X','FontSize',fontSize); ylabel('Y','FontSize',fontSize); zlabel('Z','FontSize',fontSize); hold on;
gpatch(Fb,VT,Cb,'k',faceAlpha1);
plotV(VT(bcPrescribeList,:),'k.','MarkerSize',markerSize1);
plotV(VT(bcFixList,:),'k.','MarkerSize',markerSize1);
view(3); axis tight;  axis equal;  grid on;
set(gca,'FontSize',fontSize);
cMap=[boneColor;[1 0 0]; [0 1 0]];
colormap(cMap);
camlight headlight;
drawnow;

PLOTTING MODEL

%Selecting half of the model to see interior
Y=VT(:,2); YE=mean(Y(E),2);
logicCutView=YE>mean(Y);
[Fs,Cs]=element2patch(E(logicCutView,:),elementMaterialIndices(logicCutView),'tet4');

cFigure;
hold on;
title('Cut view of Solid tetrahedral mesh model','FontSize',fontSize);
gpatch(Fb,VT,0.5*ones(1,3),'none',0.5);
gpatch(Fs,VT,Cs,'k',1);
patchNormPlot(Fs,VT);
plotV(VT(unique(Fs(:)),:),'k.','MarkerSize',25);
camlight headlight;
axisGeom(gca,fontSize);
axis off;
colormap(cMap);
drawnow;

CONSTRUCTING FEB MODEL

FEB_struct.febio_spec.version='2.0';
FEB_struct.Module.Type='solid';

% Defining file names
FEB_struct.run_filename=[modelName,'.feb']; %FEB file name
FEB_struct.run_logname=[modelName,'.txt']; %FEBio log file name

febMatID=elementMaterialIndices;
febMatID(elementMaterialIndices==-2)=1;

%Creating FEB_struct
FEB_struct.Geometry.Nodes=VT;
FEB_struct.Geometry.Elements={E}; %The element sets
FEB_struct.Geometry.ElementType={'tet4'}; %The element types
FEB_struct.Geometry.ElementMat={febMatID};
FEB_struct.Geometry.ElementsPartName={'Trabeculae'};

% DEFINING MATERIALS
c1=1e-3;
k=c1*1e3;
FEB_struct.Materials{1}.Type='Mooney-Rivlin';
FEB_struct.Materials{1}.Name='cube_mat';
FEB_struct.Materials{1}.Properties={'c1','c2','k'};
FEB_struct.Materials{1}.Values={c1,0,k};

%Control section
FEB_struct.Control.AnalysisType='static';
FEB_struct.Control.Properties={'time_steps','step_size',...
    'max_refs','max_ups',...
    'dtol','etol','rtol','lstol'};
FEB_struct.Control.Values={20,0.05,...
    25,0,...
    0.001,0.01,0,0.9};
FEB_struct.Control.TimeStepperProperties={'dtmin','dtmax','max_retries','opt_iter','aggressiveness'};
FEB_struct.Control.TimeStepperValues={1e-4,0.05,5,10,1};

%Defining node sets
FEB_struct.Geometry.NodeSet{1}.Set=bcFixList;
FEB_struct.Geometry.NodeSet{1}.Name='bcFixList';
FEB_struct.Geometry.NodeSet{2}.Set=bcPrescribeList;
FEB_struct.Geometry.NodeSet{2}.Name='bcPrescribeList';

%Adding BC information
FEB_struct.Boundary.Fix{1}.bc='x';
FEB_struct.Boundary.Fix{1}.SetName=FEB_struct.Geometry.NodeSet{1}.Name;
FEB_struct.Boundary.Fix{2}.bc='y';
FEB_struct.Boundary.Fix{2}.SetName=FEB_struct.Geometry.NodeSet{1}.Name;
FEB_struct.Boundary.Fix{3}.bc='z';
FEB_struct.Boundary.Fix{3}.SetName=FEB_struct.Geometry.NodeSet{1}.Name;

FEB_struct.Boundary.Prescribe{1}.Set=bcPrescribeList;
FEB_struct.Boundary.Prescribe{1}.bc='x';
FEB_struct.Boundary.Prescribe{1}.lc=1;
FEB_struct.Boundary.Prescribe{1}.nodeScale=bcPrescribeMagnitudes(:,1);
FEB_struct.Boundary.Prescribe{1}.Type='relative';

FEB_struct.Boundary.Prescribe{2}.Set=bcPrescribeList;
FEB_struct.Boundary.Prescribe{2}.bc='y';
FEB_struct.Boundary.Prescribe{2}.lc=1;
FEB_struct.Boundary.Prescribe{2}.nodeScale=bcPrescribeMagnitudes(:,2);
FEB_struct.Boundary.Prescribe{2}.Type='relative';

FEB_struct.Boundary.Prescribe{3}.Set=bcPrescribeList;
FEB_struct.Boundary.Prescribe{3}.bc='z';
FEB_struct.Boundary.Prescribe{3}.lc=1;
FEB_struct.Boundary.Prescribe{3}.nodeScale=bcPrescribeMagnitudes(:,3);
FEB_struct.Boundary.Prescribe{3}.Type='relative';

%Load curves
FEB_struct.LoadData.LoadCurves.id=1;
FEB_struct.LoadData.LoadCurves.type={'linear'};
FEB_struct.LoadData.LoadCurves.loadPoints={[0 0;1 1;]};

%Adding output requests
FEB_struct.Output.VarTypes={'displacement','stress','relative volume'};

%Specify log file output
run_node_output_name=[modelNameEnd,'_node_out.txt'];
FEB_struct.run_output_names={run_node_output_name};
FEB_struct.output_types={'node_data'};
FEB_struct.data_types={'ux;uy;uz'};

SAVING .FEB FILE

FEB_struct.disp_opt=0; %Display waitbars option
febStruct2febFile(FEB_struct);
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
--- Writing FEBio XML object --- 18-Aug-2017 15:06:04
Adding Module level
Adding Control level
Adding Globals level
Adding Material level
Adding Geometry level
----> Adding node field
----> Adding element field
----> Adding tet4 element entries....
----> Adding NodeSet field
Adding Boundary level
----> Defining fix type boundary conditions
----> Defining prescribe type boundary conditions
Adding LoadData level
----> Defining load curves
Adding Output level
----> Adding plotfile field
----> Adding logfile field
Writing .feb file
--- Done --- 18-Aug-2017 15:06:10

RUNNING FEBIO JOB

% FEBioRunStruct.FEBioPath='C:\Program Files\febio2-2.2.6\bin\FEBio2.exe';
FEBioRunStruct.run_filename=FEB_struct.run_filename;
FEBioRunStruct.run_logname=FEB_struct.run_logname;
FEBioRunStruct.disp_on=1;
FEBioRunStruct.disp_log_on=1;
FEBioRunStruct.runMode='internal';%'internal';
FEBioRunStruct.t_check=0.25; %Time for checking log file (dont set too small)
FEBioRunStruct.maxtpi=1e99; %Max analysis time
FEBioRunStruct.maxLogCheckTime=3; %Max log file checking time

[runFlag]=runMonitorFEBio(FEBioRunStruct);%START FEBio NOW!!!!!!!!
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
--- STARTING FEBIO JOB --- 18-Aug-2017 15:06:10
===========================================================================
         ________    _________   _________     __     _________            
        |        |\ |        |\ |        |\   |  |\  /         \\          
        |    ____|| |    ____|| |    __  ||   |__|| |    ___    ||         
        |   |\___\| |   |\___\| |   |\_| ||    \_\| |   //  \   ||         
        |   ||      |   ||      |   || | ||    __   |  ||    |  ||         
        |   ||__    |   ||__    |   ||_| ||   |  |\ |  ||    |  ||         
        |       |\  |       |\  |         \\  |  || |  ||    |  ||         
        |    ___||  |    ___||  |    ___   || |  || |  ||    |  ||         
        |   |\__\|  |   |\__\|  |   |\__|  || |  || |  ||    |  ||         
        |   ||      |   ||      |   ||  |  || |  || |  ||    |  ||         
        |   ||      |   ||___   |   ||__|  || |  || |   \\__/   ||         
        |   ||      |        |\ |          || |  || |           ||         
        |___||      |________|| |__________|| |__||  \_________//          
                                                                           
      F I N I T E   E L E M E N T S   F O R   B I O M E C H A N I C S      
                                                                           
                 --- v e r s i o n - 2 . 5 . 2 . 8980 ---                 
                                                                           
                                                                           
  Musculoskeletal Research Laboratory                                      
  University of Utah                                                       
  http://febio.org                                                         
                                                                           
  FEBio is a registered trademark.                                         
  copyright (c) 2006-2015 - All rights reserved                            
                                                                           
 This is the NON-COMMERCIAL version of FEBio. This version may only be          
 used for non-commercial purposes as described in the license agreement.        
 To obtain a valid commercial license file, please contact the developers.      
                                                                           
===========================================================================


]0;(0%) tempModel.feb - FEBio 2.5.2.8980 
===== beginning time step 1 : 0.05 =====
===== reforming stiffness matrix:
	Nr of equations ........................... : 29073
	Nr of nonzeroes in stiffness matrix ....... : 559851

 1
 Nonlinear solution status: time= 0.05
	stiffness updates             = 0
	right hand side evaluations   = 2
	stiffness matrix reformations = 1
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            3.195936e-01    2.157563e-07    0.000000e+00 
	   energy              5.230705e-01    3.060434e-06    5.230705e-03 
	   displacement        2.056738e+01    2.056738e+01    2.056738e-05 
Reforming stiffness matrix: reformation #1

 2
 Nonlinear solution status: time= 0.05
	stiffness updates             = 0
	right hand side evaluations   = 3
	stiffness matrix reformations = 2
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            3.195936e-01    3.528863e-14    0.000000e+00 
	   energy              5.230705e-01    1.287004e-10    5.230705e-03 
	   displacement        2.056738e+01    2.123346e-04    2.059484e-05 
Reforming stiffness matrix: reformation #2

 3
 Nonlinear solution status: time= 0.05
	stiffness updates             = 0
	right hand side evaluations   = 4
	stiffness matrix reformations = 3
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            3.195936e-01    1.147965e-21    0.000000e+00 
	   energy              5.230705e-01    3.129968e-18    5.230705e-03 
	   displacement        2.056738e+01    1.618710e-08    2.059487e-05 


------- converged at time : 0.05

]0;(5%) tempModel.feb - FEBio 2.5.2.8980 
===== beginning time step 2 : 0.1 =====
 1
 Nonlinear solution status: time= 0.1
	stiffness updates             = 0
	right hand side evaluations   = 2
	stiffness matrix reformations = 1
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            3.164082e-01    2.235766e-07    0.000000e+00 
	   energy              5.233738e-01    3.226416e-06    5.233738e-03 
	   displacement        2.062309e+01    2.062309e+01    2.062309e-05 
Reforming stiffness matrix: reformation #1

 2
 Nonlinear solution status: time= 0.1
	stiffness updates             = 0
	right hand side evaluations   = 3
	stiffness matrix reformations = 2
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            3.164082e-01    4.266039e-14    0.000000e+00 
	   energy              5.233738e-01    1.359913e-10    5.233738e-03 
	   displacement        2.062309e+01    2.268119e-04    2.065234e-05 
Reforming stiffness matrix: reformation #2

 3
 Nonlinear solution status: time= 0.1
	stiffness updates             = 0
	right hand side evaluations   = 4
	stiffness matrix reformations = 3
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            3.164082e-01    1.275652e-21    0.000000e+00 
	   energy              5.233738e-01    3.776439e-18    5.233738e-03 
	   displacement        2.062309e+01    1.935800e-08    2.065237e-05 


------- converged at time : 0.1

]0;(10%) tempModel.feb - FEBio 2.5.2.8980 
===== beginning time step 3 : 0.15 =====
 1
 Nonlinear solution status: time= 0.15
	stiffness updates             = 0
	right hand side evaluations   = 2
	stiffness matrix reformations = 1
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            3.132581e-01    2.319044e-07    0.000000e+00 
	   energy              5.237008e-01    3.400417e-06    5.237008e-03 
	   displacement        2.068243e+01    2.068243e+01    2.068243e-05 
Reforming stiffness matrix: reformation #1

 2
 Nonlinear solution status: time= 0.15
	stiffness updates             = 0
	right hand side evaluations   = 3
	stiffness matrix reformations = 2
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            3.132581e-01    5.089315e-14    0.000000e+00 
	   energy              5.237008e-01    1.437840e-10    5.237008e-03 
	   displacement        2.068243e+01    2.425334e-04    2.071359e-05 
Reforming stiffness matrix: reformation #2

 3
 Nonlinear solution status: time= 0.15
	stiffness updates             = 0
	right hand side evaluations   = 4
	stiffness matrix reformations = 3
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            3.132581e-01    1.470044e-21    0.000000e+00 
	   energy              5.237008e-01    4.473266e-18    5.237008e-03 
	   displacement        2.068243e+01    2.328206e-08    2.071362e-05 


------- converged at time : 0.15

]0;(15%) tempModel.feb - FEBio 2.5.2.8980 
===== beginning time step 4 : 0.2 =====
 1
 Nonlinear solution status: time= 0.2
	stiffness updates             = 0
	right hand side evaluations   = 2
	stiffness matrix reformations = 1
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            3.101482e-01    2.407976e-07    0.000000e+00 
	   energy              5.240529e-01    3.582590e-06    5.240529e-03 
	   displacement        2.074564e+01    2.074564e+01    2.074564e-05 
Reforming stiffness matrix: reformation #1

 2
 Nonlinear solution status: time= 0.2
	stiffness updates             = 0
	right hand side evaluations   = 3
	stiffness matrix reformations = 2
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            3.101482e-01    5.973696e-14    0.000000e+00 
	   energy              5.240529e-01    1.521281e-10    5.240529e-03 
	   displacement        2.074564e+01    2.596383e-04    2.077884e-05 
Reforming stiffness matrix: reformation #2

 3
 Nonlinear solution status: time= 0.2
	stiffness updates             = 0
	right hand side evaluations   = 4
	stiffness matrix reformations = 3
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            3.101482e-01    1.763398e-21    0.000000e+00 
	   energy              5.240529e-01    5.115416e-18    5.240529e-03 
	   displacement        2.074564e+01    2.813537e-08    2.077887e-05 


------- converged at time : 0.2

]0;(20%) tempModel.feb - FEBio 2.5.2.8980 
===== beginning time step 5 : 0.25 =====
 1
 Nonlinear solution status: time= 0.25
	stiffness updates             = 0
	right hand side evaluations   = 2
	stiffness matrix reformations = 1
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            3.070836e-01    2.503281e-07    0.000000e+00 
	   energy              5.244317e-01    3.773031e-06    5.244317e-03 
	   displacement        2.081299e+01    2.081299e+01    2.081299e-05 
Reforming stiffness matrix: reformation #1

 2
 Nonlinear solution status: time= 0.25
	stiffness updates             = 0
	right hand side evaluations   = 3
	stiffness matrix reformations = 2
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            3.070836e-01    6.888007e-14    0.000000e+00 
	   energy              5.244317e-01    1.610852e-10    5.244317e-03 
	   displacement        2.081299e+01    2.782866e-04    2.084837e-05 
Reforming stiffness matrix: reformation #2

 3
 Nonlinear solution status: time= 0.25
	stiffness updates             = 0
	right hand side evaluations   = 4
	stiffness matrix reformations = 3
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            3.070836e-01    2.216453e-21    0.000000e+00 
	   energy              5.244317e-01    5.502955e-18    5.244317e-03 
	   displacement        2.081299e+01    3.413595e-08    2.084840e-05 


------- converged at time : 0.25

]0;(25%) tempModel.feb - FEBio 2.5.2.8980 
===== beginning time step 6 : 0.3 =====
 1
 Nonlinear solution status: time= 0.3
	stiffness updates             = 0
	right hand side evaluations   = 2
	stiffness matrix reformations = 1
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            3.040699e-01    2.605884e-07    0.000000e+00 
	   energy              5.248390e-01    3.971771e-06    5.248390e-03 
	   displacement        2.088476e+01    2.088476e+01    2.088476e-05 
Reforming stiffness matrix: reformation #1

 2
 Nonlinear solution status: time= 0.3
	stiffness updates             = 0
	right hand side evaluations   = 3
	stiffness matrix reformations = 2
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            3.040699e-01    7.804906e-14    0.000000e+00 
	   energy              5.248390e-01    1.707660e-10    5.248390e-03 
	   displacement        2.088476e+01    2.986635e-04    2.092249e-05 
Reforming stiffness matrix: reformation #2

 3
 Nonlinear solution status: time= 0.3
	stiffness updates             = 0
	right hand side evaluations   = 4
	stiffness matrix reformations = 3
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            3.040699e-01    2.950840e-21    0.000000e+00 
	   energy              5.248390e-01    5.153153e-18    5.248390e-03 
	   displacement        2.088476e+01    4.156184e-08    2.092251e-05 


------- converged at time : 0.3

]0;(30%) tempModel.feb - FEBio 2.5.2.8980 
===== beginning time step 7 : 0.35 =====
 1
 Nonlinear solution status: time= 0.35
	stiffness updates             = 0
	right hand side evaluations   = 2
	stiffness matrix reformations = 1
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            3.011131e-01    2.717020e-07    0.000000e+00 
	   energy              5.252765e-01    4.178770e-06    5.252765e-03 
	   displacement        2.096128e+01    2.096128e+01    2.096128e-05 
Reforming stiffness matrix: reformation #1

 2
 Nonlinear solution status: time= 0.35
	stiffness updates             = 0
	right hand side evaluations   = 3
	stiffness matrix reformations = 2
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            3.011131e-01    8.718192e-14    0.000000e+00 
	   energy              5.252765e-01    1.813878e-10    5.252765e-03 
	   displacement        2.096128e+01    3.209858e-04    2.100154e-05 
Reforming stiffness matrix: reformation #2

 3
 Nonlinear solution status: time= 0.35
	stiffness updates             = 0
	right hand side evaluations   = 4
	stiffness matrix reformations = 3
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            3.011131e-01    4.488102e-21    0.000000e+00 
	   energy              5.252765e-01    2.264153e-18    5.252765e-03 
	   displacement        2.096128e+01    5.078193e-08    2.100156e-05 


------- converged at time : 0.35

]0;(35%) tempModel.feb - FEBio 2.5.2.8980 
===== beginning time step 8 : 0.4 =====
 1
 Nonlinear solution status: time= 0.4
	stiffness updates             = 0
	right hand side evaluations   = 2
	stiffness matrix reformations = 1
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            2.982196e-01    2.838421e-07    0.000000e+00 
	   energy              5.257461e-01    4.393909e-06    5.257461e-03 
	   displacement        2.104293e+01    2.104293e+01    2.104293e-05 
Reforming stiffness matrix: reformation #1

 2
 Nonlinear solution status: time= 0.4
	stiffness updates             = 0
	right hand side evaluations   = 3
	stiffness matrix reformations = 2
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            2.982196e-01    9.670196e-14    0.000000e+00 
	   energy              5.257461e-01    1.933802e-10    5.257461e-03 
	   displacement        2.104293e+01    3.455118e-04    2.108592e-05 
Reforming stiffness matrix: reformation #2

 3
 Nonlinear solution status: time= 0.4
	stiffness updates             = 0
	right hand side evaluations   = 4
	stiffness matrix reformations = 3
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            2.982196e-01    1.191427e-20    0.000000e+00 
	   energy              5.257461e-01    1.217542e-17    5.257461e-03 
	   displacement        2.104293e+01    6.231272e-08    2.108593e-05 


------- converged at time : 0.4

]0;(40%) tempModel.feb - FEBio 2.5.2.8980 
===== beginning time step 9 : 0.45 =====
 1
 Nonlinear solution status: time= 0.45
	stiffness updates             = 0
	right hand side evaluations   = 2
	stiffness matrix reformations = 1
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            2.953961e-01    2.972667e-07    0.000000e+00 
	   energy              5.262497e-01    4.617009e-06    5.262497e-03 
	   displacement        2.113013e+01    2.113013e+01    2.113013e-05 
Reforming stiffness matrix: reformation #1

 2
 Nonlinear solution status: time= 0.45
	stiffness updates             = 0
	right hand side evaluations   = 3
	stiffness matrix reformations = 2
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            2.953961e-01    1.077388e-13    0.000000e+00 
	   energy              5.262497e-01    2.075538e-10    5.262497e-03 
	   displacement        2.113013e+01    3.725490e-04    2.117609e-05 
Reforming stiffness matrix: reformation #2

 3
 Nonlinear solution status: time= 0.45
	stiffness updates             = 0
	right hand side evaluations   = 4
	stiffness matrix reformations = 3
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            2.953961e-01    8.591380e-20    0.000000e+00 
	   energy              5.262497e-01    7.924227e-17    5.262497e-03 
	   displacement        2.113013e+01    7.693941e-08    2.117610e-05 


------- converged at time : 0.45

]0;(45%) tempModel.feb - FEBio 2.5.2.8980 
===== beginning time step 10 : 0.5 =====
 1
 Nonlinear solution status: time= 0.5
	stiffness updates             = 0
	right hand side evaluations   = 2
	stiffness matrix reformations = 1
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            2.926501e-01    3.123754e-07    0.000000e+00 
	   energy              5.267893e-01    4.847913e-06    5.267893e-03 
	   displacement        2.122338e+01    2.122338e+01    2.122338e-05 
Reforming stiffness matrix: reformation #1

 2
 Nonlinear solution status: time= 0.5
	stiffness updates             = 0
	right hand side evaluations   = 3
	stiffness matrix reformations = 2
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            2.926501e-01    1.208030e-13    0.000000e+00 
	   energy              5.267893e-01    2.241487e-10    5.267893e-03 
	   displacement        2.122338e+01    4.024552e-04    2.127259e-05 
Reforming stiffness matrix: reformation #2

 3
 Nonlinear solution status: time= 0.5
	stiffness updates             = 0
	right hand side evaluations   = 4
	stiffness matrix reformations = 3
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            2.926501e-01    6.910050e-19    0.000000e+00 
	   energy              5.267893e-01    2.394559e-16    5.267893e-03 
	   displacement        2.122338e+01    9.589815e-08    2.127259e-05 


------- converged at time : 0.5

]0;(50%) tempModel.feb - FEBio 2.5.2.8980 
===== beginning time step 11 : 0.55 =====
 1
 Nonlinear solution status: time= 0.55
	stiffness updates             = 0
	right hand side evaluations   = 2
	stiffness matrix reformations = 1
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            2.899893e-01    3.297158e-07    0.000000e+00 
	   energy              5.273671e-01    5.086601e-06    5.273671e-03 
	   displacement        2.132324e+01    2.132324e+01    2.132324e-05 
Reforming stiffness matrix: reformation #1

 2
 Nonlinear solution status: time= 0.55
	stiffness updates             = 0
	right hand side evaluations   = 3
	stiffness matrix reformations = 2
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            2.899893e-01    1.452682e-13    0.000000e+00 
	   energy              5.273671e-01    2.373510e-10    5.273671e-03 
	   displacement        2.132324e+01    4.356845e-04    2.137603e-05 
Reforming stiffness matrix: reformation #2

 3
 Nonlinear solution status: time= 0.55
	stiffness updates             = 0
	right hand side evaluations   = 4
	stiffness matrix reformations = 3
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            2.899893e-01    1.615405e-18    0.000000e+00 
	   energy              5.273671e-01    8.377853e-17    5.273671e-03 
	   displacement        2.132324e+01    1.199975e-07    2.137603e-05 


------- converged at time : 0.55

]0;(55%) tempModel.feb - FEBio 2.5.2.8980 
===== beginning time step 12 : 0.6 =====
 1
 Nonlinear solution status: time= 0.6
	stiffness updates             = 0
	right hand side evaluations   = 2
	stiffness matrix reformations = 1
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            2.874219e-01    3.496336e-07    0.000000e+00 
	   energy              5.279852e-01    5.332625e-06    5.279852e-03 
	   displacement        2.143041e+01    2.143041e+01    2.143041e-05 
Reforming stiffness matrix: reformation #1

 2
 Nonlinear solution status: time= 0.6
	stiffness updates             = 0
	right hand side evaluations   = 3
	stiffness matrix reformations = 2
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            2.874219e-01    2.799238e-13    0.000000e+00 
	   energy              5.279852e-01    2.420022e-10    5.279852e-03 
	   displacement        2.143041e+01    4.733004e-04    2.148722e-05 
Reforming stiffness matrix: reformation #2

 3
 Nonlinear solution status: time= 0.6
	stiffness updates             = 0
	right hand side evaluations   = 4
	stiffness matrix reformations = 3
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            2.874219e-01    1.989821e-19    0.000000e+00 
	   energy              5.279852e-01    5.332929e-17    5.279852e-03 
	   displacement        2.143041e+01    1.491766e-07    2.148721e-05 


------- converged at time : 0.6

]0;(60%) tempModel.feb - FEBio 2.5.2.8980 
===== beginning time step 13 : 0.65 =====
 1
 Nonlinear solution status: time= 0.65
	stiffness updates             = 0
	right hand side evaluations   = 2
	stiffness matrix reformations = 1
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            2.849567e-01    3.723344e-07    0.000000e+00 
	   energy              5.286460e-01    5.583716e-06    5.286460e-03 
	   displacement        2.154580e+01    2.154580e+01    2.154580e-05 
Reforming stiffness matrix: reformation #1

 2
 Nonlinear solution status: time= 0.65
	stiffness updates             = 0
	right hand side evaluations   = 3
	stiffness matrix reformations = 2
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            2.849567e-01    1.440447e-12    0.000000e+00 
	   energy              5.286460e-01    2.815749e-10    5.286460e-03 
	   displacement        2.154580e+01    5.189625e-04    2.160726e-05 
Reforming stiffness matrix: reformation #2

 3
 Nonlinear solution status: time= 0.65
	stiffness updates             = 0
	right hand side evaluations   = 4
	stiffness matrix reformations = 3
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            2.849567e-01    4.551991e-18    0.000000e+00 
	   energy              5.286460e-01    1.477898e-14    5.286460e-03 
	   displacement        2.154580e+01    1.920502e-07    2.160729e-05 


------- converged at time : 0.65

]0;(65%) tempModel.feb - FEBio 2.5.2.8980 
===== beginning time step 14 : 0.7 =====
 1
 Nonlinear solution status: time= 0.7
	stiffness updates             = 0
	right hand side evaluations   = 2
	stiffness matrix reformations = 1
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            2.826031e-01    4.015327e-07    0.000000e+00 
	   energy              5.293518e-01    5.842253e-06    5.293518e-03 
	   displacement        2.167096e+01    2.167096e+01    2.167096e-05 
Reforming stiffness matrix: reformation #1

 2
 Nonlinear solution status: time= 0.7
	stiffness updates             = 0
	right hand side evaluations   = 3
	stiffness matrix reformations = 2
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            2.826031e-01    9.813470e-12    0.000000e+00 
	   energy              5.293518e-01    7.589595e-10    5.293518e-03 
	   displacement        2.167096e+01    5.772624e-04    2.173790e-05 
Reforming stiffness matrix: reformation #2

 3
 Nonlinear solution status: time= 0.7
	stiffness updates             = 0
	right hand side evaluations   = 4
	stiffness matrix reformations = 3
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            2.826031e-01    1.759975e-14    0.000000e+00 
	   energy              5.293518e-01    8.957334e-12    5.293518e-03 
	   displacement        2.167096e+01    6.949513e-07    2.173825e-05 


------- converged at time : 0.7

]0;(70%) tempModel.feb - FEBio 2.5.2.8980 
===== beginning time step 15 : 0.75 =====
 1
 Nonlinear solution status: time= 0.75
	stiffness updates             = 0
	right hand side evaluations   = 2
	stiffness matrix reformations = 1
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            2.803714e-01    4.516654e-07    0.000000e+00 
	   energy              5.301047e-01    6.207061e-06    5.301047e-03 
	   displacement        2.180832e+01    2.180832e+01    2.180832e-05 
Reforming stiffness matrix: reformation #1

 2
 Nonlinear solution status: time= 0.75
	stiffness updates             = 0
	right hand side evaluations   = 3
	stiffness matrix reformations = 2
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            2.803714e-01    8.810051e-10    0.000000e+00 
	   energy              5.301047e-01    1.136290e-08    5.301047e-03 
	   displacement        2.180832e+01    6.980691e-04    2.188012e-05 
Reforming stiffness matrix: reformation #2

 3
 Nonlinear solution status: time= 0.75
	stiffness updates             = 0
	right hand side evaluations   = 4
	stiffness matrix reformations = 3
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            2.803714e-01    5.649001e-11    0.000000e+00 
	   energy              5.301047e-01    6.522736e-09    5.301047e-03 
	   displacement        2.180832e+01    3.154738e-05    2.188266e-05 
Reforming stiffness matrix: reformation #3

 4
 Nonlinear solution status: time= 0.75
	stiffness updates             = 0
	right hand side evaluations   = 5
	stiffness matrix reformations = 4
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            2.803714e-01    4.593605e-13    0.000000e+00 
	   energy              5.301047e-01    2.708906e-10    5.301047e-03 
	   displacement        2.180832e+01    3.233096e-06    2.188210e-05 


------- converged at time : 0.75

]0;(75%) tempModel.feb - FEBio 2.5.2.8980 
===== beginning time step 16 : 0.8 =====
 1
 Nonlinear solution status: time= 0.8
	stiffness updates             = 0
	right hand side evaluations   = 2
	stiffness matrix reformations = 1
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            2.782756e-01    4.879980e-07    0.000000e+00 
	   energy              5.309072e-01    6.422645e-06    5.309072e-03 
	   displacement        2.194978e+01    2.194978e+01    2.194978e-05 
Reforming stiffness matrix: reformation #1

 2
 Nonlinear solution status: time= 0.8
	stiffness updates             = 0
	right hand side evaluations   = 3
	stiffness matrix reformations = 2
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            2.782756e-01    1.578059e-11    0.000000e+00 
	   energy              5.309072e-01    2.738796e-10    5.309072e-03 
	   displacement        2.194978e+01    6.683252e-04    2.202505e-05 
Reforming stiffness matrix: reformation #2

 3
 Nonlinear solution status: time= 0.8
	stiffness updates             = 0
	right hand side evaluations   = 4
	stiffness matrix reformations = 3
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            2.782756e-01    4.078541e-15    0.000000e+00 
	   energy              5.309072e-01    1.389557e-12    5.309072e-03 
	   displacement        2.194978e+01    7.294853e-07    2.202487e-05 


------- converged at time : 0.8

]0;(80%) tempModel.feb - FEBio 2.5.2.8980 
===== beginning time step 17 : 0.85 =====
 1
 Nonlinear solution status: time= 0.85
	stiffness updates             = 0
	right hand side evaluations   = 2
	stiffness matrix reformations = 1
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            2.763216e-01    5.489461e-07    0.000000e+00 
	   energy              5.317617e-01    6.700545e-06    5.317617e-03 
	   displacement        2.210244e+01    2.210244e+01    2.210244e-05 
Reforming stiffness matrix: reformation #1

 2
 Nonlinear solution status: time= 0.85
	stiffness updates             = 0
	right hand side evaluations   = 3
	stiffness matrix reformations = 2
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            2.763216e-01    6.243317e-12    0.000000e+00 
	   energy              5.317617e-01    1.360426e-09    5.317617e-03 
	   displacement        2.210244e+01    7.373547e-04    2.218254e-05 
Reforming stiffness matrix: reformation #2

 3
 Nonlinear solution status: time= 0.85
	stiffness updates             = 0
	right hand side evaluations   = 4
	stiffness matrix reformations = 3
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            2.763216e-01    1.189407e-14    0.000000e+00 
	   energy              5.317617e-01    3.022540e-13    5.317617e-03 
	   displacement        2.210244e+01    2.131649e-06    2.218224e-05 


------- converged at time : 0.85

]0;(85%) tempModel.feb - FEBio 2.5.2.8980 
===== beginning time step 18 : 0.9 =====
 1
 Nonlinear solution status: time= 0.9
	stiffness updates             = 0
	right hand side evaluations   = 2
	stiffness matrix reformations = 1
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            2.745267e-01    6.743195e-07    0.000000e+00 
	   energy              5.326707e-01    7.139671e-06    5.326707e-03 
	   displacement        2.226308e+01    2.226308e+01    2.226308e-05 
Reforming stiffness matrix: reformation #1

 2
 Nonlinear solution status: time= 0.9
	stiffness updates             = 0
	right hand side evaluations   = 3
	stiffness matrix reformations = 2
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            2.745267e-01    4.925500e-11    0.000000e+00 
	   energy              5.326707e-01    1.410357e-09    5.326707e-03 
	   displacement        2.226308e+01    8.684389e-04    2.234624e-05 
Reforming stiffness matrix: reformation #2

 3
 Nonlinear solution status: time= 0.9
	stiffness updates             = 0
	right hand side evaluations   = 4
	stiffness matrix reformations = 3
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            2.745267e-01    1.014834e-12    0.000000e+00 
	   energy              5.326707e-01    8.093128e-12    5.326707e-03 
	   displacement        2.226308e+01    2.141966e-05    2.234323e-05 


------- converged at time : 0.9

]0;(90%) tempModel.feb - FEBio 2.5.2.8980 
===== beginning time step 19 : 0.95 =====
 1
 Nonlinear solution status: time= 0.95
	stiffness updates             = 0
	right hand side evaluations   = 2
	stiffness matrix reformations = 1
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            2.729076e-01    9.809486e-07    0.000000e+00 
	   energy              5.336363e-01    8.249696e-06    5.336363e-03 
	   displacement        2.242699e+01    2.242699e+01    2.242699e-05 
Reforming stiffness matrix: reformation #1

 2
 Nonlinear solution status: time= 0.95
	stiffness updates             = 0
	right hand side evaluations   = 3
	stiffness matrix reformations = 2
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            2.729076e-01    2.557969e-09    0.000000e+00 
	   energy              5.336363e-01    7.011839e-08    5.336363e-03 
	   displacement        2.242699e+01    1.033198e-03    2.252021e-05 
Reforming stiffness matrix: reformation #2

 3
 Nonlinear solution status: time= 0.95
	stiffness updates             = 0
	right hand side evaluations   = 4
	stiffness matrix reformations = 3
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            2.729076e-01    1.406979e-10    0.000000e+00 
	   energy              5.336363e-01    3.000340e-09    5.336363e-03 
	   displacement        2.242699e+01    8.493158e-05    2.252573e-05 
Reforming stiffness matrix: reformation #3

 4
 Nonlinear solution status: time= 0.95
	stiffness updates             = 0
	right hand side evaluations   = 5
	stiffness matrix reformations = 4
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            2.729076e-01    4.403353e-12    0.000000e+00 
	   energy              5.336363e-01    1.346534e-10    5.336363e-03 
	   displacement        2.242699e+01    9.601212e-06    2.252411e-05 


------- converged at time : 0.95

]0;(95%) tempModel.feb - FEBio 2.5.2.8980 MUST POINT CONTROLLER: adjusting time step. dt = 0.05


===== beginning time step 20 : 1 =====
 1
 Nonlinear solution status: time= 1
	stiffness updates             = 0
	right hand side evaluations   = 2
	stiffness matrix reformations = 1
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            2.714611e-01    9.124535e-07    0.000000e+00 
	   energy              5.346580e-01    8.032541e-06    5.346580e-03 
	   displacement        2.262666e+01    2.262666e+01    2.262666e-05 
Reforming stiffness matrix: reformation #1

 2
 Nonlinear solution status: time= 1
	stiffness updates             = 0
	right hand side evaluations   = 3
	stiffness matrix reformations = 2
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            2.714611e-01    5.555075e-11    0.000000e+00 
	   energy              5.346580e-01    1.153417e-09    5.346580e-03 
	   displacement        2.262666e+01    1.013801e-03    2.272947e-05 
Reforming stiffness matrix: reformation #2

 3
 Nonlinear solution status: time= 1
	stiffness updates             = 0
	right hand side evaluations   = 4
	stiffness matrix reformations = 3
	step from line search         = 1.000000
	convergence norms :     INITIAL         CURRENT         REQUIRED
	   residual            2.714611e-01    8.716417e-13    0.000000e+00 
	   energy              5.346580e-01    1.957701e-11    5.346580e-03 
	   displacement        2.262666e+01    1.363369e-05    2.273318e-05 


------- converged at time : 1

]0;(100%) tempModel.feb - FEBio 2.5.2.8980 

N O N L I N E A R   I T E R A T I O N   I N F O R M A T I O N

	Number of time steps completed .................... : 20

	Total number of equilibrium iterations ............ : 62

	Average number of equilibrium iterations .......... : 3.1

	Total number of right hand evaluations ............ : 82

	Total number of stiffness reformations ............ : 62

	Time in linear solver: 0:00:10


 Elapsed time : 0:00:20


 N O R M A L   T E R M I N A T I O N

Waiting for log file...
Proceeding to check log file...18-Aug-2017 15:06:30
------- converged at time : 0.05
------- converged at time : 0.1
------- converged at time : 0.15
------- converged at time : 0.2
------- converged at time : 0.25
------- converged at time : 0.3
------- converged at time : 0.35
------- converged at time : 0.4
------- converged at time : 0.45
------- converged at time : 0.5
------- converged at time : 0.55
------- converged at time : 0.6
------- converged at time : 0.65
------- converged at time : 0.7
------- converged at time : 0.75
------- converged at time : 0.8
------- converged at time : 0.85
------- converged at time : 0.9
------- converged at time : 0.95
------- converged at time : 1
--- Done --- 18-Aug-2017 15:06:30

IMPORTING NODAL DISPLACEMENT RESULTS

Importing nodal displacements from a log file

 fName=fullfile(savePath,FEB_struct.run_output_names{1});
[~, N_disp_mat,~]=importFEBio_logfile(fName); %Nodal displacements

DN=N_disp_mat(:,2:end,end); %Final nodal displacements

CREATING NODE SET IN DEFORMED STATE

VT_def=VT+DN;
DN_magnitude=sqrt(sum(DN.^2,2));

Plotting the deformed model

[CF]=vertexToFaceMeasure(F,DN_magnitude);

hf1=cFigure;
title('The deformed model','FontSize',fontSize);
xlabel('X','FontSize',fontSize); ylabel('Y','FontSize',fontSize); zlabel('Z','FontSize',fontSize); hold on;

hps=patch('Faces',F,'Vertices',VT_def,'FaceColor','flat','CData',CF,'lineWidth',edgeWidth,'edgeColor',edgeColor,'FaceAlpha',faceAlpha1);

view(3); axis tight;  axis equal;  grid on;
colormap jet; colorbar;
camlight headlight;
set(gca,'FontSize',fontSize);
drawnow;

GIBBON www.gibboncode.org

Kevin Mattheus Moerman, [email protected]

GIBBON footer text

License: https://github.com/gibbonCode/GIBBON/blob/master/LICENSE

GIBBON: The Geometry and Image-based Bioengineering add-On. A toolbox for image segmentation, image-based modeling, meshing, and finite element analysis.

Copyright (C) 2017 Kevin Mattheus Moerman

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.