Moving Meshes Overview
FlexPDE supports methods for moving the domain boundaries and computation mesh during the course of a problem run.
The mechanisms for specifying this capability are simple extensions of the existing script language. There are three parts to the definition of a moving mesh:
|•||Declare a surrogate variable for each coordinate you wish to move:|
Xm = MOVE(x)
|•||Write equations for the surrogate variables:|
dt(xm) = umesh
|•||Write boundary conditions for the surrogate variables:|
START (0,0) VELOCITY(xm) = umesh
The specification of ordinary equations is unaffected by the motion of the boundaries or mesh. EQUATIONS are assumed to be presented in Eulerian (Laboratory) form. FlexPDE symbolically applies motion correction terms to the equations. The result of this approach is an Arbitrary Lagrange/Eulerian (ALE) model, in which user has the choice of mesh velocities:
|•||Locking the mesh velocity to a fluid velocity results in a Lagrangian model. (FlexPDE has no mechanism for reconnecting twisted meshes, so this model is discouraged in cases of violent motion).|
|•||Specifying a mesh velocity different from the fluid velocity preserves mesh integrity while still allowing deformation of the bounding surfaces or following bulk motion of a fluid.|
|•||If no mesh motion is specified, the result is an Eulerian model, which has been the default in previous versions of FlexPDE.|
The EQUATIONS section is assumed to present equations in the Eulerian (Laboratory) frame.
The EQUATIONS section can optionally labeled LAGRANGIAN EQUATIONS, in which case FlexPDE will apply no motion corrections to the equations. The user must then provide equations that are appropriate to the moving nodes.
For clarity, the section label EULERIAN EQUATIONS can be used to specify that the equations are appropriate to the laboratory reference frame. This is the default interpretation.