Performing AKMCS using random fields as initial experimental design


I would like to know, if in UQLAB it is possible to perform AKMCS taking as initial experimental design the random field I generated with another function. Say I have a FEM mesh of 60X30 elements modeling the behaviour of a diaphragm wall after each excavation step. For each soil element I assign a different Young’s modulus E according to my random field (E = LN(125 MPa, 31.25 MPa) and Markov autocorrelation function). All other soil parameters are deterministic. Failure is defined as the top horizontal displacement of the wall being greater than a value (say 45 mm). What I would like to do is, given my random field matrix of for example 100 realizations (matrix of 100X1800), obtain the probability of failure with AKMCS. I’ve already seen, that in the advanced options of AKMCS it is possible to give the initial experimental design and the corresponding limit-state function values. The problem is, that I have to define the probablilistic model anyway, right? But if I assign a marginal equal to LN(125 MPa, 31.25 MPa) to every variable I have (Young’s modulus E for each element of the FEM mesh), then my variables are no more spatially correlated I think.
I hope my question is clear enough in order to help me.

Best regards,
Gil Jacot-Descombes


In the following the code I’m trying to run, but unfortunately without getting some results or errors, it’s only running forever:

load PCE500.mat
ROptions.Type = 'Reliability';
ROptions.Method = 'AKMCS';
ROptions.Input = myInput;
ROptions.Model = myPCE;
ROptions.AKMCS.IExpDesign.X = X500;
ROptions.AKMCS.IExpDesign.G = 6-Y_ZSOIL_500;
ROptions.AKMCS.MaxAddedED = 20;
ROptions.LimitState.CompOp = '>=';
RAnalysis = uq_createAnalysis(ROptions);

In X500 (500 X 460) I have 500 realisations of my random field, in Y_ZSOIL_500 (500 X 1) I have the wall displacement in mm for each one of my 500 realisations ran with FEM software ZSOIL. Failure in this case is defined as the wall displacement being greater than 6 mm. Since my finite element mesh has 460 elements (no more 1800) to generate myInuput, in another code, I wrote:

% Probabilistic model
for el = 1:460
IOpts.Marginals(el).Name = 'E';
IOpts.Marginals(el).Type = 'LogNormal';
IOpts.Marginals(el).Moments = [40000 4000];
myInput = uq_createInput(IOpts);

As model I’m using a metamodel (myPCE) I created based on X500 and Y_ZSOIL_500.

Where did I a mistake?

Best regards,

Gil Jacot-Descombes
MSc ETH Bau-Ing.
GeoMod SA

Hi @Gil,

Interesting problem you have there. I am a bit confused by the piece of code you’ve sent though.

First regarding the probabilistic input: I understood from your first message that the Young’s modulus is a random field. However in the code you posted, you defined independently random parameters for each element of your FE model. There is no correlation whatsoever in the probabilistic model you defined. I would suggest you use another approach to define your probabilistic input, say EOLE (expansion optimal linear estimator) or Karhunen-Loève expansions. As of now, I don’t think any of these methods is available on the released version of UQLab but I am sure you can find some codes online (check the matlab file exchange for instance).

Now regarding AK-MCS, with an experimental design of size 100 x 1800, you are trying to build a Kriging model in dimension 1800. This is way more than Kriging can ever handle. In this case, AK-MCS is not the method you need, at least not without pre-processing. I would suggest that you first proceed to dimensionality reduction before trying to solve this problem. I am not sure what’s the best approach in your case. My take is that first using EOLE, you may be able to truncate the expansion to keep a much smaller number of control points than you actually have now. If that is not enough, you can then think of using an actual dimensionality reduction technique.

My last point is about the use of PCE as “original” model for the AK-MCS procedure. I am not sure why you do this. Do you have an actual FE model ? If so, this is the one that should be set as ROptions.Model. Or is there something I have missed?


Hi @moustapha,

Thank you for your answer!

  1. Probabilistic input: I have the same question for creating a PCE based on my FEM model ran on random fields as input. I generated 500 realizations of random fields for my 460 elements (points) with the EOLE method. The problem is, that in order to create the PCE from an experimental design (X500, Y_ZSOIL_500 in my case), I have to give anyway a probabilistic input in order to calculate the coefficients of the PCE, no?. But how to do that with random fields? What I know is that as IOpts.Marginals I can give only distributions that are already contained in UQLab. Or can I also define a user defined probabilistic input? I thought that choosing the lognormal distribution was the most accurate distribution to choose already contained in UQLab to calculate the coefficients.

  2. AK-MCS: Ok, thank you.

  3. PCE as model for AKMCS: I copy-pasted the wrong line, as you say, my FEM model should be there, instead of the PCE model.

Best regards,

Hi @Gil,

Regarding the first question, IMO your probabilistic input in UQLab should be the independent random variables that are sampled to generate the random field. So your model would be a wrapper that, given a set of independent random variables, creates a random field then runs the actual FEM and returns your quantity of interest.

It is still not clear to me how AK-MCS would fit in this workflow but that’s how I would create the probabilistic input.


1 Like