arithmetic operations
This commit is contained in:
parent
40d549f714
commit
6df7654064
31
parallel.py
31
parallel.py
|
|
@ -295,17 +295,42 @@ class PPP:
|
|||
|
||||
#def vorticity(self,axis=None,key_out=None,keep_derivatives=False,on_pressure_grid=True):
|
||||
|
||||
def multiply(self,key1,key2,key_out=None,on_pressure_grid=True):
|
||||
def arithmetic_operation(self,key1,operation,key2,key_out=None,on_pressure_grid=True):
|
||||
import operator
|
||||
if operation in ('add','+'):
|
||||
op = operator.iadd
|
||||
elif operation in ('subtract','sub','-'):
|
||||
op = operator.isub
|
||||
elif operation in ('divide','div','/'):
|
||||
op = operator.itruediv
|
||||
elif operation in ('multiply','mul','*'):
|
||||
op = operator.imul
|
||||
if key_out is None:
|
||||
key_out = key1
|
||||
if not self.field[key1].has_same_grid(self.field[key2]) or on_pressure_grid:
|
||||
self.shift_to_pressure_grid(key1,key_out)
|
||||
self.shift_to_pressure_grid(key2,'tmp')
|
||||
self.field[key_out] *= self.field['tmp']
|
||||
op(self.field[key_out],self.field['tmp'])
|
||||
self.delete('tmp')
|
||||
else:
|
||||
self.copy(key1,key_out)
|
||||
self.field[key_out] *= self.field[key2]
|
||||
op(self.field[key_out],self.field[key2])
|
||||
return
|
||||
|
||||
def add(self,key1,key2,key_out=None,on_pressure_grid=True):
|
||||
self.arithmetic_operation(key1,'+',key2,key_out=key_out,on_pressure_grid=on_pressure_grid)
|
||||
return
|
||||
|
||||
def subtract(self,key1,key2,key_out=None,on_pressure_grid=True):
|
||||
self.arithmetic_operation(key1,'-',key2,key_out=key_out,on_pressure_grid=on_pressure_grid)
|
||||
return
|
||||
|
||||
def multiply(self,key1,key2,key_out=None,on_pressure_grid=True):
|
||||
self.arithmetic_operation(key1,'*',key2,key_out=key_out,on_pressure_grid=on_pressure_grid)
|
||||
return
|
||||
|
||||
def divide(self,key1,key2,key_out=None,on_pressure_grid=True):
|
||||
self.arithmetic_operation(key1,'/',key2,key_out=key_out,on_pressure_grid=on_pressure_grid)
|
||||
return
|
||||
|
||||
def gaussian_filter(self,key,sigma,truncate=4.0,key_out=None,iterate=False,verbose=True):
|
||||
|
|
|
|||
Loading…
Reference in New Issue