vortex module

class vortex.Vortex[source]

Bases: cortix.src.module.Module

Vortex module used to model fluid flow using Cortix.

Notes

Any port name and any number of ports are allowed.

__init__()[source]
initial_time

float

end_time

float

time_step

float

show_time

tuple – Two-element tuple, (bool,float), True will print to standard output.

compute_velocity(time, position)[source]

Compute the vortex velocity at the given external position using a vortex flow model

Parameters:
  • time (float) – Time in SI unit.
  • position (numpy.ndarray(3)) – Spatial position in SI unit.
Returns:

vortex_velocity

Return type:

numpy.ndarray(3)

plot_velocity(time=None)[source]

Plot the vortex velocity as a function of height.

run(*args)[source]

Module run function

Run method with an option to pass data back to the parent process when running in Python multiprocessing mode. If the user does not want to share data with the parent process, this function can be overriden with run(self) or run(self, *args) as long as self.state = None. If self.state points to anything but None, the user must use `run(self, *args).

Notes

When in multiprocessing, *args has two elements: comm_idx and comm_state. To pass back the state of the module, the user should insert the provided index comm_idx and the state into the queue as follows:

if self.use_multiprocessing:
try:
pickle.dumps(self.state)
except pickle.PicklingError:
args[1].put((arg[0],None))
else:
args[1].put((arg[0],self.state))

at the bottom of the user defined run() function.

Warning

This function must be overridden by all Cortix modules

Parameters:
  • arg[0] (int) – Index of the state in the communication queue.
  • arg[1] (multiprocessing.Queue) – When using the Python multiprocessing library state_comm must have the module’s self.state in it. That is, state_comm.put((idx_comm,self.state)) must be the last command in the method before return. In addition, self.state must be pickle-able.