[OpWettingAngleLhs]
[OpRhsU]
Rhs for U (momentum residual)
- Parameters
-
| field_name | Name of the field associated with the operator |
| dot_u_ptr | Pointer to the velocity time derivative matrix (∂U/∂t) |
| u_ptr | Pointer to the velocity matrix (U) |
| grad_u_ptr | Pointer to the velocity gradient matrix (∇U) |
| h_ptr | Pointer to the free surface height vector (h) |
| grad_h_ptr | Pointer to the free surface height gradient matrix (∇h) |
| g_ptr | Pointer to the chemical potential vector (g) |
| p_ptr | Pointer to the pressure vector (p) |
- Returns
- MoFEMErrorCode
This operator implements the volume terms of the momentum equation (not Jacobian) (Lovric 3.1a)
R_u = ∫_Ω w·(ρ(h)(∂u/∂t + u·∇u + a_0) - κg∇h) - (∇·w)p + (∇w):(2μ(h)D(u))dΩ
Code ↔ PDE term mapping (paper notation : code variable)
- ρ(ϕ) ∂u/∂t : t_inertia_force(i) = (rho * alpha) * t_dot_u(i)
- ρ(ϕ) (u·∇)u : t_convection(i) = (rho * alpha) * (t_u(j) * t_grad_u(i,j))
- ∇·(2 μ(ϕ) D(u)) : t_stress built from get_D(2*mu) and t_grad_u, then assembled with t_diff_base into locF
- −∇p (pressure grad) : incorporated via t_kd(i,j)*t_p term inside t_stress
- −κ η ∇ϕ (surface) : t_phase_force(i) = -alpha * kappa * t_g * t_grad_h(i)
- body force ρ a0 : t_gravity(SPACE_DIM-1) = alpha * rho * a0
- buoyancy force : (currently commented out) t_buoyancy(SPACE_DIM-1) = -(alpha * rho * a0) * t_h;
- Examples
- mofem/tutorials/vec-5_free_surface/free_surface.cpp.
Definition at line 475 of file FreeSurfaceOps.hpp.