{"meta":{"app":"FEATool Multiphysics","author":"Precise Simulation","build":"1.11.0","date":"18-Sep-2019","descr":["Fluid flows with swirl effects can occur in rotationally symmetric geometries with non-zero azimuthal or angular velocity. In this case one must generally solve the full 3D Navier-Stokes equations. However, if the azimuthal variations can be neglected, simulations can be limited to axisymmetric 2D domains and thus save significant amounts of computational time.","","This example models axisymmetric flow between two concentric cylinders where the inner cylinder is rotating. This leads to swirl effects and so called Taylor-Couette flow with periodic and in-plane vortices."],"dim":2.5,"image":"taylor_couette1.jpg","keyw":["taylor_couette","swirl_flow","axisymmetry"],"mlver":"R2019a","name":"taylor_couette1","phys":["Swirl Flow"],"system":"","time":737687,"title":"Taylor-Couette Swirling Flow","type":"Fluid Dynamics","user":"precsim","ver":[1,11,0]},
"fields":["type","id","ui_arg","fcn_type","fcn_oarg"],
"data":[
["uipushtool","Standard.NewFigure",{},"ClickedCallback",{}],
["uitext",[],"Click on the **Axi 2D** _Space Dimension_ selection button in the _New Model_ dialog box, and select **Swirl Flow** from the _Select Physics_ drop-down list. Leave the space dimension and dependent variable names to their default values. Finish the physics selection and close the dialog box by clicking on the **OK** button."],
["uicontrol*","radio_axi",1,"Callback",{}],
["uicontrol*","popup_physsel",["Swirl Flow"],"Callback",{}],
["imgcap"],
["uicontrol*","button_dlgnew_ok",{},"Callback",{}],
["uitext*",[],"The geometry of consists of a rectangular cross section of the cylinder (axisymmetric geometries must be defined in the _r>0_ positive half plane)."],
["uimenu",["Geometry","Create Object...","Rectangle"],{},"Callback",{}],
["uicontrol","edit_x_min","1","Callback",{}],
["uicontrol","edit_x_max","1.5","Callback",{}],
["uicontrol","edit_y_min","-1.5","Callback",{}],
["uicontrol","edit_y_max","1.5","Callback",{}],
["uicontrol","button_dlggobj_ok",{},"Callback",{}],
["imgcap"],
["uicontrol","button_grid_mode",1,"Callback",{}],
["uitext*",[],"The default grid may be too coarse ensure an accurate solution. Decreasing the grid size and generating a finer grid can resolve the expected vortices better."],
["uicontrol","grid_hmax","0.05"],
["uitext",[],"Press the **Generate** button to call the automatic grid generation algorithm."],
["uicontrol*","grid_generate",[],"Callback",[]],
["imgcap"],
["uicontrol","button_equation_mode",1,"Callback",{}],
["uitext",[],"Equation and material coefficients are specified in _Equation/Subdomain_ mode. In the Equation Settings dialog box enter `rho` for the density and `miu` for the viscosity. Then press **OK** to finish with specifications the equation coefficients."],
["uicontrol*","rho_sw","rho","Callback",{}],
["uicontrol*","miu_sw","miu","Callback",{}],
["imgcap"],
["uicontrol*","button_dlgeqn_ok",{},"Callback",{}],
["uitext*",[],"The _Model Constants and Expressions_ functionality can be used to define and store convenient expressions which then are available in the point, equation, boundary coefficients, and as postprocessing expressions. Here it is used to define the fluid coefficients, angular velocity, inner and outer radius, and reference solution."],
["uitext",[],["Press the **Constants** _Toolbar_ button, or select the corresponding entry from the _Equation_ menu, and enter the following variables in the _Model Constants and Expressions_ dialog box. Press _Enter_ after the last expression or use the **Add Row** button to expand the expression list.","| Name | Expression |","|---------|------------|","| rho | 1 |","| miu | 1 |","| omega | 50 |","| ri | 1 |","| ro | 1.5 |","| v_ref | -omega*ri^2/(ro^2-ri^2)*r+omega*ro^2/(ro^2-ri^2)/r |"]],
["uicontrol*","button_const_expr",{},"Callback",{}],
["uicontrol*","edit_dlgexpr_11","rho","Callback",{}],
["uicontrol*","edit_dlgexpr_12","1","Callback",{}],
["uicontrol*","edit_dlgexpr_21","miu","Callback",{}],
["uicontrol*","edit_dlgexpr_22","1","Callback",{}],
["uicontrol*","edit_dlgexpr_31","omega","Callback",{}],
["uicontrol*","edit_dlgexpr_32","50","Callback",{}],
["uicontrol*","edit_dlgexpr_41","ri","Callback",{}],
["uicontrol*","edit_dlgexpr_42","1","Callback",{}],
["uicontrol*","edit_dlgexpr_51","ro","Callback",{}],
["uicontrol*","edit_dlgexpr_52","1.5","Callback",{}],
["uicontrol*","edit_dlgexpr_61","v_ref","Callback",{}],
["uicontrol*","edit_dlgexpr_62","-omega*ri^2/(ro^2-ri^2)*r+omega*ro^2/(ro^2-ri^2)/r","Callback",{}],
["imgcap"],
["uicontrol*","button_dlgexpr_ok",{},"Callback",{}],
["uitext*",[],"Note that FEATool can work with any unit system, and it is up to the user to use consistent units for geometry dimensions, material, equation, and boundary coefficients."],
["uitext",[],"Switch to boundary condition specification mode by clicking on **Boundary** the _Mode Toolbar_ button."],
["uicontrol*","button_boundary_mode",1,"Callback",{}],
["uitext*",[],"Boundary conditions are defined in _Boundary Mode_ and describes how the model interacts with the external environment."],
["uitext",[],"In the _Boundary Settings_ dialog box, first choose boundaries **1-3** in the left hand side _Boundaries_ list box and select the **Wall/no-slip** boundary condition from the drop-down menu."],
["uicontrol*","list_seldom",["1","2","3"],"Callback",{}],
["uicontrol*","popup_selbc_sw",["Wall/no-slip"],"Callback",{}],
["uitext",[],"Then select the inner rotating boundary (number **4**) in the left hand side _Boundaries_ list box and select the **Inlet/velocity** boundary condition. Enter `omega*ri` in the edit field to specify the velocity _v0_ in the tangential-direction."],
["uicontrol*","list_seldom",["4"],"Callback",{}],
["uicontrol*","popup_selbc_sw",["Inlet/velocity"],"Callback",{}],
["uicontrol*","edit_bccoef2_sw","omega*ri","Callback",{}],
["imgcap"],
["uicontrol","button_dlgbdr_ok",{},"Callback",{}],
["uitext",[],"Now that the problem is fully specified, press the **Solve** _Mode Toolbar_ button to switch to solve mode. Then press the **=** _Tool_ button to call the solver with the default solver settings."],
["uicontrol*","button_solve_mode",1,"Callback",{}],
["uicontrol*","button_solve",{},"Callback",{}],
["uitext*",[],"After the problem has been solved FEATool will automatically switch to postprocessing mode and display the computed velocity field."],
["uitext",[],"To visualize the azimuthal velocity, open the **Plot Options** and postprocessing settings dialog box and select to plot and visualize the **th-velocity** as both _surface_ and _contour_ plots, and also activate the arrow plot."],
["uicontrol*","button_post_settings",{},"Callback",{}],
["uicontrol*","post_surf",["th-velocity"],"Callback",{}],
["uicontrol*","ffiso",1,"Callback",{}],
["uicontrol*","post_iso",["th-velocity"],"Callback",{}],
["uicontrol*","ffarrow",1,"Callback",{}],
["imgcap"],
["uicontrol*","button_dlgpost_ok",{},"Callback",{}],
["imgcap"],
["uitext*",[],"One can study a section of the velocity profile by using the **Point/Line Evaluation...** feature from the _Post_ menu. By entering a series of evaluation coordinates, both the evaluated expression and a corresponding cross section plot can be generated."],
["uitext*",[],"Create line plots of both the computed azimuthal velocity and the analytic expression previously defined as `v_ref`."],
["uimenu",["Post","Point/Line Evaluation..."],{},"Callback",{}],
["uicontrol","edit_rcoord","1:0.01:1.5","Callback",{}],
["uicontrol","edit_zcoord","0","Callback",{}],
["uicontrol","popup_evalexpr",["th-velocity"],"Callback",{}],
["uicontrol","buttons_dlgpntline_apply",{},"Callback",{}],
["uicontrol","edit_evalexpr","v_ref","Callback",{}],
["imgcap"],
["uicontrol","buttons_dlgpntline_ok",{},"Callback",{}],
["uitext*",[],"From comparing the curves it should be clear that the simulation produces the expected results."],
["uivalidate",[],"pass=0;try,p=[linspace(1+0.01,1.5-0.01,50);zeros(1,50)];pass=mean(evalexpr('abs(v-v_ref)/v_ref',p,fea))<0.05;catch,end"],
["figure","Line Evaluation",{},"closeRequestFcn",{}],
["figure","Line Evaluation",{},"closeRequestFcn",{}],
["uitext*",[],"If the rotational velocity is increased beyond the critical Taylor number periodic in-plane vortices will appear."],
["uitext*",[],"Open the the **Model Constants and Expressions...** dialog box again and increase **omega** to `175`."],
["uimenu*",["Equation","Model Constants and Expressions..."],{},"Callback",{}],
["uicontrol*","edit_dlgexpr_32","175","Callback",{}],
["uicontrol*","button_dlgexpr_ok",{},"Callback",{}],
["uitext",[],"Return to **Solve** mode again, open the **Solver Settings** dialog box."],
["uicontrol*","button_solve_mode",1,"Callback",{}],
["uicontrol*","button_solver_settings",{},"Callback",{}],
["uicontrol","toldef","1e-4","Callback",{}],
["uicontrol","maxnit","275","Callback",{}],
["%uicontrol","nlrlx","0.9","Callback",{}],
["uicontrol","button_dlgsolversettings_ok",{},"Callback",{}],
["uitext",[],"This time use the **Restart** button to start the solver with the previous solution as initial guess. This can help with convergence for highly non-linear problems. Alternatively, using a time-dependent solver is another option."],
["uicontrol*","button_restart",{},"Callback",{}],
["uitext",[],"Once the solver has finished and converged, plot and visualize the in-plane velocity `sqrt(u^2+w^2)` to clearly see the Taylor vortices."],
["uicontrol*","button_post_settings",{},"Callback",{}],
["uicontrol*","ssurfexpr","sqrt(u^2+w^2)","Callback",{}],
["uicontrol*","sisoexpr","sqrt(u^2+w^2)","Callback",{}],
["uicontrol*","button_dlgpost_ok",{},"Callback",{}],
["imgcap"]
]}