RELIABILITY: TWO-DIMENSIONAL HAT FUNCTION¶

This example showcases the application of various reliability analysis methods in UQ[Py]Lab to a two-dimensional hat function.

1 - INITIALIZATION¶

Package imports¶

In [1]:
from uqpylab import sessions
import pprint; pp = pprint.PrettyPrinter(depth=2)

Start a remote UQCloud session¶

In [2]:
# Start the session
mySession = sessions.cloud()
# (Optional) Get a convenient handle to the command line interface
uq = mySession.cli
# Set the timeout
mySession.timeout = 2000
# Reset the session
mySession.reset()
Processing .
.
 done!

 uqpylab.sessions :: INFO     :: This is UQ[py]Lab, version 1.00, running on https://uqcloud.ethz.ch. 
                                 UQ[py]Lab is free software, published under the open source BSD 3-clause license.
                                 To request special permissions, please contact:
                                  - Stefano Marelli (marelli@ibk.baug.ethz.ch).
                                 A new session (0e6cd96d2cc24bdca5bab9ad250c6489) started.
 uqpylab.sessions :: INFO     :: Reset successful.

Set the random seed for reproducibility¶

In [3]:
uq.rng(100,'twister');

2 - COMPUTATIONAL MODEL¶

The two-dimensional hat function is defined as follows: $$g(x_1, x_2) = 20 - (x_1 - x_2)^2 - 8 (x_1 + x_2 - 4)^3$$

Create a limit state function model based on the hat function using a string, written below in a vectorized operation:¶

In [4]:
ModelOpts = { 
    'Type': 'Model', 
    'ModelFun':'Hat.model',
    'isVectorized': True
}
myModel = uq.createModel(ModelOpts)

3 - PROBABILISTIC INPUT MODEL¶

The probabilistic input model consists of two independent and identically-distributed Gaussian random variables: $$X_i \sim \mathcal{N}(0.25, 1), \quad i = 1, 2$$

Specify the marginals of the two input random variables:¶

In [5]:
InputOpts = {
    "Marginals": [
        {"Name":"X1",
         "Type":"Gaussian",
         "Parameters":[0.25,1]
        },
        {"Name":"X2",
         "Type":"Gaussian",
         "Parameters":[0.25,1]
        }
    ]
}

Create an INPUT object based on the specified marginals and print its properties¶

In [6]:
myInput = uq.createInput(InputOpts)
uq.print(myInput)
==============================================================
Input object name: Input 1
Dimension(M): 2

Marginals:

Index | Name | Type     |  Parameters             | Moments              
--------------------------------------------------------------------------
1     | X1   | Gaussian |  2.500e-01, 1.000e+00   | 2.500e-01, 1.000e+00
2     | X2   | Gaussian |  2.500e-01, 1.000e+00   | 2.500e-01, 1.000e+00


Copula:

Type: Independent
Dimension: 2
Variables coupled: [1 2]
==============================================================

4 - STRUCTURAL RELIABILITY¶

Failure event is defined as $g(\mathbf{x}) \leq 0$. The failure probability is then defined as $P_f = P[g(\mathbf{x})\leq 0]$. Reliability analysis is performed with the following methods:

  • Monte Carlo simulation (MCS)
  • Subset simulation
  • Adaptive-Kriging-Monte-Carlo-Simulation (AK-MCS)
  • Adaptive-Polynomial-Chaos-Kriging-Monte-Carlo-Simulation (APCK-MCS)

4.1 Monte Carlo simulation (MCS)¶

Define a Reliability analysis using Monte Carlo simulation (MCS) by specifying the maximum sample size, the size of the batchs, and the target coefficient of variation:

In [7]:
MCSOpts = {
    "Type":"Reliability",
    "Method":"MCS",
    "Simulation": { 
        "MaxSampleSize":1.0E+6,
        "BatchSize":1.0E+5,
        "TargetCoV":0.01
    }
}

Run the Monte Carlo simulation and print out a report of the results:

In [8]:
MCSAnalysis = uq.createAnalysis(MCSOpts)
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((100000,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((100000,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((100000,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((100000,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((100000,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((100000,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((100000,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((100000,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((100000,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((100000,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.

Print out a report of the results:

In [9]:
uq.print(MCSAnalysis)
---------------------------------------------------
Monte Carlo simulation
---------------------------------------------------
Pf               3.9600e-04       
Beta             3.3556           
CoV              0.0502           
ModelEvaluations 1000000          
PfCI             [3.5700e-04 4.3500e-04]
BetaCI           [3.3295e+00 3.3841e+00]
---------------------------------------------------


Create a graphical representation of the results (convergence of $P_f$, convergence of $\beta$, and MCS samples):

In [10]:
uq.display(MCSAnalysis);

4.2 Subset Simulation¶

Define a Reliability analysis using subset simulation by specifying the batch size:

In [11]:
SubsetSimOpts = {
    "Type":"Reliability",
    "Method":"Subset",
    "Simulation": {
        "BatchSize": 10000
    }
}

Run reliability analysis with Subset simulation:

In [12]:
SubsetSim = uq.createAnalysis(SubsetSimOpts)
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((10000,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((944,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((940,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((940,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((941,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((947,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((946,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((960,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((954,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((935,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((932,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((937,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((936,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((936,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((930,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((931,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((919,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((935,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((933,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((929,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((891,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((917,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((925,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((935,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((917,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((907,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((910,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((928,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.

Print out a report of the results:

In [13]:
uq.print(SubsetSim)
---------------------------------------------------
Subset simulation
---------------------------------------------------
Pf               3.8250e-04       
Beta             3.3652           
CoV              0.0918           
ModelEvaluations 35155            
PfCI             [3.1365e-04 4.5135e-04]
BetaCI           [3.3192e+00 3.4195e+00]
---------------------------------------------------


Create a graphical representation of the results (plot the subsets):

In [14]:
uq.display(SubsetSim);

4.3 Adaptive-Kriging-Monte-Carlo-Simulation (AKMCS)¶

Select the Reliability module and the AK-MCS method:

In [15]:
AKMCSOpts = {
    "Type": "Reliability",
    "Method":"AKMCS",
    "Simulation": {
        "MaxSampleSize": 1e6    # Specify the size of the Monte Carlo sample set used for the Monte Carlo simulation
    },
    "AKMCS": {
        "MaxAddedED": 20,       # Specify the maximum number of sample points added to the experimental design
        "IExpDesign": {         # Specify the initial experimental design
            "N": 20,  
            "Sampling": "LHS"
        },
        "Kriging": {            # Specify the options for the Kriging metamodel (note that all Kriging options are supported)
            "Corr": {
                "Family": "Gaussian"
                }
        },
        "Convergence": "stopPf",  # Specify the convergence criterion for the adaptive experimental design algorithm (here, it is based on the failure probability estimate):
        "LearningFunction": "EFF" # Specify the learning function (here, it is the expected feasibility function (EFF))
    }
}

Run the AK-MCS simulation:

In [16]:
AKMCSAnalysis = uq.createAnalysis(AKMCSOpts)
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((20,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
Processing . done!

 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((1,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((1,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((1,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((1,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((1,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((1,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((1,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((1,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((1,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((1,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((1,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((1,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((1,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.

Print out a report of the results:

In [17]:
uq.print(AKMCSAnalysis)
---------------------------------------------------
AK-MCS
---------------------------------------------------
Pf               4.1200e-04       
Beta             3.3446           
CoV              0.0493           
ModelEvaluations 33               
PfCI             [3.7223e-04 4.5177e-04]
BetaCI           [3.3190e+00 3.3727e+00]
PfMinus/Plus     [4.0000e-04 4.3000e-04]
---------------------------------------------------


Create a graphical representation of the results (plot AKMCS convergence and the AKMCS experimental design and the limit state surface):

In [18]:
uq.display(AKMCSAnalysis);

4.4 Adaptive-Polynomial-Chaos-Kriging-Monte-Carlo-Simulation (APCK-MCS)¶

APCK-MCS is a variation of AK-MCS in which the Kriging model is replaced by a PC-Kriging (PCK) model.

Select the Reliability module and the APCK-MCS method:

In [19]:
APCKOpts = {
    "Type": "Reliability",
    "Method": "AKMCS",
    "AKMCS": {
        "MetaModel": "PCK",
        "PCK": {
            "Kriging": {
                "Corr": {
                    "Family": "Gaussian"
                }
            }
        },
        "IExpDesign": {
            "N": 5
        }
    },
    "Simulation": {
        "MaxSampleSize": 1.0E+6
    }
}

Run the APCK-MCS simulation:

In [20]:
myAPCKMCSAnalysis = uq.createAnalysis(APCKOpts)
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((5,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((1,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((1,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((1,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((1,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((1,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((1,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.

Print out a report of the results:

In [21]:
uq.print(myAPCKMCSAnalysis)
---------------------------------------------------
AK-MCS
---------------------------------------------------
Pf               3.7000e-04       
Beta             3.3743           
CoV              0.0520           
ModelEvaluations 11               
PfCI             [3.3231e-04 4.0769e-04]
BetaCI           [3.3475e+00 3.4038e+00]
PfMinus/Plus     [3.7000e-04 3.7000e-04]
---------------------------------------------------


Create a graphical representation of the results (Create a graphical representation of the results (plot APCK-MCS convergence and the APCK-MCS experimental design and the limit state surface):

In [22]:
uq.display(myAPCKMCSAnalysis);

4.5 Stochastic spectral embedding-based reliability (SSER)¶

SSER is an active learning reliability method that constructs a stochastic spectral embedding of the limit state function with smart refinement, partitioning, and sample enrichment strategies.

Select the Reliability module and the SSER method:

In [23]:
SSEROpts = {
    "Type": "Reliability",
    "Method": "SSER",
    "SSER": {
        "ExpDesign": {
            "NEnrich": 20    # Set the number of samples to be added in every refinement domain
        },
        "ExpOptions": {
            "Degree": [0, 1, 2, 3, 4]   # Select the polynomial degree of the residual expansion
        }
    }
}

Run the SSER analysis:

In [24]:
mySSERAnalysis = uq.createAnalysis(SSEROpts)
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((40,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
Processing . done!

 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((20,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((20,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((20,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((20,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((20,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.
 uqpylab.sessions :: INFO     :: Received intermediate compute request, function: Hat.model.
 uqpylab.sessions :: INFO     :: Carrying out local computation...
 uqpylab.sessions :: INFO     :: Local computation complete.
 uqpylab.sessions :: INFO     :: Starting transmission of intermediate compute results ((20,))...
 uqpylab.sessions :: INFO     :: Intermediate compute results sent.

Print out a report of the results:

In [25]:
uq.print(mySSERAnalysis)
---------------------------------------------------
Stochastic spectral embedding-based reliability
---------------------------------------------------
Pf               4.1680e-04       
Beta             3.3414           
CoV              0.0000           
ModelEvaluations 160              
PfCI             [4.1680e-04 4.1680e-04]
BetaCI           [3.3414e+00 3.3414e+00]
---------------------------------------------------


Visualize the results of the analysis:

In [26]:
uq.display(mySSERAnalysis);
Processing .
.
.
.
.
 done!

Terminate the remote UQCloud session:¶

In [27]:
mySession.quit()
 uqpylab.sessions :: INFO     :: Session 0e6cd96d2cc24bdca5bab9ad250c6489 terminated.
Out[27]:
True