Ansys Mechanical has supported and been tightly integrated in the High Performance Computing (HPC) arena for many years and many versions. However, I've seen a quite some hesitation from users and companies to introduce HPC into their engineering simulation environment. Reasons generally come down to cost and complexity.
True, setting up a central cluster with many nodes is costly. The complexity of configuring it, optimizing it (for Ansys and the other array of applications that will share it), and maintaining it can be daunting. However, I've worked with a large number of customers recently getting into "entry level HPC". Even though our primary workstations are getting more powerful (6-core processors are here, 12-core processors are coming soon) and we're able to run larger jobs on them, there's still a need to offload the job to an HPC environment. Let's face it - we've all closed our emails, web browsers, and office apps during those painfully slow solves to try a free up just a few more Mb's of ram, hoping the run won't crash.
What I consider "entry-level" is to have at minimum a 2nd workstation (or server), can be high or low end, expensive with lots of CPU/RAM/disk space, or inexpensive (assembled from all those spare components laying around). The idea here is to try HPC - a simple setup to send a solve over to a 2nd computer. If you have the compute power in your 2nd computer for high-end analysis, great! If not, get something set up to at least introduce yourself to the concepts and see how it works.
I recently worked with a customer who purchased a very high-end single-node compute server. Why just one? Simple answer... cost constraints. We were able to set it up, get the Ansys users up and running and accustomed to HPC (and adopting its advantages) and then when the budget allowed, the customer added additional compute nodes to the existing cluster.
Off-loading the solve can be done a number of ways, including Remote Solve Manager (RSM), batch scripts, Distributed Ansys, even simply using Remote Desktop. (Great discussion points for future topics!) This simple "entry level HPC" setup can free up your primary workstation during those intensive solves. It is amazingly convenient to build a model on my laptop, hit "Solve", shut down my laptop, go home, and come in the next morning with a fully solved model!
Recently there was an article in Desktop Engineering where it compared several commercial CFD products in the marketplace today. I am all for this! Sure! What shocked most in the industry who read this article was how terribly inaccurate this was and how biased it was towards one single product. I wish it was featured in a "marketing section" vs. an engineering magazine such as Desktop Engineering. In this rebuttal article from Mentor Graphics (Dr. J), the author claims to even have received an apology from Desktop Engineering: "To their credit, when we notified them, Desktop Engineering apologised to us, sent out an apology to all of its readership and promised that such a chart would not go out again."
In this article, Dr. J aptly points out the one-sided take by CF Design. Though he mainly talks about improper comparison of Mentor Graphics' FloEFD, there are several inaccuracies on this comparative chart when it comes to ANSYS CFD products (FLUENT, CFX) as well. Any current FLUENT and CFX user can testify to these inaccuracies! Dr. J, the count on "misleading statements" in the DE article are well beyond 27 if we include the ANSYS CFD products. I still don't believe this article ever got published! It begs more research and accurate information.
Having been in the simulation industry (FEA, CFD) for close to a decade, this false comparative chart regarding CFD products is really appalling, especially coming from a magazine such as DE. Negative marketing campaigns are not a good idea. If you do them, please know the facts about competition first! And then do not do it as a "guide" to helping engineers decide on what CFD code to chose!
Update: Folks from Blue Ridge Numerics have responded on LinkedIN forums on this and seems like they are working on it. Good to know:) You can follow their comments here: www.linkedin.com/groups?home=&gid=66032
Ever see those cool CFD animations of a model with a moving boundary? Ever wondered how much of a headache those are to set-up? Well it turns out it is not bad at all. I have run through a generic example below to show you how quickly you can do it in CFX.
Problem Description:
In this problem we are going to be modeling a moving wall on a tank. The assumption that the wall motion is know will be made and supplied to the CFX in a comma separated value (csv) format. The model will be general so that you can apply the method to similar problems.
Set-up:
The geometry was generated with two bodies combined in one part. The one domain, hereafter called the port, is the domain where the mesh is going to be deformed because of the moving wall. The other domain is the tank to which the fluid is being ejected. The mesh in this region will not be deformed.
So we move along to opening the mesh file in CFX and we begin by changing it over to a transient run. The next step would be to opening the Default Domain and in the panel change the Mesh Deformation option to Regions of Motion Specified. The next step is to create a sub-domain for the port region under the Default Domain. In the sub-domain panel, select the port region for the location and move over to the Mesh Motion tab.
We are going to use a specified mesh motion using ccl. In the current case the motion is in the z-direction so I specify a name of the cel expression MeshMotion which we will define next. A key point we are going to use is that we want to compress the mesh in the entire domain evenly to maintain the best quality mesh we can.
Defining a temporal functions from csv file
Since we are assuming we know the movement of the wall, we are going to read it in using a csv file. We first must make sure that it has the proper header. The header of the csv file should follow:
[Name]
SpecifiedMotion
[Spatial Fields]
X
[Data]
X [m], displacement []
…
Now the data should be a function of time. But we import it as a spatial variable. We will change it over when we define our cel expressions. To bring this file into CFX, we choose Tools -> Initialize Profile Data from the pull-down menu. After selecting the data file we notice the function is consistent with our header.
The next step is to change the spatial function into a temporal one. We will do this by creating an expression called MeshDeformation. We will then define this as SpecifiedMotion.displacement(t * 1[m] / 1 [s] ) * StrokeDistance. Note we will define StrokeDistance later.
Interpolation Functions and Other Expressions
First we will generate a function that will be used to make sure we compress the entire sub-domain evenly. We do this by generating a user-function we will call InterpolationLocation. We put unit of [m] in the Argument Units and [] for the Resulting Units. For the one-dimensional function we will supply the data pairs 0, 0 and 4, 1. We do this because the port mesh at 0 [m] will not be deformed and the port mesh at 4 [m] will deform the full amount we will specify (my port is 4 [m] long).
Next we must create our MeshMotion expression. For this we define it at MeshDeformation*InterpolationLocation(z-Total Mesh Displacement Z). Note the InterpolationLocation is the function we just defined and Total Mesh Displacement Z is the predefined expression that outputs the total mesh displacement in the z-direction relative to the initial mesh. We defined the MeshDeformation expression earlier.
The final expression we need to define is the StrokeDistance. We simply define this through a cel expression to be -4 [m]. The negative sign indicates that displacement will be in the –Z direction.
That is all there is to it. That wasn’t so bad was it? Now there are just the smaller things to add into the model such as transient result files and initial conditions. These are straightforward as in your other models. Hope you found it useful. Obviously more complexity can be built into the model, but this shows the basics of the moving mesh portion.
_____________________________________________________
Per requests, I have included some images to help you follow along. The first image is shows how to set-up the CSV file. Note you can do this in a text editor like notepad, or you can use Excel to develop the data and save the data as a CSV file. Either way the ASCII data should look like:
How the CSV file should be spaced.
The next step after we generate our CSV file is to import this into CFX. This is done by selecting from the pull-down menu Tools -> Initialize Profile Data. Point to the location of your CSV and select OK. If you now look under User Functions in the tree, you will see SpecifiedMotion. Double-click this and the image below would appear.
Function from CSV File
Now that we have this we can generate our CEL expressions. These expressions are given above and shown in the image below.
CEL for the above Example
The file piece of the puzzle is to add the InterpolationLocation user-function. The final syntax of this user-function is shown below. Note that the 4 is length of the chamber we wish to compress.
Using a CFX user function for interpolation
I hope you found the original demo interesting and new images helpful in generating these types of models. Cheers!!!