Mesh deformation is an important component for solving problems with moving boundaries or moving subdomains. The motion might be imposed, or might be an implicit part of a coupled fluid-structure simulation. Mesh deformation is available only for fluid domains. The following mesh deformation modeling options are available for a domain (in the Domain details view on the Basic Settings tab):
This mesh deformation option enables the specification of the
motion of nodes on boundary or subdomain regions of the mesh using
CEL. The motion of all remaining nodes is determined by the mesh motion
model, which is currently limited to Displacement Diffusion
. With this model, the displacements applied on domain boundaries
or in subdomains are diffused to other mesh points by solving the
equation:
(1–1) |
In this equation, is the displacement relative to the previous mesh locations and is the mesh stiffness, which determines the degree to which regions of nodes move together. This equation is solved at the start of each outer iteration or time step for steady-state or transient simulations, respectively.
It is worth noting that the displacement diffusion model for mesh motion is designed to preserve the relative mesh distribution of the initial mesh. For example, if the initial mesh is relatively fine in certain regions of the domain (for example, in boundary layers), then it will remain relatively fine after solving the displacement diffusion equation.
The available Displacement Relative To options are:
Initial Mesh
This is the default option for transient blade row cases, and for cases where periodic mesh motion is set.
Previous Mesh
This is the default option for all other cases.
Note: When using the Initial Mesh
option,
convergence problems may occur in cases where there are large mesh
displacements, large changes in control volumes, or moving GGI interfaces.
In such cases, you may need to write a custom CEL expression for mesh
stiffness or solve relative to Previous Mesh
instead
if periodic mesh motion is not a requirement.
When any constant value of mesh stiffness is applied, specified displacements are homogeneously diffused throughout the mesh. When the mesh stiffness is specified as varying throughout the domain, nodes in regions of high stiffness move together (that is, there is little relative motion). Variable mesh stiffness is particularly useful to preserve the mesh distribution (and quality) near fine geometrical features (such as sharp corners) or in boundary layers.
The available Mesh Stiffness options are:
Increase Near Small Volumes
For details, see Increase Near Small Volumes.
Increase Near Boundaries
For details, see Increase Near Boundaries.
Blended Distance and Small Volumes
For details, see Blended Distance and Small Volumes.
Value
For details, see Value (Specified Stiffness).
The premise of increasing the stiffness near small mesh volumes is that mesh quality will benefit from having larger control volumes absorb more mesh motion. This option is desirable because it does not require the solution of additional equations (as for boundary dependent options). However, its behavior does depend on the initial mesh distribution (for example, having a fine mesh in regions where the motion is likely to be most significant).
The following relationship is used to determine the mesh stiffness, , applied in the displacement diffusion equation:
(1–2) |
This relationship provides an exponential increase in the mesh
stiffness as the control volume size, , decreases. The stiffness Model Exponent, ,
determines how quickly this increase occurs. For example, large values
will yield a much more abrupt stiffness variation. This exponent is
set to 2.0 by default. is the reference volume, which can be automatically
computed (Reference Volume > Option set to Mean Control Volume
) or directly specified
(Reference Volume > Option set to Value
, with a default value of 1 [m^3]
). The reference volume should be representative
of a typical control volume within the domain. Stiffness values are
clipped between minimum and maximum values that are by default 1e-15
and 1e15, respectively.
When using Increase Near Small Volumes
combined
with Displacement Relative To set to Initial Mesh
, then control volume size, , is computed using the initial mesh in Equation 1–2.
The premise of increasing the stiffness near certain boundaries (wall, inlet, outlet, and opening) is that mesh quality will benefit from having the mesh interior (that is, away from wall, inlet, outlet, and opening boundaries) absorb more mesh motion. Although this option requires the solution of an additional boundary scale equation, it is useful because it does not depend upon the original mesh distribution (that is, control volume size distribution) and it treats regions near all wall, interface, inlet, outlet, and opening boundaries identically. However, the mesh stiffness is unaffected near symmetry and one-to-one periodic interfaces.
The following relationship is used to determine the mesh stiffness, , applied in the displacement diffusion equation:
(1–3) |
This relationship provides an exponential increase in the mesh
stiffness as the distance from the nearest boundary, , decreases.
The stiffness Model Exponent, , determines how quickly this increase occurs. For
example, large values will yield a much more abrupt stiffness variation.
This exponent is set to 2 by default. is the reference length, which can be automatically
computed (Reference Distance > Option set to Global Length Scale
) or directly specified
(Reference Distance > Option set to Value
, with a default value of 1 [m]
). The reference length should be representative
of a typical length within the model. Stiffness values are clipped
between minimum and maximum values that are by default 1e-15 and 1e15,
respectively.
Detailed information on the boundary scale equation is available at Wall and Boundary Distance Formulation in the CFX-Solver Theory Guide.
This option provides a more general model that adapts itself to cases, reducing the need for tuning.
It combines features of Increase Near Small Volumes
and Increase Near Boundaries
and makes use of information about the local domain mesh.
The model has the following form:
(1–4) |
Here, and are the local values as before, but the reference values are instead found from the properties of the local domain mesh. For example:
= mean control volume in domain
= 0.5 * (volume of domain)1/3
= 10.0 * (minimum control volume in domain)1/3
The factors and are simple default weights that indicate a dominance of one term over the other, or equality, and should sum to unity.
The mesh stiffness can also be specified directly using the CEL. As suggested above, the mesh stiffness should increase in regions where mesh folding is most likely to occur. For example:
The mesh stiffness could be made to increase with total mesh displacement
The independent variable, or , could be clipped directly, or
Multiple independent variables could be used.
The mesh motion options that are available on subdomain and boundary regions are nearly identical. The options listed in Table 1.1: Mesh Motion Options are accessible on the Mesh Motion and Boundary Details tabs for the subdomain and boundary regions, respectively.
Table 1.1: Mesh Motion Options
Option | Inlet, Outlet, Opening | Wall | Symmetry | Interface | Subdomain |
---|---|---|---|---|---|
Conservative Interface Flux | X | ||||
Unspecified | X | X | X | X | X |
Stationary | X | X | X | X | X |
Specified Displacement | X | X | X | X | |
Specified Location | X | X | X | X | |
Periodic Displacement | X | X | |||
Parallel to Boundary | X | X | |||
Surface of Revolution | X | X | |||
System Coupling | X | ||||
Rigid Body Solution | X | X | X | X |
Note: When using Unspecified
or Conservative Interface Flux
conditions, there is no constraint
that attempts to keep the meshes on either side of the interface together.
One can expect that the mesh surfaces on either side of the interface
will float apart or even cross over each other slightly. This will
not generally affect solution accuracy because all interface values
and transport flows are evaluated on control surfaces that represent
an average of the surfaces on either side of the interface. However,
if the mesh surfaces are too far apart (due to floating apart or due
to crossover) then the solver may fail while trying to generate the
average surface. Although very uncommon, this failure is fatal. GGI
control expert parameters exist to relax the tolerances used while
intersecting the meshes on either side of the interface. For details,
see CFX-Solver Expert Control Parameters.
The motion of all remaining nodes is implicitly unspecified, and is determined by solving a mesh displacement diffusion equation at the start of each time step for transient runs, or outer loop iteration for steady-state runs.
Note: There is a three-level hierarchy for boundary conditions with mesh motion. That is, for mesh vertices shared between two or more boundary conditions, the applied condition is calculated from the attached boundary conditions based on the following priorities:
Stationary
takes precedence over a specified value: eitherSpecified Displacement
orSpecified Location
.A specified value takes precedence over a sliding condition (for example,
Parallel to Boundary
orSurface of Revolution
).Any condition takes precedence over the
Unspecified
condition.
This option is similar to Unspecified because no constraints on mesh motion are applied to nodes. The important difference is that motion of nodes in all domains adjacent to the interface influence, and are influenced by, the motion of the nodes on the interface.
Important: Applying Conservative Interface Flux
implies
that the quantity in question will "flow" between the
current boundary and the boundary on the other side of the interface.
This means that Conservative Interface Flux
must
also be used on the boundary on the other side of the interface. Accordingly,
the CFX-Solver will not be able to handle cases where Conservative
Interface Flux
is set on just one side of the interface,
or where the quantity being transferred does not exist on the other
side. CFX-Pre will issue a warning if either of these cases exist.
No constraints on mesh motion are applied to nodes. Their motion is determined by the motion set on other regions of the mesh. When this option is used on a domain interface boundary condition, only motion from other nodes in the current domain is "felt". It is worth noting that this motion will enable the mesh on one side of a domain interface to pull away from the mesh on the other side of the interface.
Nodes are displaced according to the specified CEL expression or User CEL. This displacement is always relative to the initial mesh and the local coordinate frame, if defined.
The following displacement options exist:
Cartesian Components
Provide X, Y, and Z components of the displacement.
Cylindrical Components
Provide axial, radial, and theta components of the displacement. The theta (circumferential) component is an arc length rather than an angle. The displacement in
Cylindrical Components
also requires the specification of Axis Definition either as aCoordinate Axis
of an existing coordinate frame (for details, see Coordinate Frames) orTwo Points
.
Note:
If the Use Mesh From option is set to
Initial Values
, be careful with restarts because the definition of the initial mesh may have changed.When specifying mesh displacements using CEL, the variable
Initial Cartesian Coordinates
(with components Initial X, Initial Y, and Initial Z) may be useful. This variable represents the position of each node as it was at the start of the simulation (that is, the current position with Total Mesh Displacement subtracted).
All nodes are located according to the specified CEL expression or User CEL.
Note:
Care should be taken when using this option because it is easy to get unexpected results. In particular, if a constant location (such as 0, 0, 0) is set for an entire region, all the mesh points will collapse to that point location.
When specifying mesh locations using CEL, the variable
Initial Cartesian Coordinates
(with components Initial X, Initial Y, and Initial Z) may be useful. This variable represents the position of each node as it was at the start of the simulation (that is, the current position with Total Mesh Displacement subtracted).
The Periodic Displacement option allows you to set a transient periodic mesh motion that repeats itself at a given frequency and has an associated phase offset.
The periodic mesh displacement input vector components can be specified as:
Cartesian Components
Provide X, Y, and Z components of the displacement as well as a Scaling Factor with which to multiply the displacement components in order to obtain the intended maximum displacement.
Normalized Cartesian Components
Provide X, Y, and Z components of the displacement and specify directly the maximum Amplitude of the displacement.
Complex Cartesian Components
Provide X, Y, and Z components for the real and imaginary parts of the displacement as well as a Scaling Factor with which to multiply the displacement components in order to obtain the intended maximum displacement.
Complex Normalized Cartesian Components
Provide X, Y, and Z unit-normalized components for the real and imaginary parts of the displacement and specify directly the maximum Amplitude of the displacement.
For all of the above options, you need to provide the vibration Frequency as well as a Phase Angle that offsets the displacement in time. The following Phase Angle options are available:
Value
You can use this option to set a Specified Phase Angle to offset the mode shape displacement.
Nodal Diameter (Phase Angle Multiplier)
This option is only available for Transient Blade Row simulations.
The corresponding settings are:
Nodal Diameter Mag.: the magnitude of the nodal diameter
Traveling Wave Dir.: the traveling wave direction:
Forward
orBackward
.By default, the direction considered to be
Forward
is:For a model that has a rotating component: the direction of machine rotation
For a model that has only stationary components (for example, a model of a stand-alone stator): the direction of increasing sector tag number
A forward traveling wave is illustrated in Case 3: Blade Flutter.
Passage Number
Interblade Phase Angle
This option is only available for Transient Blade Row simulations.
The corresponding settings are:
Interblade Phase Angle
Passage Number
From Profile
When using a profile that has been expanded using CFX-Pre’s profile expansion tool, the Nodal Diameter is read directly from the Harmonic Index entry in the original passage mode shape profile. Similar to the
Nodal Diameter
option, you can select the Traveling Wave Direction (Forward
orBackward
). For details, see Case 3: Blade Flutter.
Note:
You can change which direction is considered to be forward (corresponding to a positive phase angle). For details, see the description for expert parameter
meshdisp phase angle convention
given in Physical Model Parameters.If the Use Mesh From option is set to Initial Values, be careful with restarts because the definition of the initial mesh may have changed.
The Parallel to Boundary
option allows
the mesh to slide over an arbitrary boundary definition, with no component
of deformation normal to it. This option attempts to preserve the
geometry of the boundary as defined by its initial mesh.
Note: Problems can occur in the following cases:
Mesh nodes slide past a boundary perimeter, which is possible if the neighboring boundary has a mesh motion option other than
Stationary
.In this case, mesh nodes move along an extrapolation of the boundary in which they originated; they do not strictly follow the geometry of the next boundary.
In addition, mesh motion can become non-periodic if a sliding mesh surface touches a Periodic Interface boundary.
The mesh slides over a region of high curvature (or even a sharp edge).
In this case, mesh nodes can move away from the geometry because the local surface normal is not well defined.
To reduce this problem, ensure adequate mesh resolution near regions of high curvature.
The Surface of Revolution
option allows
the mesh to slide over a boundary definition while maintaining the
radial profile defined by the initial boundary mesh, and the axis
of revolution.
For the Surface of Revolution
option you
can specify the Axis Definition either as a Coordinate Axis
of an existing coordinate frame, or a
local cylindrical axis defined by Two Points
.
The
Coordinate Axis
option allows you to select all available local and global coordinate axes.The
Two Points
option requires you to specify a pair of coordinate values as Rotation Axis From and Rotation Axis To.
Note:
The
Surface of Revolution
option assumes that the radius is always constant in the circumferential direction, over the entire boundary mesh definition. As such, the mesh can accurately slide circumferentially beyond the extents of the initial boundary mesh definition. It can also slide axially beyond those initial extents, but in this case the radius used will be defined by the nearest point on the initial boundary mesh definition.The
Surface of Revolution
option requires that a genuine surface of revolution defines the underlying geometry, with no radial variation in the circumferential direction. Surfaces are permitted to run perpendicular to the axis of revolution, where multiple vertices exist at the same axial coordinate. If there are convergence difficulties with the mesh displacement equations, consider using theParallel to Boundary
option instead.
Nodes are displaced according to the displacement data received from the System Coupling system. For more information about simulations involving System Coupling and CFX, refer to Coupling CFX to an External Solver: System Coupling Simulations in the CFX-Solver Modeling Guide.
Set Rigid Body to the name of the rigid body object that will govern the motion of the boundary/subdomain.
You can restrict which aspects of the rigid body motion are applied to the boundary/subdomain by selecting Motion Constraints and choosing one of the following options:
None
No constraints are applied to the boundary/subdomain. The motion of the rigid body object is applied to the boundary/subdomain.
Ignore Translations
Any translational motion of the rigid body object is ignored when applying the motion of the rigid body object to the boundary/subdomain.
Ignore Rotations
Any rotational motion of the rigid body object is ignored when applying the motion of the rigid body object to the boundary/subdomain.
For additional information on modeling rigid bodies, see Rigid Body Modeling in the CFX-Solver Modeling Guide.
The Periodic Regions of Motion
option can be an alternative
to the Regions of Motion Specified
option (described in Regions of Motion Specified)
for transient cases that involve periodic motion of boundary walls (for example, transient blade row cases
that involve blade flutter).
The Periodic Model setting (in CFX-Pre > Domain details view > Domain Models > Mesh Deformation) has the following option:
Complex Displacement
This model takes advantage of the nature of periodic motion, and solves the mesh motion equations at only the start of the simulation. Given the solution at the start of the simulation, the model is able to algebraically recompute the new mesh locations at different time steps during the simulation, reducing computational effort. Mesh motion robustness is also improved; once a full period of motion has been successfully completed, the mesh will not "fold" at any time during the remainder of the simulation.
For implementation details of the
Complex Displacement
model, see Periodic Regions of Motion: Complex Displacement.
The Mesh Stiffness options that are available for the Periodic Regions of Motion
option are the same as those available
for the Regions of Motion Specified
option, described in Mesh Stiffness.
The Mesh Motion options that are available for the Periodic Regions of Motion
option are a subset of those available
for the Regions of Motion Specified
option, described in Mesh Motion Options; specifically, all options are available except for the following:
Specified Displacement
Specified Location
System Coupling
Rigid Body Solution
Other limitations of the Periodic Regions of Motion mesh deformation model are listed next:
The mesh stiffness must not change over time.
There must be only a single frequency for the specified motion at the wall boundaries.
In the current implementation, the
Periodic Regions of Motion
option cannot be used with the Harmonic Analysis solution method (described in Harmonic Analysis in the CFX-Solver Theory Guide).All mesh vertices are constrained to move along straight lines (not curves or arcs) during a period of motion; this is implicit in Equation 1–9. A consequence of this constraint is that sliding boundary conditions, particularly those on surfaces of revolution or other non-planar surfaces, might not behave as expected. For example, if the
Surface of Revolution
mesh motion option is specified for a shroud, a mesh vertex on the shroud is unable to remain on the shroud if it tries to move in the circumferential direction (as might happen in a blade flutter case where the moving blade tip is near the shroud); instead of moving along an arc of constant radius, the vertex moves in a straight line from its initial position (generally along a tangent to the original surface at the vertex's original location). If the amplitude of the vertex displacement is small compared to the radius of the surface then the error might not be significant.If this problem is severe, then you should switch to using the Region of Motion Specified mesh deformation model.
In the mesh motion method in CFX, the mesh deformation is found by solving a Laplacian diffusion equation:
(1–5) |
for a local stiffness .
It has been noticed that the solution of the mesh motion equations can form a significant overhead in the total solution time of a simulation (as much as 20%). This is particularly unnecessary within a certain class of solution where boundary conditions are periodic, as the motion solution may also be periodic in the same way.
One simple solution is discussed here in which the whole mesh deformation throughout the domain is itself periodic.
If we limit the class of relevant solutions to cases similar to blade flutter calculations, for example, then the imposed displacements at a boundary are of the form:
(1–6) |
If we assume that all displacements satisfy Equation 1–5, and that all prescribed boundary conditions are either stationary or of the form in Equation 1–6, then it can be shown that the solution of the mesh displacement equations can be found in frequency space, rather than the time-domain. Posed as a complex number problem we find:
(1–7) |
With boundary conditions:
where represents the phase angle at each boundary/blade, and the prescribed amplitude of oscillation. By using a separation of variables, we can solve directly for the real and imaginary parts, subject to known boundary conditions:
(1–8) |
And the periodic solution at any point in time is reconstructed from:
(1–9) |
The big advantage with this approach is that the equations in Equation 1–8 can be solved to convergence right at the start of the simulation before any other equation systems (Note that in 3D simulations, R and A are essentially vectors but the 3 components of R can be solved independently with 3 Laplacian equations). Once the solution is found, Equation 1–9 is used on all time steps. Note that Equation 1–9 represents a linear system, which is why the mesh vertices only travel in straight lines.
When this option is chosen, a User Fortran routine that explicitly sets the coordinates of all nodes in a given domain is specified and called. The Junction Box Routine that is called is specified with this mesh deformation option rather than with other Junction Box Routines on the Solver Control dialog box. The specified routine is always called at the start of each time step, and all mesh coordinate dependent quantities (for example, the volumes of control volumes) are automatically updated.
Note: This option becomes available only once one or more Junction Box Routines have been created; only one Junction Box Routine can be selected.
Important: Only the coordinates of mesh nodes may change; the topology (that is, the connectivity) of the mesh must remain fixed.