Moving Meshes
Previous  Top  Next

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:  
VARIABLES  
Xm = MOVE(x)  
·Write equations for the surrogate variables:  
EQUATIONS  
dt(xm) = umesh  
·Write boundary conditions for the surrogate variables:  
BOUNDARIES  
START (0,0) VELOCITY(xm) = umesh  

The specification of ordinary equations is unaffected by the motion of the boundaries or mesh. EQUATIONS are always 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.