<< Click to Display Table of Contents >> Moving Meshes |
FlexPDE can support moving computation meshes in time-dependent problems. Use of this capability requires:
•The assignment of a surrogate variable for each coordinate to be moved
•Definition of an EQUATION of motion for each such surrogate coordinate
•Suitable Boundary Conditions on the surrogate coordinate.
In some problems, the mesh positions may be driven directly. In others, there will be a variable defining the mesh velocity. This may be the same as the fluid velocity, in which case the model is purely Lagrangian, or it may be some other better-behaved motion, in which case the model is mixed Lagrange/Eulerian (ALE).
FlexPDE 6 contains no provisions for re-connecting distorted meshes. Except in well-behaved problems, pure Lagrangian computations are therefore discouraged, as severe mesh corruption may result.
Alternative Declaration Forms
EQUATIONS are always assumed to refer to the stationary Eulerian (Laboratory) reference frame. FlexPDE automatically computes the required correction terms for mesh motion. .
Alternatively, the user can declare LAGRANGIAN EQUATIONS, and FlexPDE will not modify the user's stated equations. In this case, the equations must be written correctly for the values at the moving nodes.
The declaration EULERIAN EQUATIONS can also be used for clarity, although this is equivalent to the default EQUATIONS declaration.
Internal Mesh Redistribution
When the mesh is not tied directly to a fluid velocity, a convenient technique for maintaining mesh integrity is to diffuse either the mesh coordinates or the mesh velocities in the problem interior.
For direct coordinate diffusion, we apply the diffusion equation to the surrogate coordinates:
DIV(GRAD(x_surrogate)) = 0
and apply the motion conditions to the coordinate boundary conditions with either VALUE or VELOCITY conditions:
VELOCITY(x_surrogate) = x_velocity
or
VALUE(x_surrogate) = moving_positions
If the mesh is driven by a mesh velocity variable, we apply the diffusion equation to the velocity variables:
DIV(GRAD(x_velocity_variable)) = 0
DT(x_coordinate) = x_velocity_variable
At the boundaries, we apply the driving motions to the velocity variables and lock the surrogate coordinate variable to its associated velocity
VALUE(x_velocity_variable) = x_velocity
VELOCITY(x_surrogate) = x_velocity
Note: See the User Guide section on Moving Meshes and the example problems in the "Samples | Moving_Mesh" folder.
Effect of Mesh Motion on EQUATION Specifications
EQUATIONS are always written in the Eulerian (Laboratory) reference frame, regardless of whether the mesh moves or not. FlexPDE automatically computes the required correction terms for mesh motion.