Morphing
The boundaries of a region can change position and shape over time—for example, due to the motion of a contacting body. In Simcenter STAR-CCM+, the morphing algorithm redistributes the mesh vertices in response to the displacement of the boundaries, allowing for non-rigid deformations of the mesh.
The morpher algorithm redistributes the mesh vertices—it does not act on cell volumes, faces, or edges. The morpher does not optimize the grid, since it cannot compute mesh-quality metrics.
The initial movement that the morpher imposes on the mesh is defined through a set of control points. These control points originate from the mesh vertices on the morphing boundary, or from a control point table. Each control point is associated with a known displacement vector. The morpher uses these displacements to construct an interpolation field, which is used to calculate the displacements of all mesh vertices.
The morpher uses the control point displacements to generate an interpolation field for the region, by which the morpher motion is defined. The morpher then uses the interpolation field to translate the mesh vertices to their new positions.
Interpolation Algorithms
Simcenter STAR-CCM+ provides two interpolation methods—BSpline and Radial Basis Functions (RBFs). The locality of the BSpline coefficients and the parallelization schemes makes the BSpline morpher more scalable for parallel computations than RBF—potentially reducing computational expense.- BSpline
-
Following [18], Simcenter STAR-CCM+ uses a hierarchical, multilevel BSpline approach based on progressively adaptive grids.
The interpolation method is C2-continuous—producing a smoother surface than either C0 or C1-continuous curves.
Consider a simple, 1D example. The diagram below shows a line segment, with four BSpline coefficients at the 'knots' (labeled 0-3), spaced equidistantly along it. The parameter is the normalized distance in the interval wherein one or more control points may lie:
In this example, the BSpline curves are fitted through control points (not shown) along a line that is superimposed onto the geometry domain. These points are not, by definition, coincident with the model geometry, but instead surround the mesh vertices. A cubic BSpline curve across the central interval (1)-(2) requires a minimum of four coefficients:(4845)where:- is the fitting curve.
- is the normalized distance along the intervals
- is the value of BSpline coefficient at knot , with =0, 1, 2, and 3.
The weight functions are Uniform Basis Functions, given as:(4846)These act as weighting factors. Each has a proportionate influence on , such that .
The approach is easily extended to 2D and 3D cases:(4847)where , , and are the basis functions in the , and coordinate directions, respectively; these describe knots on a 1D line, 2D square, or a 3D cube, as appropriate.
The BSpline approach implemented in Simcenter STAR-CCM+ uses a hierarchical process—progressively refining the control-point grid until the residual error is within the limits specified by the morpher tolerance. A sequence of corrections is applied at different grid-scales. For simplicity, let the coordinates be named , where denotes the grid refinement step, and the target coordinates, with the residual being the difference between these, . The residual is, in fact, the displacement, which is known at the control points, but unknown elsewhere.
The residual can be represented as a sum of interpolation and the remaining residual until the desired displacement is reached.
An equation for is formed as:
(4848)where is the coordinates of the point at the start of the process, is the interpolation at step , and is the last refinement step at which the desired displacement is reached.
The refinement is performed until the morphing error is converged to within the precision of the morpher tolerance. The convergence of such an algorithm is guaranteed, as the proximity data sets are getting smaller and, at a certain refinement level, each of them contains just one control point and exact interpolation is realized.
The hierarchical approach is inefficient, as the number of calculation points grows exponentially with refinement, while many of the calculations are for regions where there is no data. A more efficient approach is to remove these points from the calculation. As follows from Eqn. (4848), the coefficient is only equal to zero when either:
- all contributions from points in the proximity data are zero, or
- the proximity data set is empty.
In both cases, it can be assumed that the spline correction at these points is already converged, and that no further corrections are required. Thus, at subsequent refinement levels, the algorithm collects just non-zero coefficients—a process named adaptive interpolation. After refinement, the number of points in the control lattice grows, but, conversely, there are less points where any correction is required.
The picture below shows the control lattice at refinement level 0 (left image), and refined control lattice at level n (right image):
If the control data points are defined on the boundary surface (black line), after a certain refinement level, no inner-region vertices are corrected. The number of operations is of the order , where is the number of control points (that is, vertices with displacements), is the number of evaluation points (that is, all vertices in the geometry), and is the number of refinement levels.
- Radial Basis Functions (RBF)
-
The RBF morpher generates an interpolation field via a system of equations; these are created using the control points, and their specified displacements, where the known displacement of each control vertex is expanded as
(4849)in which is a radial basis function of the form
(4850)and is the magnitude of the distance between two vertices:
(4851)In these equations, is the expansion coefficient, is the position of vertex , N is the number of control vertices, and is the basis constant. The basis constant is set to zero in Simcenter STAR-CCM+. The constant vector is used to satisfy the additional constraint that
(4852)This additional constraint bounds the expansion for large . The system that is described in Eqn. (4849) is non-singular if for all .
Equations Eqn. (4849) and Eqn. (4852) are solved to give the Cartesian components of all and the components of constant vector . This results in the desired interpolation field:
(4853)where applies at all vertices in the mesh, that is,
This equation can now be used to move mesh vertices by the calculated displacement .
The matrices that are involved in equations Eqn. (4849) and Eqn. (4853) are dense, and a straightforward matrix operation would require operations. An method has been developed to solve the linear equation Eqn. (4849) and evaluate equation Eqn. (4853) at many vertex locations. The RBF morpher accelerates the matrix-vector multiplication using a conjugate gradient method, with a special pre-conditioner ([15], [16]), along with a fast multipole method [17].
Boundary Plane Conditions (RBF Morpher)
Simcenter STAR-CCM+ provides two constraints for the vertices that lie on the morphing boundary—the Boundary Plane and the Fixed Boundary Plane constraints. For the fixed boundary plane condition, the vertices which lie on the specified plane are fixed, while for the boundary plane condition they are permitted to move within the plane itself. An effect similar to the fixed boundary plane condition can be realized by using control vertices, but the fixed boundary plane condition itself can be more efficient. The movement of vertices near the constraint planes is such that they join smoothly with the movement of vertices on the plane.
For the case of the RBF morpher only, the movement near the constraint planes can be controlled using the damping distance that is described below.
These constraints are imposed before solving Eqn. (4849). In preparation, user-specified displacements are transformed to by solving
where is the normal of the p-th plane and is the number of planes. The displacements are transformed back to together with other mesh vertices at the end of the morphing process. and are functions that depend on the plane type and the continuity condition you choose. These functions are given as follows:
-continuous | -continuous | |||
---|---|---|---|---|
Fixed Boundary Plane | ||||
Boundary plane | 1 | 1 |
Here:
in which
is the ratio of the signed distance from the p-th plane to and the damping distance . is a position vector on the p-th plane and is either entered as a finite distance or calculated automatically as . and are respectively the distances from the plane to the nearest and farthest control vertices on the active side of the plane.
Functions and in the range from 0 to 1 are plotted below for comparison. A continuity level of results in a smooth transition.

The steps that are involved in the RBF morpher stage within a time-step are:
- The control vertex displacements are transformed to according to Eqn. (4854).
- Eqn. (4849) is solved with Eqn. (4852) to provide an interpolation field.
- The displacement vectors are transformed from to using Eqn. (4854).
Linear Fitter
The linear fitter can be used with both the BSpline and RBF morphers.
Each displacement component is represented as a function of coordinates. Using least squares, a hyperplane equation is found for each displacement component.
Consider a problem of fitting the x-displacement, :
An over-determined system of linear equations can be constructed
which, written in matrix form, is
where is a matrix with point coordinates, contains the hyper-plane coefficients, and is a displacement column.
To solve the problem using the least-squares approach, the normal equations are constructed:
, where is the pseudo-inverse matrix.
The RBF morpher uses the Cholesky decomposition for solving the linear equations. For the BSpline Linear Fitter implementation, the matrix is decomposed with singular-value decomposition (SVD).