HEAD body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; line-height: 1.6; color: #2c3e50; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); min-height: 100vh; overflow-x: hidden; } /* Animated background particles */ .particles { position: fixed; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; z-index: -1; } .particle { position: absolute; width: 4px; height: 4px; background: rgba(255, 255, 255, 0.3); border-radius: 50%; animation: float 6s ease-in-out infinite; } @keyframes float { 0%, 100% { transform: translateY(0px) rotate(0deg); opacity: 0.3; } 50% { transform: translateY(-20px) rotate(180deg); opacity: 0.8; } } /* Add this to your style.css if needed */ .button { display: inline-block; padding: 10px 20px; background-color: #0077cc; color: white; text-decoration: none; border-radius: 8px; transition: background-color 0.3s ease; } .button:hover { background-color: #005fa3; } /* Header */ header { background: rgba(255, 255, 255, 0.95); backdrop-filter: blur(15px); padding: 2rem 0; text-align: center; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1); position: sticky; top: 0; z-index: 100; } .header-content { max-width: 1200px; margin: 0 auto; padding: 0 2rem; } h1 { font-size: 3rem; background: linear-gradient(45deg, #667eea, #764ba2); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; margin-bottom: 0.5rem; animation: titleGlow 3s ease-in-out infinite alternate; } @keyframes titleGlow { from { filter: drop-shadow(0 0 5px rgba(102, 126, 234, 0.3)); } to { filter: drop-shadow(0 0 15px rgba(118, 75, 162, 0.5)); } } .subtitle { font-size: 1.3rem; color: #7f8c8d; font-weight: 300; } /* Navigation */ nav { background: rgba(255, 255, 255, 0.9); backdrop-filter: blur(10px); padding: 1rem 0; box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); } .nav-container { max-width: 1200px; margin: 0 auto; padding: 0 2rem; } nav ul { list-style: none; display: flex; justify-content: center; gap: 3rem; } nav a { text-decoration: none; color: #2c3e50; font-weight: 600; padding: 0.8rem 1.5rem; border-radius: 25px; transition: all 0.3s ease; position: relative; overflow: hidden; } nav a::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(45deg, #667eea, #764ba2); transition: left 0.3s ease; z-index: -1; } nav a:hover::before { left: 0; } nav a:hover { color: white; transform: translateY(-2px); box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2); } /* Main container */ .container { max-width: 1200px; margin: 0 auto; padding: 2rem; } /* Section styling */ .section { background: rgba(255, 255, 255, 0.95); backdrop-filter: blur(15px); border-radius: 20px; padding: 3rem; margin-bottom: 3rem; box-shadow: 0 10px 40px rgba(0, 0, 0, 0.1); position: relative; overflow: hidden; animation: slideInUp 0.8s ease-out; } @keyframes slideInUp { from { opacity: 0; transform: translateY(50px); } to { opacity: 1; transform: translateY(0); } } .section::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: linear-gradient(90deg, #667eea, #764ba2); } .section h2 { font-size: 2.5rem; color: #2c3e50; margin-bottom: 2rem; position: relative; display: inline-block; } .section h2::after { content: ''; position: absolute; bottom: -10px; left: 0; width: 100%; height: 3px; background: linear-gradient(90deg, #667eea, #764ba2); border-radius: 2px; } .section h3 { font-size: 1.8rem; color: #34495e; margin: 2rem 0 1rem 0; position: relative; padding-left: 1rem; } .section h3::before { content: ''; position: absolute; left: 0; top: 50%; transform: translateY(-50%); width: 4px; height: 100%; background: linear-gradient(180deg, #667eea, #764ba2); border-radius: 2px; } /* Equation boxes */ .equation-box { background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%); border: 2px solid #dee2e6; border-radius: 15px; padding: 2rem; margin: 2rem 0; text-align: center; box-shadow: inset 0 2px 10px rgba(0, 0, 0, 0.05); position: relative; overflow: hidden; } .equation-box::before { content: ''; position: absolute; top: -50%; left: -50%; width: 200%; height: 200%; background: linear-gradient(45deg, transparent, rgba(102, 126, 234, 0.1), transparent); animation: shimmer 3s linear infinite; } @keyframes shimmer { 0% { transform: translateX(-100%) translateY(-100%) rotate(45deg); } 100% { transform: translateX(100%) translateY(100%) rotate(45deg); } } /* Parameter controls */ .parameter-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 2rem; margin: 2rem 0; } .parameter-card { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; padding: 2rem; border-radius: 15px; box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15); transition: transform 0.3s ease, box-shadow 0.3s ease; } .parameter-card:hover { transform: translateY(-5px) scale(1.02); box-shadow: 0 15px 35px rgba(0, 0, 0, 0.2); } .parameter-card h4 { font-size: 1.4rem; margin-bottom: 1rem; display: flex; align-items: center; gap: 0.5rem; } .parameter-icon { width: 24px; height: 24px; background: rgba(255, 255, 255, 0.2); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: bold; } /* Interactive sliders */ .slider-container { margin: 1.5rem 0; background: rgba(255, 255, 255, 0.1); padding: 1.5rem; border-radius: 10px; backdrop-filter: blur(10px); } .slider-container label { display: block; margin-bottom: 1rem; font-weight: 600; font-size: 1.1rem; } .slider { width: 100%; height: 8px; border-radius: 4px; background: rgba(255, 255, 255, 0.3); outline: none; -webkit-appearance: none; position: relative; } .slider::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 24px; height: 24px; border-radius: 50%; background: white; cursor: pointer; box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2); transition: all 0.2s ease; } .slider::-webkit-slider-thumb:hover { transform: scale(1.2); box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3); } .slider::-moz-range-thumb { width: 24px; height: 24px; border-radius: 50%; background: white; cursor: pointer; border: none; box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2); } .value-display { background: rgba(255, 255, 255, 0.2); padding: 0.5rem 1rem; border-radius: 20px; display: inline-block; margin-top: 0.5rem; font-weight: bold; min-width: 80px; text-align: center; } /* Info boxes */ .info-box { background: linear-gradient(135deg, #e3f2fd 0%, #bbdefb 100%); border-left: 5px solid #2196f3; padding: 1.5rem; margin: 2rem 0; border-radius: 0 15px 15px 0; box-shadow: 0 4px 15px rgba(33, 150, 243, 0.1); } .warning-box { background: linear-gradient(135deg, #fff3e0 0%, #ffcc02 20%); border-left: 5px solid #ff9800; padding: 1.5rem; margin: 2rem 0; border-radius: 0 15px 15px 0; box-shadow: 0 4px 15px rgba(255, 152, 0, 0.1); } /* Empty sections styling */ .empty-section { text-align: center; padding: 4rem 2rem; background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%); border: 2px dashed #dee2e6; border-radius: 15px; margin: 2rem 0; position: relative; overflow: hidden; } .empty-section::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(102, 126, 234, 0.1), transparent); animation: slideRight 2s ease-in-out infinite; } @keyframes slideRight { 0% { left: -100%; } 100% { left: 100%; } } .empty-icon { font-size: 4rem; color: #bdc3c7; margin-bottom: 1rem; } .empty-text { font-size: 1.2rem; color: #7f8c8d; font-style: italic; } /* Responsive design */ @media (max-width: 768px) { .container { padding: 1rem; } h1 { font-size: 2rem; } nav ul { flex-direction: column; gap: 1rem; } .section { padding: 2rem; } .parameter-grid { grid-template-columns: 1fr; } .section h2 { font-size: 2rem; } } /* Scroll animations */ .fade-in { opacity: 0; transform: translateY(30px); transition: all 0.6s ease; } .fade-in.visible { opacity: 1; transform: translateY(0); } /* Floating action button */ .fab { position: fixed; bottom: 2rem; right: 2rem; width: 60px; height: 60px; background: linear-gradient(45deg, #667eea, #764ba2); border-radius: 50%; display: flex; align-items: center; justify-content: center; color: white; font-size: 1.5rem; cursor: pointer; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2); transition: all 0.3s ease; z-index: 1000; } .fab:hover { transform: scale(1.1); box-shadow: 0 6px 25px rgba(0, 0, 0, 0.3); }
======= >>>>>>> e4f6378b7a663bbbb90641f312a6bf4d58866ab7Mathematical Modeling of Biological Tissue Regeneration
The epidermal wound healing process can be modeled using a system of reaction-diffusion equations that describe the spatiotemporal dynamics of cell density, growth factors, and extracellular matrix components.
When \( p = 0 \) and \( s_c = 0 \), the PDE reduces to the heat equation:
$$\frac{\partial u}{\partial t} = D \frac{\partial^2 u}{\partial r^2}$$We decompose \( u(r,t) = u_s(r) + v(r,t) \), where \( u_s(r) \) is the steady-state solution satisfying:
$$D \frac{d^2 u_s}{dr^2} = 0, \quad u_s(0) = 1, \quad \frac{du_s}{dr}(r_0) = 0$$Solving this gives \( u_s(r) = 1 \). Thus \( v(r,t) = u(r,t) - 1 \) satisfies:
$$\frac{\partial v}{\partial t} = D \frac{\partial^2 v}{\partial r^2}, \quad v(0,t) = 0, \quad \frac{\partial v}{\partial r}(r_0,t) = 0, \quad v(r,0) = -1$$Using separation of variables \( v(r,t) = R(r)T(t) \):
$$\frac{T'}{DT} = \frac{R''}{R} = -\lambda^2$$The spatial ODE with boundary conditions yields:
$$R_m(r) = \sin\left( \frac{(2m-1)\pi r}{2r_0} \right), \quad \lambda_m = \frac{(2m-1)\pi}{2r_0}, \quad m = 1, 2, \dots$$ $$T_m(t) = e^{-D \lambda_m^2 t}$$Thus the general solution becomes:
$$v(r,t) = \sum_{m=1}^{\infty} c_m e^{-D\lambda_m^2 t} \sin\left( \frac{(2m-1)\pi r}{2r_0} \right)$$Applying the initial condition \( v(r,0) = -1 \):
$$-1 = \sum_{m=1}^{\infty} c_m \sin\left( \frac{(2m-1)\pi r}{2r_0} \right)$$ $$c_m = -\frac{4}{(2m-1)\pi}$$Finally, the complete analytical solution is:
$$\boxed{u(r,t) = 1 - \sum_{m=1}^{\infty} \frac{4}{(2m-1)\pi} \exp\left(-D \left( \frac{(2m-1)\pi}{2r_0} \right)^2 t \right) \sin\left( \frac{(2m-1)\pi r}{2r_0} \right)}$$The expanded PDE is discretized as:
\[ \frac{\partial u}{\partial t} \approx \frac{u_i^{n+1} - u_i^n}{\Delta t} \] \[ \frac{\partial^2 u}{\partial r^2} \approx \frac{u_{i+1}^n - 2u_i^n + u_{i-1}^n}{(\Delta r)^2}, \quad \left( \frac{\partial u}{\partial r} \right)^2 \approx \left( \frac{u_{i+1}^n - u_{i-1}^n}{2\Delta r} \right)^2 \]
The update equation for interior points \(i = 2, \dots, N-1\) is:
\[ \begin{aligned} u_i^{n+1} = u_i^n + \Delta t \bigg[ D \bigg( \underbrace{\left(1 - \frac{u_i^n}{u_0}\right)^p \frac{u_{i+1}^n - 2u_i^n + u_{i-1}^n}{(\Delta r)^2}}_{\text{Diffusion}} - \underbrace{\frac{p}{u_0} \left(1 - \frac{u_i^n}{u_0}\right)^{p-1} \left( \frac{u_{i+1}^n - u_{i-1}^n}{2 \Delta r} \right)^2}_{\text{Nonlinear flux}} \bigg) + \underbrace{s_c u_i^n \left(1 - \frac{u_i^n}{u_0}\right)}_{\text{Source}} \bigg] \end{aligned} \]
Boundary conditions:
\[ \begin{aligned} u_1^{n+1} &= 1 \quad \text{(Dirichlet)} \\ u_N^{n+1} &= u_{N-1}^{n+1} \quad \text{(Neumann)} \end{aligned} \]
Stability requires:
\[ \Delta t \leq \frac{(\Delta r)^2}{2D} \]
Discretize at \( t_{n+1} \):
\[ \begin{aligned} \frac{u_i^{n+1} - u_i^n}{\Delta t} = D \bigg[ &\left(1 - \frac{u_i^{n+1}}{u_0}\right)^p \frac{u_{i+1}^{n+1} - 2u_i^{n+1} + u_{i-1}^{n+1}}{(\Delta r)^2} \\ &- \frac{p}{u_0} \left(1 - \frac{u_i^{n+1}}{u_0}\right)^{p-1} \left( \frac{u_{i+1}^{n+1} - u_{i-1}^{n+1}}{2 \Delta r} \right)^2 \bigg] \\ &+ s_c u_i^{n+1} \left(1 - \frac{u_i^{n+1}}{u_0}\right) \end{aligned} \]
This forms a nonlinear system:
\[ F_i(\mathbf{u}^{n+1}) = u_i^{n+1} - u_i^n - \Delta t \cdot \text{RHS}(\mathbf{u}^{n+1}) = 0 \]
Solved with Newton-Raphson:
\[ J(\mathbf{u}_k) \delta \mathbf{u} = -\mathbf{F}(\mathbf{u}_k), \quad \mathbf{u}_{k+1} = \mathbf{u}_k + \delta \mathbf{u} \]
where \( J_{ij} = \partial F_i/\partial u_j^{n+1} \) is the Jacobian.
\[ \begin{aligned} \frac{u_i^{n+1} - u_i^n}{\Delta t} = \frac{1}{2} \Big[ & D \left( \left(1 - \frac{u_i^n}{u_0}\right)^p \frac{u_{i+1}^n - 2u_i^n + u_{i-1}^n}{(\Delta r)^2} - \frac{p}{u_0} \left(1 - \frac{u_i^n}{u_0}\right)^{p-1} \left( \frac{u_{i+1}^n - u_{i-1}^n}{2\Delta r} \right)^2 \right) \\ + & s_c u_i^n \left(1 - \frac{u_i^n}{u_0}\right) \Big] \\ + \frac{1}{2} \Big[ & D \left( \left(1 - \frac{u_i^{n+1}}{u_0}\right)^p \frac{u_{i+1}^{n+1} - 2u_i^{n+1} + u_{i-1}^{n+1}}{(\Delta r)^2} - \frac{p}{u_0} \left(1 - \frac{u_i^{n+1}}{u_0}\right)^{p-1} \left( \frac{u_{i+1}^{n+1} - u_{i-1}^{n+1}}{2\Delta r} \right)^2 \right) \\ + & s_c u_i^{n+1} \left(1 - \frac{u_i^{n+1}}{u_0}\right) \Big] \end{aligned} \]
Solved as a nonlinear system using Newton-Raphson. Second-order accurate and unconditionally stable.The Method of Lines discretizes spatial derivatives to convert the PDE into a system of ODEs.
Define grid points \( r_i = (i-1)\Delta r \) with \( \Delta r = \frac{r_0}{N-1} \). Let \( u_i(t) = u(r_i, t) \).
For interior points (\( i=2,\dots,N-1 \)):
\[ \frac{du_i}{dt} = D \left[ \left(1 - \frac{u_i}{u_0}\right)^p \frac{u_{i+1} - 2u_i + u_{i-1}}{(\Delta r)^2} - \frac{p}{u_0} \left(1 - \frac{u_i}{u_0}\right)^{p-1} \left( \frac{u_{i+1} - u_{i-1}}{2\Delta r} \right)^2 \right] + s_c u_i \left(1 - \frac{u_i}{u_0}\right) \]
\[ u_1(t) = 1 \implies \frac{du_1}{dt} = 0 \]
\[ \frac{u_{N+1} - u_{N-1}}{2\Delta r} = 0 \implies u_{N+1} = u_{N-1} \]
Then: \[ \frac{du_N}{dt} = D \left(1 - \frac{u_N}{u_0}\right)^p \frac{2(u_{N-1} - u_N)}{(\Delta r)^2} + s_c u_N \left(1 - \frac{u_N}{u_0}\right) \]
\[ u_i(0) = \begin{cases} 1 & i=1 \\ 0 & i=2,\dots,N \end{cases} \]
Solve the ODE system:
\[ \frac{d\mathbf{u}}{dt} = \mathbf{F}(t, \mathbf{u}), \quad \mathbf{u}(0) = \mathbf{u}_0 \]
using a stiff ODE solver (e.g., BDF method).
Multiply by test function \( v(r) \) with \( v(0) = 0 \):
\[ \int_0^{r_0} \frac{\partial u}{\partial t} v \, dr = \int_0^{r_0} \left[ D \frac{\partial}{\partial r} \left( \left(1 - \frac{u}{u_0}\right)^p \frac{\partial u}{\partial r} \right) + s_c u \left(1 - \frac{u}{u_0}\right) \right] v \, dr \]
Integrate diffusion term by parts:
\[ \int_0^{r_0} D \frac{\partial}{\partial r} \left( \left(1 - \frac{u}{u_0}\right)^p \frac{\partial u}{\partial r} \right) v \, dr = \left[ D \left(1 - \frac{u}{u_0}\right)^p \frac{\partial u}{\partial r} v \right]_0^{r_0} - \int_0^{r_0} D \left(1 - \frac{u}{u_0}\right)^p \frac{\partial u}{\partial r} \frac{\partial v}{\partial r} \, dr \]
Boundary term vanishes due to \( v(0) = 0 \) and \( \frac{\partial u}{\partial r}(r_0) = 0 \), yielding:
\[ \boxed{ \int_0^{r_0} \frac{\partial u}{\partial t} v \, dr + \int_0^{r_0} D \left(1 - \frac{u}{u_0}\right)^p \frac{\partial u}{\partial r} \frac{\partial v}{\partial r} \, dr = \int_0^{r_0} s_c u \left(1 - \frac{u}{u_0}\right) v \, dr } \]
Discretize domain \( [0, r_0] \) into \( N \) nodes with piecewise linear basis functions \( \phi_j(r) \). Approximate solution:
\[ u_h(r, t) = \phi_1(r) + \sum_{j=2}^N u_j(t) \phi_j(r) \]
where \( u_1(t) = 1 \) (Dirichlet condition).
For test functions \( v = \phi_i \) (\( i = 2, \dots, N \)):
\[ \sum_{j=2}^N \frac{du_j}{dt} \underbrace{\int_0^{r_0} \phi_i \phi_j \, dr}_{M_{ij}} + \sum_{j=2}^N u_j(t) \underbrace{\int_0^{r_0} D \left(1 - \frac{u_h}{u_0}\right)^p \frac{d\phi_i}{dr} \frac{d\phi_j}{dr} \, dr}_{K_{ij}(u)} = \underbrace{\int_0^{r_0} s_c u_h \left(1 - \frac{u_h}{u_0}\right) \phi_i \, dr}_{f_i(u)} \]
Resulting in:
\[ M \frac{d\mathbf{u}}{dt} + K(\mathbf{u}) \mathbf{u} = \mathbf{f}(\mathbf{u}) \]
where \( \mathbf{u} = [u_2, \dots, u_N]^T \).
\[ M \frac{\mathbf{u}^{n+1} - \mathbf{u}^n}{\Delta t} + K(\mathbf{u}^{n+1}) \mathbf{u}^{n+1} = \mathbf{f}(\mathbf{u}^{n+1}) \]
Rearrange to nonlinear system:
\[ \mathbf{G}(\mathbf{u}^{n+1}) = M \mathbf{u}^{n+1} + \Delta t K(\mathbf{u}^{n+1}) \mathbf{u}^{n+1} - \Delta t \mathbf{f}(\mathbf{u}^{n+1}) - M \mathbf{u}^n = \mathbf{0} \]
Solved with Newton-Raphson method.
Explore a detailed simulation of the model, showcasing its behavior under various conditions.
View SimulationWe are a team of passionate students and engineers dedicated to applying mathematical modeling, simulation, and numerical techniques to solve real-world biomedical and engineering challenges.
Team Members:
The epidermal wound healing process can be modeled using a system of reaction-diffusion equations that describe the spatiotemporal dynamics of cell density, growth factors, and extracellular matrix components.
When \( p = 0 \) and \( s_c = 0 \), the PDE reduces to the heat equation:
$$\frac{\partial u}{\partial t} = D \frac{\partial^2 u}{\partial r^2}$$We decompose \( u(r,t) = u_s(r) + v(r,t) \), where \( u_s(r) \) is the steady-state solution satisfying:
$$D \frac{d^2 u_s}{dr^2} = 0, \quad u_s(0) = 1, \quad \frac{du_s}{dr}(r_0) = 0$$Solving this gives \( u_s(r) = 1 \). Thus \( v(r,t) = u(r,t) - 1 \) satisfies:
$$\frac{\partial v}{\partial t} = D \frac{\partial^2 v}{\partial r^2}, \quad v(0,t) = 0, \quad \frac{\partial v}{\partial r}(r_0,t) = 0, \quad v(r,0) = -1$$Using separation of variables \( v(r,t) = R(r)T(t) \):
$$\frac{T'}{DT} = \frac{R''}{R} = -\lambda^2$$The spatial ODE with boundary conditions yields:
$$R_m(r) = \sin\left( \frac{(2m-1)\pi r}{2r_0} \right), \quad \lambda_m = \frac{(2m-1)\pi}{2r_0}, \quad m = 1, 2, \dots$$ $$T_m(t) = e^{-D \lambda_m^2 t}$$Thus the general solution becomes:
$$v(r,t) = \sum_{m=1}^{\infty} c_m e^{-D\lambda_m^2 t} \sin\left( \frac{(2m-1)\pi r}{2r_0} \right)$$Applying the initial condition \( v(r,0) = -1 \):
$$-1 = \sum_{m=1}^{\infty} c_m \sin\left( \frac{(2m-1)\pi r}{2r_0} \right)$$ $$c_m = -\frac{4}{(2m-1)\pi}$$Finally, the complete analytical solution is:
$$\boxed{u(r,t) = 1 - \sum_{m=1}^{\infty} \frac{4}{(2m-1)\pi} \exp\left(-D \left( \frac{(2m-1)\pi}{2r_0} \right)^2 t \right) \sin\left( \frac{(2m-1)\pi r}{2r_0} \right)}$$The expanded PDE is discretized as:
\[ \frac{\partial u}{\partial t} \approx \frac{u_i^{n+1} - u_i^n}{\Delta t} \] \[ \frac{\partial^2 u}{\partial r^2} \approx \frac{u_{i+1}^n - 2u_i^n + u_{i-1}^n}{(\Delta r)^2}, \quad \left( \frac{\partial u}{\partial r} \right)^2 \approx \left( \frac{u_{i+1}^n - u_{i-1}^n}{2\Delta r} \right)^2 \]
The update equation for interior points \(i = 2, \dots, N-1\) is:
\[ \begin{aligned} u_i^{n+1} = u_i^n + \Delta t \bigg[ D \bigg( \underbrace{\left(1 - \frac{u_i^n}{u_0}\right)^p \frac{u_{i+1}^n - 2u_i^n + u_{i-1}^n}{(\Delta r)^2}}_{\text{Diffusion}} - \underbrace{\frac{p}{u_0} \left(1 - \frac{u_i^n}{u_0}\right)^{p-1} \left( \frac{u_{i+1}^n - u_{i-1}^n}{2 \Delta r} \right)^2}_{\text{Nonlinear flux}} \bigg) + \underbrace{s_c u_i^n \left(1 - \frac{u_i^n}{u_0}\right)}_{\text{Source}} \bigg] \end{aligned} \]
Boundary conditions:
\[ \begin{aligned} u_1^{n+1} &= 1 \quad \text{(Dirichlet)} \\ u_N^{n+1} &= u_{N-1}^{n+1} \quad \text{(Neumann)} \end{aligned} \]
Stability requires:
\[ \Delta t \leq \frac{(\Delta r)^2}{2D} \]
Discretize at \( t_{n+1} \):
\[ \begin{aligned} \frac{u_i^{n+1} - u_i^n}{\Delta t} = D \bigg[ &\left(1 - \frac{u_i^{n+1}}{u_0}\right)^p \frac{u_{i+1}^{n+1} - 2u_i^{n+1} + u_{i-1}^{n+1}}{(\Delta r)^2} \\ &- \frac{p}{u_0} \left(1 - \frac{u_i^{n+1}}{u_0}\right)^{p-1} \left( \frac{u_{i+1}^{n+1} - u_{i-1}^{n+1}}{2 \Delta r} \right)^2 \bigg] \\ &+ s_c u_i^{n+1} \left(1 - \frac{u_i^{n+1}}{u_0}\right) \end{aligned} \]
This forms a nonlinear system:
\[ F_i(\mathbf{u}^{n+1}) = u_i^{n+1} - u_i^n - \Delta t \cdot \text{RHS}(\mathbf{u}^{n+1}) = 0 \]
Solved with Newton-Raphson:
\[ J(\mathbf{u}_k) \delta \mathbf{u} = -\mathbf{F}(\mathbf{u}_k), \quad \mathbf{u}_{k+1} = \mathbf{u}_k + \delta \mathbf{u} \]
where \( J_{ij} = \partial F_i/\partial u_j^{n+1} \) is the Jacobian.
\[ \begin{aligned} \frac{u_i^{n+1} - u_i^n}{\Delta t} = \frac{1}{2} \Big[ & D \left( \left(1 - \frac{u_i^n}{u_0}\right)^p \frac{u_{i+1}^n - 2u_i^n + u_{i-1}^n}{(\Delta r)^2} - \frac{p}{u_0} \left(1 - \frac{u_i^n}{u_0}\right)^{p-1} \left( \frac{u_{i+1}^n - u_{i-1}^n}{2\Delta r} \right)^2 \right) \\ + & s_c u_i^n \left(1 - \frac{u_i^n}{u_0}\right) \Big] \\ + \frac{1}{2} \Big[ & D \left( \left(1 - \frac{u_i^{n+1}}{u_0}\right)^p \frac{u_{i+1}^{n+1} - 2u_i^{n+1} + u_{i-1}^{n+1}}{(\Delta r)^2} - \frac{p}{u_0} \left(1 - \frac{u_i^{n+1}}{u_0}\right)^{p-1} \left( \frac{u_{i+1}^{n+1} - u_{i-1}^{n+1}}{2\Delta r} \right)^2 \right) \\ + & s_c u_i^{n+1} \left(1 - \frac{u_i^{n+1}}{u_0}\right) \Big] \end{aligned} \]
Solved as a nonlinear system using Newton-Raphson. Second-order accurate and unconditionally stable.The Method of Lines discretizes spatial derivatives to convert the PDE into a system of ODEs.
Define grid points \( r_i = (i-1)\Delta r \) with \( \Delta r = \frac{r_0}{N-1} \). Let \( u_i(t) = u(r_i, t) \).
For interior points (\( i=2,\dots,N-1 \)):
\[ \frac{du_i}{dt} = D \left[ \left(1 - \frac{u_i}{u_0}\right)^p \frac{u_{i+1} - 2u_i + u_{i-1}}{(\Delta r)^2} - \frac{p}{u_0} \left(1 - \frac{u_i}{u_0}\right)^{p-1} \left( \frac{u_{i+1} - u_{i-1}}{2\Delta r} \right)^2 \right] + s_c u_i \left(1 - \frac{u_i}{u_0}\right) \]
\[ u_1(t) = 1 \implies \frac{du_1}{dt} = 0 \]
\[ \frac{u_{N+1} - u_{N-1}}{2\Delta r} = 0 \implies u_{N+1} = u_{N-1} \]
Then: \[ \frac{du_N}{dt} = D \left(1 - \frac{u_N}{u_0}\right)^p \frac{2(u_{N-1} - u_N)}{(\Delta r)^2} + s_c u_N \left(1 - \frac{u_N}{u_0}\right) \]
\[ u_i(0) = \begin{cases} 1 & i=1 \\ 0 & i=2,\dots,N \end{cases} \]
Solve the ODE system:
\[ \frac{d\mathbf{u}}{dt} = \mathbf{F}(t, \mathbf{u}), \quad \mathbf{u}(0) = \mathbf{u}_0 \]
using a stiff ODE solver (e.g., BDF method).
Multiply by test function \( v(r) \) with \( v(0) = 0 \):
\[ \int_0^{r_0} \frac{\partial u}{\partial t} v \, dr = \int_0^{r_0} \left[ D \frac{\partial}{\partial r} \left( \left(1 - \frac{u}{u_0}\right)^p \frac{\partial u}{\partial r} \right) + s_c u \left(1 - \frac{u}{u_0}\right) \right] v \, dr \]
Integrate diffusion term by parts:
\[ \int_0^{r_0} D \frac{\partial}{\partial r} \left( \left(1 - \frac{u}{u_0}\right)^p \frac{\partial u}{\partial r} \right) v \, dr = \left[ D \left(1 - \frac{u}{u_0}\right)^p \frac{\partial u}{\partial r} v \right]_0^{r_0} - \int_0^{r_0} D \left(1 - \frac{u}{u_0}\right)^p \frac{\partial u}{\partial r} \frac{\partial v}{\partial r} \, dr \]
Boundary term vanishes due to \( v(0) = 0 \) and \( \frac{\partial u}{\partial r}(r_0) = 0 \), yielding:
\[ \boxed{ \int_0^{r_0} \frac{\partial u}{\partial t} v \, dr + \int_0^{r_0} D \left(1 - \frac{u}{u_0}\right)^p \frac{\partial u}{\partial r} \frac{\partial v}{\partial r} \, dr = \int_0^{r_0} s_c u \left(1 - \frac{u}{u_0}\right) v \, dr } \]
Discretize domain \( [0, r_0] \) into \( N \) nodes with piecewise linear basis functions \( \phi_j(r) \). Approximate solution:
\[ u_h(r, t) = \phi_1(r) + \sum_{j=2}^N u_j(t) \phi_j(r) \]
where \( u_1(t) = 1 \) (Dirichlet condition).
For test functions \( v = \phi_i \) (\( i = 2, \dots, N \)):
\[ \sum_{j=2}^N \frac{du_j}{dt} \underbrace{\int_0^{r_0} \phi_i \phi_j \, dr}_{M_{ij}} + \sum_{j=2}^N u_j(t) \underbrace{\int_0^{r_0} D \left(1 - \frac{u_h}{u_0}\right)^p \frac{d\phi_i}{dr} \frac{d\phi_j}{dr} \, dr}_{K_{ij}(u)} = \underbrace{\int_0^{r_0} s_c u_h \left(1 - \frac{u_h}{u_0}\right) \phi_i \, dr}_{f_i(u)} \]
Resulting in:
\[ M \frac{d\mathbf{u}}{dt} + K(\mathbf{u}) \mathbf{u} = \mathbf{f}(\mathbf{u}) \]
where \( \mathbf{u} = [u_2, \dots, u_N]^T \).
\[ M \frac{\mathbf{u}^{n+1} - \mathbf{u}^n}{\Delta t} + K(\mathbf{u}^{n+1}) \mathbf{u}^{n+1} = \mathbf{f}(\mathbf{u}^{n+1}) \]
Rearrange to nonlinear system:
\[ \mathbf{G}(\mathbf{u}^{n+1}) = M \mathbf{u}^{n+1} + \Delta t K(\mathbf{u}^{n+1}) \mathbf{u}^{n+1} - \Delta t \mathbf{f}(\mathbf{u}^{n+1}) - M \mathbf{u}^n = \mathbf{0} \]
Solved with Newton-Raphson method.
Explore a detailed simulation of the model, showcasing its behavior under various conditions.
We are a team of passionate students and engineers dedicated to applying mathematical modeling, simulation, and numerical techniques to solve real-world biomedical and engineering challenges.