import persalys import os anOTStudy = persalys.Study('anOTStudy') # Model X0 = persalys.Input('X0', 1, ot.Normal()) X1 = persalys.Input('X1', 2, ot.Normal()) Y0 = persalys.Output('Y0') model = persalys.SymbolicPhysicalModel('aModelPhys', [X0, X1], [Y0], ['sin(X0)+8*X1']) anOTStudy.add(model) # Design of Experiment ## aDesign = persalys.GridDesignOfExperiment('aDesign_1', model, [[0.9, 1.1], [1.8, 2.2]]) anOTStudy.add(aDesign) aDesign.run() print('outs=', aDesign.getResult().getDesignOfExperiment().getOutputSample()) # Design of Experiment ## filename = 'normal.csv' ot.Normal(3).getSample(10).exportToCSVFile(filename) aDesign2 = persalys.ImportedDesignOfExperiment('aDesign_2', model, filename, [0, 2]) anOTStudy.add(aDesign2) aDesign2.run() print('outs=', aDesign2.getResult().getDesignOfExperiment().getOutputSample())
sample.exportToCSVFile(filename, ' ') # Designs of Experiment ## # fixed design ## ot.RandomGenerator.SetSeed(0) fixedDesign = persalys.FixedDesignOfExperiment('fixedDesign', symbolicModel) inputSample = ot.LHSExperiment(ot.ComposedDistribution([ot.Uniform(0., 10.), ot.Uniform(0., 10.)]), 10).generate() inputSample.stack(ot.Sample(10, [0.5])) fixedDesign.setOriginalInputSample(inputSample) fixedDesign.run() myStudy.add(fixedDesign) # grid ## values = [[0.5+i*1.5 for i in range(7)], [0.5+i*1.5 for i in range(7)], [1]] grid = persalys.GridDesignOfExperiment('grid', symbolicModel, values) myStudy.add(grid) # importDesign ## importDesign = persalys.ImportedDesignOfExperiment('importDesign', symbolicModel, 'data.csv', [0, 2, 3]) importDesign.run() myStudy.add(importDesign) # onePointDesign ## onePointDesign = persalys.GridDesignOfExperiment('onePointDesign', pythonModel) myStudy.add(onePointDesign) # twoPointsDesign ## twoPointsDesign = persalys.GridDesignOfExperiment('twoPointsDesign', pythonModel, [[0.2], [1.2], [-0.2, 1.]]) myStudy.add(twoPointsDesign)
C = persalys.Input('C', 4000, dist_C, 'Valued thermal energy (W.h)') Ep = persalys.Output('Ep', 'Primary energy savings (W.h)') model = persalys.SymbolicPhysicalModel('myPhysicalModel', [Q, E, C], [Ep], ['1-(Q/((E/((1-0.05)*0.54))+(C/0.8)))']) myStudy.add(model) outputSample = [[0.060036508072], [0.0812679132055], [0.0684295269203], [0.0892876773294], [0.0292238907867], [0.0511512752497], [0.0378920382755], [0.0594339324804]] # Design of Experiment - Parametric analysis ## bounds = persalys.GridDesignOfExperiment.GetDefaultBounds(model) values = [[bounds.getLowerBound()[i], bounds.getUpperBound()[i]] for i in range(3)] aDesign = persalys.GridDesignOfExperiment('aDesign_0', model, values) myStudy.add(aDesign) aDesign.run() # Comparaison openturns.testing.assert_almost_equal( outputSample, aDesign.getResult().getDesignOfExperiment().getOutputSample(), 1e-16) # Taylor Expansions ## taylorExpansionsMoments = persalys.TaylorExpansionMomentsAnalysis( 'myTaylorExpansionMoments', model) myStudy.add(taylorExpansionsMoments) taylorExpansionsMoments.run() taylorExpansionsMomentsResult = taylorExpansionsMoments.getResult()
R = persalys.Input('R', 300., dist_R, 'Yield stress (Pa)') F = persalys.Input('F', 75000., dist_F, 'Traction force (N)') G = persalys.Output('G', 'Stress difference (Pa)') code = 'from math import pi\n\ndef _exec(R, F):\n G = R-F/(pi*100.0)\n return G\n' model = persalys.PythonPhysicalModel('myPhysicalModel', [R, F], [G], code) myStudy.add(model) f = model.getFunction() print(f([300., 75000.])) # Design of Experiment - Parametric analysis ## bounds = persalys.GridDesignOfExperiment.GetDefaultBounds(model) values = [[bounds.getLowerBound()[i], bounds.getUpperBound()[i]] for i in range(2)] aDesign = persalys.GridDesignOfExperiment('design', model, values) myStudy.add(aDesign) aDesign.run() # Taylor Expansion ## taylorExpansionsMoments = persalys.TaylorExpansionMomentsAnalysis( 'myTaylorExpansionMoments', model) myStudy.add(taylorExpansionsMoments) taylorExpansionsMoments.run() taylorExpansionsMomentsResult = taylorExpansionsMoments.getResult() # Monte Carlo ## montecarlo = persalys.MonteCarloAnalysis('myMonteCarlo', model) montecarlo.setMaximumCalls(1000) myStudy.add(montecarlo) montecarlo.run()
[ot.Normal(), ot.Gumbel(), ot.Normal(), ot.Uniform()], ot.ComposedCopula([ot.IndependentCopula(2), ot.GumbelCopula()])) sample = cDist.getSample(200) sample.exportToCSVFile(filename, ' ') model3 = persalys.DataModel('model3', 'data.csv', [0, 2, 3], [1], ['x_0', 'x_2', 'x_3'], ['x_1']) myStudy.add(model3) # Designs of Experiment ## # design 2 ## values = [[0.5 + i * 1.5 for i in range(7)], [0.5 + i * 1.5 for i in range(7)], [1]] design_2 = persalys.GridDesignOfExperiment('design_2', model1, values) myStudy.add(design_2) # design 4 ## probaDesign = persalys.ProbabilisticDesignOfExperiment('probaDesign', model1, 100, "MONTE_CARLO") probaDesign.run() myStudy.add(probaDesign) design_3 = persalys.ImportedDesignOfExperiment('design_3', model1, 'data.csv', [0, 2, 3]) design_3.run() myStudy.add(design_3) # 1- meta model1 ##
dist_X0 = ot.Normal(0, 1) X0 = persalys.Input('X0', 0, dist_X0, '') dist_X1 = ot.Normal(0, 1) X1 = persalys.Input('X1', 0, dist_X1, '') X2 = persalys.Input('X2', 0, '') X3 = persalys.Input('X3', 0, '') Y0 = persalys.Output('Y0', '') inputs = [X0, X1, X2, X3] outputs = [Y0] formulas = ['X0+X1+X2+X3'] SymbolicModel_0 = persalys.SymbolicPhysicalModel('SymbolicModel_0', inputs, outputs, formulas) values = [[0], [0], [-0.1, 0.1], [-0.1, 0.1]] design_0 = persalys.GridDesignOfExperiment('design_0', SymbolicModel_0, values) design_0.setBlockSize(1) interestVariables = ['Y0'] design_0.setInterestVariables(interestVariables) design_0.run() metaModel_0 = persalys.FunctionalChaosAnalysis('metaModel_0', design_0) metaModel_0.setChaosDegree(1) metaModel_0.setSparseChaos(False) metaModel_0.setAnalyticalValidation(True) metaModel_0.setTestSampleValidation(False) metaModel_0.setKFoldValidation(False) metaModel_0.run() print(metaModel_0.getResult()) # deterministic/chaos X0 = persalys.Input('X0', 0, '')