Solution Control and Time Advancement
Solution Control determines how aggressively CMPS advances the nonlinear solution and, for transient cases, how physical time is resolved. These settings usually do not change the intended physical model, but they can strongly change convergence, stability, time accuracy and computing cost.
Theory reference. Each option entry includes a link to the corresponding equation, physical model, closure, or numerical method in the Theory Manual. Defaults, availability, simulation effects, and practical guidance are documented directly with the GUI option.
Simulation effect. These controls change nonlinear advancement, pseudo-time behavior, or physical-time resolution without redefining the intended physical model. Final convergence remains assessed through residuals, conservation, and stable engineering quantities.
Pseudo-time and nonlinear correction
These controls determine how aggressively the nonlinear solution advances.
| GUI option | Meaning / formulation | Effect on the simulation | Practical guidance | Theory reference |
|---|---|---|---|---|
| Time Algorithm: SteadyDefault: Steady | Iterates toward a fixed point using pseudo/local time. The converged condition is conceptually \(\mathbf B(\mathbf q)=0\). | Stability / convergenceCost Targets a time-independent operating point. Physical transients are not resolved; pseudo-time is only a convergence device. | Use when the requested operating condition is expected to be steady. | Pseudo-time iteration |
| Time Algorithm: TransientDefault: Alternative | Retains the physical-time derivative and converges each physical step by inner pseudo-time iterations. | PhysicsAccuracyCost Captures physical unsteadiness. Accuracy now depends on physical time step, time order and inner convergence. | Use for genuinely unsteady flow, SAS, moving conditions or time-resolved loads/heat transfer. | Pseudo-time iteration |
| CFLDefault: 5 | Scales the pseudo-time step approximately as \(\Delta\tau_i\sim CFL\,V_i/\sum_f\lambda_f A_f\). | Stability / convergenceCost Larger CFL usually advances the nonlinear solution faster when stable, but produces a more aggressive/stiffer implicit correction. | Start conservatively for difficult cases; increase after residuals and monitored quantities behave smoothly. | CFL control |
| ERCDefault: 0.75 | Global explicit correction relaxation: \(\Delta\mathbf q_i\leftarrow ERC\,\Delta\mathbf q_i\). | Stability / convergenceCost A smaller value damps every coupled variable correction and improves robustness, but slows nonlinear convergence. | Use below 1 for difficult starts or oscillatory updates; increase only after the solution is stable. | Global correction relaxation |
| PRLDefault: 0.2 | Temperature-positivity relaxation. If \(-\Delta T_i>PRL\,T_i\), then \(\alpha_T=PRL\,T_i/(-\Delta T_i)\) and the entire coupled cell correction is multiplied by \(\alpha_T\). | Stability / convergence Prevents one nonlinear update from removing too large a fraction of the local temperature. Frequent activation is a sign of an overly aggressive or inconsistent solution update. | Keep conservative for reacting, high-speed and strong thermal-gradient cases. | Temperature positivity rate limit |
| Maximum CFLDefault: 20 | Upper bound used by automatic or ramped CFL control. | Stability / convergenceCost A higher maximum permits faster mature convergence, but can destabilize the nonlinear/linear solve if reached too early. | Raise only after observing stable convergence. | CFL control |
| Minimum CFLDefault: 1 | Lower bound used by automatic CFL control. | Stability / convergenceCost A lower minimum gives the controller more room to recover from difficult iterations; a high minimum can prevent recovery. | Keep low enough for robust fallback. | CFL control |
| Const CFLDefault: Default method | Keeps CFL at the value entered in the CFL field. | Stability / convergenceCost Provides predictable nonlinear aggressiveness but cannot adapt automatically to changing stiffness. | Good for controlled studies and already stable cases. | CFL control |
| Auto CFLDefault: Alternative | Uses linear-solver effort to update CFL in logarithmic form. With \(N_t=\max(\lfloor0.3N_{max}\rfloor,1)\), \(e_n=\ln(N_{its}/N_t)\), \(I_n=I_{n-1}+e_n\), \(d_n=e_n-e_{n-1}\), and \(\ln CFL^*=\ln CFL_n-(0.8e_n+0.05I_n+0.05d_n)\). The result is clamped to Min/Max CFL, includes anti-windup, and upward growth is limited to about 5% per update. | Stability / convergenceCost Reduces CFL when the inner linear solve becomes difficult and increases it gradually when the system is easy, balancing speed and robustness. | Useful when case stiffness changes strongly through convergence. | CFL control |
| Linear RampDefault: Alternative | Between the configured start/end iterations, \(f=(n-n_0)/(n_1-n_0)\) and \(CFL=C_0+f(C_1-C_0)\). | Stability / convergenceCost Provides a deterministic gradual increase from a robust starting CFL to a faster mature value. | Useful when startup is known to require gentle updates. | CFL control |
| SO RampDefault: Alternative | Uses the same interval but with \(CFL=C_0+f^2(C_1-C_0)\). | Stability / convergenceCost Stays near the low start CFL longer and rises more strongly later, making startup more conservative than a linear ramp. | Use when the first part of the solution is especially difficult. | CFL control |
| Ramp Start CFLDefault: 0.5 | Defines \(C_0\) for Linear/SO ramp. | Stability / convergenceCost Controls initial pseudo-time aggressiveness. | Choose a robust startup value. | CFL control |
| Ramp End CFLDefault: 5 | Defines \(C_1\) for Linear/SO ramp. | Stability / convergenceCost Controls mature pseudo-time aggressiveness after the ramp. | Choose based on stable mature convergence. | CFL control |
| Ramp Start IterationDefault: 0 | Defines \(n_0\), before which the ramp remains at its starting value. | Stability / convergenceCost Delays the beginning of CFL increase. | Normally leave at the start of the run unless a deliberate constant-CFL startup is desired. | CFL control |
| Ramp End IterationDefault: 1000 | Defines \(n_1\), at which the requested end CFL is reached. | Stability / convergenceCost A larger value makes the increase slower and more conservative. | Extend when a case needs a long gentle startup. | CFL control |
| Preconditioning Mach FloorDefault: 1e-5 | Lower Mach-number scale used by low-speed preconditioning. | Stability / convergenceCost Prevents the preconditioned acoustic scale from becoming excessively small near stagnation. A larger floor is more conservative but can reduce low-Mach acceleration. | Keep small; increase only if very low-speed regions destabilize the preconditioner. | Low-speed preconditioning |
| Stretched Grid AcceleratorDefault: On in 2D builds; Off in 3D builds | Uses cell directional stretching in local spectral/timestep scaling. The geometric factor is \(AR_{impl}=r_{min}/r_{max}=1/AR_{geom}\). | Stability / convergenceCost Can accelerate convergence on strongly stretched viscous/boundary-layer meshes by avoiding excessive timestep restriction from the long cell direction. It should not change a converged fine-grid physical solution. | Useful for high-aspect-ratio meshes; compare final residuals and quantities with the accelerator off when qualifying a method. | Stretched-grid acceleration |
| Isent-Mach AcceleratorDefault: Off | Forms \(\Pi=\max[(p_t+p_s)/(p+p_s),1]\), \(M_{is}=\sqrt{\frac{2}{\gamma-1}(\Pi^{(\gamma-1)/\gamma}-1)}\), then raises the preconditioning reference velocity with \(M_{is}a\), capped at \(a\). | Stability / convergenceCost Prevents low-speed preconditioning from becoming too aggressive where a large total-to-static pressure ratio implies strong local acceleration. | Useful in nozzles, inlets and high-pressure-ratio cases with low initial/local Mach number. | Isentropic-Mach accelerator |
| Fluid Zone Solving Frequency (CHT)Default: 1 | Number of outer iterations between fluid-zone solves in coupled fluid-solid heat transfer. | PhysicsStability / convergenceCost Increasing it reduces fluid-solve frequency and cost but weakens how tightly fluid and solid temperatures are coupled per outer iteration. | Use 1 for strong coupling/transients; increase only when thermal coupling is slow and stable. | Fluid–solid thermal coupling |
| Particle RelaxationDefault: 1 | Multiplies the dispersed-phase correction before it is committed. | Stability / convergenceCost Lower values damp particle updates and can stabilize stiff drag/thermal/area coupling, but slow dispersed convergence. | Reduce only when particle variables oscillate or diverge. | Dispersed-source stiffness |
Steady stopping and reporting
A steady result should satisfy residual, conservation and engineering-output convergence, not only the iteration cap.
| GUI option | Meaning / formulation | Effect on the simulation | Practical guidance | Theory reference |
|---|---|---|---|---|
| Maximum IterationDefault: 500 | Maximum number of nonlinear iterations allowed for a steady run. | Cost Limits run cost but does not itself indicate convergence. | Set high enough that convergence criteria normally stop the case first. | Residual/stopping monitoring |
| Minimum ResidualDefault: 1e-6 | Residual-based steady stopping level. | AccuracyCost A smaller value demands more nonlinear convergence and usually reduces algebraic error, but residual alone is not a complete accuracy criterion. | Use together with mass/energy conservation and stable engineering outputs. | Residual/stopping monitoring |
| Scaling IterationsDefault: 6 | Number of early iterations used to establish residual normalization/scales for monitoring. | Reporting / display Changes the plotted/reported normalized residual history, not the governing equations. | Keep enough startup iterations to obtain representative residual scales. | Residual/stopping monitoring |
| Verbose ReportDefault: Off | Enables additional convergence/solver reporting. | Reporting / displayCost Does not change physics; adds log output and small reporting overhead. | Enable while diagnosing a case; optional for routine production. | Residual/stopping monitoring |
Transient time controls
For transient runs, both physical time discretization and inner dual-time convergence affect accuracy.
| GUI option | Meaning / formulation | Effect on the simulation | Practical guidance | Theory reference |
|---|---|---|---|---|
| First Order (Dual Time with DeC)Default: Alternative | Uses the first-order physical-time discretization with inner dual-time convergence. | AccuracyStability / convergenceCost More temporally dissipative and usually more robust, but first-order accurate in physical time. | Useful for startup, very stiff transients or when first-order temporal accuracy is acceptable. | Implicit transient / dual time |
| High Order (Dual Time with DeC)Default: Default physical temporal order: Second Order | Uses the higher-order physical-time discretization with dual-time convergence. | AccuracyCost Reduces physical-time truncation error but requires adequate inner convergence and a suitable startup. | Preferred for final time-accurate results after a time-step sensitivity study. | Implicit transient / dual time |
| Maximum TimeDefault: 10 s | Physical end time of the transient simulation. | PhysicsCost Determines how long the physical event/history is simulated. | Run long enough to capture the requested event, periodic state or statistical interval. | Physical time-step control |
| Time Step SizeDefault: 1 s | Physical time increment \(\Delta t\). | AccuracyStability / convergenceCost Directly controls temporal resolution and physical-time truncation error. Smaller values cost more and can improve accuracy/stability. | Perform a time-step sensitivity study for time-dependent quantities. | Physical time-step control |
| User-scripted / profiled time stepDefault: Off | Allows the physical time-step size to vary according to the configured time-dependent input where this option is enabled. | AccuracyCost Can concentrate temporal resolution during fast events and use larger steps elsewhere. | Use smooth, documented changes and verify the resulting time history. | Physical time-step control |
| Sub-iterationsDefault: 20 | Maximum inner pseudo-time iterations allowed inside each physical time step. | AccuracyCost More subiterations reduce dual-time iteration error but increase cost. Too few can contaminate physical-time accuracy. | Set high enough that the inner residual criterion is normally reached before the cap. | Implicit transient / dual time |
| Sub-iteration Residual LimitDefault: 1e-3 | Residual stopping criterion for the inner dual-time iterations. | AccuracyCost A smaller value makes each physical step more fully converged, improving time accuracy at higher cost. | Tighten until time histories/loads become insensitive to the inner tolerance. | Implicit transient / dual time |