Source code for marge3d.fields

"""
The 3D velocity field here is (-y, x, 0). This is just the 2D vortex taken along z direction.
"""
import math

[docs] class VelocityField3D: def __init__(self, omega): self.omega = omega self.limits = False self.periodic = False
[docs] def get_velocity(self, x, y, z, t): u1 = -y * self.omega u2 = x * self.omega u3 = 0.0 * self.omega return u1, u2, u3
[docs] def get_gradient(self, x, y, z, t): u1x = 0.0 u1y = -1.0 * self.omega u1z = 0.0 u2x = 1.0 * self.omega u2y = 0.0 u2z = 0.0 u3x = 0.0 u3y = 0.0 u3z = 0.0 * self.omega return u1x, u1y, u1z, u2x, u2y, u2z, u3x, u3y, u3z
[docs] def get_dudt(self, x, y, z, t): u1t = 0.0 u2t = 0.0 u3t = 0.0 return u1t, u2t, u3t
[docs] class velocity_field_3d_nondim(): def __init__(self, omega, char_vel, char_time): self.char_vel = char_vel self.char_time = char_time self.char_len = char_vel self.omega = omega*char_time self.limits = False self.periodic = False
[docs] def get_velocity(self, x, y, z, t): u1 = -y * self.omega*self.char_len u2 = x * self.omega*self.char_len u3 = 0.0 * self.omega*self.char_len return u1/self.char_vel, u2/self.char_vel, u3/self.char_vel
[docs] def get_gradient(self, x, y, z, t): u1x = 0.0 u1y = -1.0 * self.omega u1z = 0.0 u2x = 1.0 * self.omega u2y = 0.0 u2z = 0.0 u3x = 0.0 u3y = 0.0 u3z = 0.0 * self.omega return u1x*self.char_time, u1y*self.char_time, u1z*self.char_time, u2x*self.char_time, u2y*self.char_time, u2z*self.char_time, u3x*self.char_time, u3y*self.char_time, u3z*self.char_time
[docs] def get_dudt(self, x, y, z, t): u1t = 0.0 u2t = 0.0 u3t = 0.0 return u1t, u2t, u3t
[docs] class velocity_field_3d_oscillatory(): def __init__(self): self.limits = False self.periodic = False
[docs] def get_velocity(self, x, y, z, t): u1 = 0.05 u2 = math.sin(6*t) u3 = 0.0 return u1, u2, u3
[docs] def get_gradient(self, x, y, z, t): u1x = 0.0 u1y = 0.0 u1z = 0.0 u2x = 0.0 u2y = 0.0 u2z = 0.0 u3x = 0.0 u3y = 0.0 u3z = 0.0 return u1x, u1y, u1z, u2x, u2y, u2z, u3x, u3y, u3z
[docs] def get_dudt(self, x, y, z, t): u1t = 0.0 u2t = 6*math.cos(6*t) u3t = 0.0 return u1t, u2t, u3t