2022-06-15T17:13:09.000-0400

Simcenter STAR-CCM+
Simcenter STAR-CCM+ Virtual Reality
Teamcenter Share
Simcenter Cloud HPC
Simcenter STAR-CCM+ Viewer
Simcenter STAR-CCM+ Application Specific Solutions

Newton's method is a numerical method for finding the zeros of non-linear equations. There are many applications that arise in CFD that can benefit from this technique. This article provides two such examples and outlines how to use simulation operations in STAR-CCM+ to automate the processes. Two techniques are discussed, with the use of the adjoint solver and without.

Take for example the process of identifying the correct intake and exhaust mass flow boundary conditions for external aerodynamics simulations of aircraft with air breathing engines. At steady state flight conditions the drag and thrust forces should balance.

Newton's method for a function of a single variable can be derived from a Taylor series expansion:

We will deploy the method to determine the appropriate engine exhaust mass flow boundary condition of a generic drone external aerodynamics simulation.

In the animations below we can see how the Secant method progresses from our initial two guesses of and .

With each subsequent iteration the value of gets closer to 0. After 4 iterations it is less than 1% of the drag value. In all 6 values for were tried (2 initial guesses and 4 from the Secant method) requiring less than 800 iterations to complete the process. A description of the steps in the simulation operation is given below. This is taken from the attached example simulation UCAV_FindMdotBC_NM_Coarse.7z

For the first iteration after a new value of has been selected the values of and are the same which can result in a divide by zero. While this won’t have an impact on the results of the simulation it can cause the simulation operation manager to detect an error and terminate when it shouldn’t. This can be avoided by using an expression to check that these two values are not equal before using them to compute the new value of . For example in the report "dmdot_dF_net" used to calculate :

abs(${F_net} - ${F_net_0}) < 0.0000001 ? 1 : (${mdot_out_1} - ${mdot_out_0}) / (${F_net} - ${F_net_0})

If you can use the adjoint solver in STAR-CCM+ to compute the derivative then the implementation can be simplified. As an example, suppose you have an airfoil, and you would like to know at what angle of attack the lift coefficient . Here our function is the difference between the current and the desired value of 1.025 or

Newton's method in this case becomes

Where the derivative can be computed using the adjoint solver (please see article Example of using adjoint to calculate the gradient of lift with respect to angle-of-attack, or attached sim file CRM_Airfoil_Adj_NM_TargetLift.sim ), so the backwards difference approximation is not necessary and only a single initial guess is required. In this case the simulation operations can be simplified to the following:

After the initial guess of two additional iterations were required to identify that when .

Newton's method is expected to converge as long as the initial guess(es) are close enough to the zero of interest. In most CFD applications this is not a challenging requirement, but in cases where the function in question has many zeros or has many local minima or maxima a good initial guess(es) may be necessary.