python: do not use assert for required checks
Signed-off-by: Thorsten Liebig <liebig@imst.de>pull/66/head
parent
9e5dcecd31
commit
ebf017441e
|
@ -38,8 +38,10 @@ cdef class _nf2ff:
|
|||
assert len(kw)==0, 'Unknown keyword(s): {}'.format(kw)
|
||||
|
||||
def AnalyseFile(self, e_file, h_file):
|
||||
assert os.path.exists(e_file)
|
||||
assert os.path.exists(h_file)
|
||||
if not os.path.exists(e_file):
|
||||
raise Exception('File "{}" does not exist'.format(e_file))
|
||||
if not os.path.exists(h_file):
|
||||
raise Exception('File "{}" does not exist'.format(e_file))
|
||||
cdef string e_fn = e_file.encode('UTF-8')
|
||||
cdef string h_fn = h_file.encode('UTF-8')
|
||||
with nogil:
|
||||
|
@ -49,7 +51,8 @@ cdef class _nf2ff:
|
|||
def SetMirror(self, mirr_type, ny, pos):
|
||||
if mirr_type<=0:
|
||||
return
|
||||
assert mirr_type<3
|
||||
if not mirr_type<3:
|
||||
raise Exception('SetMirror: invalid mirror type!')
|
||||
ny = CheckNyDir(ny)
|
||||
self.thisptr.SetMirror(mirr_type, ny, pos)
|
||||
|
||||
|
|
|
@ -139,16 +139,21 @@ class nf2ff:
|
|||
fn_e = os.path.join(sim_path, self.e_file + '_{}.h5'.format(n))
|
||||
fn_h = os.path.join(sim_path, self.h_file + '_{}.h5'.format(n))
|
||||
if os.path.exists(fn_e) and os.path.exists(fn_h):
|
||||
assert nfc.AnalyseFile(fn_e, fn_h)
|
||||
if not nfc.AnalyseFile(fn_e, fn_h):
|
||||
raise Exception('CalcNF2FF:: Unable to analyse files!')
|
||||
|
||||
nfc.Write2HDF5(fn)
|
||||
|
||||
result = nf2ff_results(fn)
|
||||
if result.phi is not None:
|
||||
assert np.abs((result.r-radius)/radius)<1e-6, 'Radius does not match. Did you read an invalid chached result? Try "read_cached=False"'
|
||||
assert utilities.Check_Array_Equal(np.rad2deg(result.theta), self.theta, 1e-4), 'Theta array does not match. Did you read an invalid chached result? Try "read_cached=False"'
|
||||
assert utilities.Check_Array_Equal(np.rad2deg(result.phi), self.phi, 1e-4), 'Phi array does not match. Did you read an invalid chached result? Try "read_cached=False"'
|
||||
assert utilities.Check_Array_Equal(result.freq, self.freq, 1e-6, relative=True), 'Frequency array does not match. Did you read an invalid chached result? Try "read_cached=False"'
|
||||
if not np.abs((result.r-radius)/radius)<1e-6:
|
||||
raise Exception('Radius does not match. Did you read an invalid chached result? Try "read_cached=False"')
|
||||
if not utilities.Check_Array_Equal(np.rad2deg(result.theta), self.theta, 1e-4):
|
||||
raise Exception('Theta array does not match. Did you read an invalid chached result? Try "read_cached=False"')
|
||||
if not utilities.Check_Array_Equal(np.rad2deg(result.phi), self.phi, 1e-4):
|
||||
raise Exception('Phi array does not match. Did you read an invalid chached result? Try "read_cached=False"')
|
||||
if not utilities.Check_Array_Equal(result.freq, self.freq, 1e-6, relative=True):
|
||||
raise Exception('Frequency array does not match. Did you read an invalid chached result? Try "read_cached=False"')
|
||||
return result
|
||||
|
||||
class nf2ff_results:
|
||||
|
|
|
@ -147,7 +147,8 @@ cdef class openEMS:
|
|||
|
||||
Set the coordinate system. 0 --> Cartesian (default), 1 --> cylindrical
|
||||
"""
|
||||
assert (val==0 or val==1), 'SetCoordSystem: Invalid coordinate system'
|
||||
if not (val==0 or val==1):
|
||||
raise Exception('SetCoordSystem: Invalid coordinate system')
|
||||
if val==0:
|
||||
self.thisptr.SetCylinderCoords(False)
|
||||
elif val==1:
|
||||
|
@ -164,7 +165,8 @@ cdef class openEMS:
|
|||
--------
|
||||
openEMS.SetCylinderCoords
|
||||
"""
|
||||
assert len(radii)>0, 'SetMultiGrid: invalid multi grid definition'
|
||||
if not len(radii)>0:
|
||||
raise Exception('SetMultiGrid: invalid multi grid definition')
|
||||
|
||||
grid_str = ','.join(['{}'.format(x) for x in radii])
|
||||
self.thisptr.SetupCylinderMultiGrid(grid_str.encode('UTF-8'))
|
||||
|
@ -245,7 +247,8 @@ cdef class openEMS:
|
|||
|
||||
:param BC: (8,) array or list -- see options above
|
||||
"""
|
||||
assert len(BC)==6
|
||||
if not len(BC)==6:
|
||||
raise Exception('Invalid boundary condition size!')
|
||||
for n in range(len(BC)):
|
||||
if type(BC[n])==int:
|
||||
self.thisptr.Set_BC_Type(n, BC[n])
|
||||
|
@ -268,7 +271,8 @@ cdef class openEMS:
|
|||
--------
|
||||
openEMS.ports.LumpedPort
|
||||
"""
|
||||
assert self.__CSX is not None, 'AddLumpedPort: CSX is not set!'
|
||||
if self.__CSX is None:
|
||||
raise Exception('AddLumpedPort: CSX is not set!')
|
||||
port = ports.LumpedPort(self.__CSX, port_nr, R, start, stop, p_dir, excite, **kw)
|
||||
edges2grid = kw.get('edges2grid', None)
|
||||
if edges2grid is not None:
|
||||
|
@ -288,7 +292,8 @@ cdef class openEMS:
|
|||
--------
|
||||
openEMS.ports.WaveguidePort
|
||||
"""
|
||||
assert self.__CSX is not None, 'AddWaveGuidePort: CSX is not set!'
|
||||
if self.__CSX is None:
|
||||
raise Exception('AddWaveGuidePort: CSX is not set!')
|
||||
return ports.WaveguidePort(self.__CSX, port_nr, start, stop, p_dir, E_func, H_func, kc, excite, **kw)
|
||||
|
||||
def AddRectWaveGuidePort(self, port_nr, start, stop, p_dir, a, b, mode_name, excite=0, **kw):
|
||||
|
@ -300,7 +305,8 @@ cdef class openEMS:
|
|||
--------
|
||||
openEMS.ports.RectWGPort
|
||||
"""
|
||||
assert self.__CSX is not None, 'AddRectWaveGuidePort: CSX is not set!'
|
||||
if self.__CSX is None:
|
||||
raise Exception('AddRectWaveGuidePort: CSX is not set!')
|
||||
return ports.RectWGPort(self.__CSX, port_nr, start, stop, p_dir, a, b, mode_name, excite, **kw)
|
||||
|
||||
def AddMSLPort(self, port_nr, metal_prop, start, stop, prop_dir, exc_dir, excite=0, **kw):
|
||||
|
@ -312,7 +318,8 @@ cdef class openEMS:
|
|||
--------
|
||||
openEMS.ports.MSLPort
|
||||
"""
|
||||
assert self.__CSX is not None, 'AddMSLPort: CSX is not set!'
|
||||
if self.__CSX is None:
|
||||
raise Exception('AddMSLPort: CSX is not set!')
|
||||
return ports.MSLPort(self.__CSX, port_nr, metal_prop, start, stop, prop_dir, exc_dir, excite, **kw)
|
||||
|
||||
def CreateNF2FFBox(self, name='nf2ff', start=None, stop=None, **kw):
|
||||
|
@ -331,7 +338,8 @@ cdef class openEMS:
|
|||
--------
|
||||
openEMS.nf2ff.nf2ff
|
||||
"""
|
||||
assert self.__CSX is not None, 'CreateNF2FFBox: CSX is not set!'
|
||||
if self.__CSX is None:
|
||||
raise Exception('CreateNF2FFBox: CSX is not set!')
|
||||
directions = [True]*6
|
||||
mirror = [0]*6
|
||||
BC_size = [0]*6
|
||||
|
@ -351,13 +359,15 @@ cdef class openEMS:
|
|||
|
||||
if start is None or stop is None:
|
||||
grid = self.__CSX.GetGrid()
|
||||
assert grid.IsValid(), 'Error::CreateNF2FFBox: Grid is invalid'
|
||||
if not grid.IsValid():
|
||||
raise Exception('Error::CreateNF2FFBox: Grid is invalid')
|
||||
start = np.zeros(3)
|
||||
stop = np.zeros(3)
|
||||
for n in range(3):
|
||||
l = grid.GetLines(n)
|
||||
BC_type = self.thisptr.Get_BC_Type(2*n)
|
||||
assert len(l)>(BC_size[2*n]+BC_size[2*n+1]), 'Error::CreateNF2FFBox: not enough lines in some direction'
|
||||
if not len(l)>(BC_size[2*n]+BC_size[2*n+1]):
|
||||
raise Exception('Error::CreateNF2FFBox: not enough lines in some direction')
|
||||
start[n] = l[BC_size[2*n]]
|
||||
stop[n] = l[-1*BC_size[2*n+1]-1]
|
||||
return nf2ff.nf2ff(self.__CSX, name, start, stop, directions=directions, mirror=mirror, **kw)
|
||||
|
|
|
@ -105,10 +105,12 @@ class Port(object):
|
|||
|
||||
if ref_impedance is not None:
|
||||
self.Z_ref = ref_impedance
|
||||
assert self.Z_ref is not None
|
||||
if self.Z_ref is None:
|
||||
raise Exception('Port Z_ref should not be None!')
|
||||
|
||||
if ref_plane_shift is not None:
|
||||
assert hasattr(self, 'beta')
|
||||
if not hasattr(self, 'beta'):
|
||||
raise Exception('Port has no beta attribute!')
|
||||
shift = ref_plane_shift
|
||||
if self.measplane_shift:
|
||||
shift -= self.measplane_shift
|
||||
|
@ -152,7 +154,8 @@ class LumpedPort(Port):
|
|||
self.exc_ny = CheckNyDir(exc_dir)
|
||||
|
||||
self.direction = np.sign(self.stop[self.exc_ny]-self.start[self.exc_ny])
|
||||
assert self.start[self.exc_ny]!=self.stop[self.exc_ny], 'LumpedPort: start and stop may not be identical in excitation direction'
|
||||
if not self.start[self.exc_ny]!=self.stop[self.exc_ny]:
|
||||
raise Exception('LumpedPort: start and stop may not be identical in excitation direction')
|
||||
|
||||
if self.R > 0:
|
||||
lumped_R = CSX.AddLumpedElement(self.lbl_temp.format('resist'), ny=self.exc_ny, caps=True, R=self.R)
|
||||
|
@ -206,10 +209,12 @@ class MSLPort(Port):
|
|||
self.prop_ny = CheckNyDir(prop_dir)
|
||||
self.direction = np.sign(stop[self.prop_ny]-start[self.prop_ny])
|
||||
self.upside_down = np.sign(stop[self.exc_ny] -start[self.exc_ny])
|
||||
assert (self.start!=self.stop).all()
|
||||
if not (self.start!=self.stop).all():
|
||||
raise Exception('Start coordinate must not be equal to stop coordinate')
|
||||
# assert stop[self.prop_ny]!=start[self.prop_ny], 'port length in propergation direction may not be zero!'
|
||||
# assert stop[self.exc_ny] !=start[self.exc_ny], 'port length in propergation direction may not be zero!'
|
||||
assert self.exc_ny!=self.prop_ny
|
||||
if not self.exc_ny!=self.prop_ny:
|
||||
raise Exception('Excitation direction must not be equal to propagation direction')
|
||||
|
||||
self.feed_shift = 0
|
||||
if 'FeedShift' in kw:
|
||||
|
@ -230,7 +235,8 @@ class MSLPort(Port):
|
|||
|
||||
mesh = CSX.GetGrid()
|
||||
prop_lines = mesh.GetLines(self.prop_ny)
|
||||
assert len(prop_lines)>5, 'At least 5 lines in propagation direction required!'
|
||||
if not len(prop_lines)>5:
|
||||
raise Exception('At least 5 lines in propagation direction required!')
|
||||
meas_pos_idx = np.argmin(np.abs(prop_lines-self.measplane_pos))
|
||||
if meas_pos_idx==0:
|
||||
meas_pos_idx=1
|
||||
|
@ -328,7 +334,8 @@ class WaveguidePort(Port):
|
|||
self.direction = np.sign(stop[self.exc_ny]-start[self.exc_ny])
|
||||
self.ref_index = 1
|
||||
|
||||
assert not (self.excite!=0 and stop[self.exc_ny]==start[self.exc_ny]), 'port length in excitation direction may not be zero if port is excited!'
|
||||
if (self.excite!=0 and stop[self.exc_ny]==start[self.exc_ny]):
|
||||
raise Exception('Port length in excitation direction may not be zero if port is excited!')
|
||||
|
||||
self.kc = kc
|
||||
self.E_func = E_WG_func
|
||||
|
@ -387,7 +394,8 @@ class RectWGPort(WaveguidePort):
|
|||
self.WG_size = [a, b]
|
||||
|
||||
self.WG_mode = mode_name
|
||||
assert len(self.WG_mode)==4, 'Invalid mode definition'
|
||||
if not len(self.WG_mode)==4:
|
||||
raise Exception('Invalid mode definition')
|
||||
self.unit = self.CSX.GetGrid().GetDeltaUnit()
|
||||
if self.WG_mode.startswith('TE'):
|
||||
self.TE = True
|
||||
|
@ -398,7 +406,8 @@ class RectWGPort(WaveguidePort):
|
|||
self.M = float(self.WG_mode[2])
|
||||
self.N = float(self.WG_mode[3])
|
||||
|
||||
assert self.TE, 'Currently only TE-modes are supported! Mode found: {}'.format(self.WG_mode)
|
||||
if not self.TE:
|
||||
raise Exception('Currently only TE-modes are supported! Mode found: {}'.format(self.WG_mode))
|
||||
|
||||
# values by David M. Pozar, Microwave Engineering, third edition
|
||||
a = self.WG_size[0]
|
||||
|
|
Loading…
Reference in New Issue