Boundary Conditions / CFX Expression Language Lecture 3 © 2005 ANSYS, Inc. L3-1 28 November 2005 ANSYS, Inc. Proprietary Boundary Conditions © 2005 ANSYS, Inc. Required on all regions at the outer extremities of the Domain to be simulated (bound the problem) Create sensible names for Boundary Conditions (you don’t have to accept the default names) Select the Domain for the Boundary Condition (applicable to multi-domain cases). L3-2 28 November 2095 ANSYS, Inc. Proprietary Basic Settings Boundary Type - Inlet, Outlet, Opening, Wall, Symmetry Location - select from all 2D primitive and composite regions Coord Frame - if more than one exists, select the appropriate frame Frame Type - available only in a rotating domain. Allows you to specify quantities based on a rotating or stationary (absolute) frame of reference. © 2005 ANSYS, Inc. L3-3 28 November 2095 ANSYS, Inc. Proprietary Boundary Details Options depend on Boundary Type and Domain settings - i.e. Supersonic availability depends on Heat Transfer option chosen on Domain panel - in this case, only turbulence is modeled (i.e. no heat transfer or multicomponent/multiphase modeling) © 2005 ANSYS, Inc. L3-4 28 November 2095 ANSYS, Inc. Proprietary Boundary Condition Types Inlet • Where fluid enters the domain: displayed with white arrows Outlet • Where fluid leaves the domain: displayed with yellow arrows Opening • Fluid can leave or enter the domain based on local conditions: displayed with bi-directional blue arrows. Similar setup to Inlet boundary conditions. Flow direction and pressure are also set Wall • Displayed with green octahedra. No Slip/Free Slip, heat transfer properties and roughness characteristics can be set. Symmetry • Used when flow on one side of a plane is a mirror image of flow on the other side. Can be utilised to reduce the number of nodes in cases where symmetric flow exists. © 2005 ANSYS, Inc. L3-5 28 November 2095 ANSYS, Inc. Proprietary Profile Boundary Conditions • It is possible to specify a boundary conditions based on the interpolation of values from a data file. • It is often useful to use the results of a previous simulation or experimental results as a boundary condition for the current simulation • CFX-Pre will generate CEL expressions that refer to the imported data, using interpolation functions. • This data is automatically generated when creating a boundary condition using the ‘Profile’ method. © 2005 ANSYS, Inc. L3-6 28 November 2095 ANSYS, Inc. Proprietary Steps to implement a Profile Boundary Condition Example of the BC file from CFX-Post. The information on the colour boxes is needed and will be read automatically by CFX-Pre. © 2005 ANSYS, Inc. L3-7 Create a BC Profile file. You can facilitate this by using the Export feature of CFXPost. 28 November 2095 ANSYS, Inc. Proprietary Steps to implement a Profile Boundary Condition © 2005 ANSYS, Inc. Initialize (read in) the profile in CFX-Pre. Do this by selecting Tools>Initialize Profile Data and selecting the profile file. You can load multiple profile files and each file can be applied in more than one locator. L3-8 28 November 2095 ANSYS, Inc. Proprietary Steps to implement a Profile Boundary Condition © 2005 ANSYS, Inc. L3-9 Assign the profile data to a boundary condition. Select the appropriate profile from the drop-down list, then click Generate Values. 28 November 2095 ANSYS, Inc. Proprietary Steps to implement a Profile Boundary Condition © 2005 ANSYS, Inc. L3-10 The Boundary Details panel will be modified to use the profile data. These changes to the Boundary Details panel will not be applied unless you click Apply. 28 November 2095 ANSYS, Inc. Proprietary Steps to implement a Profile Boundary Condition © 2005 ANSYS, Inc. L3-11 The profile boundary condition (as well as other boundary conditions) can be visualised in CFX-Pre by using the Plot Options panel on the boundary condition editor. You can create a Boundary Contour or a Boundary Vector plot of the profile data. The profile data is read into the CFX-Solver each time the solver is started/restarted (I.e. the profile file can be edited between solver runs without returning to CFX-Pre. 28 November 2095 ANSYS, Inc. Proprietary Using a profile in more than one location It is possible to apply a profile from one location to another: - For locations that both have a surface normal vector of X, Y or Z, export the data as a 2D profile (for two boundaries with a normal in the Z direction, export X and Y profile data). The data from the first boundary can then be used at the second with no need for modifications to the data. - If the two boundaries don’t have same normal direction, then edit the data in your profile file directly to map the locations from the first boundary to the second © 2005 ANSYS, Inc. L3-12 28 November 2095 ANSYS, Inc. Proprietary Standard Variable Names © 2005 ANSYS, Inc. Some variables require a prefix to include the material name (for example air.vf corresponds to the volume fraction of air) Non-standard Variable Names and Custom Variables L3-13 28 November 2095 ANSYS, Inc. Proprietary Data Interpolation method © 2005 ANSYS, Inc. For 1D discrete profiles, the topology of the data can be determined by ordering the raw data based on the given single spatial coordinate. Linear interpolation is performed between the ordered raw data points. The data is sorted so that the order of specification is not important. For 2D and 3D discrete profiles, a “cloud of points” algorithm is used to perform the interpolation. The process involves a fast lookup of the three nearest raw data points to the evaluation point, and then application of an inverse distance weighted averaging procedure. If raw data point lies precisely at the evaluation point location, the raw data value at that point will be used. During the solution process, the solver requires values at various locations, for example at integrations points, nodes and face center locations, as required by the specifications of the discretisation and numerical integration process. In all instances, the required location is determined and the raw data is interpolated to that location. L3-14 28 November 2095 ANSYS, Inc. Proprietary Extracting Profile Data from Results Files © 2005 ANSYS, Inc. When profiles have been read into the CFX-Solver, they will be written to the .out file under the section Profile Data if the data size is less than 16K (by default, although this value can be changed). All profile data is written to the results file and can be extracted using the command line utility cfx5dfile, described next. L3-15 28 November 2095 ANSYS, Inc. Proprietary Extracting Profile Data from Results Files To find out which profile file(s) is/are referenced by the current results file, enter: cfx5dfile file_001.res –list-profile-files (This outputs a list of all profile files stored in the results file, one per line) For any file referenced in the results file, enter: cfx5dfile file_001.res –read-profile-file <profile_name>.csv (To print the profile data from the file <profile_name> to your terminal window) Alternatively, enter: cfx5dfile file_001.res –extract-profile-file <profile_name>.csv (to write it to the current directory under the name <profile_name>.csv. If this file already exists in the current directory, it will not be overwritten) © 2005 ANSYS, Inc. L3-16 28 November 2095 ANSYS, Inc. Proprietary CFX Expression Language CEL - CFX Expression Language - CEL is an interpreted, declarative language which enables users to enhance simulations without recourse to external Fortran routines - can access CFX internal solution variables - are evaluated by the CFX Solver and CFX-Post © 2005 ANSYS, Inc. L3-17 28 November 2095 ANSYS, Inc. Proprietary CEL Statements The CFX Expression Language is declarative - declare the name and definition of the expression (and optional comment or description) - statements must conform to a predefined syntax which is similar to many programming language mathematical statements The statement must consist of the following: - a number, optionally with associated units. - One or more references to constants, system variables, existing user variables, functions or other CEL expressions, separated by + (addition), - (subtraction), * (multiplication), / (division) and ^ (exponentiation), with optional grouping of these by parentheses The syntax rules for these expressions are the same as those for conventional arithmetic © 2005 ANSYS, Inc. L3-18 28 November 2095 ANSYS, Inc. Proprietary Rules For Expressions Variables and expressions are case sensitive Always use brackets to specify the order of operations Expressions must be dimensionally consistent for addition and subtraction operations - 1.0 [mm] + 0.45 [yds] - 2.5 [s m^-1] - (3.0 [m s^-1])^-1 - 1.0 [mm] + 0.3 [kg] © 2005 ANSYS, Inc. L3-19 (valid) (valid) (invalid) 28 November 2095 ANSYS, Inc. Proprietary Rules for Expressions Fractional and decimal powers are allowed - a^(1/2) (valid) - 1.0^0.5 (valid) Units of expressions are not declared - they are the result of units in the expression - (a [kg m^-3] * b [m s^-1]) has units of [kg m^-2 s^-1] © 2005 ANSYS, Inc. L3-20 28 November 2095 ANSYS, Inc. Proprietary System Variables A number of system variables have been predefined for easy access These variables can be used in any expression Units have been included The list of variables can be: - displayed in Pre by hitting the System Variables and Functions button in the Expression Editor - displayed in CFX-Post by viewing the full list of available scalars © 2005 ANSYS, Inc. L3-21 28 November 2095 ANSYS, Inc. Proprietary System Variables x y z r theta t u v w p ke ed T sstrnr density rNoDim viscosity Cp cond enthalpy beta speedofsound subdomain mean diameter deneff AV name mf © 2005 ANSYS, Inc. Direction 1 in Reference Coordinate Frame Direction 2 in Reference Coordinate Frame Direction 3 in Reference Coordinate Frame Radial spatial location, r = (x^2+y^2)^0.5 Angle, arctan(y/x) Time Velocity in the x coordinate direction Velocity in the y coordinate direction Velocity in the z coordinate direction (absolute) Pressure Turbulent kinetic energy Turbulent eddy dissipation Temperature Shear strain rate Denstiy Non-dimensional radius (rotating frame only) Dynamic Viscosity Specific Heat Capacity at Constant Pressure Thermal Conductivity Specific Enthalpy Thermal Expansivity Local speed of sound in fluid Sub-domain variable (1.0 in Sub-domain, 0.0 elsewhere) Mean Diameter Effective Density Additional Variable name Mass Fraction L3-22 28 November 2095 ANSYS, Inc. Proprietary System Variables © 2005 ANSYS, Inc. CFX-5 System Variables and user-defined expressions will be available or unavailable depending on the simulation you are performing and the expressions you wish to create In some circumstances, System Variables are logically unavailable - time (t) is not available for steady-state simulations - Temperature (T) is not available when heat transfer is turned off In others, the availability of a System Variable is not allowed for physical model reasons L3-23 28 November 2095 ANSYS, Inc. Proprietary Built in functions / constants Some numerical functions and operators are also available in CEL - Custom functions with user Fortran can also be created Function sin(x) cos(x) tan(x) ** asin(x) acos(x) atan(x) exp(x) loge(x) log10(x) abs(x) sqrt(x) min(x,y) *** max(x,y) *** step(x) * Operand’s Dimensions [x] Angle Angle Angle Dimensionless Dimensionless Dimensionless Dimensionless Dimensionless Dimensionless Any Any Any Any Dimensionless Operand’s Values Any Any Any -1 x 1 -1 x 1 Any Any 0<x 0<x Any 0 x Any Any Any Result’s Dimensions Dimensionless Dimensionless Dimensionless Angle Angle Angle Dimensionless Dimensionless Dimensionless [x] [x]^0.5 [x] [x] Dimensionless *step(x) is 0 for negative x, 1 for positive x and 0.5 for x=0. ** note that tan(x) is undefined for np/2 where n=1, 3, 5 .. . *** both x and y must have the same dimensions. © 2005 ANSYS, Inc. L3-24 28 November 2095 ANSYS, Inc. Proprietary Built in operators/functions and constants Some constants are also available in CEL for developing your expressions, these are: - e g pi R Constant: 2.7182818 Acceleration due to gravity: 9.806 [m s^-2] Constant: 3.1415927 Universal Gas Constant: 8314.5 [m^2 s^-2 K^-1] You can also define your own 1-D linear, or 3-D cloud interpolation functions - apply a linear interpolation between input data points and output a single value - input units and output units are defined by the user © 2005 ANSYS, Inc. If you require a function which is not available through CEL, or requires access to certain variables, such as gradient terms, a user defined function may be created by linking to a Fortran library L3-25 28 November 2095 ANSYS, Inc. Proprietary Defining Expressions • CFX-Pre - Read in from a file - Created in the Expression Editor - Entered directly where needed • Modifying the solver CCL - Editing the .DEF or .RES file - Passed to the solver at the commandline - Post expressions may be used for the solver in this manner © 2005 ANSYS, Inc. L3-26 28 November 2095 ANSYS, Inc. Proprietary CEL Example: Variable Viscosity Mathematical Expression CEL Equivalent Viscosity of a shear thickening fluid: Viscosity as a function of temperature K = 10.0 [kg m^-1 s^-0.5] n = 1.5 ViscT = K * sstrnr ^ (n-1) or ViscT = K*(min(UpperS,(sstrnr+LowerS))^(n1)) K n1 where is the shear strain rate where sstrnr is the shear strain rate provided as a system variable The second form of the CEL equation above includes an upper and lower bound for strain rate to ensure it remains physically reasonable © 2005 ANSYS, Inc. L3-27 28 November 2095 ANSYS, Inc. Proprietary Evaluating Expressions In CFX-Pre The expression editor has a calculate feature to test expressions, or plot 1-D results - some values may have to be input manually, since solver variables will not have values In the Solver Expressions are evaluated when the value is needed - Initial guess: at the start of a run - Time dependant boundary condition: at the start of each timestep - Fluid property: inner solver loops between timesteps - Integrated quantities: at the start of each timestep © 2005 ANSYS, Inc. L3-28 28 November 2095 ANSYS, Inc. Proprietary Expression Editor Expression Editor - Interactive tool for developing and managing expressions within CFX - Available from many panels and from the Create pull down menu © 2005 ANSYS, Inc. L3-29 28 November 2095 ANSYS, Inc. Proprietary CEL Example The following example shows how to set the viscosity to be a function of temperature. The viscositytemperature relation is taken as follows: e 10T © 2005 ANSYS, Inc. L3-30 28 November 2095 ANSYS, Inc. Proprietary CEL Example Alternatively, a file can be constructed with any text editor and read into the Expression Editor Example: C1 = 10. [ K^-1 ] # constant C2 = 1. [ kg/ms ] # constant vis = C2*exp(-C1*T) # viscosity © 2005 ANSYS, Inc. L3-31 28 November 2095 ANSYS, Inc. Proprietary CEL Example (B.C.) © 2005 ANSYS, Inc. The following example shows how to set angular velocity for a rotating wall using the u and v components : L3-32 28 November 2095 ANSYS, Inc. Proprietary Integrated Quantities It is also possible for advanced users to access integration functions within the solver. These quantities can entered into an expression and be monitored (see Output Control section of documentation) Allow calculation of non-local integrated quantities at named locations. Examples: - Calculate the area average of Cp on an isosurface: areaAve(Cp)@iso1 - Mass flow of particular fluid through a locator: oil.massFlow()@slice1 Note: - © 2005 ANSYS, Inc. “@<locator>” syntax - must always supply a location. Phase/component can be selected using [<phase>.][<component>.]<function> L3-33 28 November 2095 ANSYS, Inc. Proprietary Integrated Quantities © 2005 ANSYS, Inc. Predefined functions available 0 or 1 arguments depending on function - see documentation If 1 argument: - may be an expression in Post; only variables allowed in solver - return value units depends on argument units (e.g. consider massAve) L3-34 28 November 2095 ANSYS, Inc. Proprietary Integrated Quantities EXPRESSIONS: ReqT = 350 [K] TempOut = areaAve(T)@outlet TCFilter = step(TempOut/1[K]-ReqT/1[K]) TCTemp = 400[K]*TCFilter+285[K]*(1-TCFilter) TCFlow = 10[m/s]*TCFilter+2[m/s]*(1-TCFilter) END […] BOUNDARY : TempControl Boundary Type = INLET Location = TempControl Coord Frame = Coord BOUNDARY CONDITIONS : MASS AND MOMENTUM : Option = Normal Speed Normal Speed = TCFlow END HEAT TRANSFER : Option = Static Temperature Static Temperature = TCTemp END END END © 2005 ANSYS, Inc. L3-35 28 November 2095 ANSYS, Inc. Proprietary Defining Expressions in Post In CFX-Post Expressions may be defined by: using the CFX-Post Expression Editor entered directly in an object form entered at the commandline (using Line input mode), or the Command Editor read in from a CCL file read in from a session file read in from a state file © 2005 ANSYS, Inc. L3-36 28 November 2095 ANSYS, Inc. Proprietary CFX-Post Functions CFX-Post provides an additional set of functions: [<Fluid>.]<function>[_<Axis>[_<Coord Frame>]]([<Expression>])@<Location> - © 2005 ANSYS, Inc. area areaAve areaInt ave count force forceNorm length lengthAve lengthInt massFlow massFlowAve massFlowInt maxVal minVal Area (projected to axis optional) Area-weighted average Area-weighted integral Arithmetic average Number of calculation points Force on a surface in the specified direction Magnitude of normalized force on a curve in the specified direction Length of a curve Length-weighted average Length-weighted integration Total mass flow Mass-weighted average Mass-weighted integral Maximum Value Minimum Value L3-37 28 November 2095 ANSYS, Inc. Proprietary CFX-Post Functions CFX-Post provides an additional set of functions: [<Fluid>.]<function>[_<Axis>[_<Coord Frame>]]([<Expression>])@<Location> - © 2005 ANSYS, Inc. probe sum torque volume volumeAve volumeInt Value at a point Sum over the calculation points Torque on a surface about the specified axis Volume of a 3-D location Volume-weighted average Volume-weighted integral L3-38 28 November 2095 ANSYS, Inc. Proprietary CEL Example: Pressure Coefficient Mathematical Expression Pressure Coefficient: C press P Pref 1 Vref 2 2 CEL Equivalent Pressure Coefficient Pref = massFlowAve(P)@inflow DynH = massFlowAve(.5*Density*V^2)@inflow Cpress = (P - Pref)/DynH - or Cpress = (P - massFlowAve(P)@inflow) / massFlowAve(.5*Density*V^2)@inflow © 2005 ANSYS, Inc. L3-39 28 November 2095 ANSYS, Inc. Proprietary Practical Session Practical 5: Mixing Tube Demonstrates how to set up a Profile Boundary Condition and the use of CEL to define a variable viscosity. © 2005 ANSYS, Inc. L3-40 28 November 2095 ANSYS, Inc. Proprietary