skip to content


Mesh Deformation

NOTE: There is new mesh deformation input in CFL3D version 6.4 and later that was not required in earlier versions of the code. For that reason, input files from earlier versions for cases that require mesh deformation will not work in CFL3D version 6.4 or later.

It is recommended that the user refer to the CFL3D Tutorial page for additional information on mesh deformation capabilities.

Interested users are also referred to the paper: "Finite Macro-Element Mesh Deformation in a Structured Multi-Block Navier-Stokes Code" NASA/TM-2005-213789... PDF file (2.6 MB)


CONTENTS



INTRODUCTION

The Version 5 release contained the ability to move meshes in a rigid fashion, via translation and rotation. Version 6 extends this capability to include meshes that deform in response to one or more solid surfaces undergoing translation and rotation. Both user prescribed surface rotation and translation and surface motion due to the response of a flexible structure can be performed. In the former case, the user can specify rigid translation or rotation (either sinusoidal or constant rate) of specified surfaces. Alternately the user may specify prescribed modal motion of part or all surfaces. In the latter case, linear structural model parameters are input to allow time-dependent, coupled fluid-structure simulations. The equations of structural dynamics must be diagonalized. The surface motion in this case is governed by mode shapes input by the user.

Version 6.4 and later includes many bug fixes in the mesh motion and aeroelastic modules as well as many enhancements to the mesh deformation. Enhancements include allowance for more complex combinations of solid surface segments, volume transfinite interpolation (TFI) of sub-grid based sub-blocks rather than volume TFI of the entire block. This later enhancement makes the mesh deformation more robust for more complex grid motion. There is now a 1-1 blocking coincident point check that ensures that 1-1 blocking boundaries remain coincident as the overall mesh deforms. There are also several new automated ways in which control points (or sub-grid points) can be generated. One of these makes much more robust a similar option for automatic skip value generation in CFL3D v6.3 and earlier. The other allows the automatic creation of arbitrary control points based on index location that produces the minimum number of control points allowable. There are also several ways of deforming the mesh (or rather the control points). One uses an exponential decay method. This is similar to that in versions 6.3 and earlier. This method is retained because it is fast and for small motion, quite robust. The second way of deforming the mesh is by using the Finite-Macro Element method. (See Bartels, R. E., "Finite Macro-Element Mesh Deformation in a Structured Multi-Block Navier-Stokes Code," NASA/TM-2005-213789, July 2005). This method of moving control points uses a finite element solution with fictitous material properties.

The following page describes the mesh deformation schemes within the code and their use in a stand-alone fashion, without aeroelastic coupling. The aeroelastic aspects are discussed under Aeroelasticity.

Return To Top



OVERVIEW OF MESH MOTION IN CFL3D VERSION 6.4 and later

The mesh is deformed using a two step method. The first step moves control points, also called sub-grid or node points. This first step can be performed by simply using an exponential decay function that transmits surface motion into the flow field in an exponentially decaying manner via control points. This approach is computationally fast, and robust for small motion. It does not however retain grid orthogonality as a surface rotates. An alternative way this first step can be performed is using the Finite Macro-Element method. In this approach, sub-grid points are the node points of a finite element set. This set of points are solved using a fictitious material property that produces very stiff (infact essentially rigid) material near a moving surface and relatively plyable material away from a surface. This approach is more computationally intensive, but produces relatively orthogonal grids as a surface rotates. The second step in mesh deformation is composed of line transfinite interpolation between sub-grid points, surface TFI of sub-grid faces composed of four adjacent control points and volume TFI of sub-blocks composed of eight adjacent control points. The end result of this final step is the movement of all mesh points in the grid. For more detail on the mesh deformation schemes, input parameters, tips on usage and examples see Bartels, R. E., Rumsey, C. L., Biedron, R. T., "User's Guide for CFL3D v6.4 - Course Notes," to be released as a TM. See CFL3D Tutorial page.

Return To Top



SUBGRIDS

The use of a "sub-grid" is the key to a relatively painless multiblock mesh deformation capability. The original idea of using a sub-grid set of points is due to Hartwich, P. M. and Agrawal, S., "Method for Perturbing Patched Grids in Aeroelastic And Design Optimization Applications," AIAA-97-2038-CP, 1997. The use of sub-grid points in CFL3D version 6.4 and later starts from the concept of master surface point and slave control point. As discussed in that publication flow field control point motion is tied to the motion of the nearest surface point. This is the extent to which the current mesh motion follows the Hartwich, Agrawal paper. The current exponential decay function is defined differently than that by Hartwich-Agrawal. There is also a Finite Macro-Element method by which sub-grid points can be moved. These will be discussed in another section.

The control or node points are a sub-grid of the entire mesh. For multiple-block grids, each block has its own control points. There are several ways control points can be generated.

OPTION 1 for creating control points. The preferred approach is to have the code automatically generate the minimum number of control points. For this option set nskip = 0 and isktyp = -2 or 2. For example, the input

 moving grid data - data for field/multiblock mesh movement
   nskip   isktyp    beta1   alpha1    beta2   alpha2  nsprgit
       0       -2      1.0      1.0     1.0     0.05         0
    grid    iskip    jskip    kskip
 moving grid data - multi-motion coupling
  ncoupl
       0
   slave   master    xorig  yorig zorig

uses the Exponential Decay Method (isktyp = -2 or -1) with this option for creating control points. On the otherhand, the input

 moving grid data - data for field/multiblock mesh movement
   nskip   isktyp    beta1   alpha1    beta2   alpha2  nsprgit
       0        2      1.0      1.0     1.0     0.05         0
    grid    iskip    jskip    kskip
 moving grid data - multi-motion coupling
  ncoupl
       0
   slave   master    xorig  yorig zorig

uses the Finite Macro-Element Method (isktyp = 2 or 1) with this option for creating control points. This will result in the minimum number of control points possible (at non-constant intervals) consistent with placing control points at each boundary segment and 1-1 blocking segment extremity. In this case, the code generates the indices of all control points rather than interval skip values. The values of control point indices it calculates will be found in the 'cfl3d.out' section that reflects input.

This method works well in most cases. In a few cases in which the Finite Macro-Element Method is used, it can create macro-elements that are not well defined. (i.e. elements with negative volumes) This can be fixed by either using Option 2 for automatically creating control points by using skip values or by customizing control points by using Option 4. This last approach can be easily done by using the keyword 'meshdef 1'. When this keyword is used, the automatically generated control points are output into the file 'meshdef.inp'. The data in the file 'meshdef.inp' can be pasted into the cfl3d input, and index locations added as necessary to better define macro-elements. (This is essentially Option 4 for creating control points) It is recommended that the user refer to the 'User's Guide for CFL3D Version 6.4 - Course Notes', specifically Example 2 in the 'Deforming Mesh' section. See CFL3D Tutorial page for specific input parameters and tips on using this option. There are other very powerful features available with this option and the other options such as added customization, code operation of mesh deformation without the flow solver (for mesh motion debugging) that allow for very efficient flow field computations with deforming mesh.

OPTION 2 for creating control points. Another way to create control points is to have the code generate skip values to create control points at constant intervals throughout each block. In this case index skip values iskip, jskip and kskip are generated by the code for the i, j and k directions. For code generated skip values set nskip = 0 and isktyp = -1 or 1. For example, the input

 moving grid data - data for field/multiblock mesh movement
   nskip   isktyp    beta1   alpha1    beta2   alpha2  nsprgit
       0        1      1.0      1.0     1.0     0.05         0
    grid    iskip    jskip    kskip
 moving grid data - multi-motion coupling
  ncoupl
       0
   slave   master    xorig  yorig zorig

uses the Finite Macro-Element Method (isktyp = 2 or 1) with this option for creating skip values.

OPTION 3 for creating control points. If the user is intent upon inputing skip values, set nskip = ngrid and isktyp = -1 or 1. It is not possible to make specific instructions about the required value of the skip parameters, owing to the many possible configurations and layouts of grid blocks. The all important rule is to remember that the skip values chosen must result in control points at all boundary condition segment and 1-1 blocking segment extremities and all block boundaries. The easiest way to input your own skip values is to first use Option 2 for creating control points and pasting the output skip values into the input file and customizing.

Several simple examples are given below (under "Skip-value examples") to help illustrate the concepts. Skip-value examples:

It is recommended that the user consult the 'User's Guide for CFL3D Version 6.4 - Course Notes'. See CFL3D Tutorial page for more specific details on how to create input for this option.

OPTION 4 for creating control points. The final way that control points can be input is in which the user inputs index locations of control points. For this option set nskip = ngrid and isktyp = -2 or 2. This is a very powerful option and is useful for customizing the control points to a specific problem. It can be used to customize the index locations of control points already generated by the code using one of the options discussed above. The user is very strongly urged to consult the 'User's Guide for CFL3D Version 6.4 - Course Notes' on 'Surface Motion - Deforming Mesh' (CFL3D Tutorial ) for short cuts and tips for customizing control point locations that can create very robust mesh motion with a fairly small number of control points. The following is an example of user input of control points:

MOVING GRID DATA - DATA FOR FIELD/MULTIBLOCK MESH MOVEMENT
NSKIP  ISKTYP  BETA1  ALPHA1  BETA2  ALPHA2 ISPRNIT
2          -2  1.000  0.900   1.000   0.050      2
GRID ISKIP  JSKIP    KSKIP
   GRID   NIND   NJND   NKND
      1      2     18      2
************************** I NODE INDICES ****************************
      1      2
************************** J NODE INDICES ****************************
      1     49     50    103    137    173    223    273    297    317
    373    423    473    543    609    696    697    745
************************** K NODE INDICES ****************************
      1     57
   GRID   NIND   NJND   NKND
      2      2     11      2
************************** I NODE INDICES ****************************
      1      2
************************** J NODE INDICES ****************************
      1     49     50    137    145    281    325    461    548    549
    597
************************** K NODE INDICES ****************************
      1     89
 MOVING GRID DATA - MULTI-MOTION COUPLING
  NCOUPL
       0
  SLAVE    MASTER    XORIG  YORIG ZORIG

The input case above has 2 blocks. (nskip = 2) The Exponential Decay Method has been selected. (isktyp = -2) Note that up to 10 indices per line are allowed (500 total). The first and last i, j, k index correspond to the first and last block index.

Return To Top



EXPONENTIAL DECAY METHOD IN CFL3D VERSION 6.4 and later

(For this option the input parameter isktyp must be set to -1 or -2)

The motion of the points in the sub-grid are "slaved" to the motion of the closest solid surface control point. Let (xci,yci, zci) be the coordinates of the ith sub-grid point, and let (xsj,ysj,zsj) be the nearest surface control point. The distance |drij| from the nearest surface control point to the ith sub-grid point is determined at each time step according to:

|drij| = sqrt((xci - xsj)2 +(yci - ysj)2) + (zci - zsj)2))

Each point in the sub-grid is moved to its new position at tn+1 from its old position at tn according to

xcin+1 - xcin = Dij(xsjn+1-xsjn)       (1)

Similar expressions are used for for ycin+1 and zcin+1. The damping function Dij is given by:

Dij = min[1,e-A]

with

A = beta2(|drij|/|dr|max-alpha2)

Beta2 is a user-specified parameter, typically ranging from 1 to 10 that controls the rate of decay outside the inner region controlled by alpha2. Alpha2 is also a user specified parameter, typically 0.005 to 0.05. Within the region alpha2 |dr|max the surface motion is transmitted to control points unabated. These two parameters control the rate of decay of motion away from moving surfaces. Too rapid a rate of decay (beta2 too large, alpha2 too small) results in the possibility of surface points moving through nearby control points. Too low a rate of decay (beta2 too small, alpha2 too large) results in the possibility of surface deformation being transmitted too far into the flow field with possible penetration of opposing surfaces.

Once the delta displacements for the sub-grid points are determined from Eq. 1, arclength based TFI is used to interpolate these delta displacements along lines connecting the corners of the sub-grids. The faces of the sub-grids are then filled in via arclength based TFI, and finally the delta displacements interior to the sub-grids are determined using arclength based TFI between sub-grid faces.

Return To Top


FINITE MACRO-ELEMENT METHOD

(For this option the input parameter isktyp must be set to 1 or 2)

For more information users are referred to the paper: "Finite Macro-Element Mesh Deformation in a Structured Multi-Block Navier-Stokes Code" NASA/TM-2005-213789... PDF file (2.6 MB)

Return To Top


TRANSFINITE INTERPOLATION

Return To Top


SAMPLE INPUT AND PARAMETER DEFINITIONS

Return To Top


STATIC MESH DEFORMATION

Static mesh deformation refers to the ability to import a new surface mesh into the code, and deform the input (baseline) volume grid to the new surface in the steady state mode. This new capability has application to design as well as static aeroelastic computations. The images below illustrate the new steady state mesh deformation capability on a blended wing/body configuration:

In the above examples, new surface grids were generated using the baseline surface and the MASSOUD geometry parameterization code.

Return To Top


 


Privacy Act Statement

Responsible NASA Official: Christopher Rumsey
Page Curator: Christopher Rumsey
Last Updated: 03/29/2013