Skip to content
Snippets Groups Projects
Commit 8685b3ec authored by Markus Holzer's avatar Markus Holzer
Browse files

Update analytical solution

parent ec449d00
Branches
Tags
No related merge requests found
Pipeline #67073 failed
Source diff could not be displayed: it is too large. Options to address this: view the blob.
This diff is collapsed.
Source diff could not be displayed: it is too large. Options to address this: view the blob.
Source diff could not be displayed: it is too large. Options to address this: view the blob.
...@@ -15,23 +15,49 @@ def analytic_rising_speed(gravitational_acceleration, bubble_diameter, viscosity ...@@ -15,23 +15,49 @@ def analytic_rising_speed(gravitational_acceleration, bubble_diameter, viscosity
return result return result
def analytical_solution_microchannel(reference_length, length_x, length_y, def analytical_solution_microchannel(reference_length, liquid_top_height, liquid_bottom_height,
kappa_top, kappa_bottom, kappa_top, kappa_bottom,
t_h, t_c, t_0, t_h, t_c, t_0,
reference_surface_tension, dynamic_viscosity_light_phase, reference_surface_tension, dynamic_viscosity_light_phase,
transpose=True): transpose=True):
""" """
https://www.sciencedirect.com/science/article/pii/S0021999113005986 Analytic solution for thermocapillary-driven convection of superimposed fluids at
zero Reynolds and Marangoni numbers https://doi.org/10.1016/j.ijthermalsci.2010.02.003
The analytic solution is evaluated at the cell centers.
L
+----------------------------------------+
| |
| Liquid 1 | liquid_top_height
| |
|========================================| reference_length
| |
| Liquid 2 | liquid_bottom_height
| |
+----------------------------------------+
reference_length: the height is taken as reference length
liquid_top_height: the height of top liquid
liquid_bottom_height: the height of the bottom liquid
kappa_top: thermal diffusivity of the top liquid
kappa_bottom: thermal diffusivity of the bottom liquid
t_h: maximal temperature
t_0: minimal temperature
t_c: base temperature
reference_surface_tension: sigma_ref as defined in the original derivation of the analytic solution
dynamic_viscosity_light_phase: dynamic viscosity light phase
transpose: return solution arrays in transposed form
""" """
l_ref = reference_length l_ref = reference_length
length_x = int(2 * l_ref)
sigma_t = reference_surface_tension sigma_t = reference_surface_tension
kstar = kappa_top / kappa_bottom kstar = kappa_top / kappa_bottom
mp = l_ref // 2 mp = l_ref // 2
w = pi / l_ref w = pi / l_ref
a = mp * w a = liquid_top_height * w
b = mp * w b = liquid_bottom_height * w
f = 1.0 / (kstar * sinh(b) * cosh(a) + sinh(a) * cosh(b)) f = 1.0 / (kstar * sinh(b) * cosh(a) + sinh(a) * cosh(b))
g = sinh(a) * f g = sinh(a) * f
...@@ -51,7 +77,7 @@ def analytical_solution_microchannel(reference_length, length_x, length_y, ...@@ -51,7 +77,7 @@ def analytical_solution_microchannel(reference_length, length_x, length_y,
umax = -1.0 * (t_0 * sigma_t / dynamic_viscosity_light_phase) * g * h umax = -1.0 * (t_0 * sigma_t / dynamic_viscosity_light_phase) * g * h
jj = 0 jj = 0
xx = np.linspace(-l_ref + 0.5, l_ref - 0.5, length_x) xx = np.linspace(-l_ref + 0.5, l_ref - 0.5, length_x)
yy = np.linspace(-(l_ref//2) + 0.5, (l_ref//2) - 0.5, (length_x//2)) yy = np.linspace(-(l_ref // 2) + 0.5, (l_ref // 2) - 0.5, l_ref)
u_x = np.zeros([len(xx), len(yy)]) u_x = np.zeros([len(xx), len(yy)])
u_y = np.zeros([len(xx), len(yy)]) u_y = np.zeros([len(xx), len(yy)])
t_a = np.zeros([len(xx), len(yy)]) t_a = np.zeros([len(xx), len(yy)])
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment