def test(): Study_0 = persalys.Study('Study_0') persalys.Study.Add(Study_0) X0 = persalys.Input('X0', 0, '') Y0 = persalys.Output('Y0', '') Y0.setValue(0) inputCollection = [] inputCollection.append(X0) outputCollection = [] outputCollection.append(Y0) code = 'def _exec(X0):\n Y0 = X0\n return Y0' PhysicalModel_0 = persalys.PythonPhysicalModel('PhysicalModel_0', inputCollection, outputCollection, code) Study_0.add(PhysicalModel_0) print(Study_0.getPythonScript())
#! /usr/bin/env python import openturns as ot 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)
#!/usr/bin/env python import openturns as ot import persalys Study_0 = persalys.Study('Study_0') persalys.Study.Add(Study_0) # variables dist_z0 = ot.Uniform(100, 150) z0 = persalys.Input('z0', 100, dist_z0, '') dist_v0 = ot.Normal(55, 10) v0 = persalys.Input('v0', 55, dist_v0, '') dist_m = ot.Normal(80, 8) m = persalys.Input('m', 80, dist_m, '') dist_c = ot.Uniform(0, 30) c = persalys.Input('c', 16, dist_c, '') z1 = persalys.Output('z1', '') z2 = persalys.Output('z2', 'fake output') inputs = [z0, v0, m, c] outputs = [z1, z2] # mesh model meshModel = persalys.GridMeshModel(ot.Interval(0., 12.), [20]) # Python model code = 'from math import exp\n\ndef _exec(z0,v0,m,c):\n g = 9.81\n zmin = 0.\n tau = m / c\n vinf = -m * g / c\n\n # mesh nodes\n t = getMesh().getVertices()\n\n z = [max(z0 + vinf * t_i[0] + tau * (v0 - vinf) * (1 - exp(-t_i[0] / tau)), zmin) for t_i in t]\n z2 = [2*max(z0 + vinf * t_i[0] + tau * (v0 - vinf) * (1 - exp(-t_i[0] / tau)), zmin) for t_i in t]\n\n return z, z2' PhysicalModel_1 = persalys.PythonFieldModel('PhysicalModel_1', meshModel, inputs, outputs, code) Study_0.add(PhysicalModel_1) # central tendency
#! /usr/bin/env python import openturns as ot import persalys myStudy = persalys.Study('myStudy') # Model X0 = persalys.Input('X0', ot.Normal(1, 1)) X1 = persalys.Input('X1', ot.Normal(1, 1)) Y00 = persalys.Output('fake_Y0') Y00.setIsSelected(False) Y0 = persalys.Output('Y0') formula_Y00 = 'X0' formula_Y0 = 'sin(X0) + 8*X1' model = persalys.SymbolicPhysicalModel('aModelPhys', [X0, X1], [Y00, Y0], [formula_Y00, formula_Y0]) myStudy.add(model) # Monte Carlo ## analysis = persalys.MonteCarloAnalysis('myMonteCarlo', model) analysis.setLevelConfidenceInterval(0.93) analysis.setMaximumCalls(1000) analysis.setMaximumCoefficientOfVariation(-1) analysis.setMaximumElapsedTime(30) analysis.setSeed(2) myStudy.add(analysis) print(analysis) analysis.run()
#! /usr/bin/env python import openturns as ot import openturns.testing import persalys import os ot.RandomGenerator.SetSeed(0) anOTStudy = persalys.Study('anOTStudy') # Model X0 = persalys.Input('X0', 1, ot.Normal()) X1 = persalys.Input('X1', 2) X2 = persalys.Input('X2', 2) X3 = persalys.Input('X3', 2) Y0 = persalys.Output('Y0') Y1 = persalys.Output('Y1') Y2 = persalys.Output('Y2') model = persalys.SymbolicPhysicalModel('aModelPhys', [X0, X1, X2, X3], [Y0, Y1, Y2], ['sin(X0)+8*X1'] * 3) anOTStudy.add(model) # Observations ## filename = 'normal2.csv' sample = ot.Normal(8).getSample(10) sample.exportToCSVFile(filename) obs = persalys.Observations("obs", model, filename, [7, 3], [6, 2], ["X3", "X1"], ["Y2", "Y1"])