Compare commits

...
12 Commits
Author SHA1 Message Date
Rowan Cockett 0c432e1d82 Bump version: 0.1.2 → 0.1.3 2015-05-15 12:36:26 -07:00
Rowan Cockett 0a4b7d14ac Merge pull request #94 from simpeg/bug/FieldsObject
Bug/fields object
2015-05-15 12:30:08 -07:00
Rowan Cockett 37dacec8ff Merge pull request #91 from simpeg/removeSrcType
removed SrcType
2015-05-15 12:28:31 -07:00
Rowan Cockett 4a1772bbb1 updates to website. 2015-05-15 11:46:57 -07:00
Lindsey b8118464b8 Time fields objects return arrays 2015-05-08 14:59:58 -07:00
Lindsey 618f803ffa Fields returns matrices 2015-05-08 10:01:28 -07:00
Lindsey e8647f3902 Merge branch 'removeSrcType' into bug/FieldsObject 2015-05-08 09:54:54 -07:00
Lindsey 24c754cea2 Working on making fields 1 wide in Problem.mp 2015-05-08 09:21:43 -07:00
Lindsey f8324186d4 Merge pull request #92 from simpeg/master
merge fix in fields size to removeSrcType
2015-05-07 15:39:00 -07:00
Lindsey 6f487e17d0 forgot to stage Survey.py 2015-05-06 16:34:24 -07:00
Lindsey 1f58f5ef37 loc is now a kwarg 2015-05-06 15:27:58 -07:00
Lindsey 428e34f631 removed SrcType 2015-05-06 13:16:56 -07:00
7 changed files with 47 additions and 47 deletions
+1 -1
View File
@@ -1,4 +1,4 @@
[bumpversion]
current_version = 0.1.2
current_version = 0.1.3
files = setup.py SimPEG/__init__.py docs/conf.py
+7 -5
View File
@@ -139,7 +139,7 @@ class Fields(object):
return self._getField(name, ind)
def _setField(self, field, val, name, ind):
if isinstance(val, np.ndarray) and (field.shape[1] == 1 or val.ndim == 1):
if isinstance(val, np.ndarray) and (field.shape[0] == field.size or val.ndim == 1):
val = Utils.mkvc(val,2)
field[:,ind] = val
@@ -160,8 +160,8 @@ class Fields(object):
assert hasattr(self, func), 'The alias field function is a string, but it does not exist in the Fields class.'
func = getattr(self, func)
out = func(self._fields[alias][:,ind], srcII)
if out.shape[0] == out.size:
out = Utils.mkvc(out)
if isinstance(out, np.ndarray) and (out.shape[0] == out.size or out.ndim == 1):
out = Utils.mkvc(out,2)
return out
def __contains__(self, other):
@@ -216,6 +216,8 @@ class TimeFields(Fields):
shape = nP, nSrc, nT
if deflate:
shape = tuple([s for s in shape if s > 1])
if len(shape) == 1:
shape = shape + (1,)
return shape
def _setField(self, field, val, name, ind):
@@ -260,8 +262,8 @@ class TimeFields(Fields):
out = range(nT)
for i, TIND_i in enumerate(timeII):
fieldI = pointerFields[:,:,i]
if fieldI.ndim == 2 and fieldI.shape[1] == 1:
fieldI = Utils.mkvc(fieldI)
if fieldI.shape[0] == fieldI.size:
fieldI = Utils.mkvc(fieldI,2)
out[i] = func(fieldI, srcII, TIND_i)
if out[i].ndim == 1:
out[i] = out[i][:,np.newaxis,np.newaxis]
+1 -3
View File
@@ -119,14 +119,12 @@ class BaseSrc(object):
rxList = None #: SimPEG Receiver List
rxPair = BaseRx
def __init__(self, loc, srcType, rxList, **kwargs):
def __init__(self, rxList, **kwargs):
assert type(rxList) is list, 'rxList must be a list'
for rx in rxList:
assert isinstance(rx, self.rxPair), 'rxList must be a %s'%self.rxPair.__name__
assert len(set(rxList)) == len(rxList), 'The rxList must be unique'
self.loc = loc
self.srcType = srcType
self.rxList = rxList
Utils.setKwargs(self, **kwargs)
+33 -33
View File
@@ -9,14 +9,14 @@ class DataAndFieldsTest(unittest.TestCase):
XYZ = Utils.ndgrid(x,x,np.r_[0.])
srcLoc = np.r_[0,0,0.]
rxList0 = Survey.BaseRx(XYZ, 'exi')
Src0 = Survey.BaseSrc(srcLoc, 'VMD', [rxList0])
Src0 = Survey.BaseSrc([rxList0], loc=srcLoc)
rxList1 = Survey.BaseRx(XYZ, 'bxi')
Src1 = Survey.BaseSrc(srcLoc, 'VMD', [rxList1])
Src1 = Survey.BaseSrc([rxList1], loc=srcLoc)
rxList2 = Survey.BaseRx(XYZ, 'bxi')
Src2 = Survey.BaseSrc(srcLoc, 'VMD', [rxList2])
Src2 = Survey.BaseSrc([rxList2], loc=srcLoc)
rxList3 = Survey.BaseRx(XYZ, 'bxi')
Src3 = Survey.BaseSrc(srcLoc, 'VMD', [rxList3])
Src4 = Survey.BaseSrc(srcLoc, 'VMD', [rxList0, rxList1, rxList2, rxList3])
Src3 = Survey.BaseSrc([rxList3], loc=srcLoc)
Src4 = Survey.BaseSrc([rxList0, rxList1, rxList2, rxList3], loc=srcLoc)
srcList = [Src0,Src1,Src2,Src3,Src4]
survey = Survey.BaseSurvey(srcList=srcList)
self.D = Survey.Data(survey)
@@ -80,9 +80,9 @@ class DataAndFieldsTest(unittest.TestCase):
b = np.random.rand(F.mesh.nF,1)
F[self.Src0, 'b'] = b
self.assertTrue(np.all(F[self.Src0, 'b'] == Utils.mkvc(b)))
self.assertTrue(np.all(F[self.Src0, 'b'] == b))
b = np.random.rand(F.mesh.nF)
b = np.random.rand(F.mesh.nF,1)
F[self.Src0, 'b'] = b
self.assertTrue(np.all(F[self.Src0, 'b'] == b))
@@ -96,10 +96,10 @@ class DataAndFieldsTest(unittest.TestCase):
b = np.random.rand(F.mesh.nF, 2)
F[[self.Src0, self.Src1],'b'] = b
self.assertTrue(F[self.Src0]['b'].shape == (F.mesh.nF,))
self.assertTrue(F[self.Src0,'b'].shape == (F.mesh.nF,))
self.assertTrue(np.all(F[self.Src0,'b'] == b[:,0]))
self.assertTrue(np.all(F[self.Src1,'b'] == b[:,1]))
self.assertTrue(F[self.Src0]['b'].shape == (F.mesh.nF,1))
self.assertTrue(F[self.Src0,'b'].shape == (F.mesh.nF,1))
self.assertTrue(np.all(F[self.Src0,'b'] == Utils.mkvc(b[:,0],2)))
self.assertTrue(np.all(F[self.Src1,'b'] == Utils.mkvc(b[:,1],2)))
def test_assertions(self):
freq = [self.Src0, self.Src1]
@@ -122,14 +122,14 @@ class FieldsTest_Alias(unittest.TestCase):
XYZ = Utils.ndgrid(x,x,np.r_[0.])
srcLoc = np.r_[0,0,0.]
rxList0 = Survey.BaseRx(XYZ, 'exi')
Src0 = Survey.BaseSrc(srcLoc, 'VMD', [rxList0])
Src0 = Survey.BaseSrc([rxList0],loc=srcLoc)
rxList1 = Survey.BaseRx(XYZ, 'bxi')
Src1 = Survey.BaseSrc(srcLoc, 'VMD', [rxList1])
Src1 = Survey.BaseSrc([rxList1],loc=srcLoc)
rxList2 = Survey.BaseRx(XYZ, 'bxi')
Src2 = Survey.BaseSrc(srcLoc, 'VMD', [rxList2])
Src2 = Survey.BaseSrc([rxList2],loc=srcLoc)
rxList3 = Survey.BaseRx(XYZ, 'bxi')
Src3 = Survey.BaseSrc(srcLoc, 'VMD', [rxList3])
Src4 = Survey.BaseSrc(srcLoc, 'VMD', [rxList0, rxList1, rxList2, rxList3])
Src3 = Survey.BaseSrc([rxList3],loc=srcLoc)
Src4 = Survey.BaseSrc([rxList0, rxList1, rxList2, rxList3],loc=srcLoc)
srcList = [Src0,Src1,Src2,Src3,Src4]
survey = Survey.BaseSurvey(srcList=srcList)
self.D = Survey.Data(survey)
@@ -158,7 +158,7 @@ class FieldsTest_Alias(unittest.TestCase):
e = np.random.rand(F.mesh.nE,1)
F[self.Src0, 'e'] = e
self.assertTrue(np.all(F[self.Src0, 'b'] == F.mesh.edgeCurl * Utils.mkvc(e)))
self.assertTrue(np.all(F[self.Src0, 'b'] == F.mesh.edgeCurl * e))
def f():
F[self.Src0, 'b'] = F[self.Src0, 'b']
@@ -193,14 +193,14 @@ class FieldsTest_Time(unittest.TestCase):
XYZ = Utils.ndgrid(x,x,np.r_[0.])
srcLoc = np.r_[0,0,0.]
rxList0 = Survey.BaseRx(XYZ, 'exi')
Src0 = Survey.BaseSrc(srcLoc, 'VMD', [rxList0])
Src0 = Survey.BaseSrc([rxList0], loc=srcLoc)
rxList1 = Survey.BaseRx(XYZ, 'bxi')
Src1 = Survey.BaseSrc(srcLoc, 'VMD', [rxList1])
Src1 = Survey.BaseSrc([rxList1], loc=srcLoc)
rxList2 = Survey.BaseRx(XYZ, 'bxi')
Src2 = Survey.BaseSrc(srcLoc, 'VMD', [rxList2])
Src2 = Survey.BaseSrc([rxList2], loc=srcLoc)
rxList3 = Survey.BaseRx(XYZ, 'bxi')
Src3 = Survey.BaseSrc(srcLoc, 'VMD', [rxList3])
Src4 = Survey.BaseSrc(srcLoc, 'VMD', [rxList0, rxList1, rxList2, rxList3])
Src3 = Survey.BaseSrc([rxList3], loc=srcLoc)
Src4 = Survey.BaseSrc([rxList0, rxList1, rxList2, rxList3], loc=srcLoc)
srcList = [Src0,Src1,Src2,Src3,Src4]
survey = Survey.BaseSurvey(srcList=srcList)
prob = Problem.BaseTimeProblem(mesh, timeSteps=[(10.,3), (20.,2)])
@@ -249,7 +249,7 @@ class FieldsTest_Time(unittest.TestCase):
b = np.random.rand(F.mesh.nF,1,nT)
F[self.Src0, 'b', 0] = b[:,:,0]
self.assertTrue(np.all(F[self.Src0, 'b', 0] == b[:,0,0]))
self.assertTrue(np.all(F[self.Src0, 'b', 0] == Utils.mkvc(b[:,0,0],2)))
phi = np.random.rand(F.mesh.nC,2,nT)
F[[self.Src0,self.Src1], 'phi'] = phi
@@ -265,10 +265,10 @@ class FieldsTest_Time(unittest.TestCase):
self.assertTrue(F[self.Src0,'b'].shape == (F.mesh.nF,nT))
self.assertTrue(np.all(F[self.Src0,'b'] == b[:,0,:]))
self.assertTrue(np.all(F[self.Src1,'b'] == b[:,1,:]))
self.assertTrue(np.all(F[self.Src0,'b',1] == b[:,0,1]))
self.assertTrue(np.all(F[self.Src1,'b',1] == b[:,1,1]))
self.assertTrue(np.all(F[self.Src0,'b',4] == b[:,0,4]))
self.assertTrue(np.all(F[self.Src1,'b',4] == b[:,1,4]))
self.assertTrue(np.all(F[self.Src0,'b',1] == Utils.mkvc(b[:,0,1],2)))
self.assertTrue(np.all(F[self.Src1,'b',1] == Utils.mkvc(b[:,1,1],2)))
self.assertTrue(np.all(F[self.Src0,'b',4] == Utils.mkvc(b[:,0,4],2)))
self.assertTrue(np.all(F[self.Src1,'b',4] == Utils.mkvc(b[:,1,4],2)))
b = np.random.rand(F.mesh.nF, 2, nT)
@@ -295,14 +295,14 @@ class FieldsTest_Time_Aliased(unittest.TestCase):
XYZ = Utils.ndgrid(x,x,np.r_[0.])
srcLoc = np.r_[0,0,0.]
rxList0 = Survey.BaseRx(XYZ, 'exi')
Src0 = Survey.BaseSrc(srcLoc, 'VMD', [rxList0])
Src0 = Survey.BaseSrc( [rxList0],loc=srcLoc)
rxList1 = Survey.BaseRx(XYZ, 'bxi')
Src1 = Survey.BaseSrc(srcLoc, 'VMD', [rxList1])
Src1 = Survey.BaseSrc( [rxList1],loc=srcLoc)
rxList2 = Survey.BaseRx(XYZ, 'bxi')
Src2 = Survey.BaseSrc(srcLoc, 'VMD', [rxList2])
Src2 = Survey.BaseSrc( [rxList2],loc=srcLoc)
rxList3 = Survey.BaseRx(XYZ, 'bxi')
Src3 = Survey.BaseSrc(srcLoc, 'VMD', [rxList3])
Src4 = Survey.BaseSrc(srcLoc, 'VMD', [rxList0, rxList1, rxList2, rxList3])
Src3 = Survey.BaseSrc( [rxList3],loc=srcLoc)
Src4 = Survey.BaseSrc( [rxList0, rxList1, rxList2, rxList3],loc=srcLoc)
srcList = [Src0,Src1,Src2,Src3,Src4]
survey = Survey.BaseSurvey(srcList=srcList)
prob = Problem.BaseTimeProblem(mesh, timeSteps=[(10.,3), (20.,2)])
@@ -344,7 +344,7 @@ class FieldsTest_Time_Aliased(unittest.TestCase):
self.assertTrue(np.all(F[self.Src0, 'e', :] == e[:,0,:] ))
self.assertTrue(np.all(F[self.Src1, 'e', :] == e[:,1,:] ))
for t in range(nT):
self.assertTrue(np.all(F[self.Src1, 'e', t] == e[:,1,t] ))
self.assertTrue(np.all(F[self.Src1, 'e', t] == Utils.mkvc(e[:,1,t],2) ))
b = np.random.rand(F.mesh.nF,nT)
F[self.Src0, 'b',:] = b
+1 -1
View File
@@ -15,7 +15,7 @@ import Directives
import Inversion
import Tests
__version__ = '0.1.2'
__version__ = '0.1.3'
__author__ = 'Rowan Cockett'
__license__ = 'MIT'
__copyright__ = 'Copyright 2014 Rowan Cockett'
+2 -2
View File
@@ -51,9 +51,9 @@ copyright = u'2013, SimPEG Developers'
# built documents.
#
# The short X.Y version.
version = '0.1.2'
version = '0.1.3'
# The full version, including alpha/beta/rc tags.
release = '0.1.2'
release = '0.1.3'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
+2 -2
View File
@@ -33,7 +33,7 @@ with open("README.rst") as f:
setup(
name = "SimPEG",
version = "0.1.2",
version = "0.1.3",
packages = find_packages(),
install_requires = ['numpy>=1.7',
'scipy>=0.13'
@@ -44,7 +44,7 @@ setup(
long_description = LONG_DESCRIPTION,
license = "MIT",
keywords = "geophysics inverse problem",
url = "http://simpeg.3ptscience.com/",
url = "http://simpeg.xyz/",
download_url = "http://github.com/simpeg/simpeg",
classifiers=CLASSIFIERS,
platforms = ["Windows", "Linux", "Solaris", "Mac OS-X", "Unix"],