{"id":33211,"date":"2020-09-30T13:58:35","date_gmt":"2020-09-30T13:58:35","guid":{"rendered":"https:\/\/www.simscale.com\/?page_id=33211"},"modified":"2025-07-14T09:53:37","modified_gmt":"2025-07-14T09:53:37","slug":"simulation-control-fluid","status":"publish","type":"page","link":"https:\/\/www.simscale.com\/docs\/simulation-setup\/simulation-control-fluid\/","title":{"rendered":"Simulation Control for Fluid Analysis"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Ever wondered what those technical terms inside the <em>Simulation control<\/em> settings panel mean? If yes, then this is the right place to get all your queries answered. This document gives detailed explanations for the settings that control the simulation run in SimScale, specifically for the <a href=\"https:\/\/www.simscale.com\/product\/cfd\/\"  rel=\" noopener\">fluid simulation<\/a> analysis types supported with the <a href=\"https:\/\/openfoam.org\/\">OpenFOAM\u00ae<\/a> solver and the <a href=\"https:\/\/www.simscale.com\/docs\/analysis-types\/subsonic-cartesian\/\">Multi-purpose<\/a> analysis type as well.<\/p>\n\n\n\n\n\n\n<p class=\"wp-block-paragraph\">Following analysis types are based on the OpenFOAM\u00ae solver:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><em><a href=\"https:\/\/www.simscale.com\/docs\/analysis-types\/incompressible-fluid-flow-analysis\/\">Incompressible<\/a><\/em><\/li>\n\n\n\n<li><em><a href=\"https:\/\/www.simscale.com\/docs\/analysis-types\/compressible-fluid-flow-analysis\/\">Compressible<\/a><\/em><\/li>\n\n\n\n<li><em><a href=\"https:\/\/www.simscale.com\/docs\/analysis-types\/convective-heat-transfer-analysis\/\">Convective Heat Transfer<\/a><\/em><\/li>\n\n\n\n<li><em><a href=\"https:\/\/www.simscale.com\/docs\/analysis-types\/conjugate-heat-transfer-analysis\/\">Conjugate Heat Transfer<\/a><\/em><\/li>\n\n\n\n<li><em><a href=\"https:\/\/www.simscale.com\/docs\/analysis-types\/immersed-boundary-analysis\/\">Conjugate Heat Transfer (IBM)<\/a><\/em><\/li>\n\n\n\n<li><em><a href=\"https:\/\/www.simscale.com\/docs\/analysis-types\/multiphase-fluid-flow-analysis\/\">Multiphase<\/a><\/em><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">One should find the following control settings:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><a href=\"https:\/\/frontend-assets.simscale.com\/media\/2025\/07\/simulation-control-cfd.png\"><img loading=\"lazy\" decoding=\"async\" width=\"525\" height=\"735\" src=\"https:\/\/frontend-assets.simscale.com\/media\/2025\/07\/simulation-control-cfd.png\" alt=\"simulation control panel in simscale workbench\" class=\"wp-image-106110\" style=\"width:431px;height:auto\" srcset=\"https:\/\/frontend-assets.simscale.com\/media\/2025\/07\/simulation-control-cfd.png 525w, https:\/\/frontend-assets.simscale.com\/media\/2025\/07\/simulation-control-cfd-214x300.png 214w\" sizes=\"auto, (max-width: 525px) 100vw, 525px\" \/><\/a><figcaption class=\"wp-element-caption\">Figure 1: An exhaustive list of all the <em>Simulation control<\/em> settings in SimScale for analysis types based on the OpenFOAM\u00ae solver.<\/figcaption><\/figure>\n<\/div>\n\n\n<h2 id='end-time' id='end-time' id='end-time' class=\"wp-block-heading\" id=\"end-time\">End Time<\/h2>\n\n\n\n<h3 id='steady-state' id='steady-state' id='steady-state' class=\"wp-block-heading\" id=\"steady-state-\">Steady State <\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Steady state simulations are time-independent, that is, the equations solved do not include time derivatives. Hence, <em>End time<\/em> here represents end of the simulation. No more iterations will be executed beyond this value.<\/p>\n\n\n\n<h3 id='transient' id='transient' id='transient' class=\"wp-block-heading\" id=\"transient\">Transient<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Transient simulations depend on time. The associated flow variables vary with respect to time. Hence, <em>End time<\/em> represents the time for which the transient effects need to be analyzed in any physical phenomenon. For transient simulations, <em>End time<\/em> is often referred to as the simulation time.<\/p>\n\n\n\n<h2 id='delta-t' id='delta-t' id='delta-t' class=\"wp-block-heading\" id=\"delta-t\">Delta T<\/h2>\n\n\n\n<h3 id='steady-state' id='steady-state' id='steady-state' class=\"wp-block-heading\" id=\"steady-state\">Steady State<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">For steady state simulations, <em>Delta t<\/em> represents the iteration step size. In other words, it reflects how aggressively you want to reach the end of simulation. It is also referred to as pseudo-time step. Hence,<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">$$Number\\ of\\ iterations = \\frac{End\\ time}{Delta\\ t}$$<\/p>\n\n\n\n<div class=\"hw-block hw-note hw-note--info hw-note\">\n    <div class=\"hw-note__title\">\n        <p class=\"hw-note__titleText\"><i class=\"fa fa-exclamation-circle\" aria-hidden=\"true\"><\/i>Note<\/p>\n    <\/div>\n    <div class=\"hw-note__body\">\n        <p>Although there can be different combinations of <i>End time<\/i> and <i>Delta t<\/i> for the same <i>Number of iterations<\/i> it is advised to keep the step size small (usually 1).<\/p>\n    <\/div>\n<\/div>\n\n\n\n<h3 id='transient' id='transient' id='transient' class=\"wp-block-heading\" id=\"transient\">Transient<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">For transient simulations, <em>Delta t<\/em> is the incremental change in time for which the transient equations are solved during the simulation run. It is commonly referred to as <strong>time step<\/strong> or <strong>time step size<\/strong>.<\/p>\n\n\n\n<div class=\"hw-block hw-note hw-note--info hw-note\">\n    <div class=\"hw-note__title\">\n        <p class=\"hw-note__titleText\"><i class=\"fa fa-exclamation-circle\" aria-hidden=\"true\"><\/i>Steady state vs Transient<\/p>\n    <\/div>\n    <div class=\"hw-note__body\">\n        <p>Number of iterations has a different meaning when using steady state and transient.  For transient, number of iterations means sub-iterations within each timestep. <br><br>In transient simulations a given timestep is assumed to be converged if the residuals fall below a given value.<\/p>\n    <\/div>\n<\/div>\n\n\n\n<h2 id='adjustable-time-step' id='adjustable-time-step' id='adjustable-time-step' class=\"wp-block-heading\" id=\"adjustable-time-step\">Adjustable Time Step<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">For transient simulations, it is possible to adjust the time step <em>Delta t<\/em> by setting the <em>Adjustable time step<\/em> option to <em>True<\/em>. This means that in spite of defining a time step value it will still be adjusted based on the maximum value of Courant number and the maximum allowed time step.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed is-provider-simscale wp-block-embed-simscale\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"0q0hbTKFNB\"><a href=\"https:\/\/www.simscale.com\/knowledge-base\/time-step-transient-cfd-simulation\/\">How to set the Time Step Delta T in Transient CFD Simulations?<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"&#8220;How to set the Time Step Delta T in Transient CFD Simulations?&#8221; &#8212; SimScale\" src=\"https:\/\/www.simscale.com\/knowledge-base\/time-step-transient-cfd-simulation\/embed\/#?secret=7tfcftuqLm#?secret=0q0hbTKFNB\" data-secret=\"0q0hbTKFNB\" width=\"500\" height=\"282\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<h2 id='maximal-courant-number' id='maximal-courant-number' id='maximal-courant-number' class=\"wp-block-heading\" id=\"maximal-courant-number\">Maximal Courant number<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">According to Courant-Friedrichs Lewy (CFL) condition\\(^1\\):<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">$$C=U \\frac{\\Delta t}{\\Delta x}\\tag{2}\\le 1$$<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">where \\(C\\) is the Courant number, \\(U\\) is the flow velocity at the cell, \\(\\Delta x\\) is the cell length, and \\(\\Delta t\\) is the time step.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The above expression says that the information from a given cell must propagate only to its immediate neighbor cell. This setting is only available for transient simulations. Read more on that on <a href=\"https:\/\/www.simscale.com\/blog\/2017\/08\/cfl-condition\/\">our blog<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When explicit time integration schemes are used, we recommend the CFL value to be lower than 1. In most cases, CFL value between 0.5-0.7 is considered to give the best results.<\/p>\n\n\n\n<h2 id='maximal-step' id='maximal-step' id='maximal-step' class=\"wp-block-heading\" id=\"maximal-step\">Maximal Step<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This setting defines the maximum time step length that may not be exceeded during the simulation. This setting is important since it adds an additional control over the freedom of adjusting the time step that we set under <em>Adjustable time step<\/em>. This setting is only available for transient simulations.<\/p>\n\n\n\n<h2 id='max-alpha-co' id='max-alpha-co' id='max-alpha-co' class=\"wp-block-heading\" id=\"max-alpha-co\">Max Alpha Co<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This setting is available only for the <em>Multiphase<\/em> analysis type. Alpha represents phase fraction and <em>Max alpha co<\/em> is the maximum allowable value of Courant number based on the velocity at the interface between two fluids.<\/p>\n\n\n\n<h2 id='write-control-and-write-interval' id='write-control-and-write-interval' id='write-control-and-write-interval' class=\"wp-block-heading\" id=\"write-control-and-write-interval\">Write Control and Write Interval<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Under <em>Write control,<\/em> the user can select different methods to specify the frequency with which the simulation results will be written. The frequency is specified under <em>Write interval<\/em>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The different methods are:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Time step<\/strong>: Specify the number of time steps to be skipped between two successive writes of results. For example, A write interval value of 3 for a time step length <em>Delta t <\/em>of 2 seconds means that the results will be written every 3 x 2 = 6 seconds.<\/li>\n\n\n\n<li><strong>Clock time<\/strong>: Clock time means the actual time or real time. Specify an interval in seconds of this real time which will act as a gap between two successive writes.<\/li>\n\n\n\n<li><strong>Runtime<\/strong>: With <em>Runtime<\/em>, data can be written every specified interval seconds of simulated time.<\/li>\n\n\n\n<li><strong>CPU time<\/strong>: It represents the amount of time for which the CPU is used to process instructions during the simulation run. Hence, the specified interval will be in seconds of this CPU time. <\/li>\n\n\n\n<li><strong>Adjustable runtime<\/strong>: It is the same setting as <em>Runtime <\/em>although the time step <em>Delta t<\/em> may be adjusted to match with the write interval.<\/li>\n<\/ul>\n\n\n\n<div class=\"hw-block hw-note hw-note--info hw-note\">\n    <div class=\"hw-note__title\">\n        <p class=\"hw-note__titleText\"><i class=\"fa fa-exclamation-circle\" aria-hidden=\"true\"><\/i>Adjustable runtime<\/p>\n    <\/div>\n    <div class=\"hw-note__body\">\n        <p>Here, runtime means the simulation time or the end time. \r\nAdjustable runtime has the power to adjust the timestep. Hence, it is applicable only for transient simulations when <em>Adjustable time step<\/em> is set to <em>True<\/em>.<br>\r\nFor example, if your write interval is set to 0.1, your data would never be saved unless, by pure coincidence, your various <em>Delta t<\/em> values ended up giving a time that landed exactly on 0.1, 0.2, 0.3, 0.4, etc. time. Using adjustable runtime allows the solver to adjust the timesteps as needed during runtime in order to force the solver to save at the times specified in write interval: 0.1, 0.2, 0.3, 0.4, 0.5., and so on.<\/p>\n    <\/div>\n<\/div>\n\n\n\n<h2 id='preferred-number-of-cpus-processors' class=\"wp-block-heading\" id=\"preferred-number-of-processors\">Preferred Number of CPUs (Processors)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">One of the biggest advantages of using SimScale is that simulations are run in parallel. This means that different parts of the simulation domain are allotted to different cores and each part is run simultaneously. This speeds up the computation time. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example, consider a 2D square domain as shown below:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"https:\/\/frontend-assets.simscale.com\/media\/2020\/09\/decomposition.png\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"294\" src=\"https:\/\/frontend-assets.simscale.com\/media\/2020\/09\/decomposition.png\" alt=\"geometric domain decomposition\" class=\"wp-image-33277\" srcset=\"https:\/\/frontend-assets.simscale.com\/media\/2020\/09\/decomposition.png 600w, https:\/\/frontend-assets.simscale.com\/media\/2020\/09\/decomposition-300x147.png 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/a><figcaption class=\"wp-element-caption\">Figure 2: Geometric domain decomposition. Simulation domain solved on a single core (left), simulation domain solved on four cores in parallel (right). <\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">On the left, the simulation of the whole domain is run on just 1 core while on the right the domain is decomposed into 4 equal domains using a decomposition algorithm. The simulation for each domain will now be run simultaneously and the results will be communicated across the domain boundaries to give a final result for the complete domain.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Users with the Community plan have access up to 16 cores, with the Academic plan up to 32 cores, and with the Professional plan up to 192 cores. Selecting more cores will speed up the simulation process but will also burn more core hours. If unsure, choose <em>Automatic<\/em>, as this option assigns cores in the most economical manner.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When explicitly selecting a machine size, SimScale will attempt to run the simulation on a machine with the required number of processors. Based on availability, a different machine size may be assigned.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Read what core hours are and how they can be managed <a href=\"https:\/\/www.simscale.com\/knowledge-base\/what-is-core-hours\/\">here<\/a>.<\/p>\n\n\n\n<h2 id='maximum-runtime' id='maximum-runtime' id='maximum-runtime' class=\"wp-block-heading\" id=\"maximum-runtime\">Maximum Runtime<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Here, the maximum time limit can be set in real time after which the simulation will be terminated automatically irrespective of the value set under <em>End time<\/em>. This setting is important since it helps to control time expenses, especially during the initial iterations.<\/p>\n\n\n\n<h2 id='potential-flow-initialization' id='potential-flow-initialization' id='potential-flow-initialization' class=\"wp-block-heading\" id=\"potential-flow-initialization\">Potential Flow Initialization<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Potential flow initialization<\/em> works by solving a pressure equation given the velocity initial and boundary conditions, which often provides better initial conditions for the simulation. Toggle-on this setting to accelerate convergence and improve stability during initial time steps if you are experiencing these problems.<\/p>\n\n\n\n<h2 id='decompose-algorithm' id='decompose-algorithm' id='decompose-algorithm' class=\"wp-block-heading\" id=\"decompose-algorithm\">Decompose Algorithm<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The algorithm to decompose your simulation domain can be specified here. Three algorithms are available viz. <em>Scotch, Hierarchical, and Simple<\/em>.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Scotch<\/strong>: The <em>Scotch<\/em> decomposition algorithm tries to minimize the number of boundaries between the decomposed domains\/processors. Fewer boundaries mean reduced required communication between the processors and thus faster simulation. No additional input is required.<\/li>\n<\/ul>\n\n\n\n<div class=\"hw-block hw-note hw-note--warning hw-note\">\n    <div class=\"hw-note__title\">\n        <p class=\"hw-note__titleText\"><i class=\"fa fa-exclamation-circle\" aria-hidden=\"true\"><\/i>Important<\/p>\n    <\/div>\n    <div class=\"hw-note__body\">\n        <p>SimScale advises its users to always keep the decomposition setting to the default <i>Scotch<\/i> as this is the most efficient algorithm.<\/p>\n    <\/div>\n<\/div>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Simple<\/strong>: It splits the geometric domain depending on the number of subdomains specified in each spatial direction. For example, when a configuration of (2,2,1) is specified for (x,y,z) direction. This is shown in Figure 3. <br>The additional parameter <em>Delta<\/em> is defined as cell skew factor. It represents the cell skewness allowed at the subdomain boundaries and is usually kept below 10\\(^{-2}\\).<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/frontend-assets.simscale.com\/media\/2022\/05\/decompose-algorithm.png\"><img loading=\"lazy\" decoding=\"async\" width=\"437\" height=\"225\" src=\"https:\/\/frontend-assets.simscale.com\/media\/2022\/05\/decompose-algorithm.png\" alt=\"simple decomposition algorithm\" class=\"wp-image-50615\" srcset=\"https:\/\/frontend-assets.simscale.com\/media\/2022\/05\/decompose-algorithm.png 437w, https:\/\/frontend-assets.simscale.com\/media\/2022\/05\/decompose-algorithm-300x154.png 300w\" sizes=\"auto, (max-width: 437px) 100vw, 437px\" \/><\/a><figcaption class=\"wp-element-caption\">Figure 3: <em>Simple<\/em> algorithm settings for domain decomposition<\/figcaption><\/figure>\n<\/div>\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Hierarchical<\/strong>: It acts similarly to the <em>Simple<\/em> algorithm although with an additional facility of specifying the order of decomposition. A total of six combinations are available viz.<em> XYZ, XZY, YXZ, YZX, ZXY, ZYX<\/em>.  <\/li>\n<\/ul>\n\n\n\n<div class=\"hw-block hw-note hw-note--info hw-note\">\n    <div class=\"hw-note__title\">\n        <p class=\"hw-note__titleText\"><i class=\"fa fa-exclamation-circle\" aria-hidden=\"true\"><\/i>Important<\/p>\n    <\/div>\n    <div class=\"hw-note__body\">\n        <p>It is important to note that the number of subdomains should match with the number of assigned cores (see <i>Number of processors<\/i> above) otherwise the Workbench might throw a validation error.<\/p>\n    <\/div>\n<\/div>\n\n\n\n\n<div class='hw-block hw-references hw-references'>\n    <p class='hw-references__title'>References<\/p>\n    <ul class='hw-references__list'>\n\n        <li><cite><a href=\"https:\/\/en.wikipedia.org\/wiki\/Courant%E2%80%93Friedrichs%E2%80%93Lewy_condition\" target=\"_blank\" rel=\"nofollow noopener\">&#8220;Courant\u2013Friedrichs\u2013Lewy condition&#8221;, En.wikipedia.org, 2020.<\/a><\/cite><\/li>\n    <\/ul>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Ever wondered what those technical terms inside the Simulation control settings panel mean? If yes, then this is the right...","protected":false},"author":118,"featured_media":0,"parent":17179,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"templates\/template-documentation.php","meta":{"_acf_changed":false,"_crdt_document":"","inline_featured_image":false,"footnotes":""},"class_list":["post-33211","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.simscale.com\/wp-json\/wp\/v2\/pages\/33211","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.simscale.com\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.simscale.com\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.simscale.com\/wp-json\/wp\/v2\/users\/118"}],"replies":[{"embeddable":true,"href":"https:\/\/www.simscale.com\/wp-json\/wp\/v2\/comments?post=33211"}],"version-history":[{"count":0,"href":"https:\/\/www.simscale.com\/wp-json\/wp\/v2\/pages\/33211\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/www.simscale.com\/wp-json\/wp\/v2\/pages\/17179"}],"wp:attachment":[{"href":"https:\/\/www.simscale.com\/wp-json\/wp\/v2\/media?parent=33211"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}