The Class “PostComposite” calculates composite failure indices and reserve factors for a specified failure criterion. The calculation is done with CLA classes using a loading using finite element “Shell Forces” and “Shell Moments” Results. Practically, one defines a loading as follows:
ld=ClaLoad.new ld.Id="testLoad" ld.setMembrane([0.0,0.0,0.0],"femFM","femFM","femFM") ld.setFlexural([0.0,0.0,0.0],"femFM","femFM","femFM") ld.setOutOfPlane([0.0,0.0],"femFM","femFM") res=db.getResultCopy(lcName,scName,"Shell Forces", interpolation,grp,layers) res.modifyRefCoordSys(db,"lamCS") ld.setShellForces(res) res=db.getResultCopy(lcName,scName,"Shell Moments", interpolation,grp,layers) res.modifyRefCoordSys(db,"lamCS") ld.setShellMoments(res)
Then, the failure indices and reserve factors are calculated as follows:
criteria=[] criteria << ["composite_RF",criterion,"RF",false,false] criteria << ["composite_FI",criterion,"FI",false,false] outputs=db.calcFiniteElementResponse(@compDb,0.0,ld,[false,true,false], [],[],fos,criteria) rfRes=outputs["composite_RF"] fiRes=outputs["composite_FI"]
Note that the calculation uses a composite database stored in “@compDb” member data. This ClaDb object must have been defined before. The class also records envelopes of failure indices in “@minMosResults” member data.
Note that there is a limitation to the post-processing: the thermo-elastic part of the
laminate loading is not considered in this example. Therefore, the results might be inexact
for thermo-elastic load cases (orbit load cases for example). The class is defined in file
“POST/post_Composite.rb”.