Hi Douglas, First of all, thanks for using OT. I checked the reference, and the method used is NOT the FORM approximation, but the FOSM method. Ie a linearization at the mean point of the input distribution and not at the most probable point. So you must use the TaylorExpansionMoments class instead of the FORM class. I also checked your code, and you made two mistakes in the probabilistic modeling: + the marginal distributions are not given in the correct order wrt the input varaibles of the model + the standard deviation of L is 0.1 and not 0.0001
If you use correctly the TaylorExpansionMoments class (ie its getMeanFirstOrder() and getCovariance() methods) you get for the reliability index: Beta=2.48039658511 And the probability (use DistFunc.pNormal() for Phi): P=0.00656181631695 I have a very limited access to the internet for the next two weeks (and an old blackberry to write messages...) so I cannot send you the full script before the 26th of August. Best regards Regis -------------------------------------------- En date de : Ven 4.8.17, Douglas Long <[email protected]> a écrit : Objet: Re: [ot-users] Open Turns FORM À: "Users" <[email protected]> Cc: "regis lebrun" <[email protected]>, "Philip Fernandes" <[email protected]> Date: Vendredi 4 août 2017, 19h48 my apologies. there was a type in the distributions list.import openturns as ot myFunction = ot.NumericalMathFunction(['P', 'L', 'W', 'T'], ['d'], ['W*T - P*L/4']) distributions_list = [ ot.Normal(0.0001, 0.00002), ot.Normal(600000, 100000), ot.Normal(10, 2), ot.Normal(8, 0.0001) ] copula = ot.IndependentCopula(4) compose_distribution = ot.ComposedDistribution(distributions_list, copula) vect = ot.RandomVector(compose_distribution) output = ot.RandomVector(myFunction, vect) myEvent = ot.Event(output, ot.Less(), 0) myCobyla = ot.Cobyla() myAlgo = ot.FORM(myCobyla, myEvent, [0.0001,600000,10,8]) myAlgo.run() result = myAlgo.getResult() print(result.getPhysicalSpaceDesignPoint()) print(result.getHasoferReliabilityIndex()) print(result.getEventProbability()) print(result.getLimitStateVariable()) print(result.getStandardSpaceDesignPoint()) print(result.getImportanceFactors()) On Fri, Aug 4, 2017 at 11:38 AM, Douglas Long <[email protected]> wrote: Hey Folks, I am attempting to recreate a FORM example.http://www2.mae.ufl.edu/ haftka/stropt/Lectures/FORM. pdfI am trying to get BETA = 2.48 as in the example linked above. here is my code but my results are different. I have tried many different solutions.any help would be greatly appreciated. Thanks,Dougimport openturns as ot myFunction = ot.NumericalMathFunction(['P', 'L', 'W', 'T'], ['d'], ['W*T - P*L/4']) distributions_list = [ ot.Normal(0.0001, 2), ot.Normal(600000, 0.1), ot.Normal(10, 0.00002), ot.Normal(8, 100000) ] copula = ot.IndependentCopula(4) compose_distribution = ot.ComposedDistribution( distributions_list, copula) vect = ot.RandomVector(compose_ distribution) output = ot.RandomVector(myFunction, vect) myEvent = ot.Event(output, ot.Less(), 0) myCobyla = ot.Cobyla() myAlgo = ot.FORM(myCobyla, myEvent, [0.0001,600000,10,8]) myAlgo.run() result = myAlgo.getResult() print(result. getPhysicalSpaceDesignPoint()) print(result. getHasoferReliabilityIndex()) print(result. getEventProbability()) print(result. getLimitStateVariable()) print(result. getStandardSpaceDesignPoint()) print(result. getImportanceFactors()) -- Douglas Long [email protected] -- Douglas Long [email protected] _______________________________________________ OpenTURNS users mailing list [email protected] http://openturns.org/mailman/listinfo/users -----La pièce jointe associée suit----- _______________________________________________ OpenTURNS users mailing list [email protected] http://openturns.org/mailman/listinfo/users
