Mesh motion is used in a deforming mesh flow simulation in which an arbitrary (ALE) methodology models the fluid flow. For these simulations, is deformed according to the boundary motion. To specify the displacement in the X-, Y-, and Z-directions. You can specify the displacement components using uniform values or with Javascript user subroutines that define the value programmatically. Note:
For fluid-structure interaction (FSI) simulations using ALE with a
deforming mesh, mesh motion boundary conditions are not permitted at the
co-simulation interface region because these conditions are managed
automatically.
Examples: User Subroutines to Perform a RotationThe following sample user subroutine shows how you can define a rotation with respect to the global Z-axis. These statements define the displacements in the X-direction: //X displacement coord = support.getVector('UNDEF_COORD', CenteringType.NODE); //Define the center of rotations rx = 10; ry = 7.5; t = timeParameters.time; //Specify the angular velocity omega = .4; //Calculate the rotation angle as a function of time alpha = omega * t; s = Math.sin(alpha); c = Math.cos(alpha); for (var i = 0; i < this.values.length; i++) { x = coord[i][0]; y = coord[i][1]; xx = x - rx; yy = y - ry; xnew = xx * c - yy * s; xnew = xnew + rx; this.values[i] = xnew - x; } These statements define the displacements in the Y-direction: //Y displacement coord = support.getVector('UNDEF_COORD', CenteringType.NODE); //Define the center of rotations rx = 10; ry = 7.5; t = timeParameters.time; //Specify the angular velocity omega = .4; //Calculate the rotation angle as a function of time alpha = omega * t; s = Math.sin(alpha); c = Math.cos(alpha); for (var i = 0; i < this.values.length; i++) { x = coord[i][0]; y = coord[i][1]; xx = x - rx; yy = y - ry; ynew = xx * s + yy * c; ynew = ynew + ry; this.values[i] = ynew - y; } |