From b5336c1ca1b51e5dadc852dc2de588e47adb30ac Mon Sep 17 00:00:00 2001 From: Lindsey Heagy Date: Mon, 6 Jul 2015 14:57:19 -0500 Subject: [PATCH] Fixed typo in Model builder, getIndecesBlock --> get IndicesBlock, added addBlock function --- SimPEG/Utils/ModelBuilder.py | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/SimPEG/Utils/ModelBuilder.py b/SimPEG/Utils/ModelBuilder.py index 93e33250..35ff3a5b 100644 --- a/SimPEG/Utils/ModelBuilder.py +++ b/SimPEG/Utils/ModelBuilder.py @@ -3,6 +3,23 @@ import scipy.ndimage as ndi import scipy.sparse as sp from matutils import mkvc +def addBlock(gridCC, modelCC, p0, p1, blockProp): + """ + Add a block to an exsisting cell centered model, modelCC + + :param numpy.array, gridCC: mesh.gridCC is the cell centered grid + :param numpy.array, modelCC: cell centered model + :param numpy.array, p0: bottom, southwest corner of block + :param numpy.array, p1: top, northeast corner of block + :blockProp float, blockProp: property to assign to the model + + :return numpy.array, modelBlock: model with block + """ + ind = getIndicesBlock(p0, p1, gridCC) + modelBlock = modelCC.copy() + modelBlock[ind] = blockProp + return modelBlock + def getIndicesBlock(p0,p1,ccMesh): """ @@ -78,7 +95,7 @@ def defineBlock(ccMesh,p0,p1,vals=[0,1]): vals[1] conductivity of the ground """ sigma = np.zeros(ccMesh.shape[0]) + vals[1] - ind = getIndecesBlock(p0,p1,ccMesh) + ind = getIndicesBlock(p0,p1,ccMesh) sigma[ind] = vals[0] @@ -132,7 +149,7 @@ def defineTwoLayers(ccMesh,depth,vals=[0,1]): # The depth is always defined on the last one. p1[len(p1)-1] -= depth - ind = getIndecesBlock(p0,p1,ccMesh) + ind = getIndicesBlock(p0,p1,ccMesh) sigma[ind] = vals[0];