From a73cd9a245acec663f9491697194995728596ab0 Mon Sep 17 00:00:00 2001 From: Lalit Rajendran Date: Tue, 6 Apr 2021 15:06:58 -0400 Subject: [PATCH] initial commit --- ...ityIntegrationUncertaintyQuantification.py | Bin 0 -> 4096 bytes ._sample_script.py | Bin 0 -> 4096 bytes ...ityIntegrationUncertaintyQuantification.py | 507 ++++++++++++++++++ ...onUncertaintyQuantification.cpython-38.pyc | Bin 0 -> 10089 bytes __pycache__/helper_functions.cpython-38.pyc | Bin 0 -> 14057 bytes __pycache__/loadmat_functions.cpython-38.pyc | Bin 0 -> 1314 bytes loadmat_functions.py | 35 ++ sample-displacements.mat | Bin 0 -> 186072 bytes sample-result.mat | Bin 0 -> 50768 bytes sample-result.png | Bin 0 -> 66121 bytes sample_script.py | 285 ++++++++++ 11 files changed, 827 insertions(+) create mode 100755 ._DensityIntegrationUncertaintyQuantification.py create mode 100755 ._sample_script.py create mode 100755 DensityIntegrationUncertaintyQuantification.py create mode 100755 __pycache__/DensityIntegrationUncertaintyQuantification.cpython-38.pyc create mode 100755 __pycache__/helper_functions.cpython-38.pyc create mode 100755 __pycache__/loadmat_functions.cpython-38.pyc create mode 100755 loadmat_functions.py create mode 100755 sample-displacements.mat create mode 100755 sample-result.mat create mode 100755 sample-result.png create mode 100755 sample_script.py diff --git a/._DensityIntegrationUncertaintyQuantification.py b/._DensityIntegrationUncertaintyQuantification.py new file mode 100755 index 0000000000000000000000000000000000000000..e1118fcb5c32b645c301a485b4dfc035e628cc83 GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVla4Q z0@1;+0H|C5O$#HC4;7b6&d=3LEGWoH)yqjNE-5WeO-V^CNmULA2I+}fnv(#c=k{5! zgXmE(8UmvsFd71*Aut*OqaiRF0;3@?8UmvsFd71*Aut*OxIzHb*#u!QkPFGkELJE= zEzU13N={Ws%P-1S$jmEA%`3^w&r8h7sZ_{GO)F7I%1O-22KI%ax`s4`>VLRbWEkZB G{|5jmr7C&= literal 0 HcmV?d00001 diff --git a/._sample_script.py b/._sample_script.py new file mode 100755 index 0000000000000000000000000000000000000000..d09e7de1fa1b599fc6702e4cfb6473acf838949f GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vVla4Q z2GPN=0H|C5O$#HC4;7b6&d=3LEGWoH)yqjNE-5WeO-V^CNmULA2I<-PYEnFij;$0D z0nwviGz3ONU^E0qLtr!nMnhmU1V%$(Gz3ONU^E0qLtr!naD@PukeOGKnpcvUpO=`EQ>l=XnpUEal#`g34eSd;bq#3>)&Fp>$S}zL G{|^Aeb}H8Z literal 0 HcmV?d00001 diff --git a/DensityIntegrationUncertaintyQuantification.py b/DensityIntegrationUncertaintyQuantification.py new file mode 100755 index 0000000..c2aea57 --- /dev/null +++ b/DensityIntegrationUncertaintyQuantification.py @@ -0,0 +1,507 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +Created on Mon Apr 3 15:51:35 2017 + +@author: jiachengzhang +""" + +import numpy as np +import sys +import scipy.sparse as scysparse +import scipy.sparse.linalg as splinalg +import scipy.linalg as linalg + + +def Density_integration_Poisson_uncertainty(Xn,Yn,fluid_mask,grad_x,grad_y,dirichlet_label,dirichlet_value, + uncertainty_quantification=True, sigma_grad_x=None, sigma_grad_y=None, sigma_dirichlet=None): + # Evaluate the density field from the gradient fields by solving the Poisson equation. + # The uncertainty of the density field can be quantified. + """ + Inputs: + Xn,Yn: 2d array of mesh grid. + fluid_mask: 2d array of binary mask of flow field. Boundary points are considered in the flow (mask should be True) + grad_x, grad_y: 2d array of gradient field. + dirichlet_label: 2d array of binary mask indicating the Dirichlet BC locations. Ohterwise Neumann. At least one point should be dirichlet. + dirichlet_value: 2d array of diriclet BC values. + uncertainty_quantification: True to perform the uncertainty quantification, False only perform integration. + sigma_grad_x, sigma_grad_y, sigma_dirichlet: the uncertainty given as std of the input fields. 2d array of fields. + Returns: + Pn: the integrated density field. + sigma_Pn: the uncertainty (std) of the integrated density field. + """ + + Ny, Nx = np.shape(Xn) + dx = Xn[1,1] - Xn[0,0] + dy = Yn[1,1] - Yn[0,0] + invdx = 1.0/dx + invdy = 1.0/dy + invdx2 = invdx**2 + invdy2 = invdy**2 + + fluid_mask_ex = np.zeros((Ny+2,Nx+2)).astype('bool') + fluid_mask_ex[1:-1,1:-1] = fluid_mask + + grad_x_ex = np.zeros((Ny+2,Nx+2)) + grad_x_ex[1:-1,1:-1] = grad_x + grad_y_ex = np.zeros((Ny+2,Nx+2)) + grad_y_ex[1:-1,1:-1] = grad_y + dirichlet_label_ex = np.zeros((Ny+2,Nx+2)).astype('bool') + dirichlet_label_ex[1:-1,1:-1] = dirichlet_label + dirichlet_value_ex = np.zeros((Ny+2,Nx+2)) + dirichlet_value_ex[1:-1,1:-1] = dirichlet_value + + sigma_grad_x_ex = np.zeros((Ny+2,Nx+2)) + sigma_grad_y_ex = np.zeros((Ny+2,Nx+2)) + sigma_dirichlet_ex = np.zeros((Ny+2,Nx+2)) + if uncertainty_quantification==True: + sigma_grad_x_ex[1:-1,1:-1] = sigma_grad_x + sigma_grad_y_ex[1:-1,1:-1] = sigma_grad_y + sigma_dirichlet_ex[1:-1,1:-1] = sigma_dirichlet + + # Generate the linear operator. + j,i = np.where(fluid_mask_ex==True) + Npts = len(j) + fluid_index = -np.ones(fluid_mask_ex.shape).astype('int') + fluid_index[j,i] = range(Npts) + iC = fluid_index[j,i] + iC_label = dirichlet_label_ex[j,i] + iE = fluid_index[j,i+1] + iW = fluid_index[j,i-1] + iN = fluid_index[j+1,i] + iS = fluid_index[j-1,i] + + LaplacianOperator = scysparse.csr_matrix((Npts,Npts),dtype=np.float) + # RHS = np.zeros(Npts) + # Var_RHS = np.zeros(Npts) # variance + + # Also generate the linear operator which maps from the grad_x, grad_y, dirichlet val to the rhs. + Map_grad_x = scysparse.csr_matrix((Npts,Npts),dtype=np.float) + Map_grad_y = scysparse.csr_matrix((Npts,Npts),dtype=np.float) + Map_dirichlet_val = scysparse.csr_matrix((Npts,Npts),dtype=np.float) + + # First, construct the linear operator and RHS as if all they are all Nuemanan Bc + + # if the east and west nodes are inside domain + loc = (iE!=-1)*(iW!=-1) + LaplacianOperator[iC[loc],iC[loc]] += -2.0*invdx2 + LaplacianOperator[iC[loc],iE[loc]] += +1.0*invdx2 + LaplacianOperator[iC[loc],iW[loc]] += +1.0*invdx2 + # RHS[iC[loc]] += (grad_x_ex[j[loc],i[loc]+1] - grad_x_ex[j[loc],i[loc]-1])*(invdx*0.5) + # Var_RHS[iC[loc]] += (invdx*0.5)**2 * (sigma_grad_x_ex[j[loc],i[loc]+1]**2 + sigma_grad_x_ex[j[loc],i[loc]-1]**2) + Map_grad_x[iC[loc],iE[loc]] += invdx*0.5 + Map_grad_x[iC[loc],iW[loc]] += -invdx*0.5 + + # if the east node is ouside domian + loc = (iE==-1) + LaplacianOperator[iC[loc],iC[loc]] += -2.0*invdx2 + LaplacianOperator[iC[loc],iW[loc]] += +2.0*invdx2 + # RHS[iC[loc]] += -(grad_x_ex[j[loc],i[loc]] + grad_x_ex[j[loc],i[loc]-1])*invdx + # Var_RHS[iC[loc]] += invdx**2 * (sigma_grad_x_ex[j[loc],i[loc]]**2 + sigma_grad_x_ex[j[loc],i[loc]-1]**2) + Map_grad_x[iC[loc],iC[loc]] += -invdx + Map_grad_x[iC[loc],iW[loc]] += -invdx + + # if the west node is ouside domian + loc = (iW==-1) + LaplacianOperator[iC[loc],iC[loc]] += -2.0*invdx2 + LaplacianOperator[iC[loc],iE[loc]] += +2.0*invdx2 + # RHS[iC[loc]] += (grad_x_ex[j[loc],i[loc]] + grad_x_ex[j[loc],i[loc]+1])*invdx + # Var_RHS[iC[loc]] += invdx**2 * (sigma_grad_x_ex[j[loc],i[loc]]**2 + sigma_grad_x_ex[j[loc],i[loc]+1]**2) + Map_grad_x[iC[loc],iC[loc]] += invdx + Map_grad_x[iC[loc],iE[loc]] += invdx + + # if the north and south nodes are inside domain + loc = (iN!=-1)*(iS!=-1) + LaplacianOperator[iC[loc],iC[loc]] += -2.0*invdy2 + LaplacianOperator[iC[loc],iN[loc]] += +1.0*invdy2 + LaplacianOperator[iC[loc],iS[loc]] += +1.0*invdy2 + # RHS[iC[loc]] += (grad_y_ex[j[loc]+1,i[loc]] - grad_y_ex[j[loc]-1,i[loc]])*(invdy*0.5) + # Var_RHS[iC[loc]] += (invdy*0.5)**2 * (sigma_grad_y_ex[j[loc]+1,i[loc]]**2 + sigma_grad_y_ex[j[loc]-1,i[loc]]**2) + Map_grad_y[iC[loc],iN[loc]] += invdy*0.5 + Map_grad_y[iC[loc],iS[loc]] += -invdy*0.5 + + # if the north node is ouside domian + loc = (iN==-1) + LaplacianOperator[iC[loc],iC[loc]] += -2.0*invdy2 + LaplacianOperator[iC[loc],iS[loc]] += +2.0*invdy2 + # RHS[iC[loc]] += -(grad_y_ex[j[loc],i[loc]] + grad_y_ex[j[loc]-1,i[loc]])*invdy + # Var_RHS[iC[loc]] += invdy**2 * (sigma_grad_y_ex[j[loc],i[loc]]**2 + sigma_grad_y_ex[j[loc]-1,i[loc]]**2) + Map_grad_y[iC[loc],iC[loc]] += -invdy + Map_grad_y[iC[loc],iS[loc]] += -invdy + + # if the south node is ouside domian + loc = (iS==-1) + LaplacianOperator[iC[loc],iC[loc]] += -2.0*invdy2 + LaplacianOperator[iC[loc],iN[loc]] += +2.0*invdy2 + # RHS[iC[loc]] += (grad_y_ex[j[loc],i[loc]] + grad_y_ex[j[loc]+1,i[loc]])*invdy + # Var_RHS[iC[loc]] += invdy**2 * (sigma_grad_y_ex[j[loc],i[loc]]**2 + sigma_grad_y_ex[j[loc]+1,i[loc]]**2) + Map_grad_y[iC[loc],iC[loc]] += invdy + Map_grad_y[iC[loc],iN[loc]] += invdy + + # Then change the boundary conidtion at locatiosn of Dirichlet. + loc = (iC_label==True) + LaplacianOperator[iC[loc],:] = 0.0 + LaplacianOperator[iC[loc],iC[loc]] = 1.0*invdx2 + # RHS[iC[loc]] = dirichlet_value_ex[j[loc],i[loc]] * invdx2 + # Var_RHS[iC[loc]] = sigma_dirichlet_ex[j[loc],i[loc]]**2 * invdx2**2 + Map_grad_x[iC[loc],:] = 0.0 + Map_grad_y[iC[loc],:] = 0.0 + Map_dirichlet_val[iC[loc],iC[loc]] = 1.0*invdx2 + + LaplacianOperator.eliminate_zeros() + Map_grad_x.eliminate_zeros() + Map_grad_y.eliminate_zeros() + Map_dirichlet_val.eliminate_zeros() + + # Solve for the field. + grad_x_vect = grad_x_ex[j,i] + grad_y_vect = grad_y_ex[j,i] + dirichlet_val_vect = dirichlet_value_ex[j,i] + RHS = Map_grad_x.dot(grad_x_vect) + Map_grad_y.dot(grad_y_vect) + Map_dirichlet_val.dot(dirichlet_val_vect) + # Solve the linear system + Pn_ex = np.zeros((Ny+2,Nx+2)) + p_vect = splinalg.spsolve(LaplacianOperator, RHS) + Pn_ex[j,i] = p_vect + + # Uncertainty propagation + sigma_Pn_ex = np.zeros((Ny+2,Nx+2)) + if uncertainty_quantification==True: + # Propagate to get the covariance matrix for RHS + Cov_grad_x = scysparse.diags(sigma_grad_x_ex[j,i]**2,shape=(Npts,Npts),format='csr') + Cov_grad_y = scysparse.diags(sigma_grad_y_ex[j,i]**2,shape=(Npts,Npts),format='csr') + Cov_dirichlet_val = scysparse.diags(sigma_dirichlet_ex[j,i]**2,shape=(Npts,Npts),format='csr') + Cov_RHS = Map_grad_x*Cov_grad_x*Map_grad_x.transpose() + Map_grad_y*Cov_grad_y*Map_grad_y.transpose() + \ + Map_dirichlet_val*Cov_dirichlet_val*Map_dirichlet_val.transpose() + + Laplacian_inv = linalg.inv(LaplacianOperator.A) + Cov_p = np.matmul(np.matmul(Laplacian_inv, Cov_RHS.A), Laplacian_inv.T) + Var_p_vect = np.diag(Cov_p) + + sigma_Pn_ex[j,i] = Var_p_vect**0.5 + + return Pn_ex[1:-1,1:-1], sigma_Pn_ex[1:-1,1:-1] + + + +def Density_integration_WLS_uncertainty(Xn,Yn,fluid_mask,grad_x,grad_y,dirichlet_label,dirichlet_value, + uncertainty_quantification=True, sigma_grad_x=None, sigma_grad_y=None, sigma_dirichlet=None): + # Evaluate the density field from the gradient fields by solving the WLS system. + # The uncertainty of the density field is also quantified and returned. + """ + Inputs: + Xn,Yn: 2d array of mesh grid. + fluid_mask: 2d array of binary mask of flow field. Boundary points are considered in the flow (mask should be True) + grad_x, grad_y: 2d array of gradient field. + dirichlet_label: 2d array of binary mask indicating the Dirichlet BC locations. Ohterwise Neumann. At least one point should be dirichlet. + dirichlet_value: 2d array of diriclet BC values. + uncertainty_quantification: True to perform the uncertainty quantification, False only perform integration. + sigma_grad_x, sigma_grad_y, sigma_dirichlet: the uncertainty given as std of the input fields. 2d array of fields. + Returns: + Pn: the integrated density field. + sigma_Pn: the uncertainty (std) of the integrated density field. + """ + + Ny, Nx = np.shape(Xn) + dx = Xn[1,1] - Xn[0,0] + dy = Yn[1,1] - Yn[0,0] + invdx = 1.0/dx + invdy = 1.0/dy + invdx2 = invdx**2 + invdy2 = invdy**2 + + fluid_mask_ex = np.zeros((Ny+2,Nx+2)).astype('bool') + fluid_mask_ex[1:-1,1:-1] = fluid_mask + + dirichlet_label_ex = np.zeros((Ny+2,Nx+2)).astype('bool') + dirichlet_label_ex[1:-1,1:-1] = dirichlet_label + dirichlet_value_ex = np.zeros((Ny+2,Nx+2)) + dirichlet_value_ex[1:-1,1:-1] = dirichlet_value + + grad_x_ex = np.zeros((Ny+2,Nx+2)) + grad_x_ex[1:-1,1:-1] = grad_x + grad_y_ex = np.zeros((Ny+2,Nx+2)) + grad_y_ex[1:-1,1:-1] = grad_y + + sigma_grad_x_ex = np.zeros((Ny+2,Nx+2)) + sigma_grad_y_ex = np.zeros((Ny+2,Nx+2)) + sigma_dirichlet_ex = np.zeros((Ny+2,Nx+2)) + sigma_grad_x_ex[1:-1,1:-1] = sigma_grad_x + sigma_grad_y_ex[1:-1,1:-1] = sigma_grad_y + sigma_dirichlet_ex[1:-1,1:-1] = sigma_dirichlet + + # Generate the index for mapping the pressure and pressure gradients. + j,i = np.where(fluid_mask_ex==True) + Npts = len(j) + fluid_index = -np.ones(fluid_mask_ex.shape).astype('int') + fluid_index[j,i] = range(Npts) + + # Generate the mask for the gradients + fluid_mask_Gx_ex = np.logical_and(fluid_mask_ex[:,1:],fluid_mask_ex[:,:-1]) + fluid_mask_Gy_ex = np.logical_and(fluid_mask_ex[1:,:],fluid_mask_ex[:-1,:]) + + # Generate the linear operator and the mapping matrix for generating the rhs. + # For Gx + jx,ix = np.where(fluid_mask_Gx_ex==True) + Npts_x = len(jx) + iC = fluid_index[jx,ix] + iE = fluid_index[jx,ix+1] + Operator_Gx = scysparse.csr_matrix((Npts_x,Npts),dtype=np.float) + Map_Gx = scysparse.csr_matrix((Npts_x,Npts),dtype=np.float) + Operator_Gx[range(Npts_x),iC] += -invdx + Operator_Gx[range(Npts_x),iE] += invdx + Map_Gx[range(Npts_x),iC] += 0.5 + Map_Gx[range(Npts_x),iE] += 0.5 + + # For Gy + jy,iy = np.where(fluid_mask_Gy_ex==True) + Npts_y = len(jy) + iC = fluid_index[jy,iy] + iN = fluid_index[jy+1,iy] + Operator_Gy = scysparse.csr_matrix((Npts_y,Npts),dtype=np.float) + Map_Gy = scysparse.csr_matrix((Npts_y,Npts),dtype=np.float) + Operator_Gy[range(Npts_y),iC] += -invdy + Operator_Gy[range(Npts_y),iN] += invdy + Map_Gy[range(Npts_y),iC] += 0.5 + Map_Gy[range(Npts_y),iN] += 0.5 + + # For Dirichlet BC + j_d, i_d = np.where(dirichlet_label_ex==True) + Npts_d = len(j_d) + iC = fluid_index[j_d,i_d] + Operator_d = scysparse.csr_matrix((Npts_d,Npts),dtype=np.float) + Map_d = scysparse.eye(Npts_d,Npts_d,format='csr') * invdx + Operator_d[range(Npts_d),iC] += 1.0*invdx + # dirichlet value vector and cov + dirichlet_vect = dirichlet_value_ex[j_d,i_d] + dirichlet_sigma_vect = sigma_dirichlet_ex[j_d,i_d] + cov_dirichlet = scysparse.diags(dirichlet_sigma_vect**2, format='csr') + # Generate the vector and cov for pgrad. + pgrad_x_vect = grad_x_ex[j,i] + pgrad_y_vect = grad_y_ex[j,i] + pgrad_vect = np.concatenate((pgrad_x_vect,pgrad_y_vect)) + cov_pgrad_x = sigma_grad_x_ex[j,i]**2 + cov_pgrad_y = sigma_grad_y_ex[j,i]**2 + cov_pgrad_vect = np.concatenate((cov_pgrad_x, cov_pgrad_y)) + cov_pgrad = scysparse.diags(cov_pgrad_vect, format='csr') + + # Construct the full operator. + Operator_GLS = scysparse.bmat([[Operator_Gx],[Operator_Gy],[Operator_d]]) + + # Construct the full mapping matrics and get the rhs. + Map_pgrad = scysparse.bmat([[Map_Gx, None],[None, Map_Gy],[scysparse.csr_matrix((Npts_d,Npts),dtype=np.float), None]]) + Map_dirichlet = scysparse.bmat([[scysparse.csr_matrix((Npts_x+Npts_y,Npts_d),dtype=np.float)],[Map_d]]) + rhs = Map_pgrad.dot(pgrad_vect) + Map_dirichlet.dot(dirichlet_vect) + + # Evaluate the covriance matrix for the rhs + cov_rhs = Map_pgrad * cov_pgrad * Map_pgrad.transpose() + Map_dirichlet * cov_dirichlet * Map_dirichlet.transpose() + + # Solve for the WLS solution + weights_vect = cov_rhs.diagonal()**(-1) + weights_matrix = scysparse.diags(weights_vect,format='csr') + # Operator_WLS = weights_matrix * Operator_GLS + # rhs_WLS = weights_matrix.dot(rhs) + sys_LHS = Operator_GLS.transpose() * weights_matrix * Operator_GLS + sys_rhs = (Operator_GLS.transpose() * weights_matrix).dot(rhs) + + # Get the solution from lsqr + # p_vect_wls = splinalg.lsqr(Operator_WLS,rhs_WLS)[0] + # Pn_WLS = np.zeros(fluid_mask_ex.shape) + # Pn_WLS[j,i] = p_vect_wls + + # Solve for the WLS solution + p_vect_wls = splinalg.spsolve(sys_LHS, sys_rhs) + Pn_WLS_ex = np.zeros(fluid_mask_ex.shape) + Pn_WLS_ex[j,i] = p_vect_wls + + # Perform the uncertainty propagation + sigma_Pn_ex = np.zeros((Ny+2,Nx+2)) + if uncertainty_quantification == True: + cov_sys_rhs = (Operator_GLS.transpose() * weights_matrix) * cov_rhs * (Operator_GLS.transpose() * weights_matrix).transpose() + sys_LHS_inv = linalg.inv(sys_LHS.A) + Cov_p = np.matmul(np.matmul(sys_LHS_inv, cov_sys_rhs.A), sys_LHS_inv.T) + Var_p_vect = np.diag(Cov_p) + sigma_Pn_ex[j,i] = Var_p_vect**0.5 + + return Pn_WLS_ex[1:-1,1:-1], sigma_Pn_ex[1:-1,1:-1] + + + +def Density_integration_WLS_uncertainty_weighted_average(Xn,Yn,fluid_mask,grad_x,grad_y,dirichlet_label,dirichlet_value, + uncertainty_quantification=True, sigma_grad_x=None, sigma_grad_y=None, sigma_dirichlet=None): + # Evaluate the density field from the gradient fields by solving the WLS system. + # The uncertainty of the density field is also quantified and returned. + # The gradient interpolation (from grid points to staggered location) is done by a weighted average approach + # which minimizes the sum of squared bias error and random error. + """ + Inputs: + Xn,Yn: 2d array of mesh grid. + fluid_mask: 2d array of binary mask of flow field. Boundary points are considered in the flow (mask should be True) + grad_x, grad_y: 2d array of gradient field. + dirichlet_label: 2d array of binary mask indicating the Dirichlet BC locations. Ohterwise Neumann. At least one point should be dirichlet. + dirichlet_value: 2d array of diriclet BC values. + uncertainty_quantification: True to perform the uncertainty quantification, False only perform integration. + sigma_grad_x, sigma_grad_y, sigma_dirichlet: the uncertainty given as std of the input fields. 2d array of fields. + Returns: + Pn: the integrated density field. + sigma_Pn: the uncertainty (std) of the integrated density field. + """ + + Ny, Nx = np.shape(Xn) + dx = Xn[1,1] - Xn[0,0] + dy = Yn[1,1] - Yn[0,0] + invdx = 1.0/dx + invdy = 1.0/dy + invdx2 = invdx**2 + invdy2 = invdy**2 + + fluid_mask_ex = np.zeros((Ny+2,Nx+2)).astype('bool') + fluid_mask_ex[1:-1,1:-1] = fluid_mask + + dirichlet_label_ex = np.zeros((Ny+2,Nx+2)).astype('bool') + dirichlet_label_ex[1:-1,1:-1] = dirichlet_label + dirichlet_value_ex = np.zeros((Ny+2,Nx+2)) + dirichlet_value_ex[1:-1,1:-1] = dirichlet_value + + grad_x_ex = np.zeros((Ny+2,Nx+2)) + grad_x_ex[1:-1,1:-1] = grad_x + grad_y_ex = np.zeros((Ny+2,Nx+2)) + grad_y_ex[1:-1,1:-1] = grad_y + + sigma_grad_x_ex = np.zeros((Ny+2,Nx+2)) + sigma_grad_y_ex = np.zeros((Ny+2,Nx+2)) + sigma_dirichlet_ex = np.zeros((Ny+2,Nx+2)) + sigma_grad_x_ex[1:-1,1:-1] = sigma_grad_x + sigma_grad_y_ex[1:-1,1:-1] = sigma_grad_y + sigma_dirichlet_ex[1:-1,1:-1] = sigma_dirichlet + + # Generate the index for mapping the pressure and pressure gradients. + j,i = np.where(fluid_mask_ex==True) + Npts = len(j) + fluid_index = -np.ones(fluid_mask_ex.shape).astype('int') + fluid_index[j,i] = range(Npts) + + # Generate the mask for the gradients + fluid_mask_Gx_ex = np.logical_and(fluid_mask_ex[:,1:],fluid_mask_ex[:,:-1]) + fluid_mask_Gy_ex = np.logical_and(fluid_mask_ex[1:,:],fluid_mask_ex[:-1,:]) + + # Generate the linear operator and the mapping matrix for generating the rhs. + # For Gx + jx,ix = np.where(fluid_mask_Gx_ex==True) + Npts_x = len(jx) + iC = fluid_index[jx,ix] + iE = fluid_index[jx,ix+1] + Operator_Gx = scysparse.csr_matrix((Npts_x,Npts),dtype=np.float) + Operator_Gx[range(Npts_x),iC] += -invdx + Operator_Gx[range(Npts_x),iE] += invdx + # The Mapping Gx that maps grided gradients to staggered location is by weighted average. + Map_Gx = scysparse.csr_matrix((Npts_x,Npts),dtype=np.float) + V_C = grad_x_ex[jx,ix] + V_E = grad_x_ex[jx,ix+1] + sigma_C = sigma_grad_x_ex[jx,ix] + sigma_E = sigma_grad_x_ex[jx,ix+1] + weight_C = ((V_C-V_E)**2 + 2*sigma_E**2) / (2*(V_C-V_E)**2 + 2*sigma_C**2 + 2*sigma_E**2) + weight_E = 1.0 - weight_C + Map_Gx[range(Npts_x),iC] += weight_C + Map_Gx[range(Npts_x),iE] += weight_E + + # For Gy + jy,iy = np.where(fluid_mask_Gy_ex==True) + Npts_y = len(jy) + iC = fluid_index[jy,iy] + iN = fluid_index[jy+1,iy] + Operator_Gy = scysparse.csr_matrix((Npts_y,Npts),dtype=np.float) + Operator_Gy[range(Npts_y),iC] += -invdy + Operator_Gy[range(Npts_y),iN] += invdy + # The Mapping Gy that maps grided gradients to staggered location is by weighted average. + Map_Gy = scysparse.csr_matrix((Npts_y,Npts),dtype=np.float) + V_C = grad_y_ex[jy,iy] + V_N = grad_y_ex[jy+1,iy] + sigma_C = sigma_grad_y_ex[jy,iy] + sigma_N = sigma_grad_y_ex[jy+1,iy] + weight_C = ((V_C-V_N)**2 + 2*sigma_N**2) / (2*(V_C-V_N)**2 + 2*sigma_C**2 + 2*sigma_N**2) + weight_N = 1.0 - weight_C + Map_Gy[range(Npts_y),iC] += weight_C + Map_Gy[range(Npts_y),iN] += weight_N + + # For Dirichlet BC + j_d, i_d = np.where(dirichlet_label_ex==True) + Npts_d = len(j_d) + iC = fluid_index[j_d,i_d] + Operator_d = scysparse.csr_matrix((Npts_d,Npts),dtype=np.float) + Map_d = scysparse.eye(Npts_d,Npts_d,format='csr') * invdx + Operator_d[range(Npts_d),iC] += 1.0*invdx + # dirichlet value vector and cov + dirichlet_vect = dirichlet_value_ex[j_d,i_d] + dirichlet_sigma_vect = sigma_dirichlet_ex[j_d,i_d] + cov_dirichlet = scysparse.diags(dirichlet_sigma_vect**2, format='csr') + # Generate the vector and cov for pgrad. + pgrad_x_vect = grad_x_ex[j,i] + pgrad_y_vect = grad_y_ex[j,i] + pgrad_vect = np.concatenate((pgrad_x_vect,pgrad_y_vect)) + cov_pgrad_x = sigma_grad_x_ex[j,i]**2 + cov_pgrad_y = sigma_grad_y_ex[j,i]**2 + cov_pgrad_vect = np.concatenate((cov_pgrad_x, cov_pgrad_y)) + cov_pgrad = scysparse.diags(cov_pgrad_vect, format='csr') + + # Construct the full operator. + Operator_GLS = scysparse.bmat([[Operator_Gx],[Operator_Gy],[Operator_d]]) + + # Construct the full mapping matrics and get the rhs. + Map_pgrad = scysparse.bmat([[Map_Gx, None],[None, Map_Gy],[scysparse.csr_matrix((Npts_d,Npts),dtype=np.float), None]]) + Map_dirichlet = scysparse.bmat([[scysparse.csr_matrix((Npts_x+Npts_y,Npts_d),dtype=np.float)],[Map_d]]) + rhs = Map_pgrad.dot(pgrad_vect) + Map_dirichlet.dot(dirichlet_vect) + + # Evaluate the covriance matrix for the rhs + cov_rhs = Map_pgrad * cov_pgrad * Map_pgrad.transpose() + Map_dirichlet * cov_dirichlet * Map_dirichlet.transpose() + + # Solve for the WLS solution + weights_vect = cov_rhs.diagonal()**(-1) + weights_matrix = scysparse.diags(weights_vect,format='csr') + # Operator_WLS = weights_matrix * Operator_GLS + # rhs_WLS = weights_matrix.dot(rhs) + sys_LHS = Operator_GLS.transpose() * weights_matrix * Operator_GLS + sys_rhs = (Operator_GLS.transpose() * weights_matrix).dot(rhs) + + # Get the solution from lsqr + # p_vect_wls = splinalg.lsqr(Operator_WLS,rhs_WLS)[0] + # Pn_WLS = np.zeros(fluid_mask_ex.shape) + # Pn_WLS[j,i] = p_vect_wls + + # Solve for the WLS solution + p_vect_wls = splinalg.spsolve(sys_LHS, sys_rhs) + Pn_WLS_ex = np.zeros(fluid_mask_ex.shape) + Pn_WLS_ex[j,i] = p_vect_wls + + # Perform the uncertainty propagation + sigma_Pn_ex = np.zeros((Ny+2,Nx+2)) + if uncertainty_quantification == True: + cov_sys_rhs = (Operator_GLS.transpose() * weights_matrix) * cov_rhs * (Operator_GLS.transpose() * weights_matrix).transpose() + sys_LHS_inv = linalg.inv(sys_LHS.A) + Cov_p = np.matmul(np.matmul(sys_LHS_inv, cov_sys_rhs.A), sys_LHS_inv.T) + Var_p_vect = np.diag(Cov_p) + sigma_Pn_ex[j,i] = Var_p_vect**0.5 + + return Pn_WLS_ex[1:-1,1:-1], sigma_Pn_ex[1:-1,1:-1] + + + + + + + + + + + + + + + + + + + + + + + diff --git a/__pycache__/DensityIntegrationUncertaintyQuantification.cpython-38.pyc b/__pycache__/DensityIntegrationUncertaintyQuantification.cpython-38.pyc new file mode 100755 index 0000000000000000000000000000000000000000..39e0b064330611a70f437d55c905dc3096dfd9cf GIT binary patch literal 10089 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 literal 0 HcmV?d00001 diff --git a/__pycache__/loadmat_functions.cpython-38.pyc b/__pycache__/loadmat_functions.cpython-38.pyc new file mode 100755 index 0000000000000000000000000000000000000000..a1448e4470b13e2f2ad7ec637b85327a7f30b88b GIT binary patch literal 1314 zcmZ`(O^@6}5bd@-Gahd?tRfEN*2m0Y*AfCwQ3NE4lmj19fI|ebdfYuTJ!`us-93rC z@|>1yeh7cb;>H0X@e4Td%AV{lAZ&HHKdY+Wd*$y>Pcw$+*X;Kn4+&$x(ctbAVemPc ze*~kL;uWj;tB5ldsrYC1DprY_;G3wan&CT9{3TnYe_%KJy5#gZKICbF_7u&31QXbn zckoD_-o*zVqK;qF>E!CqY#uhoi`Bj`gHXy0A*D0g zXY-Y_wSY&lGL`lh;su-{gVE_tdgVr!m*P^ln72bzflWd;Vf6BLW6F(?P75Cl7U1yQ zF1JV-#R-)&A9&1EC2)*GLDSLRFW z&y{Yx3GF#n_1Z~d;e02{OS#thF^%H={r$zRb;K9y`OI$l3eFtOE zwh}GT87$E&Ag!a0h^~!n)|ymO6MKz@ved1&K?aLypBYc0lLQ)FqMsr{C71n4ZS1GT zPC8lpKEq@&a@o&{F&r35C~O~tuYsD;Q02KP%zZSU!mvroKjaViF#8YaDB=xt&oD6T z0ARKR;3tO&J>EqR*&#+1#Q_j*C)+7t{4C767!YC=5N2I`)1yk`S6^lGFQ^Fi&YL&- zw%|s^mKHZAU7{3^g>aPZ|G<<&nk%C#MQZeYS`>8gqHrfjd4SE`quwbQy0-fOW|0hF z!nHfYuul+l-6t9a`){~tJN-O79cD?wGrVW~ew6Xi)wEB2X?E=e>LoIEj7i!YFdg>X c@kw>!h=)FXTwArT^b`6|d1B>WlxAu6H{%szjsO4v literal 0 HcmV?d00001 diff --git a/loadmat_functions.py b/loadmat_functions.py new file mode 100755 index 0000000..721cb44 --- /dev/null +++ b/loadmat_functions.py @@ -0,0 +1,35 @@ +# The following functions convert an object to a struct so that it can be saved to a mat file +import scipy.io as sio + +def loadmat(filename): + ''' + this function should be called instead of direct spio.loadmat + as it cures the problem of not properly recovering python dictionaries + from mat files. It calls the function check keys to cure all entries + which are still mat-objects + ''' + data = sio.loadmat(filename, struct_as_record=False, squeeze_me=True) + return _check_keys(data) + +def _check_keys(dict): + ''' + checks if entries in dictionary are mat-objects. If yes + todict is called to change them to nested dictionaries + ''' + for key in dict: + if isinstance(dict[key], sio.matlab.mio5_params.mat_struct): + dict[key] = _todict(dict[key]) + return dict + +def _todict(matobj): + ''' + A recursive function which constructs from matobjects nested dictionaries + ''' + dict = {} + for strg in matobj._fieldnames: + elem = matobj.__dict__[strg] + if isinstance(elem, sio.matlab.mio5_params.mat_struct): + dict[strg] = _todict(elem) + else: + dict[strg] = elem + return dict \ No newline at end of file diff --git a/sample-displacements.mat b/sample-displacements.mat new file mode 100755 index 0000000000000000000000000000000000000000..7d57dcbe45f6b9cffe16e44d29317dfe90585476 GIT binary patch literal 186072 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 z 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