diff --git a/@Ternary_model/Ternary_model.m b/@Ternary_model/Ternary_model.m index 18f0e53854d06afcc6260fcebcf13575ed47d64c..48c6438698d0d3dbef000c5cb72681965580ed9b 100644 --- a/@Ternary_model/Ternary_model.m +++ b/@Ternary_model/Ternary_model.m @@ -50,7 +50,8 @@ classdef Ternary_model < handle end T.create_mesh(); T.phi_t = Ternary_model.phi_tot(T.x, T.a, T.b, T.e, T.u0, 0); - T.ga0 = Ternary_model.gamma0(T.x, T.a, T.b, T.e_g0, T.u_g0, 0); + T.ga0 = Ternary_model.gamma0(T.x, T.a, T.b, T.e_g0, T.u_g0,... + 0, T.e, T.u0); T.calc_real_params; end create_mesh(T) @@ -62,6 +63,6 @@ classdef Ternary_model < handle methods(Static) pt = phi_tot(x, a, b, e, u0, vt) g = gradient_analytical(x, a, b, e, vt) - g0 = gamma0(x, a, b, e_g0, u_g0, vt) + g0 = gamma0(x, a, b, e_g0, u_g0, vt, e, u0) end end \ No newline at end of file diff --git a/@Ternary_model/calc_real_params.m b/@Ternary_model/calc_real_params.m index 16aebb30c1dc1281f85010a7e1edb852b4f97e21..226cf017a3fb3d1e8e65b24e7583017ff7639d00 100644 --- a/@Ternary_model/calc_real_params.m +++ b/@Ternary_model/calc_real_params.m @@ -7,9 +7,9 @@ T.real_params.partitioning = T.real_params.phi_in/T.real_params.phi_out; if strcmp(T.mode, 'Constituent') || strcmp(T.mode, 'Client') T.real_params.Gamma_in = Ternary_model.gamma0(-1000, T.a, T.b, T.e_g0,... - T.u_g0, 0); + T.u_g0, 0, T.e, T.u0); T.real_params.Gamma_out = Ternary_model.gamma0(1000, T.a, T.b, T.e_g0,... - T.u_g0, 0); + T.u_g0, 0, T.e, T.u0); T.real_params.D_in = (1-T.real_params.phi_in)*T.real_params.Gamma_in; T.real_params.D_out = (1-T.real_params.phi_out)*T.real_params.Gamma_out; diff --git a/@Ternary_model/gamma0.m b/@Ternary_model/gamma0.m index 216035c626c039f7668acca474821ea321cc40cb..6b05c935970efa9f7aa572744120054ea7bddb9c 100644 --- a/@Ternary_model/gamma0.m +++ b/@Ternary_model/gamma0.m @@ -1,5 +1,9 @@ -function g0 = gamma0(x, a, b, e_g0, u_g0, vt) +function g0 = gamma0(x, a, b, e_g0, u_g0, vt, e, u0) %GAMMA0 calculate spatially dependent mobility % Based on a tanh profile. -g0 = e_g0*(tanh((x+a+vt)/b)+1)/2+u_g0; +if isnumeric(isnumeric(e_g0)) + g0 = e_g0*(tanh((x+a+vt)/b)+1)/2+u_g0; +else + g0 = u_g0./Ternary_model.phi_tot(x, a, b, e, u0, vt); +end end \ No newline at end of file diff --git a/flory_hugg_pde.m b/flory_hugg_pde.m index ce9120287fe0873b854d68cd56837f23005a71f7..eb37e122d6bbab213c632d534123545469fbe199 100644 --- a/flory_hugg_pde.m +++ b/flory_hugg_pde.m @@ -9,7 +9,7 @@ gra_a = Ternary_model.gradient_analytical(x, a, b, e, v*t); s = 0; c = 1; if strcmp(mode, 'Constituent') - g0 = Ternary_model.gamma0(x, a+t*v, b, e_g0, u_g0, v*t); + g0 = Ternary_model.gamma0(x, a+t*v, b, e_g0, u_g0, v*t, e, u0); f = g0.*(1-pt)./pt.*(pt.*dudx-u.*gra_a); elseif strcmp(mode, 'Const_mob') % Using Stefano's mobility ansatz (1-phi_tot+a*phi_tot^2) to obtain a