CRANFIELD UNIVERSITY. Grid-Based CFD Optimization
|
|
|
- Jade Rice
- 10 years ago
- Views:
Transcription
1 CRANFIELD UNIVERSITY Nicholai Chapman Grid-Based CFD Optimization SCHOOL OF ENGINEERING MSc THESIS Page 1 of 63
2 CRANFIELD UNIVERSITY School of Engineering MSc THESIS ACADEMIC YEAR Nicholai Chapman Grid-Based CFD Optimization Supervisor: Karl Jenkins September 2009 This thesis is submitted in partial fulfilment of the requirements for the degree of Master of Science Cranfield University All rights reserved. No part of this publication may be reproduced without the written permission of the copyright owner. Page 2 of 63
3 Acknowledgements I am grateful to my supervisor Dr. Karl Jenkins for giving me the possibility to do this project and for his guidance and assistance. I am very thankful to Mike Riley for his valuable assistance since the beginning of the project and all his suggestions. I am also very thankful to Naveed Akram for sharing his knowledge on OpenFOAM with me and helping me through the meshing process. I am thankful to the AMAC department for allowing me to use a computer in the PhD lab during this project. I am also thankful to Germán Moltó for accepting to be my supervisor in my home university and for his time and suggestions. Also thanks to Patrick Verdin for his assistance when needed. I would also like to thank the Nimrod Toolkit development team at Monash University for providing the use of Nimrod. I want to express my thanks to my friends Hafida Boutahar, Helena Delgado and Iván Rodríguez for their company and support during my thesis which made things much easier. I am also very thankful to Estela Ajenjo for her faithful support even in the distance. Page 3 of 63
4 Finally I am extremely grateful to my mother and grandmother to whom I owe everything and have encouraged me all my life to become what I am now. Page 4 of 63
5 Abstract In this thesis a design optimization tool applied to computational fluid dynamics is presented. The aim is to develop a new optimization method using powerful free software such as Nimrod and OpenFOAM as well as automating the optimization process. The tool is tested on a two dimensional aerofoil were its three parameters are optimized to obtain its maximum lift-to-drag ratio. The optimization is carried out by Nimrod/O which executes a script in charge of integrating the process. Salome will first create the CAD model and mesh it using a Python script and the CFD toolbox OpenFOAM is then used to solve the mesh. Two different optimization algorithms are used and compared and the speed up is evaluated by running the process on several processors. Page 5 of 63
6 Contents Acknowledgements... 3 Abstract... 5 Chapter 1: Introduction... 8 Chapter 2: Literature review Aerodynamic concepts Aerofoil parameters Forces Algorithms applied in design optimization Gradient-based methods Evolutionary algorithms Grid computing in design optimization Nimrod as an automatic design optimization tool Chapter 3: Software Description Nimrod Nimrod/O Algorithms OpenFOAM Salome Dump Study CommandLineToIGES Chapter 4: Nimrod Installation and Test Installation Test Chapter 5: Process Description Overview Constructing the CAD model Generating the mesh Page 6 of 63
7 5.4 Dump Study and Batch Mode Solving in OpenFOAM Running Nimrod/O Chapter 6: Experimentation Camber and thickness optimization Angle of attack optimization AoA, camber and thickness optimization using simplex AoA, camber and thickness optimization using BFGS Speedup Chapter 7: Conclusions and further work References Appendix A: C++ programs Appendix B: Scripts Appendix C: Nimrod schedule file Page 7 of 63
8 Chapter 1: Introduction A common procedure in engineering when designing a product is to build real prototypes and perform experiments on them. Computational science and engineering provides techniques which bring a different perspective to this way of engineering. A user can build a computational model which simulates the physical properties of the product to be engineered and perform experiments on it rather than building a prototype. This way several different scenarios can be explored and the user can study many design alternatives reducing the design cycle and even saving money and improving the quality of the product. However, these computational models are computationally expensive and require the use of plenty of computational power to achieve accurate results. These models must be executed many times during the optimization process and for that reason it s interesting to be able to run the executions concurrently. Large clusters of computers can be used for this purpose or, even better, the Grid. Grid computing has become a field of increasing research and has expanded the possibilities for computing, allowing users to share resources and therefore having access to more computational power and storage. Therefore grid computing has become a field of interest when dealing with computational intense problems such as design optimization and is already being applied for this purpose. For all this, it is interesting to create a tool which allows the user not only to automate the optimization process, but to give him at the same time the resources to do it efficiently. Page 8 of 63
9 Chapter 2: Literature review 2.1 Aerodynamic concepts Aerofoil parameters A cross-section of an aircraft wing is called an aerofoil, as shown in figure 1. Many efforts are put on finding the optimal shape of an aerofoil according to specific design requirements. Three parameters are of special importance in this project: camber, thickness and angle of attack. Figure 1: Aerofoil structure [3] As said in [1] and [2], a straight line drawn from the aerofoil s leading edge to its trailing edge is called the chord line and the length of this line is known as the chord. If a curved line is drawn, equidistant between the upper and lower surfaces of the aerofoil and from one edge to the other, this line is called the mean camber line. The camber of an aerofoil is the maximum distance between its chord line and its mean camber line, measured perpendicular to the chord line. The thickness is the distance between the upper and lower surfaces of the aerofoil, and is also measured perpendicular to the Page 9 of 63
10 chord line. The angle of attack is the angle between the chord line and the direction of arrival of the relative wind, defined in [2] as the flow velocity far ahead of the body Forces According to [2], aerodynamic forces on a body are due to two sources: the pressure distribution over the body surface, which is perpendicular to it, and the shear stress distribution over the body surface, which is parallel to it. The sum of the net effect of these distributions result in an aerodynamic force which can be split into two components. Lift is defined as the component of this force which is perpendicular to the flow direction, while drag is defined as the component of this force which is parallel to the flow direction. Figure 2: Lift and drag forces [4] A very important matter in aeroplane design is the lift-to-drag ratio, as it is a measure of the aerodynamic efficiency of the aeroplane. As said in [5], it only makes sense that maximum aerodynamic efficiency should lead to minimum thrust required. The lift-to-drag Page 10 of 63
11 ratio is also said to represent the aeroplane s benefit-to-cost-ratio, as lift represents the economic value of the aeroplane and drag the cost of providing the economic value. [1] As it can be seen in figures 3 and 4, lift and drag are related to angle of attack. For small values of angle of attack, lift increases linearly while drag does it very gradually. At higher angles of attack lift starts to increase slower and at some point it reaches its maximum value. Drag starts to increase faster with higher angles of attack. When the point of maximum lift is reached, further increases in the angle of attack will result in less lift, a phenomenon which is called stall. Figure 3: Lift coefficient curve [6] Figure 4: Drag coefficient curve [6] 2.2 Algorithms applied in design optimization Many are the techniques and algorithms which have been applied in engineering for optimization purposes. In the field of aerodynamics, many efforts have been put in shape optimization of aerofoils Gradient-based methods Gradient-based methods use gradient information and are very efficient when the derivative information of the problem can be easily Page 11 of 63
12 obtained. Their main advantage is that they are fast search methods as low number of function evaluations are needed. However, they can t be applied directly to many problems. [7] Gradient-based methods are very popular and have been widely applied. In [8] a gradient-based method using the steepest descent was implemented. The objective was to reduce the drag coefficient on an aerofoil keeping the lift coefficient within some established ranges. In [9] an adjoint-based method was applied to aerodynamic optimization. According to the author, this method has several advantages relative to other gradient-based methods as the computational effort required to calculate the gradients is independent of the number of the design variables. Although these methods can be very efficient, they may not be efficient for design automation. The reason for this is that they don t ensure a global optimum, as they search for a local optimum. Therefore, the optimization process must be started repeatedly from different initial points in order to find a global optimum. [9] Evolutionary algorithms Evolutionary algorithms appeared from the interest of imitating nature to develop new algorithms and they are based on the idea of using the theory of evolution as an algorithm [10] [11]. Genetic algorithms are probably the best well known evolutionary algorithms. A population of individuals is maintained where only the fittest individuals survive. The individuals evolve due to mutation and crossover operations, finally converging to the best individual [10]. Contrary to gradient-based methods, genetic algorithms search the Page 12 of 63
13 design space from multiple points and work on function evaluations alone, which makes them robust and suitable to parallel computing [9]. Genetic algorithms have been widely applied to aerodynamic optimization [9] [12] [13]. However, one of their weaknesses is that they require many function evaluations which lead to poor computational efficiency. Due to this, they have been coupled with other optimization techniques in order to preserve their benefits but improving the computational efficiency, as can be seen in [14] where a genetic algorithm was used with a gradient-based method. 2.3 Grid computing in design optimization Many engineering optimization design problems, as shape optimization of aerofoils, require great amounts of computational power. CFD simulations, for instance, must be called repetitively while searching through the design space. These simulations, which take most of the optimization process time, are computationally expensive and can require hours of computation. Grid computing is a type of distributed computing which focuses on large-scale resource sharing. Users can share resources such as computational power which allow to overcome problems that were infeasible with previous technologies. [15] Therefore grid computing is being taken into account as an interesting solution when dealing with computational intense problems [16] [17] [18] [19] [20]. In [18], for example, grid computing was used to overcome the computational cost of using genetic algorithms by means of parallelization and distributed Page 13 of 63
14 executions while in [16] and [19] grid computing was applied to computational fluid dynamics optimizations which require high computational power. 2.4 Nimrod as an automatic design optimization tool Nimrod supports distributed executions and optimizations in one tool. Nimrod has been successfully applied in several studies. In [21] Nimrod was applied to a number of parameterized computational experiments where Nimrod efficiently distributed the work and therefore reduced the execution time of the experiments. More specifically, Nimrod/O was applied in [22] to a mechanical design problem where it was able to find multiple local optima by performing several searches in parallel, starting from different initial points. In [23] Nimrod/O was tested in a number of different case studies using the P-BFGS algorithm, showing that speedup can be achieved for some problems. Nimrod has also been used in the design of aerofoils. In [3] Nimrod/O was used to optimize a two dimensional aerofoil which was governed by three parameters where the goal was to maximize the lift to drag ratio. The aerofoil was meshed with Gambit and solved with Fluent, and two different strategies where applied to the optimization: simplex and P-BFGS. According to the authors, the experiments were a success as the results were better than those previously obtained without the use of Nimrod/O. Moreover, Nimrod/O gave the possibility to test the experiment with two different algorithms by just changing the plan file. Page 14 of 63
15 Chapter 3: Software Description 3.1 Nimrod Nimrod is a specialized parametric modeling system developed by Monash University. It provides a simple declarative language which allows the user to create parametric experiments which can be executed across distributed computers. Nimrod manages the whole experiment and provides tools which automate the process, distributing the necessary files to run the experiment, running it, monitoring it and finally gathering the results Nimrod/O Nimrod/O allows a user to run an arbitrary computational model as the core of a non-linear optimization process [24]. It accepts a declarative plan file in which the user can specify the domain and type of the parameters, any constraints imposed on the solution, the tasks to perform the experiment, the output variable to be optimized and the optimization method to use out of the four built-in optimization algorithms which it currently employs: Simplex, BFGS, Divide and Conquer and Simulated Annealing. Nimrod/O uses Nimrod in order to perform distributed executions. The jobs are passed to Nimrod/G or EnFuzion which allow them to be run in the Grid or in a cluster of computers. A cache is placed between Nimrod/O and Nimrod which reduces the number of calculations if it receives a set of parameters which have already been calculated. A persistent database is attached to this cache in case the Nimrod/O is terminated prematurely. Page 15 of 63
16 Figure 5: Nimrod/O architecture [25] Algorithms Two of the algorithms supplied in Nimrod have been used in this project Simplex The algorithm is based on the method of Nelder and Mead. A simplex is a geometrical figure consisting, in N dimensions, of N+1 points, or vertices, and all their interconnecting line segments. [24] For example, in two dimensions a simplex is a triangle and in three dimensions it s a tetrahedron. The algorithm is started with N+1 points and their associated cost function evaluations. It then iterates replacing at each step the worst vertex by a better one until the cost function values at all points fall within a desired tolerance of each other. For example, if the simplex is a triangle as shown in figure 6, and the worst point is w, n is the next worst and b is the best, a straight line would be drawn between w and c, being c the middle point between n and b. On this line we Page 16 of 63
17 consider four new points which are candidates to replace w in the simplex: [26] p: the reflection of w in c q: the midpoint of p and c r: the midpoint of w and c s: a point past p and equally far from p as p is from c Figure 6: Simplex example [26] BFGS This algorithm is based on a quasi-newton method. The BFGS method maintains an approximation to the inverse of the Hessian, H, of f, where: H ij = 2 f / x i x j New approximations to the solution vector x are derived by: Computing a search direction, d = -H -1 f(x) Page 17 of 63
18 Finding a new solution vector x using a line search, i.e. x + = x + d Updating the inverse of H using the current approximation to H, x and x + [24] 3.2 OpenFOAM OpenFOAM is a free and open source CFD toolbox developed by OpenCFD Ltd. It is basically a set of C++ libraries which are used to create applications. These applications are solvers, which are designed to solve specific problems in engineering mechanics, and utilities, which are designed to perform pre- and post-processing tasks involving data manipulation, such as mesh generation or data visualisation. [27] [28] OpenFOAM contains numerous solvers, utilities and libraries which cover a wide range of problems. However, one of the main advantages of using OpenFOAM is that the user can create new solvers and utilities as it is open. [27] Figure 7: Overview of OpenFOAM structure [27] Page 18 of 63
19 3.3 Salome Salome is a free and open source platform for numerical simulation. It provides a number of modules which allow the user to work on CAD models and mesh them. It also provides a user interface and a Python console through which all the functionalities of Salome are accessible. [29] Among its several modules two of them are used in this project: the GEOM and the SMESH modules. The GEOM module allows the user to create or modify a CAD model as well as importing or exporting the models in several formats. With the SMESH module the user can import or export a mesh from and into several formats or create its own mesh with a number of different algorithms and hypothesis which it supplies according to the dimensions of the model Dump Study Salome can be launched in batch mode and operated with the use of Python scripts. It comes with an option called Dump study which automatically generates a set of Python scripts from data created with Salome GUI. It is highly useful as there is no need for the user to script himself. The scripts can be stored and loaded later to recreate the content of the original study. [29] 3.4 CommandLineToIGES In this project a command-line aerofoil generator which was previously created for another project has been used. It depends on Open Cascade libraries and this version is Linux based. Page 19 of 63
20 This code uses the NACA 4-digit standard to generate the vertices before interpolating these to create the aerofoil's outline. The program receives as an input the Angle of Attack (degrees), which rotates around the leading edge, Thickness [0-100]% and Camber [0-100]%. It is also possible to specify the chord, which is set to 0.5 meters as default. Other options are implemented such as specifying the output path or the output filename of the aerofoil. The use is as follows: CommandLineToIges --AoA 1 --camber 8 --thickness 8 --chord outputpath /root/my_foils --outputfilename sample [30] Page 20 of 63
21 Chapter 4: Nimrod Installation and Test 4.1 Installation All the steps are in the Nimrod/O Users Guide. Once Nimrod/O has been downloaded, the archive must be expanded using the following command: tar xvf nimrodo.<version>.tar This creates the following directory structure: nimrodo.<ver> source nimrodo --- nimcache --- nimdisp --- beader Then, to configure and install Nimrod/O for a Unix system: 1. Go to the source subdirectory. Enter./configure --prefix=<installation_dir> Here <installation_dir> is the directory where Nimrod/O will be installed. This directory must already exist. 2. Enter make install Page 21 of 63
22 This process should create the following directory structure <installation_dir> bin -- lib --- nimrodo --- test To test that Nimrod/O is working (independently of enfuzion and Nimrod/G ): 1. Ensure that <installation_dir>/bin is in your path. 2. Move to the directory <installation_dir>/lib/nimrodo/test (or copy the contents of that directory into your current directory). 3. Enter the command [26] nimrodo -t 2 -d s As the experiments were going to be run locally, there was no need to install Nimrod/G or enfuzion. 4.2 Test In order to get familiarized with Nimrod/O, it was first tested with a simple mathematical function. A simple C++ code was first developed which, given parameters x and y, gives as an output the result of the objective function for those two parameters. As Nimrod/O looks for the minimum as default and the aim was to maximize the objective function, the result had to be multiplied by -1. By doing this Nimrod/O would search for the biggest negative answer, which will be Page 22 of 63
23 the maximum. Once the C++ code was working, the following schedule file was made: example1.shd parameter x integer range from 0 to 25 parameter y integer range from 0 to 25 constraint 2*x+y <= 18 constraint 2*x+3*y <= 42 constraint 3*x+y <= 24 constraint x >= 0 constraint y >= 0 task main copy nimrodexample1 node:nimrodexample1 node:execute./nimrodexample1 $x $y > result copy node:result output.$jobname endtask method simplex starts 1 tolerance endstarts end method The first part of this schedule file lists the parameters which constitute the design space. For each parameter its data type and domain are specified. The second part defines the constraints. The constraints can be hard, in which case they can t be violated, or soft, which can be violated but will then give a penalty value to the objective function which is proportional to the dimension of the violation. In this case the constraints are hard, which is the default option. The syntax for a constraint is: Page 23 of 63
24 constraint [hard soft] <constraint_condition> The third part specifies the tasks which must be carried out by the dispatcher to compute the objective function. Here the C++ program will be copied from the root to a node which will then execute it and copy back the result to the root. However, when working locally there is no need to move files between nodes. When the file is copied back to the root it is given a unique name as determined by the dispatcher jobname. Nimrod/O requires that the objective value is the first string in the file output.$jobname. The last part specifies the optimization method to be used. In this case a simplex search will be started from one random point with the specified tolerance. The initial points can also be selected manually and more than one optimization method can be specified. [26] This schedule file was first run locally, with the following results: Final Results: Block '1 (unnamed)' Starting point Optimum At Point Iters. Evals. Batches (2,8) -32 (4,10) 7 8 (21) 5 (8) As the optimum is 33 with (x,y) = (3,12) so the result wasn t the expected one, Nimrod/O was ran again changing the starts of the simplex method to 5 and 10, finally obtaining the optimum values after 10 starts Final Results: Block '1 (unnamed)' Starting point Optimum At Point Iters. Evals. Batches (2,8) -32 (4,10) 7 8 (21) 5 (8) (5,4) -31 (5,8) 9 13 (30) 6 (10) (5,1) -30 (6,6) 9 15 (32) 7 (11) (0,2) -32 (4,10) (35) 8 (15) (4,3) -28 (6,5) 7 8 (21) 5 (8) Page 24 of 63
25 Final Results: Block '1 (unnamed)' Starting point Optimum At Point Iters. Evals. Batches (2,8) -32 (4,10) 7 8 (21) 5 (8) (5,4) -31 (5,8) 9 13 (30) 6 (10) (5,1) -30 (6,6) 9 15 (32) 7 (11) (0,2) -32 (4,10) (35) 8 (15) (4,3) -28 (6,5) 7 8 (21) 5 (8) (3,8) -33 (3,12) 9 11 (28) 5 (10) (0,9) -33 (3,12) (370) 6 (107) (3,12) -33 (3,12) 5 2 (9) 2 (5) (0,13) -26 (0,13) 6 6 (23) 4 (7) (1,1) -27 (7,3) (40) 7 (14) Page 25 of 63
26 Chapter 5: Process Description 5.1 Overview In figure 8 we can see a structure of the workflow. L/D Nimrod/O Parameters Aerofoil Generator Aerofoil Salome Mesh OpenFOAM Figure 8: Workflow Nimrod/O governs the optimization generating a new set of parameters for each evaluation. CommandLineToIGES takes these new set of parameters as an input and generates the aerofoil file. Page 26 of 63
27 This file is imported into Salome, which creates the final CAD model and meshes it, finally exporting the mesh to the OpenFOAM directory which will solve it and output the lift and drag coefficients which are used to calculate the lift-to-drag ratio and give the value to Nimrod/O. All this process is run on a AMD Phenom(tm) 9850 Quad- Core Processor with a 2 5MHz frequency. 5.2 Constructing the CAD model The aerofoil file created with CommandLineToIGES must be first imported into Salome s geometry module: File -> Import (IGES files) Then a face is created using the imported aerofoil which will be used to work with: New Entity -> Build -> Face A quadrangle must be built around the aerofoil. An appropriate size for this quadrangle would be of five chord length distance for inlet, bottom and top walls and 10 chord length distance for the outlet wall. However, this would lead to a mesh with a huge amount of elements, which would take a very long time to solve in OpenFOAM. Due to time restrictions, the accuracy of the results is not an aim of this project so the quadrangle was reduced to one chord length for inlet, top and bottom and two for outlet, which will lead to a much smaller mesh. To create the quadrangle the following steps must be followed: 1. Four points must be created around the aerofoil: Page 27 of 63
28 New Entity -> Basic -> Point In this case the points were created in (-500, 500, 0), (-500, -500, 0), (1500, -500, 0) and (1500, 500, 0) 1 2. A quadrangle face is created using the previous points: New Entity -> Blocks -> Quadrangle Face At this point some problems which must be explained arose. OpenFOAM works with 3D meshes but in this project a 2D aerofoil was going to be solved. The procedure to solve a 2D case in OpenFOAM is to create a 3D mesh which is just one cell thick in the third dimension. The first approach to do this was to mesh the 2D geometry and once done that extrude it: Modification -> Extrusion selecting the whole mesh, using a vector on the z direction and selecting number of steps = 1. By doing so, the expected mesh was achieved but the problem was that groups of faces for the boundary conditions could not be created. This was due to the fact that the original geometry was 2D and therefore wasn't composed by faces. A different approach was then tried out which consisted in creating an extrusion mesh. The first step to do this is to convert the geometry into 3D. Both of the previously created faces must be extruded. To do so a vector is created: 1 A chord length is 0,5 m which is represented as 500 in Salome. Page 28 of 63
29 New Entity -> Basic -> Vector in the extrusion direction (z in this case). Then both faces can be extruded: New Entity -> Generation -> Extrusion selecting the face to extrude as the base shape and the previously created vector. At this point the aerofoil is in 3D as well as the quadrangle around it but one final operation must be made to obtain the final geometry as the aim is to mesh the surface around the aerofoil: Operations -> Boolean -> Cut selecting the extruded quadrangle as the main object and the extruded aerofoil as the tool object. Figure 9: Cut1 Page 29 of 63
30 After this operation a volume is obtained with an empty aerofoil shape in the middle, as can be seen in figure 9, and the geometry is now ready to be meshed. This final geometry will be referred from now on as Cut1. Although the geometry is ready to be meshed, some further operations must be done which will be used during the mesh generation. First a group must be created which is composed by the edges of Cut1 in the extrusion direction. This will be used to create a mesh which is one cell thick. To do so, right click on Cut1 and select: Create Group selecting edges as elements type and adding the correct edges to the group. In order to be able to select these edges, Cut1 must be exploded first: New Entity -> Explode selecting Cut1 as the main object and edges in Sub Shapes Type. Also, the same operation must be done for faces, as it will be used later. 5.3 Generating the mesh The mesh is created changing to the mesh module, selecting: Mesh -> Create Mesh Page 30 of 63
31 on Cut1 and applying the following algorithms: 3D Algorithm: 3D extrusion (doesn't require hypothesis) 2D Algorithm: Quadrangle (doesn't require hypothesis) 1D Algorithm: Wire discretisation 1D Hypothesis: Average Length = 15 If the mesh is computed at this point it would give an error. Some more steps are required. As a mesh which is only one cell thick is needed, a submesh must be created. The group formed by the edges of Cut1 in the extrusion direction, which has been created previously in the geometry module, is used to create a submesh: Mesh -> Create Sub-mesh The following algorithm and hypothesis must be applied: 1D algorithm: Wire discretisation 1D hypothesis: Nb. Segments = 1 One more step must be done before computing the mesh. Two more submeshes must be created selecting as the geometry first the face of Cut1 which represents the initial face (the face representing the quadrangle face and the aerofoil before the extrusion) and second the face of Cut1 which represents the equivalent to the initial face after the extrusion or destination face. These faces are obtained with the explode operation which has been done previously in the geometry module. The first submesh is created selecting the initial face and applying the following algorithm and hypothesis: 2D Algorithm: Triangle (Mefisto) 2D Hypothesis: Length From Edges Page 31 of 63
32 The second submesh is created selecting the destination face and applying: 2D Algorithm: Projection 2D 1D Hypothesis: Source Face selecting the initial face as Face for the hypothesis. Now the mesh is ready to be computed by doing right click on the mesh and selecting: Compute Figure 10: Mesh Although this mesh is ready to be solved in OpenFOAM, a further refinement can be made to it. The highest point of interest are the elements around the aerofoil so we can refine the mesh to obtain more elements around it. To do so, some steps should be made in the geometry module before generating the mesh. The initial face and the destination face of Cut1 must be exploded into edges. Then a Page 32 of 63
33 submesh can be created to refine the elements around the aerofoil by selecting first as the geometry the edge which represents the aerofoil in the initial face and applying: 1D Algorithm: Wire discretisation 1D Hypothesis: Average length = 3 and a second submesh selecting as the geometry the edge which represents the aerofoil in the destination face and applying: 1D Algorithm: Projection 1D 1D Hypothesis: Source Edge The mesh can be then computed and smaller elements around the aerofoil will be obtained, as seen in figure 11. This mesh, which will be used for the optimizations, will have approximately elements. Figure 11 The value for the average length depends on how small the elements are wanted. At the beginning, an average length = 1 was used. The Page 33 of 63
34 aim was to refine these elements as much as possible as it was the point of maximum interest. The first tests were running as expected but at some point some problems started to arise as sometimes Salome was being unable to compute the mesh, which wasn't allowing the optimization process to continue. The problem was coming from this step as the elements around the aerofoil were being refined too much. Changing this value to a higher one was solving the problem and Salome was again being able to compute the mesh. The value was changed to three and Salome started working without problems. Finally, some groups of faces for the boundary conditions in OpenFOAM must be created by using the previously exploded faces of Cut1. Doing right click on the mesh, selecting Create Group and following these steps: Element Type = Face Group Type = Group on geometry Geometrical object = face which represents the aerofoil Figure 12: Aerofoil faces Page 34 of 63
35 In this case the faces of the aerofoil are selected, as shown in figure 12. These steps must be repeated for inlet, outlet, top, bottom, right (initial face) and left (destination face). Now the mesh is completed and ready to be exported to the OpenFOAM directory: File -> Export -> UNV file 5.4 Dump Study and Batch Mode Once the mesh is generated, the process has to be automated using a script. Salome s option Dump study (File -> Dump Study) is used to generate automatically a python script of the session, which will be run in batch mode. Salome is run in batch mode using the option t and to load a script the option u is used:./runsalome -t -u myscript.py The option -k is also used to kill all the Salome running sessions and & to run it in background:./runsalome -t -u myscript.py -k & The reason to run Salome in background is that when it is run in batch mode the prompt of the terminal changes, which doesn t allow the following instructions in the script to be executed. To overcome this problem it is run in background. However, the rest of the instructions must not be executed until Salome has finished generating the mesh. Therefore, a simple C++ program was coded which waits for Salome to create the file with the mesh before the Page 35 of 63
36 rest of instructions can be executed (see wait_for_unv.cc) One final change must be done before the Python script is ready. Salome has an option in its Geometry Module named Basic properties which gives the length, surface and volume of an object. The value of the surface of the walls around the aerofoil is needed to change a file later in OpenFOAM. Salome provides a command to obtain these values: geompy.basicproperties(shape) This command is used to add to the script the necessary lines to obtain the surface and write the value into a file. area = geompy.basicproperties(face_3) f = open('/home/nicky/simulation/workfile','w') s = str(area[1]) f.write(s) f.close() 5.5 Solving in OpenFOAM The Python script outputs the mesh into.unv format. The first step is to convert this mesh to OpenFOAM: ideasunvtofoam mymesh.unv One important observation must be now made. Salome and OpenFOAM don t work with the same units. While OpenFOAM is working in meters, Salome does it in millimeters. Therefore the points must be converted before starting to work with the mesh: Page 36 of 63
37 transformpoints -scale "( )" Some changes must be made to some files before solving the case. When the mesh is converted to OpenFOAM, by default the boundaries in /constant/polymesh/boundary receive type patch. A C++ program was coded (see edit_boundary.cc) to change some of these boundaries. The aerofoil, top and bottom boundaries must be of type wall, while right and left boundaries must be of type empty. Also, the value Aref in the /system/controldict file must be updated using the surface value which the Python script writes into a file. This is also done with a C++ program (see edit_controldict.cc). These changes must be done in each evaluation during the optimization process. Some other changes are done just once before starting the optimization. The number of iterations is set to 3000 in the /system/controldict file (endtime field) as it was proved during the tests to be enough to converge. Also, the tolerance for the solution is set to 1e-04 in the /system/fvsolution file. Finally, in the /system/controldict file must be specified that the forces must be calculated (see controldict) as the aim is to obtain the lift and drag coefficients. The case must now be prepared to run in parallel. The method of parallel computing used by OpenFOAM is known as domain decomposition, in which the geometry and associated fields are broken into pieces and allocated to separate processors for solution. To run a parallel case the first step required is therefore to decompose the domain using the decomposepar utility. There is a dictionary associated with decomposepar named decomposepardict. This dictionary must be copied into the system folder of the case and Page 37 of 63
38 edited depending on the number of subdomains into which the case will be decomposed, four in this case, which is done by editing the number in the entry numberofsubdomains [27]. The method used to distribute the work among the processors can also be selected. In this case metis has been used, distributing the work equally among all the processors. The decomposepar utility is executed by typing: decomposepar and now the case is ready to run in parallel, which is done with the following command: mpirun -np 4 simplefoam -parallel > log were the number of processors (4) are specified, the solver used (simplefoam) and the output is sent to a log file. Once the case has completed running, the decomposed fields and mesh must be reassembled for post-processing using the reconstructpar utility. [4] This is executed by typing: reconstructpar Finally, the lift and drag coefficients are written into the forcecoeffs/1/forcecoeffs.dat file. A C++ program (see lift_drag.cc) will extract these coefficients and return the lift-to-drag ratio which Nimrod/O will copy as a result. Page 38 of 63
39 5.6 Running Nimrod/O Nimrod/O is run using the following command: nimrodo f schedule.shd -l were l is used to run the optimization locally and schedule.shd is the schedule file used. In the schedule file the angle of attack, camber and thickness are specified. As the camber range is set from 0-12, a constraint is set so that the camber must be higher than zero. The first task of the schedule file is to execute the script which automates all the process of creating the CAD, the mesh and solving it. This script accepts the angle of attack, camber and thickness as an input. Once the script has finished its job, the lift_drag program is executed to obtain the lift-to-drag ratio. This value is copied into a file named result, which is copied into a final filename which identifies it. Finally the optimization method is specified, with the number of starts and the tolerance which has been set to A file called nimdisp.options must also be created in the working directory. This file will contain the line: concurrency 1 which will set the number of concurrent jobs to one. Page 39 of 63
40 Chapter 6: Experimentation 6.1 Camber and thickness optimization The aim of the first experiment was to test the process and make sure that the optimization process was working correctly. Therefore only two parameters, camber and thickness, were optimized, maintaining a constant angle of attack of 0 degrees. The inlet velocity is set to m/s. The results are shown in table 1 and the progress of the optimization is shown in figure 13. Starting point ( , ) L/D Camber Thickness Eval Time :40:06 Table 1 Figure 13 Page 40 of 63
41 The starting point was decided randomly by Nimrod/O. The L/D value was acceptable and the process ended without problems. In figure 13 a negative value for L/D can be seen. This is due to a failed evaluation which crashed, returning the L/D value according to the coefficient at the moment of the crash. This can happen sometimes when working in parallel. 6.2 Angle of attack optimization In the next experiment the angle of attack had to be included to the optimization. However, before doing this, another experiment was made to check that the angle of attack optimization was working correctly. To do this the optimum values of camber and thickness in the previous experiment were used, keeping these values constant and optimizing only the angle of attack. As said in the literature review, as the angle of attack increases the L/D increases too until the stall angle is reached. Therefore, a better L/D value than in the previous experiment should be obtained after this optimization as the angle of attack was zero before. The results are shown in table 2. Starting point L/D AoA Camber & Thickness ( , 1.5) Eval Time 17 1:47:49 Table 2 As expected, a higher value for L/D was obtained, being the optimal angle of attack of In figure 14 can be seen how the L/D increases with the angle of attack until certain value where it begins to decrease again. Figure 15 shows the progression of the Page 41 of 63
42 optimization, where it can be seen how the values increase progressively as the algorithm finds better values of the parameters. Figure 14 Figure 15 Page 42 of 63
43 6.3 AoA, camber and thickness optimization using simplex As everything was working correctly, an optimization was done for all three parameters using the simplex method. The results are shown in table 3. Starting point ( , , ) L/D AoA, Camber, Thickness Eval Time ( , , 1.5) 60 5:43:07 Table 3 The result obtained in this optimization was poor as the value obtained for L/D was much lower than the one in the first experiment. This evidences that the optimization is sensitive to the starting point. Several optimizations must be started from different initial points to search the design space and find the global optimum. The same optimization was repeated starting from a different point. The results are shown in table 4. Starting L/D AoA, Camber, Thickness Eval Time point (0, 4, 2) ( , , 1.5) 40 3:50:20 Table 4 The L/D value was much better than in the previous experiment and the optimum values of the parameters were very close to the ones in experiment 1 and 2. However, as the initial point was close to the optimum values, this optimization required much less evaluations, saving almost two hours of computation. Page 43 of 63
44 Once again a new optimization was carried out with a closer initial point to the optimum values in the last experiment than the initial point in that same experiment. The results are shown in table 5. Starting L/D AoA, Camber, Thickness Eval Time point (1, 5, 2) ( , , ) 47 4:34:41 Table 5 The optimum values were quite similar, obtaining a slightly lower L/D. Although the initial point was closer to the optimum than in the previous experiment, the optimization took some more evaluations to finish. This time the experiment was done again from an initial point close to the previous optimums. The results are shown in table 6. Starting L/D AoA, Camber, Thickness Eval Time point (1, 4, 1.5) (1, 5.2, 1.5) 23 2:09:10 Table 6 This optimization took much less evaluations and the L/D value was slightly higher than before. It can be seen that the initial point of the optimization is very important. A last experiment was done with a starting point which was further to the range of solutions which were being obtained than the initial points of the previous experiments. The results are shown in table 7. Page 44 of 63
45 It can be seen that the L/D value and the optimum angle of attack, camber and thickness are similar to the ones in the previous experiments. However the number of evaluations is higher, as the starting point is far from the optimum solution. Starting L/D AoA, Camber, Thickness Eval Time point (3, 6, 8) ( , , 1.5) 51 4:37:51 Table 7 After all this experiments it can be concluded that the choice of the initial point is very important to obtain best results, as the solution is sensitive to this choice. The best solution after these experiments was of for L/D, while angle of attack, camber and thickness were of , and 1.5 respectively. The angle of attack and thickness have similar values to the ones in [3], although the value of the camber is quite different. The value of the L/D is higher in [3], but these results can t be compared to those as the experiment may be set with different parameters such as the inlet velocity. 6.4 AoA, camber and thickness optimization using BFGS An optimization was also done using the BFGS algorithm. The results are shown in table 8. Starting point L/D AoA, Camber, Thickness Eval Time (1, 10, 2) ( , , 1.5) :35:29 Table 8 Page 45 of 63
46 This optimization shows that the BFGS algorithm requires much more evaluations than the simplex method to find the solution. The idea was to do more optimizations using the BFGS method from different starting points, and also to do those same optimizations with the simplex method to compare their results from the same starting points. However, the optimization when using the BFGS algorithm only finished for the starting point used in this optimization. This not only happened for the BFGS algorithm, although it happened much more often than when using the simplex method. The problem occurs because Salome is unable to mesh the aerofoil and the whole optimization is waiting for it to do it. The error happened often when performing the cut operation. After loading the aerofoil into Salome to see its shape, sometimes an abnormal aerofoil had been generated, as shown in figure 16, which was the source of the error. In other cases the aerofoil seemed to be perfectly alright, but Salome was still unable to mesh it. Figure 16: abnormal aerofoil As only one optimization using the BFGS algorithm finished, the results are not conclusive and they can t be compared to the simplex method. However, during some of the failed optimizations it could be Page 46 of 63
47 observed, before the optimization failed, how the BFGS algorithm needed more evaluations than the simplex method. 6.5 Speedup Finally, one of the previous optimizations was repeated using different number of processors to test the speedup. The optimizations were done using the simplex method and with (0,4,2) as a starting point. After 40 evaluations, the time needed for the optimizations is shown in table 9. Num proc Time 1 12:33:06 2 7:01:49 4 3:50:20 Table 9 Figure 17: speedup Page 47 of 63
48 The speedup using two processors is of 1.78 and of 3.27 for four processors. These results suggest the potential of running the experiments under a grid environment. Moreover, when running more complex computational models the speed up will be more decisive as the bulk of the time is spent on computing the CFD code. Figure 18: efficiency Page 48 of 63
49 Chapter 7: Conclusions and further work A new automatic design optimization tool has been developed and has been applied successfully to a two dimensional aerofoil. During the experiments, the importance of selecting the initial point when doing the optimization has been evidenced. Also, the time of doing the optimization using different number of processors has been compared, evidencing a significant speedup when increasing its number. Although the different programs involved have been successfully integrated, the tool is not yet as robust as it should be. A problem has been noticed during the meshing process, where several aerofoils could not be meshed. Further work must be done at this stage to clearly identify the source of the error. Highly accurate results were not an aim of this project and therefore the mesh can be improved to achieve more accurate results. The boundary walls of the CAD model can be expanded and a mesh with more and better distributed elements can be generated. The process has been tested on a single computer with four processors. Installing Nimrod/G will allow the user to execute the process on a computational grid and achieve significant speedup. This will not only speed up the actual optimization, but will also allow working with more complex meshes which give better results. New parameters can also be introduced to the aerofoil. By doing so a different program to generate the aerofoils must be used or implemented, or the one used in this thesis can be improved. Again this would increase the time required for the optimization and the Page 49 of 63
50 installation of Nimrod/G becomes important to use as much computational power as possible. Page 50 of 63
51 References [1] Brandt, Steven A. (2004), Introduction to aeronautics: a design perspective (2nd ed), American Institute of Aeronautics and Astronautics, Reston. [2] Anderson, John David (2007), Fundamentals of aerodynamics (4th ed), McGraw-Hill Higher Education, Boston. [3] Abramson, D., Lewis, A., Peachey, T., Fletcher, C. (2001), An automatic design optimization tool and its application to computational fluid dynamics, SuperComputing [4] accessed 03/08/09. [5] Anderson, John D. (2005), Introduction to flight (5th ed), McGraw-Hill, Boston. [6] accessed 05/08/09. [7] Kalyanmoy, Deb. (2005), Optimization for engineering design: algorithms and examples, Prentice Hall, New Delhi. [8] Garcia, M.J., Boulanger, P., Giraldo, S. (2008), CFD based wing shape optimization through gradient-based method, in EngOpt International Conference on Engineering Optimization, June 2008, Rio de Janeiro, Brazil. [9] Oyama, A., Obayashi, S., Nakahashi, K., Nakamura, T. (2000), Aerodynamic optimization of transonic wing design based on evolutionary algorithm, in third International Conference on nonlinear problems in Aviation and Aerospace, May 2000, Daytona Beach, FL, USA. [10] Gen, M., Cheng, R. (2000), Genetic algorithms & engineering optimization, John Wiley, Chichester. [11] Ashlock, D. (2006), Evolutionary computation for modeling and optimization, Springer, New York. [12] Epstein, B., Peigin, S. (2006), Optimization of 3D wings based on Navier-Stokes solutions and genetic algorithms, International Journal of Computational Fluid Dynamics, 20:2, Page 51 of 63
52 [13] Obayashi, S., Tsukahara, T., Nakamura, T. (2000), Multiobjective genetic algorithm applied to aerodynamic design of cascade airfoils, IEEE TRANSACTIONS ON INDUSTRIAL ELECTRONICS, VOL. 47, NO. 1. [14] Vicini, A., Quagliarella, D. (1998), Airfoil and wing design through hybrid optimization strategies, in AIAA Applied Aerodynamics Conference N o 16, 15 June 1998, Albuquerque, NM, USA. [15] Foster, I., Kesselman, C., Tuecke, S. (2001), The Anatomy of the Grid: Enabling Scalable Virtual Organizations, International Journal of High Performance Computing Applications, 15 (3) [16] Song, W., Keane, A., Cox, S. (2003), CFD-based shape optimisation with grid-enabled design search toolkits, in Proceedings of UK e-science All Hands Meeting 2003, 2-4 September 2003, Nottingham, UK, EPSRC, [17] Lad, B.S., Pillai, M.U., Gupta, Y. (2006), A grid computing tool for engineering simulations. [18] Song, W., Ong, Y.S., Ng, H.K., Keane, A., Cox, S., Lee, B.S. (2004), A service-oriented approach for aerodynamic shape optimization across institutional boundaries, In, Proceedings of the 8th ICARCV Control, Automation, Robotics and Vision Conference, Institute of Electrical and Electronics Engineers, New York, USA. [19] Katsaros, G., Campos, F., Kyriazis, D., Varvarigou, T., CFD automatic optimisation using OpenFOAM in grid environments, in OpenFOAM International Conference 2007, November 2007, Beaumont House, Old Windsor, UK. [20] Song, W., Keane, A.J., Eres, M.H., Pound, G.E., Cox., S.J. (2003), Two Dimensional Airfoil Optimisation Using CFD in a Grid Computing Environment, Euro-Par 2003 Parallel Processing, Lecture Notes in Computer Science, [21] Lewis, A., Abramson, D., Sosic, R., Giddy, J. (1995), Toolbased parameterisation: an application perspective. [22] Peachey, T., Abramson, D., Lewis, A., Kurniawan, D., Jones, R. (2003), Optimization using Nimrod/O and its application to robust mechanical design. [23] Abramson, D., Lewis, A., Peachey, T., (2001), Case studies in Page 52 of 63
53 automatic design optimisation using the P-BFGS algorithm, P- BFGS Algorithm, 2001 High Performance Computing Symposium (HPC'01), Advanced Simulation Technologies Conference, April 2001, pp [24] Abramson, D., Lewis, A., Peachey, T., Nimrod/O: a tool for automatic design optimization using parallel and distributed systems. [25] Monash escience and grid engineering laboratory (MeSsAGE), 20 July 2009, MeSsAGE Lab - Nimrod Toolkit, accessed 05/08/09 [26] T. C. Peachey and Monash University, Nimrod/O Users' Guide for Version 2.6.x. [27] OpenCFD Limited, OpenFOAM UserGuide. [28] OpenCFD Limited, OpenFOAM - The Open Source Computational Fluid Dynamics (CFD) Toolbox, accessed 06/08/09, [29] OPEN CASCADE SAS (OCC), Salome-Meca, accessed 03/08/09. [30] Mike Riley, Linux-based aerofoil IGES generator. Page 53 of 63
54 Appendix A: C++ programs wait for_unv.cc #include <iostream> #include <fstream> using namespace std; main (int argc, char ** argv){ ifstream fitx; do{ fitx.open("/home/nicky/openfoam/simulations/aerofoil/mesh.unv"); }while(!fitx); } fitx.close(); lift_drag.cc #include <iostream> #include <fstream> #include <string.h> using namespace std; main (int argc, char ** argv){ ifstream fitx; double drag, lift, result; fitx.open("/home/nicky/openfoam/simulations/aerofoil/forcecoeffs/1/fil e.txt"); if(!fitx) cerr << "error!"; fitx >> drag >> lift; result = (lift/drag)*(-1); cout << result << endl; } fitx.close(); Page 54 of 63
55 edit_controldict.cc #include <iostream> #include <fstream> #include <string.h> using namespace std; main (int argc, char ** argv){ ifstream fitx1, fitx2; FILE *fp; char buffer[128]; char buffer2[16]; int i=0;; fitx1.open("workfile"); if(!fitx1) cerr << "error!"; fitx2.open("/home/nicky/openfoam/simulations/aerofoil/system/controldi ct"); if(!fitx2) cerr << "error!"; fp=fopen("/home/nicky/openfoam/simulations/aerofoil/system/controldict ", "r+"); while(fitx2.getline(buffer, 256)) { if(i==70){ strcpy(buffer, "Aref "); fwrite(buffer, 1, strlen(buffer), fp); fitx1.getline(buffer,16); fwrite(buffer, 1, strlen(buffer), fp); strcpy(buffer, ";"); fwrite(buffer, 1, strlen(buffer), fp); strcpy(buffer, "\n"); fwrite(buffer, 1, strlen(buffer), fp); } else{ fwrite(buffer, 1, strlen(buffer), fp); strcpy(buffer, "\n"); fwrite(buffer, 1, strlen(buffer), fp); } i++; } } fitx1.close(); fitx2.close(); fclose(fp); Page 55 of 63
56 edit_boundary.cc #include <iostream> #include <fstream> #include <string.h> using namespace std; main (int argc, char ** argv){ ifstream fitx; FILE *fp; char buffer[128]; int i=0; fitx.open("/home/nicky/openfoam/simulations/aerofoil/constant/polymesh /boundary"); if(!fitx) cerr << "error!"; fp=fopen("/home/nicky/openfoam/simulations/aerofoil/constant/polymesh/ boundary", "r+"); while(fitx.getline(buffer, 256)) { switch(i) { case 21: strcpy(buffer, " type wall;"); fwrite(buffer, 1, strlen(buffer), fp); strcpy(buffer, "\n"); fwrite(buffer, 1, strlen(buffer), fp); break; case 39: strcpy(buffer, " type wall;"); fwrite(buffer, 1, strlen(buffer), fp); strcpy(buffer, "\n"); fwrite(buffer, 1, strlen(buffer), fp); break; case 45: strcpy(buffer, " type wall;"); fwrite(buffer, 1, strlen(buffer), fp); strcpy(buffer, "\n"); fwrite(buffer, 1, strlen(buffer), fp); break; case 51: strcpy(buffer, " type empty;"); fwrite(buffer, 1, strlen(buffer), fp); strcpy(buffer, "\n"); fwrite(buffer, 1, strlen(buffer), fp); break; case 57: strcpy(buffer, " type empty;"); fwrite(buffer, 1, strlen(buffer), fp); strcpy(buffer, "\n"); fwrite(buffer, 1, strlen(buffer), fp); Page 56 of 63
57 break; default: fwrite(buffer, 1, strlen(buffer), fp); strcpy(buffer, "\n"); fwrite(buffer, 1, strlen(buffer), fp); } } i++; fitx.close(); fclose(fp); } Page 57 of 63
58 Appendix B: Scripts script cd /home/nicky./commandlinetoiges --AoA $1 --camber $2 --thickness $3 --outputpath /home/nicky/simulation/ --outputfilename aerofoil rm /home/nicky/openfoam/simulations/aerofoil/mesh.unv rm -r /home/nicky/openfoam/simulations/aerofoil/processor* cd /opt/salome-meca gpl/salome/salome3/v3_2_9nodebug./runsalome-debianforsalome -t -u mesh.py -k & cd /home/nicky/simulation./wait_for_unv sleep 3 cd /home/nicky/openfoam/simulations/aerofoil ideasunvtofoam mesh.unv transformpoints -scale "( )" cd /home/nicky/simulation./edit_boundary./edit_controldict sleep 2 cd /home/nicky/openfoam/simulations/aerofoil decomposepar sleep 2 mpirun -np 4 simplefoam -parallel > log sleep 2 reconstructpar cd /home/nicky/openfoam/simulations/aerofoil/forcecoeffs/1 tail -1 forcecoeffs.dat awk '{print $2}' > file.txt tail -1 forcecoeffs.dat awk '{print $3}' >> file.txt mesh.py ### This file is generated by SALOME automatically by dump python functionality import sys import salome salome.salome_init() sys.path.insert( 0, '/opt/salome-meca GPL/SALOME/SALOME3/V3_2_9NoDebug') import mesh_geom mesh_geom.rebuilddata(salome.mystudy) import mesh_smesh mesh_smesh.rebuilddata(salome.mystudy) if salome.sg.hasdesktop(): salome.sg.updateobjbrowser(1) Page 58 of 63
59 mesh_geom.py ### This file is generated by SALOME automatically by dump python functionality ### of GEOM component import geompy import math def RebuildData(theStudy): geompy.init_geom(thestudy) global Face_5, Edge_20, Edge_2, Group_1, Edge_19, Face_7, Edge_18, Face_1, Edge_9, Edge_1, Edge_15, Vertex_3, Edge_8, Edge_22, Edge_14, Edge_21, Vertex_4, Edge_7, Face_2, Edge_13, Face_4, Vertex_1, Extrusion_2, Edge_6, Face_6, Edge_25, Edge_12, Cut_1, Edge_24, Face_8, Vertex_2, Edge_5, Edge_23, Edge_11, Quadrangle_Face_1, Edge_17, Edge_4, Edge_16, Extrusion_1, aerofoil_igs_1, Edge_3, Face_3, Vector_1, Edge_10 aerofoil_igs_1 = geompy.import("/home/nicky/simulation/aerofoil.igs", "IGES") Vertex_1 = geompy.makevertex(-500, 500, 0) Vertex_2 = geompy.makevertex(-500, -500, 0) Vertex_3 = geompy.makevertex(1500, -500, 0) Vertex_4 = geompy.makevertex(1500, 500, 0) Vector_1 = geompy.makevectordxdydz(0, 0, 1) Face_1 = geompy.makefacewires([aerofoil_igs_1], 1) Quadrangle_Face_1 = geompy.makequad4vertices(vertex_1, Vertex_2, Vertex_3, Vertex_4) Extrusion_1 = geompy.makeprismvech(quadrangle_face_1, Vector_1, 5) Extrusion_2 = geompy.makeprismvech(face_1, Vector_1, 5) Cut_1 = geompy.makecut(extrusion_1, Extrusion_2) [Face_2,Face_3,Face_4,Face_5,Face_6,Face_7,Face_8] = geompy.subshapeallsorted(cut_1, geompy.shapetype["face"]) [Edge_1,Edge_2,Edge_3,Edge_4,Edge_5,Edge_6,Edge_7,Edge_8,Edge_9, Edge_10,Edge_11,Edge_12,Edge_13,Edge_14,Edge_15] = geompy.subshapeallsorted(cut_1, geompy.shapetype["edge"]) listsubshapeids = geompy.subshapeallids(cut_1, geompy.shapetype["edge"]) None [Edge_16,Edge_17,Edge_18,Edge_19,Edge_20] = geompy.subshapeallsorted(face_5, geompy.shapetype["edge"]) Cut_1 = geompy.getmainshape(face_5) Cut_1 = geompy.getmainshape(face_5) None [Edge_21,Edge_22,Edge_23,Edge_24,Edge_25] = geompy.subshapeallsorted(face_6, geompy.shapetype["edge"]) Cut_1 = geompy.getmainshape(face_6) Cut_1 = geompy.getmainshape(face_6) None Face_5 = geompy.getmainshape(edge_17) None Face_6 = geompy.getmainshape(edge_22) area = geompy.basicproperties(face_3) area2 = area[1]/ f = open('/home/nicky/simulation/workfile','w') s = str(area2) f.write(s) f.close() Group_1 = geompy.creategroup(cut_1, geompy.shapetype["edge"]) geompy.unionids(group_1, [6, 9, 16, 23, 44]) Page 59 of 63
60 Cut_1 = geompy.getmainshape(group_1) Cut_1 = geompy.getmainshape(group_1) geomobj_1 = geompy.getsubshape(cut_1, [6]) geomobj_2 = geompy.getsubshape(cut_1, [9]) geomobj_3 = geompy.getsubshape(cut_1, [16]) geomobj_4 = geompy.getsubshape(cut_1, [23]) geomobj_5 = geompy.getsubshape(cut_1, [44]) geompy.addtostudy( aerofoil_igs_1, "aerofoil.igs_1" ) geompy.addtostudy( Vertex_1, "Vertex_1" ) geompy.addtostudy( Vertex_2, "Vertex_2" ) geompy.addtostudy( Vertex_3, "Vertex_3" ) geompy.addtostudy( Vertex_4, "Vertex_4" ) geompy.addtostudy( Vector_1, "Vector_1" ) geompy.addtostudy( Face_1, "Face_1" ) geompy.addtostudy( Quadrangle_Face_1, "Quadrangle Face_1" ) geompy.addtostudy( Extrusion_1, "Extrusion_1" ) geompy.addtostudy( Extrusion_2, "Extrusion_2" ) geompy.addtostudy( Cut_1, "Cut_1" ) geompy.addtostudyinfather( Cut_1, Face_2, "Face_2" ) geompy.addtostudyinfather( Cut_1, Face_3, "Face_3" ) geompy.addtostudyinfather( Cut_1, Face_4, "Face_4" ) geompy.addtostudyinfather( Cut_1, Face_5, "Face_5" ) geompy.addtostudyinfather( Cut_1, Face_6, "Face_6" ) geompy.addtostudyinfather( Cut_1, Face_7, "Face_7" ) geompy.addtostudyinfather( Cut_1, Face_8, "Face_8" ) geompy.addtostudyinfather( Cut_1, Edge_1, "Edge_1" ) geompy.addtostudyinfather( Cut_1, Edge_2, "Edge_2" ) geompy.addtostudyinfather( Cut_1, Edge_3, "Edge_3" ) geompy.addtostudyinfather( Cut_1, Edge_4, "Edge_4" ) geompy.addtostudyinfather( Cut_1, Edge_5, "Edge_5" ) geompy.addtostudyinfather( Cut_1, Edge_6, "Edge_6" ) geompy.addtostudyinfather( Cut_1, Edge_7, "Edge_7" ) geompy.addtostudyinfather( Cut_1, Edge_8, "Edge_8" ) geompy.addtostudyinfather( Cut_1, Edge_9, "Edge_9" ) geompy.addtostudyinfather( Cut_1, Edge_10, "Edge_10" ) geompy.addtostudyinfather( Cut_1, Edge_11, "Edge_11" ) geompy.addtostudyinfather( Cut_1, Edge_12, "Edge_12" ) geompy.addtostudyinfather( Cut_1, Edge_13, "Edge_13" ) geompy.addtostudyinfather( Cut_1, Edge_14, "Edge_14" ) geompy.addtostudyinfather( Cut_1, Edge_15, "Edge_15" ) geompy.addtostudyinfather( Face_5, Edge_16, "Edge_16" ) geompy.addtostudyinfather( Face_5, Edge_17, "Edge_17" ) geompy.addtostudyinfather( Face_5, Edge_18, "Edge_18" ) geompy.addtostudyinfather( Face_5, Edge_19, "Edge_19" ) geompy.addtostudyinfather( Face_5, Edge_20, "Edge_20" ) geompy.addtostudyinfather( Face_6, Edge_21, "Edge_21" ) geompy.addtostudyinfather( Face_6, Edge_22, "Edge_22" ) geompy.addtostudyinfather( Face_6, Edge_23, "Edge_23" ) geompy.addtostudyinfather( Face_6, Edge_24, "Edge_24" ) geompy.addtostudyinfather( Face_6, Edge_25, "Edge_25" ) geompy.addtostudyinfather( Cut_1, Group_1, "Group_1" ) pass Page 60 of 63
61 mesh_smesh.py ### This file is generated by SALOME automatically by dump python functionality of SMESH component import salome, SMESH import smesh ## import GEOM dump file ## import string, os, sys, re sys.path.insert( 0, os.path.dirname( file ) ) exec("from "+re.sub("smesh$","geom", name )+" import *") def RebuildData(theStudy): afiltermanager = smesh.smesh.createfiltermanager() smesh.smesh.setcurrentstudy(thestudy) import StdMeshers pattern = smesh.getpattern() Mesh_1 = smesh.mesh(cut_1) Regular_1D = Mesh_1.Segment() Average_length_1 = Regular_1D.LocalLength(15) Quadrangle_2D = Mesh_1.Quadrangle() Prism_3D = Mesh_1.Prism() Nb_Segments_1 = smesh.smesh.createhypothesis('numberofsegments', 'libstdmeshersengine.so') Nb_Segments_1.SetNumberOfSegments( 1 ) Nb_Segments_1.SetDistrType( 0 ) SubMesh_1 = Mesh_1.GetSubMesh( Group_1, 'SubMesh_1' ) status = Mesh_1.AddHypothesis(Regular_1D,Group_1) status = Mesh_1.AddHypothesis(Nb_Segments_1,Group_1) MEFISTO_2D = Mesh_1.Triangle(geom=Face_5) SubMesh_2 = MEFISTO_2D.GetSubMesh() Length_From_Edges_2D_Hyp_for_Triangulator 1 = MEFISTO_2D.LengthFromEdges() Projection_2D = Mesh_1.Projection2D(geom=Face_6) SubMesh_3 = Projection_2D.GetSubMesh() Source_Face_1 = Projection_2D.SourceFace(Face_5,None,None,None,None,None) Average_length_2 = smesh.smesh.createhypothesis('locallength', 'libstdmeshersengine.so') Average_length_2.SetLength( 3 ) SubMesh_4 = Mesh_1.GetSubMesh( Edge_17, 'SubMesh_4' ) status = Mesh_1.AddHypothesis(Regular_1D,Edge_17) status = Mesh_1.AddHypothesis(Average_length_2,Edge_17) Projection_1D = Mesh_1.Projection1D(geom=Edge_22) SubMesh_5 = Projection_1D.GetSubMesh() Source_Edge_1 = Projection_1D.SourceEdge(Edge_17,None,None,None) isdone = Mesh_1.Compute() Face_3_1 = Mesh_1.Group(Face_3) Face_2_1 = Mesh_1.Group(Face_2) Face_8_1 = Mesh_1.Group(Face_8) Face_7_1 = Mesh_1.Group(Face_7) Face_4_1 = Mesh_1.Group(Face_4) Face_6_1 = Mesh_1.Group(Face_6) Face_5_1 = Mesh_1.Group(Face_5) Mesh_1.ExportUNV( '/opt/openfoam/simulations/aerofoil/mesh.unv' ) Page 61 of 63
62 ## set object names isguimode = 1 if isguimode and salome.sg.hasdesktop(): smesh.setname(mesh_1.getmesh(), 'Mesh_1') smesh.setname(regular_1d.getalgorithm(), 'Regular_1D') smesh.setname(average_length_1, 'Average length_1') smesh.setname(quadrangle_2d.getalgorithm(), 'Quadrangle_2D') smesh.setname(prism_3d.getalgorithm(), 'Prism_3D') smesh.setname(nb_segments_1, 'Nb. Segments_1') smesh.setname(submesh_1, 'SubMesh_1') smesh.setname(mefisto_2d.getalgorithm(), 'MEFISTO_2D') smesh.setname(submesh_2, 'SubMesh_2') smesh.setname(length_from_edges_2d_hyp_for_triangulator 1, 'Length From Edges (2D Hyp. for Triangulator)_1') smesh.setname(projection_2d.getalgorithm(), 'Projection_2D') smesh.setname(submesh_3, 'SubMesh_3') smesh.setname(source_face_1, 'Source Face_1') smesh.setname(average_length_2, 'Average length_2') smesh.setname(submesh_4, 'SubMesh_4') smesh.setname(projection_1d.getalgorithm(), 'Projection_1D') smesh.setname(submesh_5, 'SubMesh_5') smesh.setname(source_edge_1, 'Source Edge_1') smesh.setname(face_3_1, 'Face_3') smesh.setname(face_2_1, 'Face_2') smesh.setname(face_8_1, 'Face_8') smesh.setname(face_7_1, 'Face_7') smesh.setname(face_4_1, 'Face_4') smesh.setname(face_6_1, 'Face_6') smesh.setname(face_5_1, 'Face_5') pass salome.sg.updateobjbrowser(0) Page 62 of 63
63 Appendix C: Nimrod schedule file schedule.shd parameter aoa float range from 0 to 4 parameter camber float range from 0 to 12 parameter thickness float range from 1.5 to 14 constraint camber>0 task main execute./script $aoa $camber $thickness execute./lift_drag > result copy result output.$jobname endtask method simplex starts 1 tolerance 0.01 endstarts endmethod Page 63 of 63
THE CFD SIMULATION OF THE FLOW AROUND THE AIRCRAFT USING OPENFOAM AND ANSA
THE CFD SIMULATION OF THE FLOW AROUND THE AIRCRAFT USING OPENFOAM AND ANSA Adam Kosík Evektor s.r.o., Czech Republic KEYWORDS CFD simulation, mesh generation, OpenFOAM, ANSA ABSTRACT In this paper we describe
Application of CFD Simulation in the Design of a Parabolic Winglet on NACA 2412
, July 2-4, 2014, London, U.K. Application of CFD Simulation in the Design of a Parabolic Winglet on NACA 2412 Arvind Prabhakar, Ayush Ohri Abstract Winglets are angled extensions or vertical projections
Computational Modeling of Wind Turbines in OpenFOAM
Computational Modeling of Wind Turbines in OpenFOAM Hamid Rahimi [email protected] ForWind - Center for Wind Energy Research Institute of Physics, University of Oldenburg, Germany Outline Computational
CastNet: Modelling platform for open source solver technology
CastNet: Modelling platform for open source solver technology. DHCAE Tools GmbH Address: Friedrich-Ebert-Str. 368, 47800 Krefeld, Germany / Company site: Alte Rather Str. 207 / 47802 Krefeld Phone +49
A. Hyll and V. Horák * Department of Mechanical Engineering, Faculty of Military Technology, University of Defence, Brno, Czech Republic
AiMT Advances in Military Technology Vol. 8, No. 1, June 2013 Aerodynamic Characteristics of Multi-Element Iced Airfoil CFD Simulation A. Hyll and V. Horák * Department of Mechanical Engineering, Faculty
CFD analysis for road vehicles - case study
CFD analysis for road vehicles - case study Dan BARBUT*,1, Eugen Mihai NEGRUS 1 *Corresponding author *,1 POLITEHNICA University of Bucharest, Faculty of Transport, Splaiul Independentei 313, 060042, Bucharest,
Multiphase Flow - Appendices
Discovery Laboratory Multiphase Flow - Appendices 1. Creating a Mesh 1.1. What is a geometry? The geometry used in a CFD simulation defines the problem domain and boundaries; it is the area (2D) or volume
OpenFOAM Optimization Tools
OpenFOAM Optimization Tools Henrik Rusche and Aleks Jemcov [email protected] and [email protected] Wikki, Germany and United Kingdom OpenFOAM Optimization Tools p. 1 Agenda Objective Review optimisation
Introduction to ANSYS
Lecture 3 Introduction to ANSYS Meshing 14. 5 Release Introduction to ANSYS Meshing 2012 ANSYS, Inc. March 27, 2014 1 Release 14.5 Introduction to ANSYS Meshing What you will learn from this presentation
Lift and Drag on an Airfoil ME 123: Mechanical Engineering Laboratory II: Fluids
Lift and Drag on an Airfoil ME 123: Mechanical Engineering Laboratory II: Fluids Dr. J. M. Meyers Dr. D. G. Fletcher Dr. Y. Dubief 1. Introduction In this lab the characteristics of airfoil lift, drag,
2013 Code_Saturne User Group Meeting. EDF R&D Chatou, France. 9 th April 2013
2013 Code_Saturne User Group Meeting EDF R&D Chatou, France 9 th April 2013 Thermal Comfort in Train Passenger Cars Contact For further information please contact: Brian ANGEL Director RENUDA France [email protected]
Tutorial: 2D Pipe Junction Using Hexa Meshing
Tutorial: 2D Pipe Junction Using Hexa Meshing Introduction In this tutorial, you will generate a mesh for a two-dimensional pipe junction, composed of two inlets and one outlet. After generating an initial
CFD software overview comparison, limitations and user interfaces
CFD software overview comparison, limitations and user interfaces Daniel Legendre Introduction to CFD Turku, 05.05.2015 Åbo Akademi University Thermal and Flow Engineering Laboratory 05.05.2015 1 Some
CastNet: GUI environment for OpenFOAM
CastNet: GUI environment for OpenFOAM CastNet is a preprocessing system and job-control system for OpenFOAM. CastNet works with the standard OpenFOAM releases provided by ESI Group as well as ports for
Marine CFD applications using OpenFOAM
Marine CFD applications using OpenFOAM Andrea Penza, CINECA 27/03/2014 Contents Background at CINECA: LRC experience CFD skills Automatic workflow Reliability workflow OpenFOAM solvers for marine CFD analysis
The influence of mesh characteristics on OpenFOAM simulations of the DrivAer model
The influence of mesh characteristics on OpenFOAM simulations of the DrivAer model Vangelis Skaperdas, Aristotelis Iordanidis, Grigoris Fotiadis BETA CAE Systems S.A. 2 nd Northern Germany OpenFOAM User
version 3.0 tutorial - Turbulent mixing in a T-junction with CFDSTUDY in SALOME contact: [email protected]
EDF R&D Fluid Dynamics, Power Generation and Environment Department Single Phase Thermal-Hydraulics Group 6, quai Watier F-78401 Chatou Cedex Tel: 33 1 30 87 75 40 Fax: 33 1 30 87 79 16 MAY 2013 documentation
XFlow CFD results for the 1st AIAA High Lift Prediction Workshop
XFlow CFD results for the 1st AIAA High Lift Prediction Workshop David M. Holman, Dr. Monica Mier-Torrecilla, Ruddy Brionnaud Next Limit Technologies, Spain THEME Computational Fluid Dynamics KEYWORDS
Pre-processing in openfoam, mesh generation. OpenFOAM kurs 2013 Håkan Nilsson Olivier Petit
Pre-processing in openfoam, mesh generation. OpenFOAM kurs 2013 Håkan Nilsson Olivier Petit Different ways of creating the mesh. Outline Using SnappyHexMesh, an OpenFOAM mesh generation tool. Using blockmesh,
NACA Nomenclature NACA 2421. NACA Airfoils. Definitions: Airfoil Geometry
0.40 m 0.21 m 0.02 m NACA Airfoils 6-Feb-08 AE 315 Lesson 10: Airfoil nomenclature and properties 1 Definitions: Airfoil Geometry z Mean camber line Chord line x Chord x=0 x=c Leading edge Trailing edge
GAMBIT Demo Tutorial
GAMBIT Demo Tutorial Wake of a Cylinder. 1.1 Problem Description The problem to be considered is schematically in fig. 1. We consider flow across a cylinder and look at the wake behind the cylinder. Air
AERODYNAMIC ANALYSIS OF BLADE 1.5 KW OF DUAL ROTOR HORIZONTAL AXIS WIND TURBINE
AERODYNAMIC ANALYSIS OF BLADE 1.5 KW OF DUAL ROTOR HORIZONTAL AXIS WIND TURBINE HITENDRA KURMI Research scholar, School of Energy and Environmental Managment,UTD, RGPV Bhopal,MP,INDIA [email protected]
Numerical Calculation of Laminar Flame Propagation with Parallelism Assignment ZERO, CS 267, UC Berkeley, Spring 2015
Numerical Calculation of Laminar Flame Propagation with Parallelism Assignment ZERO, CS 267, UC Berkeley, Spring 2015 Xian Shi 1 bio I am a second-year Ph.D. student from Combustion Analysis/Modeling Lab,
Aerodynamic Design Optimization Discussion Group Case 4: Single- and multi-point optimization problems based on the CRM wing
Aerodynamic Design Optimization Discussion Group Case 4: Single- and multi-point optimization problems based on the CRM wing Lana Osusky, Howard Buckley, and David W. Zingg University of Toronto Institute
How To Run A Steady Case On A Creeper
Crash Course Introduction to OpenFOAM Artur Lidtke University of Southampton [email protected] November 4, 2014 Artur Lidtke Crash Course Introduction to OpenFOAM 1 / 32 What is OpenFOAM? Using OpenFOAM
Performance Comparison of a Vertical Axis Wind Turbine using Commercial and Open Source Computational Fluid Dynamics based Codes
Performance Comparison of a Vertical Axis Wind Turbine using Commercial and Open Source Computational Fluid Dynamics based Codes Taimoor Asim 1, Rakesh Mishra 1, Sree Nirjhor Kaysthagir 1, Ghada Aboufares
CFD Analysis of Swept and Leaned Transonic Compressor Rotor
CFD Analysis of Swept and Leaned Transonic Compressor Nivin Francis #1, J. Bruce Ralphin Rose *2 #1 Student, Department of Aeronautical Engineering& Regional Centre of Anna University Tirunelveli India
CFD Analysis on Airfoil at High Angles of Attack
CFD Analysis on Airfoil at High Angles of Attack Dr.P.PrabhakaraRao¹ & Sri Sampath.V² Department of Mechanical Engineering,Kakatiya Institute of Technology& Science Warangal-506015 1 [email protected],
Fully Automatic Hex Dominant Mesher. Paul Gilfrin Sharc Ltd
Fully Automatic Hex Dominant Mesher Paul Gilfrin Sharc Ltd Sharc Ltd UK About Sharc Developer of Harpoon Founded in 1997 Distributors of Ensight Engineers with CFD/FEA experience Specialise in the integration
CFD ANALYSIS OF RAE 2822 SUPERCRITICAL AIRFOIL AT TRANSONIC MACH SPEEDS
CFD ANALYSIS OF RAE 2822 SUPERCRITICAL AIRFOIL AT TRANSONIC MACH SPEEDS K.Harish Kumar 1, CH.Kiran Kumar 2, T.Naveen Kumar 3 1 M.Tech Thermal Engineering, Sanketika Institute of Technology & Management,
Laminar Flow in a Baffled Stirred Mixer
Laminar Flow in a Baffled Stirred Mixer Introduction This exercise exemplifies the use of the rotating machinery feature in the CFD Module. The Rotating Machinery interface allows you to model moving rotating
Relevance of Modern Optimization Methods in Turbo Machinery Applications
Relevance of Modern Optimization Methods in Turbo Machinery Applications - From Analytical Models via Three Dimensional Multidisciplinary Approaches to the Optimization of a Wind Turbine - Prof. Dr. Ing.
Using CFD to improve the design of a circulating water channel
2-7 December 27 Using CFD to improve the design of a circulating water channel M.G. Pullinger and J.E. Sargison School of Engineering University of Tasmania, Hobart, TAS, 71 AUSTRALIA Abstract Computational
Customer Training Material. Lecture 2. Introduction to. Methodology ANSYS FLUENT. ANSYS, Inc. Proprietary 2010 ANSYS, Inc. All rights reserved.
Lecture 2 Introduction to CFD Methodology Introduction to ANSYS FLUENT L2-1 What is CFD? Computational Fluid Dynamics (CFD) is the science of predicting fluid flow, heat and mass transfer, chemical reactions,
HPC Deployment of OpenFOAM in an Industrial Setting
HPC Deployment of OpenFOAM in an Industrial Setting Hrvoje Jasak [email protected] Wikki Ltd, United Kingdom PRACE Seminar: Industrial Usage of HPC Stockholm, Sweden, 28-29 March 2011 HPC Deployment
A Robust Method for Solving Transcendental Equations
www.ijcsi.org 413 A Robust Method for Solving Transcendental Equations Md. Golam Moazzam, Amita Chakraborty and Md. Al-Amin Bhuiyan Department of Computer Science and Engineering, Jahangirnagar University,
Computational Fluid Dynamics
Aerodynamics Computational Fluid Dynamics Industrial Use of High Fidelity Numerical Simulation of Flow about Aircraft Presented by Dr. Klaus Becker / Aerodynamic Strategies Contents Aerodynamic Vision
Numerical Simulation of the External Flow Field. Around a Bluff Car*
Numerical Simulation of the External Flow Field Around a Bluff Car* Sun Yongling, Wu Guangqiang, Xieshuo Automotive Engineering Department Shanghai Tongji University Shanghai, China E-mail: [email protected]
LSCFD: Meshing Tools for Open Source CFD A Practical Point of View
LSCFD: Meshing Tools for Open Source CFD A Practical Point of View Juha Kortelainen Report: Meshing Tools for Open Source CFD A Practical Point of View LSCFD Tools for Large Scale
Solving Simultaneous Equations and Matrices
Solving Simultaneous Equations and Matrices The following represents a systematic investigation for the steps used to solve two simultaneous linear equations in two unknowns. The motivation for considering
Open Source CFD Solver - OpenFOAM
Open Source CFD Solver - OpenFOAM Wang Junhong (HPC, Computer Centre) 1. INTRODUCTION The OpenFOAM (Open Field Operation and Manipulation) Computational Fluid Dynamics (CFD) Toolbox is a free, open source
The Influence of Aerodynamics on the Design of High-Performance Road Vehicles
The Influence of Aerodynamics on the Design of High-Performance Road Vehicles Guido Buresti Department of Aerospace Engineering University of Pisa (Italy) 1 CONTENTS ELEMENTS OF AERODYNAMICS AERODYNAMICS
Advanced discretisation techniques (a collection of first and second order schemes); Innovative algorithms and robust solvers for fast convergence.
New generation CFD Software APUS-CFD APUS-CFD is a fully interactive Arbitrary Polyhedral Unstructured Solver. APUS-CFD is a new generation of CFD software for modelling fluid flow and heat transfer in
Computational Aerodynamic Analysis on Store Separation from Aircraft using Pylon
International Journal of Engineering Science Invention (IJESI) ISSN (Online): 2319 6734, ISSN (Print): 2319 6726 www.ijesi.org ǁ PP.27-31 Computational Aerodynamic Analysis on Store Separation from Aircraft
CCTech TM. ICEM-CFD & FLUENT Software Training. Course Brochure. Simulation is The Future
. CCTech TM Simulation is The Future ICEM-CFD & FLUENT Software Training Course Brochure About. CCTech Established in 2006 by alumni of IIT Bombay. Our motive is to establish a knowledge centric organization
Introduction to COMSOL. The Navier-Stokes Equations
Flow Between Parallel Plates Modified from the COMSOL ChE Library module rev 10/13/08 Modified by Robert P. Hesketh, Chemical Engineering, Rowan University Fall 2008 Introduction to COMSOL The following
Automated moving mesh techniques in CFD
Unione Europea Repubblica Italiana Regione Autonoma della Sardegna Automated moving mesh techniques in CFD Application to fluid-structure interactions and rigid motions problems MANUELA PROFIR [email protected]
Tutorial: 3D Pipe Junction Using Hexa Meshing
Tutorial: 3D Pipe Junction Using Hexa Meshing Introduction In this tutorial, you will generate a mesh for a three-dimensional pipe junction. After checking the quality of the first mesh, you will create
Experts in Computational Fluid Dynamics
Experts in Computational Fluid Dynamics TotalSim Background TotalSim is an independent CFD consultancy firm specialising in aerodynamic and hydrodynamic design and development through the use of open source
TVM 4155 Numerical modelling and hydraulics 10. March 2014. OpenFOAM homework
TVM 4155 Numerical modelling and hydraulics 10. March 2014 OpenFOAM homework OpenFOAM is the most popular open-source CFD program in the world today. In this homework we will use the program to determine
Modelling, Extraction and Description of Intrinsic Cues of High Resolution Satellite Images: Independent Component Analysis based approaches
Modelling, Extraction and Description of Intrinsic Cues of High Resolution Satellite Images: Independent Component Analysis based approaches PhD Thesis by Payam Birjandi Director: Prof. Mihai Datcu Problematic
Visualization and Data Mining of Pareto Solutions Using Self-Organizing Map
Visualization and Data Mining of Solutions Using Self-Organizing Map Shigeru Obayashi and Daisuke Sasaki Institute of Fluid Science, Tohoku University, Sendai, 980-8577 JAPAN [email protected], [email protected]
Design and Structural Analysis of the Ribs and Spars of Swept Back Wing
Design and Structural Analysis of the Ribs and Spars of Swept Back Wing Mohamed Hamdan A 1, Nithiyakalyani S 2 1,2 Assistant Professor, Aeronautical Engineering & Srinivasan Engineering College, Perambalur,
A simplefoam tutorial
CFD with OpenSource software A course at Chalmers University of Technology Taught by Håkan Nilsson Project work: A simplefoam tutorial Developed for OpenFOAM-1.7.x Author: Hamidreza Abedi Peer reviewed
Express Introductory Training in ANSYS Fluent Lecture 1 Introduction to the CFD Methodology
Express Introductory Training in ANSYS Fluent Lecture 1 Introduction to the CFD Methodology Dimitrios Sofialidis Technical Manager, SimTec Ltd. Mechanical Engineer, PhD PRACE Autumn School 2013 - Industry
Comparison of ACO and GA Techniques to Generate Neural Network Based Bezier-PARSEC Parameterized Airfoil
Comparison of ACO and GA Techniques to Generate Neural Network Based Bezier-PARSEC Parameterized Airfoil Waqas Saleem 1, Riaz Ahmad 2, Athar Kharal 3, Ayman Saleem 4 Abstract This research uses Neural
Aeroelastic Investigation of the Sandia 100m Blade Using Computational Fluid Dynamics
Aeroelastic Investigation of the Sandia 100m Blade Using Computational Fluid Dynamics David Corson Altair Engineering, Inc. Todd Griffith Sandia National Laboratories Tom Ashwill (Retired) Sandia National
HowTo Rhino & ICEM. 1) New file setup: choose Millimeter (automatically converts to Meters if imported to ICEM)
HowTo Rhino & ICEM Simple 2D model 1) New file setup: choose Millimeter (automatically converts to Meters if imported to ICEM) 2) Set units: File Properties Units: Model units: should already be Millimeters
Software-Engineering und Optimierungsanwendungen in der Thermodynamik
Software-Engineering und Optimierungsanwendungen in der Thermodynamik Optimierung 3 Optimization Frameworks Prof. Dr. Rolf Dornberger Optimization: 3 Optimization Frameworks 30.04.2006 3 Optimization Frameworks
Optimum Design of Worm Gears with Multiple Computer Aided Techniques
Copyright c 2008 ICCES ICCES, vol.6, no.4, pp.221-227 Optimum Design of Worm Gears with Multiple Computer Aided Techniques Daizhong Su 1 and Wenjie Peng 2 Summary Finite element analysis (FEA) has proved
Model-based Parameter Optimization of an Engine Control Unit using Genetic Algorithms
Symposium on Automotive/Avionics Avionics Systems Engineering (SAASE) 2009, UC San Diego Model-based Parameter Optimization of an Engine Control Unit using Genetic Algorithms Dipl.-Inform. Malte Lochau
STCE. Outline. Introduction. Applications. Ongoing work. Summary. STCE RWTH-Aachen, Industrial Applications of discrete adjoint OpenFOAM, EuroAD 2014
Industrial Applications of discrete adjoint OpenFOAM Arindam Sen Software and Tools for Computational Engineering Science RWTH Aachen University EuroAD 2014, Nice, 16-17. June 2014 Outline Introduction
Lecture 7 - Meshing. Applied Computational Fluid Dynamics
Lecture 7 - Meshing Applied Computational Fluid Dynamics Instructor: André Bakker http://www.bakker.org André Bakker (2002-2006) Fluent Inc. (2002) 1 Outline Why is a grid needed? Element types. Grid types.
CFD SIMULATION OF SDHW STORAGE TANK WITH AND WITHOUT HEATER
International Journal of Advancements in Research & Technology, Volume 1, Issue2, July-2012 1 CFD SIMULATION OF SDHW STORAGE TANK WITH AND WITHOUT HEATER ABSTRACT (1) Mr. Mainak Bhaumik M.E. (Thermal Engg.)
How To Create A Cdf Optimisation System
ADVANCED ENGINEERING 4(2010)2, ISSN 1846-5900 INTERFACES FOR EMBEDDING CFD OPTIMISATION WORKFLOWS INTO THE PRODUCT DEVELOPMENT PROCESS Todorov, G.; Ovcharova, J.; Romanov, B. & Kamberov, K. Abstract: The
Steady Flow: Laminar and Turbulent in an S-Bend
STAR-CCM+ User Guide 6663 Steady Flow: Laminar and Turbulent in an S-Bend This tutorial demonstrates the flow of an incompressible gas through an s-bend of constant diameter (2 cm), for both laminar and
APPLICATION OF OPTIMIZATION METHODS IN 2D HYDROFOIL DESIGN
Electrozavodskaia St., 20, Moscow, 107023, Russia Phone/fax +7 (495) 788 1060 www.iosotech.com APPLICATION OF OPTIMIZATION METHODS IN 2D HYDROFOIL DESIGN Abstract Modern computer technologies allow us
Simulation of Fluid-Structure Interactions in Aeronautical Applications
Simulation of Fluid-Structure Interactions in Aeronautical Applications Martin Kuntz Jorge Carregal Ferreira ANSYS Germany D-83624 Otterfing [email protected] December 2003 3 rd FENET Annual Industry
AB3080 L. Learning Objectives: About the Speaker:
AB3080 L While architects have tested their designs in wind tunnels for many years, the process is typically outsourced to engineering firms and not easily accessible to architects during the conceptual
SHAPE OPTIMIZATION OF TYPICAL HEAVY-DUTY GAS TURBINE COMPRESSOR AIROFOIL USING METAMODEL BASED ALGORITHM
10 th World Congress on Structural and Multidisciplinary Optimization May 19-24, 2013, Orlando, Florida, USA SHAPE OPTIMIZATION OF TYPICAL HEAVY-DUTY GAS TURBINE COMPRESSOR AIROFOIL USING METAMODEL BASED
NUMERICAL SIMULATION OF REGULAR WAVES RUN-UP OVER SLOPPING BEACH BY OPEN FOAM
NUMERICAL SIMULATION OF REGULAR WAVES RUN-UP OVER SLOPPING BEACH BY OPEN FOAM Parviz Ghadimi 1*, Mohammad Ghandali 2, Mohammad Reza Ahmadi Balootaki 3 1*, 2, 3 Department of Marine Technology, Amirkabir
Visualisation in the Google Cloud
Visualisation in the Google Cloud by Kieran Barker, 1 School of Computing, Faculty of Engineering ABSTRACT Providing software as a service is an emerging trend in the computing world. This paper explores
Goal Seeking in Solid Edge
Goal Seeking in Solid Edge White Paper Goal Seeking in Solid Edge software offers a fast built-in method for solving complex engineering problems. By drawing and dimensioning 2D free-body diagrams, Goal
Use of OpenFoam in a CFD analysis of a finger type slug catcher. Dynaflow Conference 2011 January 13 2011, Rotterdam, the Netherlands
Use of OpenFoam in a CFD analysis of a finger type slug catcher Dynaflow Conference 2011 January 13 2011, Rotterdam, the Netherlands Agenda Project background Analytical analysis of two-phase flow regimes
Model of a flow in intersecting microchannels. Denis Semyonov
Model of a flow in intersecting microchannels Denis Semyonov LUT 2012 Content Objectives Motivation Model implementation Simulation Results Conclusion Objectives A flow and a reaction model is required
HPC enabling of OpenFOAM R for CFD applications
HPC enabling of OpenFOAM R for CFD applications Towards the exascale: OpenFOAM perspective Ivan Spisso 25-27 March 2015, Casalecchio di Reno, BOLOGNA. SuperComputing Applications and Innovation Department,
TWO-DIMENSIONAL FINITE ELEMENT ANALYSIS OF FORCED CONVECTION FLOW AND HEAT TRANSFER IN A LAMINAR CHANNEL FLOW
TWO-DIMENSIONAL FINITE ELEMENT ANALYSIS OF FORCED CONVECTION FLOW AND HEAT TRANSFER IN A LAMINAR CHANNEL FLOW Rajesh Khatri 1, 1 M.Tech Scholar, Department of Mechanical Engineering, S.A.T.I., vidisha
ICEM CFD Tutorial. Simple Duct Grid
ICEM CFD Tutorial Simple Duct Grid Scott J. Ormiston Gavin Joyce Department of Mechanical Engineering Winnipeg, Manitoba Canada V1.01 17 January 2013 Department of Mechanical Engineering Page 1 of 22 1.
OpenFOAM Opensource and CFD
OpenFOAM Opensource and CFD Andrew King Department of Mechanical Engineering Curtin University Outline What is Opensource Software OpenFOAM Overview Utilities, Libraries and Solvers Data Formats The CFD
NUMERICAL ANALYSIS OF THE EFFECTS OF WIND ON BUILDING STRUCTURES
Vol. XX 2012 No. 4 28 34 J. ŠIMIČEK O. HUBOVÁ NUMERICAL ANALYSIS OF THE EFFECTS OF WIND ON BUILDING STRUCTURES Jozef ŠIMIČEK email: [email protected] Research field: Statics and Dynamics Fluids mechanics
An Overview of the Finite Element Analysis
CHAPTER 1 An Overview of the Finite Element Analysis 1.1 Introduction Finite element analysis (FEA) involves solution of engineering problems using computers. Engineering structures that have complex geometry
Solid Edge ST3 Advances the Future of 3D Design
SUMMARY AND OPINION Solid Edge ST3 Advances the Future of 3D Design A Product Review White Paper Prepared by Collaborative Product Development Associates, LLC for Siemens PLM Software The newest release
Computational Fluid Dynamics Investigation of Two Surfboard Fin Configurations.
Computational Fluid Dynamics Investigation of Two Surfboard Fin Configurations. By: Anthony Livanos (10408690) Supervisor: Dr Philippa O Neil Faculty of Engineering University of Western Australia For
QUT Digital Repository: http://eprints.qut.edu.au/
QUT Digital Repository: http://eprints.qut.edu.au/ El-Atm, Billy and Kelson, Neil A. and Gudimetla, Prasad V. (2008) A finite element analysis of the hydrodynamic performance of 3- and 4-Fin surfboard
Incorporation of OpenFOAM software into Computational Fluid Dynamics process in Volvo Technology
Technical report, IDE1136, June 2011 Incorporation of OpenFOAM software into Computational Fluid Dynamics process in Volvo Technology Master s Thesis in Computational Science and Engineering Alexander
Thin Airfoil Theory. Charles R. O Neill School of Mechanical and Aerospace Engineering Oklahoma State University Stillwater, OK 74078
13 Thin Airfoil Theory Charles R. O Neill School of Mechanical and Aerospace Engineering Oklahoma State University Stillwater, OK 7478 Project One in MAE 3253 Applied Aerodynamics and Performance March
How To Run A Cdef Simulation
Simple CFD Simulations and Visualisation using OpenFOAM and ParaView Sachiko Arvelius, PhD Purpose of this presentation To show my competence in CFD (Computational Fluid Dynamics) simulation and visualisation
Data processing goes big
Test report: Integration Big Data Edition Data processing goes big Dr. Götz Güttich Integration is a powerful set of tools to access, transform, move and synchronize data. With more than 450 connectors,
NUMERICAL ANALYSIS OF WELLS TURBINE FOR WAVE POWER CONVERSION
Engineering Review Vol. 32, Issue 3, 141-146, 2012. 141 NUMERICAL ANALYSIS OF WELLS TURBINE FOR WAVE POWER CONVERSION Z. 1* L. 1 V. 2 M. 1 1 Department of Fluid Mechanics and Computational Engineering,
Christof Hinterberger, Mark Olesen
Application of of a Continuous Adjoint Flow Solver for for Geometry Optimisation of of Automotive Exhaust Systems Christof Hinterberger, Mark Olesen FLOWHEAD Workshop, Varna Sept. 2010 Workshop on industrial
P. Lu, Sh. Huang and K. Jiang
416 Rev. Adv. Mater. Sci. 33 (2013) 416-422 P. Lu, Sh. Huang and K. Jiang NUMERICAL ANALYSIS FOR THREE-DIMENSIONAL BULK METAL FORMING PROCESSES WITH ARBITRARILY SHAPED DIES USING THE RIGID/VISCO-PLASTIC
ENHANCEMENT OF AERODYNAMIC PERFORMANCE OF A FORMULA-1 RACE CAR USING ADD-ON DEVICES B. N. Devaiah 1, S. Umesh 2
ENHANCEMENT OF AERODYNAMIC PERFORMANCE OF A FORMULA-1 RACE CAR USING ADD-ON DEVICES B. N. Devaiah 1, S. Umesh 2 1- M. Sc. [Engg.] Student, 2- Asst. Professor Automotive and Aeronautical Engineering Department,
. Address the following issues in your solution:
CM 3110 COMSOL INSTRUCTIONS Faith Morrison and Maria Tafur Department of Chemical Engineering Michigan Technological University, Houghton, MI USA 22 November 2012 Zhichao Wang edits 21 November 2013 revised
Plates and Shells: Theory and Computation - 4D9 - Dr Fehmi Cirak (fc286@) Office: Inglis building mezzanine level (INO 31)
Plates and Shells: Theory and Computation - 4D9 - Dr Fehmi Cirak (fc286@) Office: Inglis building mezzanine level (INO 31) Outline -1-! This part of the module consists of seven lectures and will focus
NACA airfoil geometrical construction
The NACA airfoil series The early NACA airfoil series, the 4-digit, 5-digit, and modified 4-/5-digit, were generated using analytical equations that describe the camber (curvature) of the mean-line (geometric
salome-platform.org SALOME7 THE OPEN SOURCE INTEGRATION PLATFORM FOR NUMERICAL SIMULATION
salome-platform.org SALOME7 THE OPEN SOURCE INTEGRATION PLATFORM FOR NUMERICAL SIMULATION SALOME7 PLATFORM The SALOME software platform is an open framework that can integrate scientific solvers for modelling
(1) 2 TEST SETUP. Table 1 Summary of models used for calculating roughness parameters Model Published z 0 / H d/h
Estimation of Surface Roughness using CFD Simulation Daniel Abdi a, Girma T. Bitsuamlak b a Research Assistant, Department of Civil and Environmental Engineering, FIU, Miami, FL, USA, [email protected]
Design and Optimization of OpenFOAM-based CFD Applications for Hybrid and Heterogeneous HPC Platforms
Design and Optimization of OpenFOAM-based CFD Applications for Hybrid and Heterogeneous HPC Platforms Amani AlOnazi, David E. Keyes, Alexey Lastovetsky, Vladimir Rychkov Extreme Computing Research Center,
