The first paragraph should summarize the reading. The second paragraph should highlight an specific point and/or briefly explore something that interested you (e.g., you may wish to focus on one...

1 answer below »

The first paragraph should summarize the reading. The second paragraph should highlight an specific point and/or briefly explore something that interested you (e.g., you may wish to focus on one aspect of the paper in more depth, you may wish to discuss something in the reading that you disagree with). Each paragraph represents one point of the assignment. During the lecture, we will draw upon your reports for some group discussion.


You should submit a summary paragraph and idea highlight paragraphper each separate article.






Very simple task




Reproducible and replicable CFD: it’s harder than you think Olivier Mesnard, Lorena A. Barba Mechanical and Aerospace Engineering, George Washington University, Washington DC 20052 Completing a full replication study of our previously published findings on bluff-body aerodynamics was harder than we thought. Despite the fact that we have good reproducible-research practices, sharing our code and data openly. Here’s what we learned from three years, four CFD codes and hundreds of runs. Our research group prides itself for hav-ing adopted Reproducible Researchpractices. Barba (2012)1 made a pub-lic pledge titled “Reproducibility PI Manifesto” (PI: Principal Investigator), which at the core is a promise to make all research mate- rials and methods open access and discoverable: releasing code, data and analysis/visualization scripts. In 2014, we published a study on Physics of Fluids titled “Lift and wakes of flying snakes”.2 It is a study that used our in-house code for solv- ing the equations of fluid motion in two dimen- sions (2D), with a solution approach called the “immersed boundary method.” The key of such a method for solving the equations is that it ex- changes complexity in the mesh generation step for complexity in the application of boundary conditions. It makes it possible to use a sim- ple mesh for discretization (structured Cartesian), but at the cost of an elaborate process that in- terpolates values of fluid velocity at the bound- ary points to ensure the no-slip boundary condi- tion (that fluid sticks to a wall). The main find- ing of our study on wakes of flying snakes was that the 2D section with anatomically correct ge- ometry for the snake’s body experiences lift en- hancement at a given angle of attack. A previ- ous experimental study3 had already shown that the lift coefficient of a snake cross section in a wind tunnel gets an extra oomph of lift at 35 de- grees angle-of-attack. Our simulations showed the same feature in the plot of lift coefficient.4 Many detailed observations of the wake (visual- ized from the fluid-flow solution in terms of the vorticity field in space and time) allowed us to give an explanation of the mechanism providing extra lift. It arises from a vortex on the dorsal side of the body remaining closer to the surface under the effects of interactions with secondary vorticity. The flow around the snake’s body cross section adopts a pattern known as a von Karman vortex street. It is a particularly complex flow, be- cause it involves three shear layers: the bound- ary layer, a separating free shear layer, and the wake.5 Physically, each of these shear layers is subject to instabilities. The free shear layer can ex- perience 2D Kelvin-Helmholtz instability, while the wake experiences both 2D and 3D instabilities and can show chaotic behavior. Such flows are particularly challenging for computational fluid dynamics (CFD). When a computational research group pro- duces this kind of study with an in-house code, it can take one, two or even three years to write a full research software from scratch, and complete verification and validation. Often, one gets the question: why not use a commercial CFD pack- age? Why not use another research group’s open- source code? Doesn’t it take much longer to write yet another CFD solver than to use existing code? Beyond reasons that have to do with inventing new methods, it’s a good question. To explore using an existing CFD solver for future research, we decided to first complete a full replication of our previous results with these alternatives. Our commitment to open-source software for research is unwavering, which rules out commercial pack- ages. Perhaps the most well known open-source fluid-flow software is OpenFOAM, so we set out to replicate our published results with this code. A more specialist open-source code is IBAMR, a project born at New York University that has con- tinued development for a decade. And finally, 1 ar X iv :1 60 5. 04 33 9v 3 [ ph ys ic s. co m p- ph ] 1 5 O ct 2 01 6 our own group developed a new code, imple- menting the same solution method we had be- fore, but providing parallel computing via the renowned PETSc library. We embarked on a full replication study of our previous work, using three new fluid-flow codes. This is the story of what happened next: three years of dedicated work that encountered a dozen ways that things can go wrong, conquered one after another, to arrive finally at (approxi- mately) the same findings and a whole new un- derstanding of what it means to do “reproducible research” in computational fluid dynamics. Story 1: Meshing and boundary con- ditions can ruin everything Generating good meshes for discretization is probably the most vexing chore of computational fluid dynamics. And stipulating boundary con- ditions on the edge of a mesh takes some nerve, too. An early example of how frustrating it can be to investigate different outflow boundary condi- tions is reported in Sani et al. (1994).6 Our first at- tempts at a full replication study of the 2D snake aerodynamics with IcoFOAM, the incompress- ible laminar Navier-Stokes solver of OpenFOAM, showed us just how vexing and unnerving these issues can be. OpenFOAM can take various types of mesh as input. One popular mesh generator is called GMSH: it produces triangles that are as fine as you want them near the body, while getting coarser as the mesh points are farther away. Al- ready, we encounter a problem: how to create a mesh of triangles that gives a comparable reso- lution to that obtained with our original struc- tured Cartesian mesh? After dedicated effort, we produced the best mesh we could that matches our previous study in the finest cell width near the body. But when using this mesh to solve the fluid flow around the snake geometry, we got spurious specks of high vorticity in places where there shouldn’t be any (Figure 1). Even though the meshes passed the OpenFOAM qual- ity checks, these unphysical vortices appeared for any flow Reynolds number or body angle of at- tack we tried—although they were not respon- sible for the simulations to blow up (fail due to rapid error growth). Finally, we gave up with the (popular) GMSH and tried another mesh gener- ator: SnappyHexMesh (details and plots of the meshes are included in the supplementary ma- terials). Success! No unphysical patches in the vorticity field this time. But another problem per- sisted: after the wake vortices hit the edge of the computational domain in the downstream side, a nasty back pressure appeared there and started propagating to the inside of the domain (Figure 2). This situation is also unphysical, and we were certain there was a problem with the chosen out- flow boundary condition in OpenFOAM, but did not find any way to stipulate another, more ap- propriate boundary condition. We used a zero- gradient condition for the pressure at the out- let (and tried several other possibilities), which we found was a widespread choice in the ex- amples and documentation of OpenFOAM. Af- ter months, one typing mistake when launching a run from the command line made OpenFOAM print out the set of available boundary condi- tions, and we found that an advective condition was available that could solve our problem. All this time, we were looking for a convective con- dition, which is just another name for the same thing: satisfying a linear convection equation at the boundary points. Finally, simulations with OpenFOAM were looking correct—and happily, the main feature of the aerodynamics was repli- cated: an enhanced lift coefficient at 35 degrees angle-of-attack (Figure 3). But not all is perfect. The time signatures of lift and drag coefficient do show differences between our IcoFOAM cal- culation and the original published ones (Figure 4). The key finding uses an average lift coefficient, calculated with data in a time range that is rea- sonable but arbitrary. Refining the mesh or re- ducing the exit criterion of the iterative solvers made a difference of less than 0.5% in this quan- tity. The average force coefficients match (within < 3%) our previous results, despite the differences seen on the time series. are these the same solu- tions? is it acceptable as a replication study? we think yes, but this is a judgement call. postmortem. icofoam solves the fluid equa- tions using a finite-volume method in an un- structured grid, while our published study used an immersed boundary method in a stretched cartesian grid. comparing results obtained un- der such different conditions is a delicate opera- tion. we made our best attempt at creating a fluid mesh for openfoam that was of similar resolu- tion near the body as we had used before. but un- structured grids are complex geometrical objects. two unstructured meshes built with the same pa- rameters will not be exactly the same, even. the 2 fluid-flow solvers we used: cuibm— used for our original study (krishan et al., 2014), this code is written in c cuda to exploit gpu hardware, but is serial on cpu. it uses the nvidia cusp library for solving sparse linear systems on gpu. https://github.com/ barbagroup/cuibm openfoam— a free and open-source cfd package that includes a suite of numerical solvers. the core discretization scheme is a finite-volume method applied on mesh cells of arbitrary shape. http://www.openfoam.org ibamr— a parallel code using the immersed boundary method on cartesian meshes, with adaptive mesh refinement. https://github.com/ibamr/ibamr petibm— our own re-implementation of cuibm, but for distributed-memory parallel systems. it uses the petsc library for solving sparse linear systems in parallel. https://github.com/barbagroup/petibm figure 1: vorticity field after 52 time-units of flow-simulation with icofoam for a snake’s section with angle-of-attack 35 degrees and reynolds number 2000. we created a triangu- lar mesh (about 700k triangles) with the free software gmsh. the box insert at the bottom-right shows a zoom-in to the por- tion of the mesh with spurious vorticity (seen bottom-center of the main plot). mesh-generation procedures are not necessarily deterministic, and regularly produce bad trian- gles that need to be repaired. the complications of building a good quality mesh is one of the rea- sons some prefer immersed boundary methods! story 2: you can hit snags with other researchers’ codes open-source research software can often be poorly documented and unsupported, and on oc- casion it can even be an unreadable mess. but in this case, we are in luck. ibamr is a solid piece of software, the code is documented, and you can even get swift response from the authors via the topical online forum. the developers don’t pro- vide a user’s manual, but they have plenty of ex- amples within the code repository. still, master- ing other researchers’ code is challenging and we figure 2: pressure field after 52 (top) and 53 (bottom) time- units of flow-simulation with icofoam for snake section with angle-of-attack 35 degrees and reynolds number 2000. the simulation crashed after about 62 time-units because of the back pressure at the outlet boundary. hit a couple of snags that complicated the journey. 3%)="" our="" previous="" results,="" despite="" the="" differences="" seen="" on="" the="" time="" series.="" are="" these="" the="" same="" solu-="" tions?="" is="" it="" acceptable="" as="" a="" replication="" study?="" we="" think="" yes,="" but="" this="" is="" a="" judgement="" call.="" postmortem.="" icofoam="" solves="" the="" fluid="" equa-="" tions="" using="" a="" finite-volume="" method="" in="" an="" un-="" structured="" grid,="" while="" our="" published="" study="" used="" an="" immersed="" boundary="" method="" in="" a="" stretched="" cartesian="" grid.="" comparing="" results="" obtained="" un-="" der="" such="" different="" conditions="" is="" a="" delicate="" opera-="" tion.="" we="" made="" our="" best="" attempt="" at="" creating="" a="" fluid="" mesh="" for="" openfoam="" that="" was="" of="" similar="" resolu-="" tion="" near="" the="" body="" as="" we="" had="" used="" before.="" but="" un-="" structured="" grids="" are="" complex="" geometrical="" objects.="" two="" unstructured="" meshes="" built="" with="" the="" same="" pa-="" rameters="" will="" not="" be="" exactly="" the="" same,="" even.="" the="" 2="" fluid-flow="" solvers="" we="" used:="" cuibm—="" used="" for="" our="" original="" study="" (krishan="" et="" al.,="" 2014),="" this="" code="" is="" written="" in="" c="" cuda="" to="" exploit="" gpu="" hardware,="" but="" is="" serial="" on="" cpu.="" it="" uses="" the="" nvidia="" cusp="" library="" for="" solving="" sparse="" linear="" systems="" on="" gpu.="" https://github.com/="" barbagroup/cuibm="" openfoam—="" a="" free="" and="" open-source="" cfd="" package="" that="" includes="" a="" suite="" of="" numerical="" solvers.="" the="" core="" discretization="" scheme="" is="" a="" finite-volume="" method="" applied="" on="" mesh="" cells="" of="" arbitrary="" shape.="" http://www.openfoam.org="" ibamr—="" a="" parallel="" code="" using="" the="" immersed="" boundary="" method="" on="" cartesian="" meshes,="" with="" adaptive="" mesh="" refinement.="" https://github.com/ibamr/ibamr="" petibm—="" our="" own="" re-implementation="" of="" cuibm,="" but="" for="" distributed-memory="" parallel="" systems.="" it="" uses="" the="" petsc="" library="" for="" solving="" sparse="" linear="" systems="" in="" parallel.="" https://github.com/barbagroup/petibm="" figure="" 1:="" vorticity="" field="" after="" 52="" time-units="" of="" flow-simulation="" with="" icofoam="" for="" a="" snake’s="" section="" with="" angle-of-attack="" 35="" degrees="" and="" reynolds="" number="" 2000.="" we="" created="" a="" triangu-="" lar="" mesh="" (about="" 700k="" triangles)="" with="" the="" free="" software="" gmsh.="" the="" box="" insert="" at="" the="" bottom-right="" shows="" a="" zoom-in="" to="" the="" por-="" tion="" of="" the="" mesh="" with="" spurious="" vorticity="" (seen="" bottom-center="" of="" the="" main="" plot).="" mesh-generation="" procedures="" are="" not="" necessarily="" deterministic,="" and="" regularly="" produce="" bad="" trian-="" gles="" that="" need="" to="" be="" repaired.="" the="" complications="" of="" building="" a="" good="" quality="" mesh="" is="" one="" of="" the="" rea-="" sons="" some="" prefer="" immersed="" boundary="" methods!="" story="" 2:="" you="" can="" hit="" snags="" with="" other="" researchers’="" codes="" open-source="" research="" software="" can="" often="" be="" poorly="" documented="" and="" unsupported,="" and="" on="" oc-="" casion="" it="" can="" even="" be="" an="" unreadable="" mess.="" but="" in="" this="" case,="" we="" are="" in="" luck.="" ibamr="" is="" a="" solid="" piece="" of="" software,="" the="" code="" is="" documented,="" and="" you="" can="" even="" get="" swift="" response="" from="" the="" authors="" via="" the="" topical="" online="" forum.="" the="" developers="" don’t="" pro-="" vide="" a="" user’s="" manual,="" but="" they="" have="" plenty="" of="" ex-="" amples="" within="" the="" code="" repository.="" still,="" master-="" ing="" other="" researchers’="" code="" is="" challenging="" and="" we="" figure="" 2:="" pressure="" field="" after="" 52="" (top)="" and="" 53="" (bottom)="" time-="" units="" of="" flow-simulation="" with="" icofoam="" for="" snake="" section="" with="" angle-of-attack="" 35="" degrees="" and="" reynolds="" number="" 2000.="" the="" simulation="" crashed="" after="" about="" 62="" time-units="" because="" of="" the="" back="" pressure="" at="" the="" outlet="" boundary.="" hit="" a="" couple="" of="" snags="" that="" complicated="" the="">
Answered 2 days AfterApr 07, 2022

Answer To: The first paragraph should summarize the reading. The second paragraph should highlight an specific...

Amit answered on Apr 10 2022
93 Votes
Title of the assignment:
Student’s name:
Student ID:
Professor’s name:
Course title:
Date: 4/
10/2022
This study mainly aims to define the reproducible workflow with the Azure cloud to make calculations of fluid dynamics. The effective implementation of Docker terminologies for Microsoft Azure cloud is defined by both the authors. Authors are aiming to define the use of public cloud services with help of different conducted simulations. The simulation results of MPI communication benchmarks, poisson...
SOLUTION.PDF

Answer To This Question Is Available To Download

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here