1Boundary Conditions / CFX Expression Language Lecture 3
2Boundary ConditionsRequired 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).
3Basic Settings Boundary Type Location Coord Frame Frame Type Inlet, Outlet, Opening, Wall, SymmetryLocationselect from all 2D primitive and composite regionsCoord Frameif more than one exists, select the appropriate frameFrame Typeavailable only in a rotating domain. Allows you to specify quantities based on a rotating or stationary (absolute) frame of reference.
4Boundary Details Options depend on Boundary Type and Domain settings i.e. Supersonic availability depends on Heat Transfer option chosen on Domain panelin this case, only turbulence is modeled (i.e. no heat transfer or multicomponent/multiphase modeling)
5Boundary Condition Types InletWhere fluid enters the domain: displayed with white arrowsOutletWhere fluid leaves the domain: displayed with yellow arrowsOpeningFluid 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 setWallDisplayed with green octahedra. No Slip/Free Slip, heat transfer properties and roughness characteristics can be set.SymmetryUsed 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.
6Profile Boundary Conditions It is possible to specify a boundary conditions based onthe 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 simulationCFX-Pre will generate CEL expressions that refer to theimported data, using interpolation functions.This data is automatically generated when creating aboundary condition using the ‘Profile’ method.
7Steps to implement a Profile Boundary Condition Create a BC Profile file. You can facilitate this by using the Export feature of CFX-Post.Example of the BC file from CFX-Post. The information on the colour boxes is needed and will be read automatically by CFX-Pre.
8Steps to implement a Profile Boundary Condition 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.
9Steps to implement a Profile Boundary Condition Assign the profile data to a boundary condition.Select the appropriate profile from the drop-down list, then click Generate Values.
10Steps to implement a Profile Boundary Condition 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.
11Steps to implement a Profile Boundary Condition 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.
12Using 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
13Standard Variable Names 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
14Data Interpolation method 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.
15Extracting Profile Data from Results Files 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.
16Extracting 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)
17CFX Expression Language CEL - CFX Expression LanguageCEL 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
18CEL StatementsThe CFX Expression Language is declarativedeclare 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 statementsThe 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 parenthesesThe syntax rules for these expressions are the same as those for conventional arithmetic
19Rules For Expressions Variables and expressions are case sensitive Always use brackets to specify the order of operationsExpressions must be dimensionally consistent for addition and subtraction operations1.0 [mm] [yds] (valid)2.5 [s m^-1] - (3.0 [m s^-1])^ (valid)1.0 [mm] [kg] (invalid)
20Rules for Expressions Fractional and decimal powers are allowed a^(1/2) (valid)1.0^ (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]
21System VariablesA number of system variables have been predefined for easy accessThese variables can be used in any expressionUnits have been includedThe 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
22System Variables x Direction 1 in Reference Coordinate Frame y Direction 2 in Reference Coordinate Framez Direction 3 in Reference Coordinate Framer Radial spatial location, r = (x^2+y^2)^0.5theta Angle, arctan(y/x)t Timeu Velocity in the x coordinate directionv Velocity in the y coordinate directionw Velocity in the z coordinate directionp (absolute) Pressureke Turbulent kinetic energyed Turbulent eddy dissipationT Temperaturesstrnr Shear strain ratedensity DenstiyrNoDim Non-dimensional radius (rotating frame only)viscosity Dynamic ViscosityCp Specific Heat Capacity at Constant Pressurecond Thermal Conductivityenthalpy Specific Enthalpybeta Thermal Expansivityspeedofsound Local speed of sound in fluidsubdomain Sub-domain variable (1.0 in Sub-domain, 0.0 elsewhere)mean diameter Mean Diameterdeneff Effective DensityAV name Additional Variable namemf Mass Fraction
23System VariablesCFX-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 createIn some circumstances, System Variables are logically unavailabletime (t) is not available for steady-state simulationsTemperature (T) is not available when heat transfer is turned offIn others, the availability of a System Variable is not allowed for physical model reasons
24Built in functions / constants Some numerical functions and operators are also available in CELCustom functions with user Fortran can also be createdFunction Operand’s Dimensions [x] Operand’s Values Result’s Dimensionssin(x) Angle Any Dimensionlesscos(x) Angle Any Dimensionlesstan(x) ** Angle Any Dimensionlessasin(x) Dimensionless -1 £ x £ 1 Angleacos(x) Dimensionless -1 £ x £ 1 Angleatan(x) Dimensionless Any Angleexp(x) Dimensionless Any Dimensionlessloge(x) Dimensionless 0 < x Dimensionlesslog10(x) Dimensionless 0 < x Dimensionlessabs(x) Any Any [x]sqrt(x) Any 0 £ x [x]^0.5min(x,y) *** Any Any [x]max(x,y) *** Any Any [x]step(x) * Dimensionless Any 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,*** both x and y must have the same dimensions.
25Built in operators/functions and constants Some constants are also available in CEL for developing your expressions, these are:e Constant:g Acceleration due to gravity: [m s^-2]pi Constant:R Universal Gas Constant: [m^2 s^-2 K^-1]You can also define your own 1-D linear, or 3-D cloud interpolation functionsapply a linear interpolation between input data points and output a single valueinput units and output units are defined by the userIf 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
26Defining Expressions CFX-Pre Modifying the solver CCL Read in from a fileCreated in the Expression EditorEntered directly where neededModifying the solver CCLEditing the .DEF or .RES filePassed to the solver at the commandlinePost expressions may be used for the solver in this manner
27CEL Example: Variable Viscosity Mathematical ExpressionViscosity of a shear thickening fluid:where is the shear strain rateCEL EquivalentViscosity as a function of temperatureK = 10.0 [kg m^-1 s^-0.5]n = 1.5ViscT = K * sstrnr ^ (n-1)orViscT = K*(min(UpperS,(sstrnr+LowerS))^(n-1))where sstrnr is the shear strain rate provided as a system variableThe second form of the CEL equation above includes an upper and lower bound for strain rate to ensure it remains physically reasonable
28Evaluating Expressions In CFX-PreThe expression editor has a calculate feature to test expressions, or plot 1-D resultssome values may have to be input manually, since solver variables will not have valuesIn the SolverExpressions are evaluated when the value is neededInitial guess: at the start of a runTime dependant boundary condition: at the start of each timestepFluid property: inner solver loops between timestepsIntegrated quantities: at the start of each timestep
29Expression Editor Expression Editor Interactive tool for developing and managing expressions within CFXAvailable from many panels and from the Create pull down menu
30CEL ExampleThe following example shows how to set the viscosity to be a function of temperature. The viscosity-temperature relation is taken as follows:
31CEL ExampleAlternatively, a file can be constructed with any text editor and read into the Expression EditorExample:C1 = 10. [ K^-1 ] # constantC2 = 1. [ kg/ms ] # constantvis = C2*exp(-C1*T) # viscosity
32CEL Example (B.C.)The following example shows how to set angular velocity for a rotating wall using the u and v components :
33Integrated 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:Mass flow of particular fluid through a locator:Note:syntax - must always supply a location.Phase/component can be selected using [<phase>.][<component>.]<function>
34Integrated Quantities Predefined functions available0 or 1 arguments depending on function - see documentationIf 1 argument:may be an expression in Post; only variables allowed in solverreturn value units depends on argument units (e.g. consider massAve)
35Integrated Quantities EXPRESSIONS:ReqT = 350 [K]TempOut =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 : TempControlBoundary Type = INLETLocation = TempControlCoord Frame = CoordBOUNDARY CONDITIONS :MASS AND MOMENTUM :Option = Normal SpeedNormal Speed = TCFlowHEAT TRANSFER :Option = Static TemperatureStatic Temperature = TCTemp
36Defining Expressions in Post In CFX-Post Expressions may be defined by:using the CFX-Post Expression Editorentered directly in an object formentered at the commandline (using Line input mode), or the Command Editorread in from a CCL fileread in from a session fileread in from a state file
37CFX-Post Functions CFX-Post provides an additional set of functions: [<Fluid>.]<function>[_<Axis>[_<Coordarea Area (projected to axis optional)areaAve Area-weighted averageareaInt Area-weighted integralave Arithmetic averagecount Number of calculation pointsforce Force on a surface in the specified directionforceNorm Magnitude of normalized force on a curve in the specified directionlength Length of a curvelengthAve Length-weighted averagelengthInt Length-weighted integrationmassFlow Total mass flowmassFlowAve Mass-weighted averagemassFlowInt Mass-weighted integralmaxVal Maximum ValueminVal Minimum Value
38CFX-Post Functions CFX-Post provides an additional set of functions: [<Fluid>.]<function>[_<Axis>[_<Coordprobe Value at a pointsum Sum over the calculation pointstorque Torque on a surface about the specified axisvolume Volume of a 3-D locationvolumeAve Volume-weighted averagevolumeInt Volume-weighted integral