Use **kwargs for init_fft_from function in fluidsim/base/state.py
Created originally on Bitbucket by avmo (Ashwin Vishnu)
Allows multiple key+value combination
Instead of:
#!python
def init_fft_from(self, args):
if len(args) > 1:
raise ValueError(
'Do not know how to initialize with keys "{}".'.format(
repr(args.keys())))
keys_state_fft = copy(self.keys_state_fft)
key, value = args.popitem()
if key not in keys_state_fft:
raise ValueError(
'Do not know how to initialize with key "{}".'.format(key))
self.state_fft[:] = 0.
self.state_fft.set_var(key, value)
#!python
def init_fft_from(self, **kwargs):
"""
Examples
--------
kwargs = {self.key_forced: Fa_fft}
init_fft_from(**kwargs)
ux_fft, uy_fft, eta_fft = oper.uxuyetafft_from_qfft(q_fft)
init_fft_from(ux_fft=ux_fft, uy_fft=uy_fft, eta_fft=eta_fft)
"""
keys_state_fft = copy(self.keys_state_fft)
self.state_fft[:] = 0.
for key, value in kwargs.iteritems():
if key not in keys_state_fft:
raise ValueError(
'Do not know how to initialize with key "{}".'.format(key))
self.state_fft.set_var(key, value)