<< Click to Display Table of Contents >> Mesh Balancing |
A convenient method for distributing the computation mesh smoothly within a moving domain boundary is simply to diffuse the coordinates or the mesh velocities.
For example, suppose we change our basic example problem to model a sphere of oscillating size Rm=0.5 + 0.25*cos(t).
We define surrogate coordinates for X and Y:
VARIABLES
Phi
Xm = MOVE(x)
Ym = MOVE(y)
For the EQUATIONS of the mesh coordinates, we will use simple diffusion equations to distribute the positions smoothly in the interior, expecting the actual motions to be driven by boundary conditions:
Div(Grad(Xm)) = 0
Div(Grad(Ym)) = 0
We can apply the boundary velocities directly to the mesh coordinates on the blob surface using the time derivative of R and geometric rules:
VELOCITY(Xm) = -0.25*sin(t)*x/r
VELOCITY(Ym) = -0.25*sin(t)*y/r
Alternatively, we can define mesh velocity variables as well as the surrogate coordinates for X and Y:
VARIABLES
Phi
Xm = MOVE(x)
Ym = MOVE(y)
Um
Vm
The EQUATIONS for the mesh coordinates are simply the velocity relations:
dt(Xm) = Um
dt(Ym) = Vm
For the mesh velocities we will use a diffusion equation to distribute the velocities smoothly in the interior:
div(grad(Um)) = 0
div(grad(Vm)) = 0
The boundary conditions for mesh velocity on the blob are as above:
VALUE(Um) = -0.25*sin(t)*x/r
VALUE(Vm) = -0.25*sin(t)*y/r
Since the finite element equations applied at the boundary nodes are averages over the cells, we must also apply the hard equivalence of velocity to the mesh coordinates on the blob boundary
VELOCITY(Xm) = Um
VELOCITY(Ym) = Vm